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

Reply via email to