The .make fragment provided by gnome-doc-utils seems to be the root cause of parallel make install of bug #252163. It uses the install-local-data hook with for loops which at best makes parallel make useless and at worst can break make install. Also this doesn't look like much of a problem in most of our packages, it might bite us at some other point in time so I'd like this fixed and pushed upstream. CCing diego since he gently accepted to look into the issue.
As I'm having g-d-u parallel make issues on another platform, perhaps I can comment on this issue and propose a workaround. Re: bug 255479, AFAICS the .xml2po.mo usage should not be a problem; each language is processed in its own directory, so these files do not collide. But I haven't seen that particular problem, so I can't verify that. The more common issue, which I have experienced regularly, is the xsltproc stage: warning: failed to load external entity "db2omf.lang" cannot parse db2omf.lang This happens consistently with parallel make but never with -j1. I'll admit that I don't understand why this occurs, nor am I sure if the bug is with g-d-u, libxslt, or something in between. A workaround that I use is to add an empty .NOTPARALLEL: target[1] to g-d-u's gnome-doc-utils.make, which I use to replace the copies shipped with each package before running autotools (which we do anyway on my platform for other reasons). This forces only the g-d-u-including directory to run serially, while the rest of the package runs in parallel. [1] http://www.gnu.org/software/make/manual/html_node/Special-Targets.html The downside for Gentoo is that you don't usually run automake unless you have to. What you might be able to do is something similar to gnome2_omf_fix: gnome2_doc_utils_fix() { local gdu_makefiles gdu filename gdu_makefiles="$@" if [[ -f ${S}/gnome-doc-utils.make ]] ; then gdu_makefiles="${gdu_makefiles} ${S}/gnome-doc-utils.make" fi # testing fixing of all makefiles found # we need not do this to relevant Makefile.am because it includes # g-d-u.make, which is already added to the list for filename in $(find ./ -name "Makefile.in") ; do # FIXME: is this pattern robust enough?? if grep -q '^dist-check-gdu:' ; then gdu_makefiles="${gdu_makefiles} ${filename}" fi done ebegin "Fixing GNOME Doc Utils Makefiles" local retval=0 local fails=( ) for gdu in ${gdu_makefiles} ; do local rv=0 echo -e '\n.NOTPARALLEL:\n' >> "${gdu}" retval=$? if [[ ! $rv -eq 0 ]] ; then debug-print "updating of ${gdu} failed" # Add to the list of failures fails[$(( ${#fails[@]} + 1 ))]=$gdu retval=2 fi done eend $retval for f in "${fails[@]}" ; do eerror "Failed to update GNOME Doc Utils Makefile $f" done } This would then be added to gnome2_src_prepare(). Hope this helps.
as it turns out, I think I've found the issue to be shared between gdu and gnome-user-docs because of the way it tries to hook into gdu. I have patches on my laptop, just need some time to clean that up.
looking at it again since I lost the checkout where I was working in, there is actually no visible flow in the use of install-data-local hook. Each dependency creates its folders when needed, this is however nor the case of the rules from gnome-user-docs or gnome-devel-docs. We just need to make sure the po->mo fix that we have in g-u-d makes it back to g-d-u.
What is the status of this with the latest versions?
(In reply to comment #4) > What is the status of this with the latest versions? If still valid, would be interesting to report this to upstream I think :-/
Maybe parallel build could be enabled in overlay for testing before changing this in the tree...
(In reply to comment #6) > Maybe parallel build could be enabled in overlay for testing before changing > this in the tree... Any news here about starting to re-test with parallel build in overlay at least? Thanks :)
Looking to specs from OpenSuSE and Fedora seems that this was fixed with 0.19.1 release. I would try to revbump this without restricting parallel make in the next week if nobody disagrees. If you know a build test to check if this is still broken, please let me know
*gnome-doc-utils-0.20.9 (22 Mar 2012) 22 Mar 2012; Alexandre Rostovtsev <tetromino@gentoo.org> +gnome-doc-utils-0.20.9.ebuild: Version bump; gnome-doc-utils.make no longer validates documentation against Mallard RNG definitions. Parallel make appears to work fine now.