Patchwork telepathy-glib: fix a build race

login
register
mail settings
Submitter Ross Burton
Date July 25, 2012, 12:21 p.m.
Message ID <1343218878-2088-1-git-send-email-ross.burton@intel.com>
Download mbox | patch
Permalink /patch/33035/
State Accepted
Commit e1e3107892c843e57261a2579e2c268dd850434d
Headers show

Comments

Ross Burton - July 25, 2012, 12:21 p.m.
[YOCTO #2462]

Signed-off-by: Ross Burton <ross.burton@intel.com>
---
 ...Fix-a-race-in-_gen-reentrant-methods.list.patch |   42 ++++++++++++++++++++
 .../telepathy/telepathy-glib_0.19.2.bb             |    5 ++-
 2 files changed, 45 insertions(+), 2 deletions(-)
 create mode 100644 meta/recipes-connectivity/telepathy/telepathy-glib/0001-Fix-a-race-in-_gen-reentrant-methods.list.patch
Saul Wold - July 26, 2012, 7:04 p.m.
On 07/25/2012 05:21 AM, Ross Burton wrote:
> [YOCTO #2462]
>
> Signed-off-by: Ross Burton <ross.burton@intel.com>
> ---
>   ...Fix-a-race-in-_gen-reentrant-methods.list.patch |   42 ++++++++++++++++++++
>   .../telepathy/telepathy-glib_0.19.2.bb             |    5 ++-
>   2 files changed, 45 insertions(+), 2 deletions(-)
>   create mode 100644 meta/recipes-connectivity/telepathy/telepathy-glib/0001-Fix-a-race-in-_gen-reentrant-methods.list.patch
>
> diff --git a/meta/recipes-connectivity/telepathy/telepathy-glib/0001-Fix-a-race-in-_gen-reentrant-methods.list.patch b/meta/recipes-connectivity/telepathy/telepathy-glib/0001-Fix-a-race-in-_gen-reentrant-methods.list.patch
> new file mode 100644
> index 0000000..4f8ed2b
> --- /dev/null
> +++ b/meta/recipes-connectivity/telepathy/telepathy-glib/0001-Fix-a-race-in-_gen-reentrant-methods.list.patch
> @@ -0,0 +1,42 @@
> +From 8ff62dc34961e997fb0224517aef0f12d455a82b Mon Sep 17 00:00:00 2001
> +From: Ross Burton <ross.burton@intel.com>
> +Date: Wed, 25 Jul 2012 12:58:16 +0100
> +Subject: [PATCH] Fix a race in _gen/reentrant-methods.list
> +
> +Very occasionally, a parallel build will fail like this:
> +
> +| Making all in telepathy-glib
> +| make[2]: Entering directory `/buildarea1/yocto-autobuilder/yocto-slave/nightly-x86/build/build/tmp/work/i586-poky-linux/telepathy-glib-0.19.2-r0/telepathy-glib-0.19.2/telepathy-glib'
> +| /bin/mkdir -p _gen
> +| ( cd . && cat versions/0.7.0.abi [...] versions/0.19.2.abi  ) | \
> +| 		/bin/grep '^tp_cli_.*_run_.*' > _gen/reentrant-methods.list.tmp
> +| /bin/sh: line 1: _gen/reentrant-methods.list.tmp: No such file or directory
> +| make[2]: *** [_gen/reentrant-methods.list] Error 1
> +
> +It's doing the mkdir and the subshell in parallel, when the mkdir should be done
> +first.  Add an explicit dependency on spec-stamp to reentrant-methods.list to
> +ensure the ordering.
> +
> +https://bugs.freedesktop.org/show_bug.cgi?id=52480
> +
> +Upstream-Status: Submitted
> +---
> + telepathy-glib/codegen.am |    2 +-
> + 1 file changed, 1 insertion(+), 1 deletion(-)
> +
> +diff --git a/telepathy-glib/codegen.am b/telepathy-glib/codegen.am
> +index 26caaef..6ad3ec5 100644
> +--- a/telepathy-glib/codegen.am
> ++++ b/telepathy-glib/codegen.am
> +@@ -149,7 +149,7 @@ _gen/stable-spec.xml: stable-interfaces.xml _gen/stable-stamp $(tools_dir)/xincl
> + # Grab a list of re-entrant tp_cli_*_run_* methods we are committed to
> + # generating for backwards compatibility.
> + # grep --no-filename is not portable :-(
> +-_gen/reentrant-methods.list: $(ABI_LISTS) codegen.am
> ++_gen/reentrant-methods.list: _gen/spec-stamp $(ABI_LISTS) codegen.am
> + 	$(AM_V_GEN)( cd $(srcdir) && cat $(ABI_LISTS) ) | \
> + 		$(GREP) '^tp_cli_.*_run_.*' > $@.tmp
> + 	@mv $@.tmp $@
> +--
> +1.7.10.4
> +
> diff --git a/meta/recipes-connectivity/telepathy/telepathy-glib_0.19.2.bb b/meta/recipes-connectivity/telepathy/telepathy-glib_0.19.2.bb
> index deba3bb..9dbc5be 100644
> --- a/meta/recipes-connectivity/telepathy/telepathy-glib_0.19.2.bb
> +++ b/meta/recipes-connectivity/telepathy/telepathy-glib_0.19.2.bb
> @@ -3,9 +3,10 @@ DESCRIPTION = "Telepathy Framework: GLib-based helper library for connection man
>   HOMEPAGE = "http://telepathy.freedesktop.org/wiki/"
>   DEPENDS = "glib-2.0 dbus python-native-runtime dbus-native dbus-glib"
>   LICENSE = "LGPLv2.1+"
> -PR = "r0"
> +PR = "r1"
>
> -SRC_URI = "http://telepathy.freedesktop.org/releases/telepathy-glib/${BPN}-${PV}.tar.gz"
> +SRC_URI = "http://telepathy.freedesktop.org/releases/telepathy-glib/${BPN}-${PV}.tar.gz \
> +           file://0001-Fix-a-race-in-_gen-reentrant-methods.list.patch"
>
>   SRC_URI[md5sum] = "af2b33c1215f189e637bd59cc9139255"
>   SRC_URI[sha256sum] = "7e3c313ed08e26339deb603a615cec62a370131075514439f79f473f92ab84c3"
>

Merged into OE-Core

Thanks	
	Sau!

Patch

diff --git a/meta/recipes-connectivity/telepathy/telepathy-glib/0001-Fix-a-race-in-_gen-reentrant-methods.list.patch b/meta/recipes-connectivity/telepathy/telepathy-glib/0001-Fix-a-race-in-_gen-reentrant-methods.list.patch
new file mode 100644
index 0000000..4f8ed2b
--- /dev/null
+++ b/meta/recipes-connectivity/telepathy/telepathy-glib/0001-Fix-a-race-in-_gen-reentrant-methods.list.patch
@@ -0,0 +1,42 @@ 
+From 8ff62dc34961e997fb0224517aef0f12d455a82b Mon Sep 17 00:00:00 2001
+From: Ross Burton <ross.burton@intel.com>
+Date: Wed, 25 Jul 2012 12:58:16 +0100
+Subject: [PATCH] Fix a race in _gen/reentrant-methods.list
+
+Very occasionally, a parallel build will fail like this:
+
+| Making all in telepathy-glib
+| make[2]: Entering directory `/buildarea1/yocto-autobuilder/yocto-slave/nightly-x86/build/build/tmp/work/i586-poky-linux/telepathy-glib-0.19.2-r0/telepathy-glib-0.19.2/telepathy-glib'
+| /bin/mkdir -p _gen
+| ( cd . && cat versions/0.7.0.abi [...] versions/0.19.2.abi  ) | \
+| 		/bin/grep '^tp_cli_.*_run_.*' > _gen/reentrant-methods.list.tmp
+| /bin/sh: line 1: _gen/reentrant-methods.list.tmp: No such file or directory
+| make[2]: *** [_gen/reentrant-methods.list] Error 1
+
+It's doing the mkdir and the subshell in parallel, when the mkdir should be done
+first.  Add an explicit dependency on spec-stamp to reentrant-methods.list to
+ensure the ordering.
+
+https://bugs.freedesktop.org/show_bug.cgi?id=52480
+
+Upstream-Status: Submitted
+---
+ telepathy-glib/codegen.am |    2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/telepathy-glib/codegen.am b/telepathy-glib/codegen.am
+index 26caaef..6ad3ec5 100644
+--- a/telepathy-glib/codegen.am
++++ b/telepathy-glib/codegen.am
+@@ -149,7 +149,7 @@ _gen/stable-spec.xml: stable-interfaces.xml _gen/stable-stamp $(tools_dir)/xincl
+ # Grab a list of re-entrant tp_cli_*_run_* methods we are committed to
+ # generating for backwards compatibility.
+ # grep --no-filename is not portable :-(
+-_gen/reentrant-methods.list: $(ABI_LISTS) codegen.am
++_gen/reentrant-methods.list: _gen/spec-stamp $(ABI_LISTS) codegen.am
+ 	$(AM_V_GEN)( cd $(srcdir) && cat $(ABI_LISTS) ) | \
+ 		$(GREP) '^tp_cli_.*_run_.*' > $@.tmp
+ 	@mv $@.tmp $@
+-- 
+1.7.10.4
+
diff --git a/meta/recipes-connectivity/telepathy/telepathy-glib_0.19.2.bb b/meta/recipes-connectivity/telepathy/telepathy-glib_0.19.2.bb
index deba3bb..9dbc5be 100644
--- a/meta/recipes-connectivity/telepathy/telepathy-glib_0.19.2.bb
+++ b/meta/recipes-connectivity/telepathy/telepathy-glib_0.19.2.bb
@@ -3,9 +3,10 @@  DESCRIPTION = "Telepathy Framework: GLib-based helper library for connection man
 HOMEPAGE = "http://telepathy.freedesktop.org/wiki/"
 DEPENDS = "glib-2.0 dbus python-native-runtime dbus-native dbus-glib"
 LICENSE = "LGPLv2.1+"
-PR = "r0"
+PR = "r1"
 
-SRC_URI = "http://telepathy.freedesktop.org/releases/telepathy-glib/${BPN}-${PV}.tar.gz"
+SRC_URI = "http://telepathy.freedesktop.org/releases/telepathy-glib/${BPN}-${PV}.tar.gz \
+           file://0001-Fix-a-race-in-_gen-reentrant-methods.list.patch"
 
 SRC_URI[md5sum] = "af2b33c1215f189e637bd59cc9139255"
 SRC_URI[sha256sum] = "7e3c313ed08e26339deb603a615cec62a370131075514439f79f473f92ab84c3"