[Debian GNUstep maintainers] Bug#1105729: dbuskit: FTBFS with make --shuffle=random: dh_auto_test: error: make -j8 check "TESTSUITEFLAGS=-j8 --verbose" VERBOSE=1 messages=yes returned exit code 2

Lucas Nussbaum lucas at debian.org
Tue May 13 20:23:50 BST 2025


Source: dbuskit
Version: 0.1.1-13
Severity: minor
Tags: trixie sid ftbfs
User: lucas at debian.org
Usertags: ftbfs-shuffle

Hi,

GNU Make now has a --shuffle option that simulates non-deterministic ordering
of target prerequisites. See
https://trofi.github.io/posts/238-new-make-shuffle-mode.html and also previous
work in Debian by Santiago Vila:
https://people.debian.org/~sanvila/make-shuffle/

This package fails to build with make --shuffle=random.
This is likely to be caused by a missing dependency in
debian/rules or an upstream Makefile.

More information about this mass bug filing is available at
https://wiki.debian.org/qa.debian.org/FTBFS/Shuffle

Relevant part (hopefully):
> make[1]: Entering directory '/build/reproducible-path/dbuskit-0.1.1'
> debian/rules:25: update target 'override_dh_auto_test-arch' due to: target does not exist
> xvfb-run --auto-servernum \
>   dbus-test-runner --max-wait=900 --bus-type=both \
>   --task=dh_auto_test --parameter -- --parameter messages=yes \
>   || (cat tests.log; exit 1)
> 
> (dbus-test-runner:3289): libdbustest-WARNING **: 13:23:50.848: Setting bus to BOTH, which is typically only used as a default value.
> DBus daemon: unix:path=/tmp/dbus-SCEc58xnEy,guid=7413e998790dca927973b26e681375e6
> task-0: Started with PID: 3294
> task-0: 	make -j8 check "TESTSUITEFLAGS=-j8 --verbose" VERBOSE=1 messages=yes
> task-0: make[2]: Entering directory '/build/reproducible-path/dbuskit-0.1.1'
> task-0: This is gnustep-make 2.9.3. Type 'make print-gnustep-make-help' for help.
> task-0: Running in gnustep-make version 2 strict mode.
> task-0: /usr/share/GNUstep/Makefiles/Master/serial-subdirectories.make:53: update target 'internal-check' due to: target is .PHONY
> task-0: (operation=check; \
> task-0:   abs_build_dir="."; \
> task-0: for directory in Source Tools Documentation; do \
> task-0:   echo "Making $operation in $directory ..."; \
> task-0:   if [ "${abs_build_dir}" = "." ]; then \
> task-0:     gsbuild="."; \
> task-0:   else \
> task-0:     gsbuild="${abs_build_dir}/$directory"; \
> task-0:   fi; \
> task-0:   if make -C $directory -f GNUmakefile  --no-keep-going \
> task-0:                      $operation \
> task-0:              GNUSTEP_BUILD_DIR="$gsbuild" _GNUSTEP_MAKE_PARALLEL=no; then \
> task-0:     :; else exit $?; \
> task-0:   fi; \
> task-0: done)
> task-0: Making check in Source ...
> task-0: make[3]: Entering directory '/build/reproducible-path/dbuskit-0.1.1/Source'
> task-0: /usr/share/GNUstep/Makefiles/Master/rules.make:297: update target 'DBusKit.check.framework.variables' due to: target does not exist
> task-0: ( \
> task-0: instance=DBusKit; \
> task-0: operation=check; \
> task-0: type=framework; \
> task-0: abs_build_dir="."; \
> task-0: if [ "" != "" ]; then \
> task-0:   echo "Making $operation in subprojects of $type $instance..."; \
> task-0:   for f in  __done; do \
> task-0:     if [ $f != __done ]; then       \
> task-0:       if [ "${abs_build_dir}" = "." ]; then \
> task-0:         gsbuild="."; \
> task-0:       else \
> task-0:         gsbuild="${abs_build_dir}/$f"; \
> task-0:       fi; \
> task-0:       if [ "" = "" ]; then \
> task-0:         if [ "$type" = "framework" ]; then \
> task-0:           if [ "yes" = "yes" ]; then \
> task-0:             framework_version=""; \
> task-0:             if [ "$framework_version" = "" ]; then \
> task-0:               framework_version=""; \
> task-0:               if [ "$framework_version" = "" ]; then \
> task-0:                 framework_version=""; \
> task-0:                 if [ "$framework_version" = "" ]; then \
> task-0:                   framework_version="0"; \
> task-0:                 fi; \
> task-0:               fi; \
> task-0:             fi; \
> task-0:             owning_project_header_dir="../${instance}.framework/Versions/${framework_version}/Headers"; \
> task-0:           else \
> task-0:             owning_project_header_dir="../${instance}.framework/Headers"; \
> task-0:           fi; \
> task-0:        else owning_project_header_dir=""; \
> task-0:        fi; \
> task-0:       else \
> task-0:         owning_project_header_dir="../"; \
> task-0:       fi; \
> task-0:       if make -C $f -f GNUmakefile  --no-keep-going $operation \
> task-0:           OWNING_PROJECT_HEADER_DIR_NAME="${owning_project_header_dir}" \
> task-0:           DERIVED_SOURCES="../derived_src" \
> task-0:           GNUSTEP_BUILD_DIR="$gsbuild" \
> task-0:   _GNUSTEP_MAKE_PARALLEL=no \
> task-0:         ; then \
> task-0:         :; \
> task-0:       else exit $?; \
> task-0:       fi; \
> task-0:     fi; \
> task-0:   done; \
> task-0: fi; \
> task-0: echo "Making $operation for $type $instance..."; \
> task-0: make -f GNUmakefile --no-print-directory --no-keep-going \
> task-0:     internal-${type}-$operation \
> task-0:     GNUSTEP_TYPE=$type \
> task-0:     GNUSTEP_INSTANCE=$instance \
> task-0:     GNUSTEP_OPERATION=$operation \
> task-0:     GNUSTEP_BUILD_DIR="${abs_build_dir}" \
> task-0:     _GNUSTEP_MAKE_PARALLEL=no)
> task-0: Making check for framework DBusKit...
> task-0: make[4]: Nothing to be done for 'internal-framework-check'.
> task-0: make[3]: Leaving directory '/build/reproducible-path/dbuskit-0.1.1/Source'
> task-0: Making check in Tools ...
> task-0: make[3]: Entering directory '/build/reproducible-path/dbuskit-0.1.1/Tools'
> task-0: make[3]: Nothing to be done for 'check'.
> task-0: make[3]: Leaving directory '/build/reproducible-path/dbuskit-0.1.1/Tools'
> task-0: Making check in Documentation ...
> task-0: make[3]: Entering directory '/build/reproducible-path/dbuskit-0.1.1/Documentation'
> task-0: make[3]: Nothing to be done for 'check'.
> task-0: make[3]: Leaving directory '/build/reproducible-path/dbuskit-0.1.1/Documentation'
> task-0: GNUmakefile.postamble:54: update target 'check' due to: target is .PHONY
> task-0: cd Tests; ln -s ../Headers DBusKit
> task-0: (\
> task-0: ADDITIONAL_INCLUDE_DIRS="-I/usr/include/dbus-1.0 -I/usr/lib/x86_64-linux-gnu/dbus-1.0/include  "; \
> task-0: ADDITIONAL_LIB_DIRS="-L../Source/DBusKit.framework/Versions/Current -lDBusKit"; \
> task-0: if [ "linux-gnu" != "windows" -a "linux-gnu" != "mingw32" ]; then \
> task-0:   ADDITIONAL_LDFLAGS="-Wl,-rpath,../Source/DBusKit.framework/Versions/Current"; \
> task-0:   LD_LIBRARY_PATH="../Source/DBusKit.framework/Versions/Current:"; \
> task-0:   export ADDITIONAL_LDFLAGS; \
> task-0:   export LD_LIBRARY_PATH; \
> task-0: fi; \
> task-0: export ADDITIONAL_INCLUDE_DIRS; \
> task-0: export ADDITIONAL_LIB_DIRS; \
> task-0: if [ "no" = "yes" ]; then \
> task-0:   gnustep-tests --debug Tests; \
> task-0: else \
> task-0:   gnustep-tests Tests; \
> task-0: fi; \
> task-0: )
> task-0: --- Running tests in Tests ---
> task-0: 
> task-0: Tests/TestDKProxy.m:
> task-0: Failed file:  TestDKProxy.m aborted without running all tests!
> task-0: 
> task-0:     147 Passed tests
> task-0:       1 Failed file
> task-0: 
> task-0: 
> task-0: Some testing was abandoned when a test program aborted.  This is
> task-0: generally a severe problem and may mean that the package is
> task-0: completely unusable.  You need to try to fix this and, if it is
> task-0: not due to some problem on your system, please help by submitting
> task-0: a patch (or at least a bug report) to the package maintainer.
> task-0: Please see /build/reproducible-path/dbuskit-0.1.1/tests.log for more detail.
> make[2]: *** [GNUmakefile.postamble:55: check] Error 1 shuffle=4087232196
> task-0: make[2]: Leaving directory '/build/reproducible-path/dbuskit-0.1.1'
> dh_auto_test: error: make -j8 check "TESTSUITEFLAGS=-j8 --verbose" VERBOSE=1 messages=yes returned exit code 2


The full build log is available from:
http://qa-logs.debian.net/2025/05/05/shuffle/random/dbuskit_0.1.1-13_unstable_random.log

If you reassign this bug to another package, please mark it as 'affects'-ing
this package. See https://www.debian.org/Bugs/server-control#affects



More information about the pkg-GNUstep-maintainers mailing list