[Pkg-tcltk-devel] Bug#1105535: nsf: FTBFS with make --shuffle=reverse: mkdir: cannot create directory ‘/build/reproducible-path/nsf-2.4.0/debian/tmp/usr/bin’: File exists

Lucas Nussbaum lucas at debian.org
Tue May 13 20:10:24 BST 2025


Source: nsf
Version: 2.4.0-1
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=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[2]: Entering directory '/build/reproducible-path/nsf-2.4.0'
> Makefile:372: update target 'libraries-pkgindex' due to: target does not exist
> TCL_LIBRARY=`echo /usr/include/tcl8.6/tcl-private/library` LD_LIBRARY_PATH=":/usr/lib:" PATH=":/usr/lib:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games" TCLLIBPATH=" . " TCL_PKG_PREFER_LATEST=1 /usr/bin/tclsh8.6 `echo ./library`/lib/mkIndex.tcl -dir `echo ./library`
> Appending pkgIndex.add to pkgIndex.tcl in /build/reproducible-path/nsf-2.4.0/library/mongodb
> Appending nx-callback.add to pkgIndex.tcl in /build/reproducible-path/nsf-2.4.0/library/lib
> Appending pkgIndex-package.add to pkgIndex.tcl in /build/reproducible-path/nsf-2.4.0/library/xotcl/library/lib
> Makefile:330: update target 'libraries' due to: target is .PHONY
> if test ! "x" = "x" ; then dirs="" ; \
> for dir in $dirs ; do \
>    if (cd $dir; make libraries) ; then true ; else exit 1 ; fi ; \
> done; fi;
> Makefile:478: update target 'install-libraries' due to: target does not exist
> /bin/bash ./tclconfig/install-sh -c -d -m 755 /build/reproducible-path/nsf-2.4.0/debian/tmp/usr/include/nsf
> echo "Installing header files in /build/reproducible-path/nsf-2.4.0/debian/tmp/usr/include/nsf"
> Installing header files in /build/reproducible-path/nsf-2.4.0/debian/tmp/usr/include/nsf
> for i in generic/nsf.h generic/nsfInt.h generic/stubs8.6/nsfDecls.h generic/stubs8.6/nsfIntDecls.h ; do \
>     echo "    Installing $i" ; \
>     /bin/bash ./tclconfig/install-sh -c -m 644 ./$i /build/reproducible-path/nsf-2.4.0/debian/tmp/usr/include/nsf ; \
> done;
>     Installing generic/nsf.h
>     Installing generic/nsfInt.h
>     Installing generic/stubs8.6/nsfDecls.h
>     Installing generic/stubs8.6/nsfIntDecls.h
> /bin/bash ./tclconfig/install-sh -c -d -m 755 /build/reproducible-path/nsf-2.4.0/debian/tmp/usr/lib/tcltk/nsf2.4.0
> echo "Installing Libraries to /build/reproducible-path/nsf-2.4.0/debian/tmp/usr/lib/tcltk/nsf2.4.0/"
> Installing Libraries to /build/reproducible-path/nsf-2.4.0/debian/tmp/usr/lib/tcltk/nsf2.4.0/
> for i in lib nx serialize ; do \
>     echo "    Installing $i/" ; \
>     rm -rf /build/reproducible-path/nsf-2.4.0/debian/tmp/usr/lib/tcltk/nsf2.4.0/$i ; \
>     mkdir -p /build/reproducible-path/nsf-2.4.0/debian/tmp/usr/lib/tcltk/nsf2.4.0/$i; \
>     chmod 755 /build/reproducible-path/nsf-2.4.0/debian/tmp/usr/lib/tcltk/nsf2.4.0/$i; \
>     for j in ./library/$i/*.*tcl ; do \
> 	/bin/bash ./tclconfig/install-sh -c -m 644 $j /build/reproducible-path/nsf-2.4.0/debian/tmp/usr/lib/tcltk/nsf2.4.0/$i/; \
>     done; \
> done;
>     Installing lib/
>     Installing nx/
>     Installing serialize/
> for i in COPYRIGHT pkgIndex.tcl ; do \
>     echo "    Installing $i" ; \
>     rm -rf /build/reproducible-path/nsf-2.4.0/debian/tmp/usr/lib/tcltk/nsf2.4.0/$i ; \
>     /bin/bash ./tclconfig/install-sh -c -m 644 ./library/$i /build/reproducible-path/nsf-2.4.0/debian/tmp/usr/lib/tcltk/nsf2.4.0/$i ; \
> done;
>     Installing COPYRIGHT
>     Installing pkgIndex.tcl
> mkdir -p /build/reproducible-path/nsf-2.4.0/debian/tmp/usr/lib/tcltk/tcl8/site-tcl
> for i in ./tcl8/site-tcl/*.tm ; do \
>     if test -f $i; then \
>        echo "    Installing module $i in /build/reproducible-path/nsf-2.4.0/debian/tmp/usr/lib/tcltk/tcl8/site-tcl";\
>        /bin/bash ./tclconfig/install-sh -c -m 644 $i /build/reproducible-path/nsf-2.4.0/debian/tmp/usr/lib/tcltk/tcl8/site-tcl/; \
>     fi; \
> done;
> /bin/bash ./tclconfig/install-sh -c -m 644 ./nsfConfig.sh /build/reproducible-path/nsf-2.4.0/debian/tmp/usr/lib/tcltk/
> Makefile:510: update target 'install-xotcl-libraries' due to: target does not exist
> /bin/bash ./tclconfig/install-sh -c -d -m 755 /build/reproducible-path/nsf-2.4.0/debian/tmp/usr/lib/tcltk/nsf2.4.0
> echo "Installing XOTcl Libraries to /build/reproducible-path/nsf-2.4.0/debian/tmp/usr/lib/tcltk/nsf2.4.0/xotcl/"
> Installing XOTcl Libraries to /build/reproducible-path/nsf-2.4.0/debian/tmp/usr/lib/tcltk/nsf2.4.0/xotcl/
> rm -rf /build/reproducible-path/nsf-2.4.0/debian/tmp/usr/lib/tcltk/nsf2.4.0/xotcl
> mkdir -p /build/reproducible-path/nsf-2.4.0/debian/tmp/usr/lib/tcltk/nsf2.4.0/xotcl
> chmod 755 /build/reproducible-path/nsf-2.4.0/debian/tmp/usr/lib/tcltk/nsf2.4.0/xotcl
> for i in comm lib serialize  ; do \
>     echo "    Installing library $i/" ; \
>     rm -rf /build/reproducible-path/nsf-2.4.0/debian/tmp/usr/lib/tcltk/nsf2.4.0/xotcl/$i ; \
>     mkdir -p /build/reproducible-path/nsf-2.4.0/debian/tmp/usr/lib/tcltk/nsf2.4.0/xotcl/$i; \
>     chmod 755 /build/reproducible-path/nsf-2.4.0/debian/tmp/usr/lib/tcltk/nsf2.4.0/xotcl/$i; \
>     for j in ./library/xotcl/library/$i/*.*tcl ; do \
> 	/bin/bash ./tclconfig/install-sh -c -m 644 $j /build/reproducible-path/nsf-2.4.0/debian/tmp/usr/lib/tcltk/nsf2.4.0/xotcl/$i/; \
>     done; \
> done;
>     Installing library comm/
>     Installing library lib/
>     Installing library serialize/
> for i in COPYRIGHT xotcl2.tcl pkgIndex.tcl ; do \
>     echo "    Installing $i" ; \
>     rm -rf /build/reproducible-path/nsf-2.4.0/debian/tmp/usr/lib/tcltk/nsf2.4.0/xotcl/$i ; \
>     /bin/bash ./tclconfig/install-sh -c -m 644 ./library/xotcl/library/$i /build/reproducible-path/nsf-2.4.0/debian/tmp/usr/lib/tcltk/nsf2.4.0/xotcl/$i;\
> done;
>     Installing COPYRIGHT
>     Installing xotcl2.tcl
>     Installing pkgIndex.tcl
> Makefile:531: update target 'install-xotcl-shells' due to: target does not exist
> if test -f ./library/xotcl/xotclsh; then \
> 	/bin/bash ./tclconfig/install-sh -c ./library/xotcl/xotclsh /build/reproducible-path/nsf-2.4.0/debian/tmp/usr/bin;\
> fi
> if test -f ./library/xotcl/xowish; then \
> 	/bin/bash ./tclconfig/install-sh -c ./library/xotcl/xowish /build/reproducible-path/nsf-2.4.0/debian/tmp/usr/bin; \
> fi
> Makefile:582: update target 'install-doc' due to: target does not exist
> /bin/bash ./tclconfig/install-sh -c -d -m 755 /build/reproducible-path/nsf-2.4.0/debian/tmp/usr/share/man/man1
> echo "Installing documentation in /build/reproducible-path/nsf-2.4.0/debian/tmp/usr/share/man"
> Installing documentation in /build/reproducible-path/nsf-2.4.0/debian/tmp/usr/share/man
> list='./doc/*.1'; for i in $list; do \
>     echo "Installing $i"; \
>     /bin/bash ./tclconfig/install-sh -c -m 644 $i /build/reproducible-path/nsf-2.4.0/debian/tmp/usr/share/man/man1 ; \
> done
> Installing ./doc/nxsh.1
> Installing ./doc/nxwish.1
> Installing ./doc/xotclsh.1
> Installing ./doc/xowish.1
> /bin/bash ./tclconfig/install-sh -c -d -m 755 /build/reproducible-path/nsf-2.4.0/debian/tmp/usr/share/man/man3
> list='./doc/*.3'; for i in $list; do \
>     echo "Installing $i"; \
>     /bin/bash ./tclconfig/install-sh -c -m 644 $i /build/reproducible-path/nsf-2.4.0/debian/tmp/usr/share/man/man3 ; \
> done
> Installing ./doc/Class.3
> Installing ./doc/Object.3
> Installing ./doc/configure.3
> Installing ./doc/current.3
> Installing ./doc/next.3
> Makefile:753: update target 'install-pkgIndex' due to: target does not exist
> echo "    Adding to pkgIndex.tcl for nsf in /build/reproducible-path/nsf-2.4.0/debian/tmp/usr/lib/tcltk/nsf2.4.0/pkgIndex.tcl"
>     Adding to pkgIndex.tcl for nsf in /build/reproducible-path/nsf-2.4.0/debian/tmp/usr/lib/tcltk/nsf2.4.0/pkgIndex.tcl
> echo "" >> /build/reproducible-path/nsf-2.4.0/debian/tmp/usr/lib/tcltk/nsf2.4.0/pkgIndex.tcl
> cat pkgIndex.tcl >> /build/reproducible-path/nsf-2.4.0/debian/tmp/usr/lib/tcltk/nsf2.4.0/pkgIndex.tcl
> Makefile:769: update target 'install-shells' due to: target does not exist
> if test -f nxsh; then \
> 	/bin/bash ./tclconfig/install-sh -c nxsh /build/reproducible-path/nsf-2.4.0/debian/tmp/usr/bin; \
> fi
> if test -f nxwish; then \
> 	/bin/bash ./tclconfig/install-sh -c nxwish /build/reproducible-path/nsf-2.4.0/debian/tmp/usr/bin; \
> fi
> Makefile:970: update target 'install-bin-binaries' due to: target does not exist
> /bin/bash ./tclconfig/install-sh -c -d -m 755 /build/reproducible-path/nsf-2.4.0/debian/tmp/usr/bin
> mkdir: cannot create directory ‘/build/reproducible-path/nsf-2.4.0/debian/tmp/usr/bin’: File exists
> mkdir: cannot create directory ‘/build/reproducible-path/nsf-2.4.0/debian/tmp/usr/bin’: File exists
> make[2]: *** [Makefile:970: install-bin-binaries] Error 1 shuffle=reverse


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



More information about the Pkg-tcltk-devel mailing list