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

Reply via email to