From 060ee3fdf630235f0795fa695c372ddd505389ee Mon Sep 17 00:00:00 2001 From: Robert Yang Date: Mon, 23 Sep 2013 05:54:47 +0000 Subject: [PATCH] telepathy-mission-control: do_compile failed (race issue) There might be an error when parallel build: [snip] Traceback (most recent call last): File "/path/to/tools/glib-gtypes-generator.py", line 304, in GTypesGenerator(dom, argv[1], argv[2])() File "/path/to/tools/glib-gtypes-generator.py", line 295, in __call__ file_set_contents(self.output + '.h', ''.join(self.header)) File "/path/to/tools/libtpcodegen.py", line 42, in file_set_contents os.rename(filename + '.tmp', filename) OSError: [Errno 2] No such file or directory [snip] This is a race issue, the _gen/gtypes.h and _gen/gtypes-body.h may write(remove/rename) _gen/gtypes.tmp at the same time, then there would be the error. There was a similar bug in telepathy-glib which was already fixed, we use the similar patch to fix it here. [YOCTO #5184] (From OE-Core rev: b0f81f460cf96798d79d72da7a3246c321caf654) Signed-off-by: Robert Yang Signed-off-by: Saul Wold Signed-off-by: Richard Purdie --- .../tmc-Makefile-fix-race.patch | 76 ++++++++++++++++++++++ .../telepathy/telepathy-mission-control_5.15.0.bb | 4 +- 2 files changed, 79 insertions(+), 1 deletion(-) create mode 100644 meta/recipes-connectivity/telepathy/telepathy-mission-control/tmc-Makefile-fix-race.patch diff --git a/meta/recipes-connectivity/telepathy/telepathy-mission-control/tmc-Makefile-fix-race.patch b/meta/recipes-connectivity/telepathy/telepathy-mission-control/tmc-Makefile-fix-race.patch new file mode 100644 index 0000000..ece1da6 --- /dev/null +++ b/meta/recipes-connectivity/telepathy/telepathy-mission-control/tmc-Makefile-fix-race.patch @@ -0,0 +1,76 @@ +From: Robert Yang +Date: Sun, 22 Sep 2013 23:21:01 -0400 +Subject: [PATCH] src/Makefile.am: fix race issue for _gen/gtypes.h and _gen/gtypes-body.h + +There might be an error when parallel build: + +[snip] +Traceback (most recent call last): + File "/path/to/tools/glib-gtypes-generator.py", line 304, in + GTypesGenerator(dom, argv[1], argv[2])() + File "/path/to/tools/glib-gtypes-generator.py", line 295, in __call__ + file_set_contents(self.output + '.h', ''.join(self.header)) + File "/path/to/tools/libtpcodegen.py", line 42, in file_set_contents + os.rename(filename + '.tmp', filename) +OSError: [Errno 2] No such file or directory +[snip] + +This is a race issue, the _gen/gtypes.h and _gen/gtypes-body.h may +write(remove/rename) _gen/gtypes.tmp at the same time, then there would +be the error. + +There was a similar bug in telepathy-glib which was already fixed, we use the +similar patch to fix it. + +Upstream-Status: Pending + +Signed-off-by: Robert Yang +--- + src/Makefile.am | 18 +++++++++++++++--- + 1 file changed, 15 insertions(+), 3 deletions(-) + +diff --git a/src/Makefile.am b/src/Makefile.am +--- a/src/Makefile.am ++++ b/src/Makefile.am +@@ -288,7 +288,11 @@ _gen/interfaces-body.h: _gen/mcd.xml \ + $(tools_dir)/glib-interfaces-body-generator.xsl \ + $< > $@ + +-_gen/gtypes.h _gen/gtypes-body.h: _gen/mcd.xml \ ++# do nothing, output as a side-effect ++_gen/gtypes.h: _gen/gtypes-body.h ++ @: ++ ++_gen/gtypes-body.h: _gen/mcd.xml \ + $(top_srcdir)/tools/glib-gtypes-generator.py + $(AM_V_GEN)$(PYTHON) $(top_srcdir)/tools/glib-gtypes-generator.py \ + $< _gen/gtypes mc +@@ -309,7 +313,11 @@ _gen/%.xml: %.xml $(wildcard $(top_srcdir)/xml/*.xml) Makefile.am + $(AM_V_GEN)$(XSLTPROC) $(XSLTPROCFLAGS) --xinclude $(tools_dir)/identity.xsl \ + $< > $@ + +-_gen/cli-%-body.h _gen/cli-%.h: _gen/%.xml \ ++# do nothing, output as a side-effect ++_gen/cli-%.h: _gen/cli-%-body.h ++ @: ++ ++_gen/cli-%-body.h: _gen/%.xml \ + $(tools_dir)/glib-client-gen.py Makefile.am + $(AM_V_GEN)$(PYTHON) $(tools_dir)/glib-client-gen.py \ + --group=`echo $* | tr x- x_` \ +@@ -317,7 +325,11 @@ _gen/cli-%-body.h _gen/cli-%.h: _gen/%.xml \ + --tp-proxy-api=0.7.6 \ + $< Mc_Cli _gen/cli-$* + +-_gen/svc-%.c _gen/svc-%.h: _gen/%.xml \ ++# do nothing, output as a side-effect ++_gen/svc-%.h: _gen/svc-%.c ++ @: ++ ++_gen/svc-%.c: _gen/%.xml \ + $(tools_dir)/glib-ginterface-gen.py Makefile.am + $(AM_V_GEN)$(PYTHON) $(tools_dir)/glib-ginterface-gen.py \ + --filename=_gen/svc-$* \ +-- +1.7.10.4 + diff --git a/meta/recipes-connectivity/telepathy/telepathy-mission-control_5.15.0.bb b/meta/recipes-connectivity/telepathy/telepathy-mission-control_5.15.0.bb index b2736ca..aa776a1 100644 --- a/meta/recipes-connectivity/telepathy/telepathy-mission-control_5.15.0.bb +++ b/meta/recipes-connectivity/telepathy/telepathy-mission-control_5.15.0.bb @@ -6,7 +6,9 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=d8045f3b8f929c1cb29a1e3fd737b499 \ SECTION = "libs" DEPENDS = "libtelepathy dbus-glib gconf libxslt-native" -SRC_URI = "http://telepathy.freedesktop.org/releases/telepathy-mission-control/telepathy-mission-control-${PV}.tar.gz" +SRC_URI = "http://telepathy.freedesktop.org/releases/telepathy-mission-control/telepathy-mission-control-${PV}.tar.gz \ + file://tmc-Makefile-fix-race.patch \ + " SRC_URI[md5sum] = "0efd7d9043f6e189e8ed8111d043b52c" SRC_URI[sha256sum] = "88800d1b5f385e94b34721319ff4fe65c493632954d7229b36e57af5b4a7e1b5" -- 2.7.4