Control: tags -1 wontfix
Control: retitle -1 debhelper: Parallel d/rules not fully supported
Sven Joachim:
[...]
I think I am beginning to understand where the race condition is. In
full builds of ncurses it is possible for 'make' to process the
install-arch and binary-indep targets in parallel, which can cause new
files to appear in debian/tmp after "dh_missing -i" has processed the
debian/.debhelper/generated/*/installed-by-* files, but before it
actually reads the contents of debian/tmp. Those files will then be
falsely reported as not installed.
Probably such a situation is relatively unusual, and I guess dh_missing
has not been designed to handle it. Will see how best to work around it
in ncurses.
Sven
Hi Sven
Thanks for the report and diagnosing the problem.
Indeed, debhelper was not never built for arbitrary parallelization of
dh commands or interactions between the commands. The `dh_missing` tool
is a lot more susceptible to the problem as it tries to do a "global
view" analysis
A proper fix in your case is to split the binary-X targets, inject a
synchronization barrier and run dh_missing on the other side of it. I
have no clue how to do that reliably in Make while keeping the target
dependencies correct.
Unfortunately, there is not much I can do to fix this in debhelper as
debhelper is 80% married to d/rules being a Makefile with arbitrary code
execution injected "anywhere" and then 20% of features that need this
not to be the case.
Indeed, it is a bug/misfeature, but I do not see a way to solve it.
Best regards,
Niels