After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 685837 - parallel build fails
parallel build fails
Status: RESOLVED FIXED
Product: empathy
Classification: Core
Component: General
3.6.x
Other Linux
: Normal normal
: ---
Assigned To: empathy-maint
empathy-maint
Depends on: 679330
Blocks:
 
 
Reported: 2012-10-09 19:48 UTC by Dominique Leuenberger
Modified: 2016-08-07 17:35 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
Fix parallel build in extensions/ (1.83 KB, patch)
2014-11-30 21:39 UTC, Rémi Cardona
none Details | Review
Fix parallel build in extensions/ (2.22 KB, patch)
2015-05-01 22:25 UTC, Gilles Dartiguelongue
committed Details | Review

Description Dominique Leuenberger 2012-10-09 19:48:03 UTC
Sometimes, parallel build fails with this errror (never fails with -j1)

[  186s] + make -j8 V=1
[  186s] make  all-recursive
[  186s] make[1]: Entering directory `/home/abuild/rpmbuild/BUILD/empathy-3.6.0.3'
[  186s] Making all in tools
[  186s] make[2]: Entering directory `/home/abuild/rpmbuild/BUILD/empathy-3.6.0.3/tools'
[  186s] sed -e 's![@]abs_top_builddir[@]!/home/abuild/rpmbuild/BUILD/empathy-3.6.0.3!' telepathy-glib-env.in > telepathy-glib-env
[  186s] sed -e 's![@]abs_top_builddir[@]!/home/abuild/rpmbuild/BUILD/empathy-3.6.0.3!' empathy-env.in > empathy-env
[  186s] chmod +x telepathy-glib-env
[  186s] chmod +x empathy-env
[  186s] make[2]: Leaving directory `/home/abuild/rpmbuild/BUILD/empathy-3.6.0.3/tools'
[  186s] Making all in extensions
[  186s] make[2]: Entering directory `/home/abuild/rpmbuild/BUILD/empathy-3.6.0.3/extensions'
[  186s] /usr/bin/python ../tools/xincludator.py all.xml > _gen/all.xml
[  186s] /usr/bin/python ../tools/xincludator.py misc.xml > _gen/misc.xml
[  186s] /usr/bin/python ../tools/glib-client-gen.py \
[  186s] 	--group=misc \
[  186s] 	--subclass=TpProxy \
[  186s] 	--subclass-assert=TP_IS_PROXY \
[  186s] 	--iface-quark-prefix=EMP_IFACE_QUARK \
[  186s] 	--tp-proxy-api=0.10.0 \
[  186s] 	_gen/misc.xml Emp_Cli _gen/cli-misc
[  186s] /usr/bin/python ../tools/glib-client-gen.py \
[  186s] 	--group=misc \
[  186s] 	--subclass=TpProxy \
[  186s] 	--subclass-assert=TP_IS_PROXY \
[  186s] 	--iface-quark-prefix=EMP_IFACE_QUARK \
[  186s] 	--tp-proxy-api=0.10.0 \
[  186s] 	_gen/misc.xml Emp_Cli _gen/cli-misc
[  186s] /usr/bin/python ../tools/glib-ginterface-gen.py \
[  186s] 	--filename=_gen/svc-misc \
[  186s] 	--signal-marshal-prefix=_emp_ext \
[  186s] 	--include='<telepathy-glib/telepathy-glib.h>' \
[  186s] 	--not-implemented-func='tp_dbus_g_method_return_not_implemented' \
[  186s] 	--allow-unstable \
[  186s] 	_gen/misc.xml Emp_Svc_
[  186s] /usr/bin/python ../tools/glib-ginterface-gen.py \
[  186s] 	--filename=_gen/svc-misc \
[  186s] 	--signal-marshal-prefix=_emp_ext \
[  186s] 	--include='<telepathy-glib/telepathy-glib.h>' \
[  186s] 	--not-implemented-func='tp_dbus_g_method_return_not_implemented' \
[  186s] 	--allow-unstable \
[  186s] 	_gen/misc.xml Emp_Svc_
[  186s] /usr/bin/python ../tools/glib-client-marshaller-gen.py _gen/all.xml \
[  186s] 	_emp_ext > _gen/register-dbus-glib-marshallers-body.h
[  186s] /usr/bin/python ../tools/c-constants-gen.py \
[  186s] 	Emp \
[  186s] 	_gen/all.xml _gen/enums
[  186s] /usr/bin/python ../tools/glib-gtypes-generator.py \
[  186s] 	_gen/all.xml _gen/gtypes Emp
[  186s] /usr/bin/python ../tools/glib-gtypes-generator.py \
[  186s] 	_gen/all.xml _gen/gtypes Emp
[  186s] /usr/bin/python ../tools/glib-interfaces-gen.py \
[  186s] 	Emp _gen/interfaces-body.h _gen/interfaces.h _gen/all.xml
[  186s] /usr/bin/python ../tools/glib-interfaces-gen.py \
[  186s] 	Emp _gen/interfaces-body.h _gen/interfaces.h _gen/all.xml
[  187s] xsltproc --nonet --novalid \
[  187s] 	--param "allow-undefined-interfaces" "true()" \
[  187s] 	../tools/doc-generator.xsl \
[  187s] 	_gen/all.xml > extensions.html
[  187s] Traceback (most recent call last):
[  187s]   File "../tools/glib-interfaces-gen.py", line 207, in <module>
[  187s]     Generator(argv[0], argv[1], argv[2], xml.dom.minidom.parse(argv[3]))()
[  187s]   File "../tools/glib-interfaces-gen.py", line 40, in __call__
[  187s]     file_set_contents(self.implfile, ''.join(self.impls))
[  187s]   File "/home/abuild/rpmbuild/BUILD/empathy-3.6.0.3/tools/libtpcodegen.py", line 42, in file_set_contents
[  187s]     os.rename(filename + '.tmp', filename)
[  187s] OSError: [Errno 2] No such file or directory
[  187s] make[2]: *** [_gen/interfaces-body.h] Error 1
[  187s] make[2]: *** Waiting for unfinished jobs....
[  187s] make[2]: Leaving directory `/home/abuild/rpmbuild/BUILD/empathy-3.6.0.3/extensions'
[  187s] make[1]: *** [all-recursive] Error 1
[  187s] make[1]: Leaving directory `/home/abuild/rpmbuild/BUILD/empathy-3.6.0.3'
[  187s] make: *** [all] Error 2
[  187s] error: Bad exit status from /var/tmp/rpm-tmp.0lT3xt (%build)
Comment 1 Dominique Leuenberger 2013-03-04 19:20:12 UTC
Can't reproduce this anymore with 3.7.x branch.. closing
Comment 2 Rémi Cardona 2014-11-30 21:37:36 UTC
Definitely not fixed. Several users and myself have been able to reproduce the issue in 3.12.2 and .7.

