• Bug#1105336: fxt: FTBFS with make --shuffle=reverse: /bin/bash: line 2:

    From Lucas Nussbaum@21:1/5 to All on Tue May 13 21:10:12 2025
    Source: fxt
    Version: 0.3.13-4.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/fxt-0.3.13/tools' Makefile:922: update target 'install-pkgincludeHEADERS' due to: target is .PHONY
    :
    list='fxt-tools.h fxt.h fut.h'; test -n "/usr/include/fxt" || list=; \
    if test -n "$list"; then \
    echo " /usr/bin/mkdir -p '/build/reproducible-path/fxt-0.3.13/debian/tmp/usr/include/fxt'"; \
    /usr/bin/mkdir -p "/build/reproducible-path/fxt-0.3.13/debian/tmp/usr/include/fxt" || exit 1; \
    fi; \
    for p in $list; do \
    if test -f "$p"; then d=; else d="./"; fi; \
    echo "$d$p"; \
    done | sed '$!N;$!N;$!N;$!N;$!N;$!N;$!N;s/\n/ /g' | sed '$!N;$!N;$!N;$!N;s/\n/ /g' | \
    while read files; do \
    echo " /usr/bin/install -c -m 644 $files '/build/reproducible-path/fxt-0.3.13/debian/tmp/usr/include/fxt'"; \
    /usr/bin/install -c -m 644 $files "/build/reproducible-path/fxt-0.3.13/debian/tmp/usr/include/fxt" || exit $?; \
    done
    /usr/bin/mkdir -p '/build/reproducible-path/fxt-0.3.13/debian/tmp/usr/include/fxt'
    /usr/bin/install -c -m 644 fxt-tools.h fxt.h fut.h '/build/reproducible-path/fxt-0.3.13/debian/tmp/usr/include/fxt'
    Makefile:860: update target 'install-man1' due to: target is .PHONY
    :
    list1='fxt_print.1'; \
    list2=''; \
    test -n "/usr/share/man/man1" \
    && test -n "`echo $list1$list2`" \
    || exit 0; \
    echo " /usr/bin/mkdir -p '/build/reproducible-path/fxt-0.3.13/debian/tmp/usr/share/man/man1'"; \
    /usr/bin/mkdir -p "/build/reproducible-path/fxt-0.3.13/debian/tmp/usr/share/man/man1" || exit 1; \
    { for i in $list1; do echo "$i"; done; \
    if test -n "$list2"; then \
    for i in $list2; do echo "$i"; done \
    | sed -n '/\.1[a-z]*$/p'; \
    fi; \
    } | while read p; do \
    if test -f $p; then d=; else d="./"; fi; \
    echo "$d$p"; echo "$p"; \
    done | \
    sed -e 'n;s,.*/,,;p;h;s,.*\.,,;s,^[^1][0-9a-z]*$,1,;x' \
    -e 's,\.[0-9a-z]*$,,;s,x,x,;G;s,\n,.,' | \
    sed 'N;N;s,\n, ,g' | { \
    list=; while read file base inst; do \
    if test "$base" = "$inst"; then list="$list $file"; else \
    echo " /usr/bin/install -c -m 644 '$file' '/build/reproducible-path/fxt-0.3.13/debian/tmp/usr/share/man/man1/$inst'"; \
    /usr/bin/install -c -m 644 "$file" "/build/reproducible-path/fxt-0.3.13/debian/tmp/usr/share/man/man1/$inst" || exit $?; \
    fi; \
    done; \
    for i in $list; do echo "$i"; done | sed '$!N;$!N;$!N;$!N;$!N;$!N;$!N;s/\n/ /g' | sed '$!N;$!N;$!N;$!N;s/\n/ /g' | \
    while read files; do \
    test -z "$files" || { \
    echo " /usr/bin/install -c -m 644 $files '/build/reproducible-path/fxt-0.3.13/debian/tmp/usr/share/man/man1'"; \
    /usr/bin/install -c -m 644 $files "/build/reproducible-path/fxt-0.3.13/debian/tmp/usr/share/man/man1" || exit $?; }; \
    done; }
    /usr/bin/mkdir -p '/build/reproducible-path/fxt-0.3.13/debian/tmp/usr/share/man/man1'
    /usr/bin/install -c -m 644 fxt_print.1 '/build/reproducible-path/fxt-0.3.13/debian/tmp/usr/share/man/man1'
    Makefile:901: update target 'install-includeHEADERS' due to: target is .PHONY :
    list='fxt-tools.h fxt.h fut.h'; test -n "/usr/include" || list=; \
    if test -n "$list"; then \
    echo " /usr/bin/mkdir -p '/build/reproducible-path/fxt-0.3.13/debian/tmp/usr/include'"; \
    /usr/bin/mkdir -p "/build/reproducible-path/fxt-0.3.13/debian/tmp/usr/include" || exit 1; \
    fi; \
    for p in $list; do \
    if test -f "$p"; then d=; else d="./"; fi; \
    echo "$d$p"; \
    done | sed '$!N;$!N;$!N;$!N;$!N;$!N;$!N;s/\n/ /g' | sed '$!N;$!N;$!N;$!N;s/\n/ /g' | \
    while read files; do \
    echo " /usr/bin/install -c -m 644 $files '/build/reproducible-path/fxt-0.3.13/debian/tmp/usr/include'"; \
    /usr/bin/install -c -m 644 $files "/build/reproducible-path/fxt-0.3.13/debian/tmp/usr/include" || exit $?; \
    done
    /usr/bin/mkdir -p '/build/reproducible-path/fxt-0.3.13/debian/tmp/usr/include'
    /usr/bin/install -c -m 644 fxt-tools.h fxt.h fut.h '/build/reproducible-path/fxt-0.3.13/debian/tmp/usr/include'
    Makefile:702: update target 'install-libLTLIBRARIES' due to: target is .PHONY :
    list='libfxt.la'; test -n "/usr/lib/x86_64-linux-gnu" || list=; \
    list2=; for p in $list; do \
    if test -f $p; then \
    list2="$list2 $p"; \
    else :; fi; \
    done; \
    test -z "$list2" || { \
    echo " /usr/bin/mkdir -p '/build/reproducible-path/fxt-0.3.13/debian/tmp/usr/lib/x86_64-linux-gnu'"; \
    /usr/bin/mkdir -p "/build/reproducible-path/fxt-0.3.13/debian/tmp/usr/lib/x86_64-linux-gnu" || exit 1; \
    echo " /bin/bash ../libtool --mode=install /usr/bin/install -c $list2 '/build/reproducible-path/fxt-0.3.13/debian/tmp/usr/lib/x86_64-linux-gnu'"; \
    /bin/bash ../libtool --mode=install /usr/bin/install -c $list2 "/build/reproducible-path/fxt-0.3.13/debian/tmp/usr/lib/x86_64-linux-gnu"; \
    }
    /usr/bin/mkdir -p '/build/reproducible-path/fxt-0.3.13/debian/tmp/usr/lib/x86_64-linux-gnu'
    /bin/bash ../libtool --mode=install /usr/bin/install -c libfxt.la '/build/reproducible-path/fxt-0.3.13/debian/tmp/usr/lib/x86_64-linux-gnu'
    libtool: install: /usr/bin/install -c .libs/libfxt.so.2.0.0 /build/reproducible-path/fxt-0.3.13/debian/tmp/usr/lib/x86_64-linux-gnu/libfxt.so.2.0.0
    libtool: install: (cd /build/reproducible-path/fxt-0.3.13/debian/tmp/usr/lib/x86_64-linux-gnu && { ln -s -f libfxt.so.2.0.0 libfxt.so.2 || { rm -f libfxt.so.2 && ln -s libfxt.so.2.0.0 libfxt.so.2; }; })
    libtool: install: (cd /build/reproducible-path/fxt-0.3.13/debian/tmp/usr/lib/x86_64-linux-gnu && { ln -s -f libfxt.so.2.0.0 libfxt.so || { rm -f libfxt.so && ln -s libfxt.so.2.0.0 libfxt.so; }; })
    libtool: install: /usr/bin/install -c .libs/libfxt.lai /build/reproducible-path/fxt-0.3.13/debian/tmp/usr/lib/x86_64-linux-gnu/libfxt.la
    libtool: install: /usr/bin/install -c .libs/libfxt.a /build/reproducible-path/fxt-0.3.13/debian/tmp/usr/lib/x86_64-linux-gnu/libfxt.a
    libtool: install: chmod 644 /build/reproducible-path/fxt-0.3.13/debian/tmp/usr/lib/x86_64-linux-gnu/libfxt.a
    libtool: install: ranlib /build/reproducible-path/fxt-0.3.13/debian/tmp/usr/lib/x86_64-linux-gnu/libfxt.a
    libtool: warning: remember to run 'libtool --finish /usr/lib/x86_64-linux-gnu'
    Makefile:1412: update target 'install-exec-local' due to: target is .PHONY set -e; \
    cd /build/reproducible-path/fxt-0.3.13/debian/tmp/usr/bin ; \
    rm -f fkt_disable ; ln -s fkt_setmask fkt_disable ; rm -f fkt_enable ; ln -s fkt_setmask fkt_enable ; rm -f fkt_probe0 ; ln -s fkt_setmask fkt_probe0 ;
    /bin/bash: line 2: cd: /build/reproducible-path/fxt-0.3.13/debian/tmp/usr/bin: No such file or directory
    make[4]: *** [Makefile:1412: install-exec-local] Error 1 shuffle=reverse


    The full build log is available from: http://qa-logs.debian.net/2025/05/05/shuffle/reverse/fxt_0.3.13-4.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)