This patch was in iotivity 1.1-rel branch, and (wrongly) removed in 1.2.0 So it needed to be reintroduced in upstream 1.2-rel and as a patch for 1.2.0, track upstream bug at: https://jira.iotivity.org/browse/IOT-1219
Signed-off-by: Philippe Coval <philippe.co...@osg.samsung.com> --- ...ools-from-sysroot-before-system-PATH-agai.patch | 93 ++++++++++++++++++++++ recipes-core/iotivity/iotivity_1.2.0.bb | 1 + 2 files changed, 94 insertions(+) create mode 100644 recipes-core/iotivity/files/0364-yocto-Use-tools-from-sysroot-before-system-PATH-agai.patch diff --git a/recipes-core/iotivity/files/0364-yocto-Use-tools-from-sysroot-before-system-PATH-agai.patch b/recipes-core/iotivity/files/0364-yocto-Use-tools-from-sysroot-before-system-PATH-agai.patch new file mode 100644 index 0000000..b8493c0 --- /dev/null +++ b/recipes-core/iotivity/files/0364-yocto-Use-tools-from-sysroot-before-system-PATH-agai.patch @@ -0,0 +1,93 @@ +From b0f0c742ec1e1fc223871f6d98b21de09cf024b7 Mon Sep 17 00:00:00 2001 +From: Philippe Coval <philippe.co...@osg.samsung.com> +Date: Fri, 16 Sep 2016 20:22:03 +0200 +Subject: [PATCH 364/364] yocto: Use tools from sysroot before system PATH + (again) + +Reintroduce existing change that was (wrongly?) removed in: + +https://gerrit.iotivity.org/gerrit/#/c/12029/64/build_common/SConscript + +Original review at: + +https://gerrit.iotivity.org/gerrit/11935 + +To ensure reproductibily Scons avoids to rely on environment + but some systems like Yocto are defining their own cross compiling env. + +To deal with those orthogonal paradigms, + a new CONFIG_ENVIRONMENT_IMPORT variable has been introduced, + It enables import of needed variables (PATH and pkg-config's ones). + +Without this change, system tools might be used by scons + instead of looking into yocto's sysroot. + This is not not wanted and may be less reproductible. + +This problem was noticed when building Ostro OS + (on a system without all Yocto dependencies) + reported error messages were: + + | sh: gdbus-codegen: command not found + | /bin/sh: 1: pkg-config: not found + +More information about using SCONS along Yocto, check some notes at: + +https://bitbucket.org/scons/scons/wiki/Notes + +Bug: https://jira.iotivity.org/browse/IOT-1219 +Change-Id: I6af59a590f8be489398623d29cf85c2f00000002 +Origin: https://github.com/TizenTeam/iotivity/tree/sandbox/pcoval/on/master/mine +Thanks-to: Mikko Ylinen <mikko.yli...@intel.com> +Signed-off-by: Philippe Coval <philippe.co...@osg.samsung.com> +Reviewed-on: https://gerrit.iotivity.org/gerrit/16225 +Tested-by: jenkins-iotivity <jenkins-iotiv...@opendaylight.org> +Reviewed-by: Kishen Maloor <kishen.mal...@intel.com> +(cherry picked from commit 1085512bc103e987d95a43063e6552f39acd40f2) +Reviewed-on: https://gerrit.iotivity.org/gerrit/16223 +--- + build_common/SConscript | 22 +++++++++++++--------- + 1 file changed, 13 insertions(+), 9 deletions(-) + +diff --git a/build_common/SConscript b/build_common/SConscript +index a9ff494..fff1752 100644 +--- a/build_common/SConscript ++++ b/build_common/SConscript +@@ -194,13 +194,19 @@ if target_os in targets_support_cc: + if prefix or tc_path: + print tc_set_msg + +-# If cross-compiling, honor environment settings for toolchain to avoid picking up native tools +-if os.environ.get('PKG_CONFIG') != None: +- env["ENV"]["PKG_CONFIG"] = os.environ.get("PKG_CONFIG") +-if os.environ.get('PKG_CONFIG_PATH') != None: +- env["ENV"]["PKG_CONFIG_PATH"] = os.environ.get("PKG_CONFIG_PATH") +-if os.environ.get('PKG_CONFIG_SYSROOT_DIR') != None: +- env["ENV"]["PKG_CONFIG_SYSROOT_DIR"] = os.environ.get("PKG_CONFIG_SYSROOT_DIR") ++# Import env variables only if reproductibility is ensured ++if target_os in ['yocto']: ++ env['CONFIG_ENVIRONMENT_IMPORT'] = True ++else: ++ env['CONFIG_ENVIRONMENT_IMPORT'] = False ++ ++if env['CONFIG_ENVIRONMENT_IMPORT'] == True: ++ print "warning: importing some environment variables for OS: %s" % target_os ++ for ev in ['PATH', 'PKG_CONFIG', 'PKG_CONFIG_PATH', 'PKG_CONFIG_SYSROOT_DIR']: ++ if os.environ.get(ev) != None: ++ env['ENV'][ev] = os.environ.get(ev) ++ if os.environ['LDFLAGS'] != None: ++ env.AppendUnique(LINKFLAGS = Split(os.environ['LDFLAGS'])) + + # Ensure scons be able to change its working directory + env.SConscriptChdir(1) +@@ -394,8 +400,6 @@ if target_os == "yocto": + env[tool] = os.path.join(path, os.environ[tool]) + break + env['CROSS_COMPILE'] = target_prefix[:len(target_prefix) - 1] +- if os.environ['LDFLAGS'] != None: +- env.AppendUnique(LINKFLAGS = Split(os.environ['LDFLAGS'])) + except: + print "ERROR in Yocto cross-toolchain environment" + Exit(1) +-- +1.9.1 + diff --git a/recipes-core/iotivity/iotivity_1.2.0.bb b/recipes-core/iotivity/iotivity_1.2.0.bb index 60a2b56..678112b 100644 --- a/recipes-core/iotivity/iotivity_1.2.0.bb +++ b/recipes-core/iotivity/iotivity_1.2.0.bb @@ -11,6 +11,7 @@ branch_iotivity = "1.2-rel" SRCREV = "1a2e71f9c470c7cc17157f83deb4488ee83050a4" SRC_URI = "git://github.com/iotivity/iotivity.git;destsuffix=${S};branch=${branch_iotivity};protocol=http;" SRC_URI += "file://0081-yocto-Add-aarch64-for-DragonBoard-410c.patch" +SRC_URI += "file://0364-yocto-Use-tools-from-sysroot-before-system-PATH-agai.patch" url_tinycbor = "git://github.com/01org/tinycbor.git" SRCREV_tinycbor = "31c7f81d45d115d2007b1c881cbbd3a19618465c" -- 1.9.1 -- _______________________________________________ yocto mailing list yocto@yoctoproject.org https://lists.yoctoproject.org/listinfo/yocto