#1105547 vile: FTBFS with make --shuffle=reverse: install: cannot create regular file '/build/reproducible-path/vile-9.8za/debian/tmp/usr/lib/x86_64-linux-gnu/vile/vile-yaml-filt.so': No such file or directory

Package:
src:vile
Source:
src:vile
Submitter:
Lucas Nussbaum
Date:
2026-02-05 11:55:02 UTC
Severity:
normal
Tags:
#1105547#5
Date:
2025-05-13 19:18:03 UTC
From:
To:
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):
The full build log is available from:
http://qa-logs.debian.net/2025/05/05/shuffle/reverse/vile_9.8za-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

#1105547#10
Date:
2025-05-13 23:43:22 UTC
From:
To:
It took a few tries, but I was able to reproduce it with the attached
script abstracted from your log, on an 8-CPU machine.

#1105547#13
Date:
2025-05-13 23:43:22 UTC
From:
To:
It took a few tries, but I was able to reproduce it with the attached
script abstracted from your log, on an 8-CPU machine.

#1105547#20
Date:
2026-02-05 00:33:06 UTC
From:
To:
revisiting this, I noticed an error in my reproducer script (the --prefix
option should have been --prefix=/usr), but since I'd had some success with
that machine, spent some time to determine the cause of the problem.

Basically, the problem is that make -j is chopping up the list in
a line like this:

	install: $(INSTALL_DIRS) $(INSTALL_FILES)

and executing the rules for the latter first.  I suppose that I can
add a configure check for ".WAIT" and use that:

	install: $(INSTALL_DIRS) .WAIT $(INSTALL_FILES)

#1105547#25
Date:
2026-02-05 11:53:15 UTC
From:
To:
.WAIT is new to me.  Looking at the make docs, it seems that:

     .NOTPARALLEL: install

would also work.

#1105547#28
Date:
2026-02-05 11:53:15 UTC
From:
To:
.WAIT is new to me.  Looking at the make docs, it seems that:

     .NOTPARALLEL: install

would also work.