Source: efivar Version: 38-3.1 Severity: minor Tags: trixie sid ftbfs User: lu...@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=reverse. 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[4]: Entering directory '/build/reproducible-path/efivar-38/tests' > Makefile:158: update target 'test.esl.sha256.ascending.esl.goal.txt' due to: > target does not exist > LD_LIBRARY_PATH=/build/reproducible-path/efivar-38/src ../src/efisecdb --dump > --annotate \ > -s none -i test.esl.sha256.ascending.esl.goal > > test.esl.sha256.ascending.esl.goal.txt > Makefile:158: update target 'test.esl.cert.addition.esl.goal.txt' due to: > target does not exist > LD_LIBRARY_PATH=/build/reproducible-path/efivar-38/src ../src/efisecdb --dump > --annotate \ > -s none -i test.esl.cert.addition.esl.goal > > test.esl.cert.addition.esl.goal.txt > Makefile:252: update target 'test.esl.cert.addition.esl.result' due to: > target does not exist > LD_LIBRARY_PATH=/build/reproducible-path/efivar-38/src > /build/reproducible-path/efivar-38/src/efisecdb -g {redhat} -t sha256 \ > -i test.esl.sha256.unsorted.esl.goal -a -c > test.esl.cert.addition.cert.cer \ > -f -o test.esl.cert.addition.esl.result > Makefile:158: update target 'test.esl.cert.removal.esl.goal.txt' due to: > target does not exist > LD_LIBRARY_PATH=/build/reproducible-path/efivar-38/src ../src/efisecdb --dump > --annotate \ > -s none -i test.esl.cert.removal.esl.goal > > test.esl.cert.removal.esl.goal.txt > Makefile:158: update target 'test.esl.sha256.unsorted.esl.goal.txt' due to: > target does not exist > LD_LIBRARY_PATH=/build/reproducible-path/efivar-38/src ../src/efisecdb --dump > --annotate \ > -s none -i test.esl.sha256.unsorted.esl.goal > > test.esl.sha256.unsorted.esl.goal.txt > Makefile:190: update target 'test.esl.sha256.unsorted.esl.result' due to: > target does not exist > LD_LIBRARY_PATH=/build/reproducible-path/efivar-38/src > /build/reproducible-path/efivar-38/src/efisecdb -g {redhat} -t sha256 -a \ > -h 87428fc522803d31065e7bce3cf03fe475096631e5e07bbd7a0fde60c4cf25c7 \ > -h 0263829989b6fd954f72baaf2fc64bc2e2f01d692d4de72986ea808f6e99813f \ > -h a3a5e715f0cc574a73c3f9bebb6bc24f32ffd5b67b387244c2c909da779a1478 \ > -h 8d74beec1be996322ad76813bafb92d40839895d6dd7ee808b17ca201eac98be \ > -s none -f -o test.esl.sha256.unsorted.esl.result > Makefile:162: update target 'test.esl.cert.removal.esl.result.txt' due to: > target does not exist > LD_LIBRARY_PATH=/build/reproducible-path/efivar-38/src ../src/efisecdb --dump > --annotate \ > -s none -i test.esl.cert.removal.esl.result > > test.esl.cert.removal.esl.result.txt > Makefile:178: update target 'test.esl.annotation.esl.result' due to: target > does not exist > cp test.esl.annotation.esl test.esl.annotation.esl.result > Makefile:166: update target 'test.parse.db.var.result.txt' due to: target > does not exist > LD_LIBRARY_PATH=/build/reproducible-path/efivar-38/src ../src/efisecdb --dump > --annotate \ > -s none -i test.parse.db.var > test.parse.db.var.result.txt > Makefile:162: update target 'test.esl.cert.addition.esl.result.txt' due to: > target does not exist > LD_LIBRARY_PATH=/build/reproducible-path/efivar-38/src ../src/efisecdb --dump > --annotate \ > -s none -i test.esl.cert.addition.esl.result > > test.esl.cert.addition.esl.result.txt > Makefile:147: update target 'test.efivar.threading' due to: target is .PHONY > echo testing threading in libefivar > Makefile:140: update target 'test.conin.var' due to: target is .PHONY > echo testing with ConIn variable dmpstore generated > Makefile:133: update target 'test.bootorder.var' due to: target is .PHONY > echo testing with BootOrder variable dmpstore generated > make[4]: Leaving directory '/build/reproducible-path/efivar-38/tests' > if ! cmp test.esl.cert.removal.esl.goal test.esl.cert.removal.esl.result ; > then \ > diff -U 200 test.esl.cert.removal.esl.goal.txt > test.esl.cert.removal.esl.result.txt ; \ > exit 1 ; \ > fi > testing with ConIn variable dmpstore generated > testing threading in libefivar > LD_LIBRARY_PATH=/build/reproducible-path/efivar-38/src > /build/reproducible-path/efivar-38/src/efivar -i test.conin.var.goal.var -e > test.conin.var.0.result.var > TOPDIR=/build/reproducible-path/efivar-38 > /build/reproducible-path/efivar-38/tests/test-threading > testing with BootOrder variable dmpstore generated > make[4]: Leaving directory '/build/reproducible-path/efivar-38/tests' > LD_LIBRARY_PATH=/build/reproducible-path/efivar-38/src > /build/reproducible-path/efivar-38/src/efivar -i test.bootorder.var.goal.var > -e test.bootorder.var.0.result.var > if ! cmp test.esl.cert.addition.esl.goal test.esl.cert.addition.esl.result ; > then \ > diff -U 200 test.esl.cert.addition.esl.goal.txt > test.esl.cert.addition.esl.result.txt ; \ > exit 1 ; \ > fi > cmp test.esl.cert.removal.esl.goal test.esl.cert.removal.esl.result > Makefile:84: update target 'test.grubenv.var' due to: target is .PHONY > grub-editenv test.grubenv.var.result.env create > LD_LIBRARY_PATH=/build/reproducible-path/efivar-38/src > /build/reproducible-path/efivar-38/src/efivar -i test.conin.var.0.result.var > -e test.conin.var.1.result.var -D > Makefile:70: update target 'test.efivar.export' due to: target is .PHONY > echo testing export to libefivar format > rm -f test.esl.cert.removal.esl.result > Makefile:56: update target 'test.dmpstore.export' due to: target is .PHONY > echo testing export to DMPSTORE format > LD_LIBRARY_PATH=/build/reproducible-path/efivar-38/src > /build/reproducible-path/efivar-38/src/efivar -i > test.bootorder.var.0.result.var -e test.bootorder.var.1.result.var -D > testing export to libefivar format > grub-editenv test.efivar.export.result.env create > testing export to DMPSTORE format > rm -f test.esl.cert.addition.esl.result test.esl.cert.addition.*.esl.txt > echo passed > grub-editenv test.dmpstore.export.result.env create > cmp test.conin.var.goal.var test.conin.var.1.result.var > passed > echo passed > Makefile:46: update target 'clean' due to: target is .PHONY > rm -f test.*.result* \ > test.esl.annotation.esl.result \ > test.esl.cert.addition.esl.goal.txt \ > test.esl.cert.removal.esl.goal.txt \ > test.esl.sha256.addition.unsorted.esl.goal.txt \ > test.esl.sha256.ascending.esl.goal.txt \ > test.esl.sha256.removal.descending.esl.goal.txt \ > test.esl.sha256.unsorted.esl.goal.txt > grub-editenv test.grubenv.var.result.env set debug=all,-scripting,-lexer > cmp test.bootorder.var.goal.var test.bootorder.var.1.result.var > echo passed > passed > testing 1 thread...passed > echo passed > Makefile:162: update target > 'test.esl.sha256.addition.unsorted.esl.result.txt' due to: target does not > exist > LD_LIBRARY_PATH=/build/reproducible-path/efivar-38/src ../src/efisecdb --dump > --annotate \ > -s none -i test.esl.sha256.addition.unsorted.esl.result > > test.esl.sha256.addition.unsorted.esl.result.txt > thread test passed > Makefile:162: update target > 'test.esl.sha256.removal.descending.esl.result.txt' due to: target does not > exist > LD_LIBRARY_PATH=/build/reproducible-path/efivar-38/src ../src/efisecdb --dump > --annotate \ > -s none -i test.esl.sha256.removal.descending.esl.result > > test.esl.sha256.removal.descending.esl.result.txt > testing 2 thread...passed > grub-editenv test.efivar.export.result.env set debug=all,-scripting,-lexer > grub-editenv test.dmpstore.export.result.env set debug=all,-scripting,-lexer > thread test passed > testing 4 thread...Makefile:162: update target > 'test.esl.sha256.ascending.esl.result.txt' due to: target does not exist > LD_LIBRARY_PATH=/build/reproducible-path/efivar-38/src ../src/efisecdb --dump > --annotate \ > -s none -i test.esl.sha256.ascending.esl.result > > test.esl.sha256.ascending.esl.result.txt > Makefile:162: update target 'test.esl.sha256.unsorted.esl.result.txt' due to: > target does not exist > LD_LIBRARY_PATH=/build/reproducible-path/efivar-38/src ../src/efisecdb --dump > --annotate \ > -s none -i test.esl.sha256.unsorted.esl.result > > test.esl.sha256.unsorted.esl.result.txt > efisecdb: could not open "test.esl.sha256.addition.unsorted.esl.result": No > such file or directory > truncate -s 512 test.grubenv.var.result.env > efisecdb: could not open "test.esl.sha256.removal.descending.esl.result": No > such file or directory > make[3]: *** [Makefile:162: > test.esl.sha256.removal.descending.esl.result.txt] Error 1 shuffle=reverse > make[3]: *** Waiting for unfinished jobs.... > make[3]: *** [Makefile:162: test.esl.sha256.addition.unsorted.esl.result.txt] > Error 1 shuffle=reverse > thread test passed > testing 64 thread...echo test importing from DMPSTORE and exporting to > DMPSTORE and symbolic guid-name validation > efisecdb: could not open "test.esl.sha256.ascending.esl.result": No such file > or directory > efisecdb: could not open "test.esl.sha256.unsorted.esl.result": No such file > or directory > truncate -s 512 test.efivar.export.result.env > make[3]: *** [Makefile:162: test.esl.sha256.ascending.esl.result.txt] Error 1 > shuffle=reverse > make[3]: *** [Makefile:162: test.esl.sha256.unsorted.esl.result.txt] Error 1 > shuffle=reverse > test importing from DMPSTORE and exporting to DMPSTORE and symbolic guid-name > validation > LD_LIBRARY_PATH=/build/reproducible-path/efivar-38/src > /build/reproducible-path/efivar-38/src/efivar -n {grub}-GRUB_ENV -f > test.grubenv.var.result.env -D -e test.grubenv.var.0.export.var > LD_LIBRARY_PATH=/build/reproducible-path/efivar-38/src > /build/reproducible-path/efivar-38/src/efivar -n {grub}-GRUB_ENV -f > test.efivar.export.result.env -e test.efivar.export.result.var > truncate -s 512 test.dmpstore.export.result.env > LD_LIBRARY_PATH=/build/reproducible-path/efivar-38/src > /build/reproducible-path/efivar-38/src/efivar -i > test.grubenv.var.0.export.var -e test.grubenv.var.0.result.var -D > if grep -q "Do not edit" test.efivar.export.result.env ; then \ > cmp test.efivar.export.result.var test.efivar.export.new.goal.var ; \ > else \ > cmp test.efivar.export.result.var test.efivar.export.old.goal.var ; \ > fi > LD_LIBRARY_PATH=/build/reproducible-path/efivar-38/src > /build/reproducible-path/efivar-38/src/efivar -n {grub}-GRUB_ENV -f > test.dmpstore.export.result.env -D -e test.dmpstore.export.result.var > if grep -q "Do not edit" test.grubenv.var.result.env ; then \ > cmp test.grubenv.var.0.result.var test.grubenv.var.0.new.goal.var ; \ > else \ > cmp test.grubenv.var.0.result.var test.grubenv.var.0.old.goal.var ; \ > fi > if grep -q "Do not edit" test.dmpstore.export.result.env ; then \ > cmp test.dmpstore.export.result.var test.dmpstore.export.new.goal.var ; > \ > else \ > cmp test.dmpstore.export.result.var test.dmpstore.export.old.goal.var ; > \ > fi > rm -f test.efivar.export.result.* > echo passed > passed > rm -f test.dmpstore.export.result.* > test.grubenv.var.0.result.var test.grubenv.var.0.old.goal.var differ: byte > 47, line 1 > make[3]: *** [Makefile:90: test.grubenv.var] Error 1 shuffle=reverse > echo passed > passed > thread test passed > make[3]: Leaving directory '/build/reproducible-path/efivar-38/tests' > make[2]: *** [Makefile:50: test] Error 2 shuffle=reverse > make[2]: Leaving directory '/build/reproducible-path/efivar-38' > dh_auto_test: error: make -j8 test GRUB_PREFIX=grub returned exit code 2 The full build log is available from: http://qa-logs.debian.net/2025/05/05/shuffle/reverse/efivar_38-3.1_unstable_reverse.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