• Bug#1105354: efivar: FTBFS with make --shuffle=reverse: efisecdb: could

    From Lucas Nussbaum@21:1/5 to All on Tue May 13 21:10:08 2025
    Source: efivar
    Version: 38-3.1
    Severity: minor
    Tags: trixie sid ftbfs
    User: lucas@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

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)