Downstream bug is https://bugs.gentoo.org/515894

I know the extensions/ directory has been removed from the "next" branch, but I still cooked up a one-liner patch to fix it.
Comment 3 Rémi Cardona 2014-11-30 21:39:01 UTC
Created attachment 291846 [details] [review]
Fix parallel build in extensions/
Comment 4 Gilles Dartiguelongue 2015-05-01 22:25:26 UTC
Created attachment 302745 [details] [review]
Fix parallel build in extensions/

Update patch provided by Rémi to cover the second multiple target rule occurence in this makefile.
Comment 5 Gilles Dartiguelongue 2015-05-01 22:26:40 UTC
I am reopening this report as I have experienced this problem multiple times before being bothered enough to have a look at what was wrong.
Comment 6 Michael Catanzaro 2016-07-22 00:54:45 UTC
Review of attachment 302745 [details] [review]:

This is pretty terrible and sad, but your commit message explains the problem nicely and I don't know any other way to fix it, so let's do it.
Comment 7 Michael Catanzaro 2016-08-07 17:35:24 UTC
(In reply to Michael Catanzaro from comment #6)
> Review of attachment 302745 [details] [review] [review]:
> 
> This is pretty terrible and sad, but your commit message explains the
> problem nicely and I don't know any other way to fix it, so let's do it.

I found this section of the Automake manual that explains another way to fix it:

https://www.gnu.org/software/automake/manual/automake.html#Multiple-Outputs

The Automake manual's solution is portable in that it doesn't depend on GNU Make, but it also reads something like a horror story, so let's stick with the previous solution....