All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH V2] python-setuptools: Do not pull in target python for native recipe
@ 2011-12-17  4:37 Darren Hart
  2011-12-17 10:18 ` [PATCH] native.bbclass: Fix variable remapping coverage Richard Purdie
  0 siblings, 1 reply; 3+ messages in thread
From: Darren Hart @ 2011-12-17  4:37 UTC (permalink / raw)
  To: Patches and discussions about the oe-core layer, Richard Purdie,
	Wold, Saul

glib-2.0 DEPENDS and DEPENDS_virtclass-native on python-argparse-native,
which inherits from setuptools, which DEPENDS on python-setuptools-native.

python-setuptools uses RDEPENDS_${PN} for python-distutils and
python-compression. By using ${PN} instead of python-setuptools, when
the -native version is built, RDEPENDS_python-setuptools-native gets
set to include the target versions python-setuptools and python-compression,
pulling the entire target python dependency chain into the build.

Follow recipes like automake by setting RDEPENDS with the PN written out
explicitly, RDEPENDS_python-setuptools, to avoid dragging in the target
python dependency chain.

Signed-off-by: Darren Hart <dvhart@linux.intel.com>
CC: Richard Purdie <richard.purdie@linuxfoundation.org>
CC: Saul Wold <sgw@linux.intel.com>
---
 .../python/python-setuptools_0.6c11.bb             |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/meta/recipes-devtools/python/python-setuptools_0.6c11.bb b/meta/recipes-devtools/python/python-setuptools_0.6c11.bb
index 5dd5f31..0b8a219 100644
--- a/meta/recipes-devtools/python/python-setuptools_0.6c11.bb
+++ b/meta/recipes-devtools/python/python-setuptools_0.6c11.bb
@@ -20,7 +20,7 @@ do_install_prepend() {
     install -d ${D}/${libdir}/${PYTHON_DIR}/site-packages
 }
 
-RDEPENDS_${PN} = "\
+RDEPENDS_python-setuptools = "\
   python-distutils \
   python-compression \
 "
-- 
1.7.5.4
-- 
Darren Hart
Intel Open Source Technology Center
Yocto Project - Linux Kernel



^ permalink raw reply related	[flat|nested] 3+ messages in thread

* [PATCH] native.bbclass: Fix variable remapping coverage
  2011-12-17  4:37 [PATCH V2] python-setuptools: Do not pull in target python for native recipe Darren Hart
@ 2011-12-17 10:18 ` Richard Purdie
  2011-12-17 18:20   ` Darren Hart
  0 siblings, 1 reply; 3+ messages in thread
From: Richard Purdie @ 2011-12-17 10:18 UTC (permalink / raw)
  To: Darren Hart; +Cc: Wold, Saul, Patches and discussions about the oe-core layer

When looking for RDEPENDS to process, bitbake iterates through PACKAGES
*and* PN. Since native.bbclass sets PACKAGES to be empty, its pointless
remapping the list of PACKAGES since this does nothing. There is a problem
since *_${PN} are used by bitbake but not remapped by the native.bbclass
class extension code.

This changes the code to remap _${PN} in both expanded and unexpanded
forms. We use the unexpanded form since d.expandkeys() has not been called 
at the point this code executes. Remapping the expanded form is belt and braces
to cover any case where the unexpanded key form may not be present.

As a result of this, various surprising dependencies are uncovered
and the patch rectifies those. These are real bugs since they're injecting
unneeded (unremapped) dependencies into the dependency chain. Workarounds
for this kind of problem in autoconf are removed.

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
---
diff --git a/meta/classes/native.bbclass b/meta/classes/native.bbclass
index 49823d6..00196ba 100644
--- a/meta/classes/native.bbclass
+++ b/meta/classes/native.bbclass
@@ -127,7 +127,7 @@ python native_virtclass_handler () {
         d.setVar(varname, " ".join(newdeps))
 
     map_dependencies("DEPENDS", e.data)
-    for pkg in (e.data.getVar("PACKAGES", True).split() + [""]):
+    for pkg in [e.data.getVar("PN", True), "", "${PN}"]:
         map_dependencies("RDEPENDS", e.data, pkg)
         map_dependencies("RRECOMMENDS", e.data, pkg)
         map_dependencies("RSUGGESTS", e.data, pkg)
diff --git a/meta/recipes-devtools/autoconf/autoconf.inc b/meta/recipes-devtools/autoconf/autoconf.inc
index 08a1b02..1d0cf90 100644
--- a/meta/recipes-devtools/autoconf/autoconf.inc
+++ b/meta/recipes-devtools/autoconf/autoconf.inc
@@ -6,6 +6,8 @@ LICENSE = "GPLv3"
 HOMEPAGE = "http://www.gnu.org/software/autoconf/"
 SECTION = "devel"
 DEPENDS += "m4-native"
+DEPENDS_virtclass-native = "m4-native gnu-config-native"
+DEPENDS_virtclass-nativesdk = "m4-nativesdk gnu-config-nativesdk"
 RDEPENDS_${PN} = "m4 gnu-config"
 
 SRC_URI = "${GNU_MIRROR}/autoconf/autoconf-${PV}.tar.bz2 \
diff --git a/meta/recipes-devtools/autoconf/autoconf_2.68.bb b/meta/recipes-devtools/autoconf/autoconf_2.68.bb
index 9028e83..84eb182 100644
--- a/meta/recipes-devtools/autoconf/autoconf_2.68.bb
+++ b/meta/recipes-devtools/autoconf/autoconf_2.68.bb
@@ -4,8 +4,6 @@ PR = "r4"
 
 PARALLEL_MAKE = ""
 
-DEPENDS += "m4-native"
-RDEPENDS_${PN} = "m4 gnu-config"
 LICENSE = "GPLv2 & GPLv3"
 LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe \
 		    file://COPYINGv3;md5=d32239bcb673463ab874e80d47fae504"
@@ -22,12 +20,6 @@ SRC_URI += "file://autoreconf-include.patch \
 SRC_URI[md5sum] = "864d785215aa60d627c91fcb21b05b07"
 SRC_URI[sha256sum] = "c491fb273fd6d4ca925e26ceed3d177920233c76d542b150ff35e571454332c8"
 
-DEPENDS_virtclass-native = "m4-native gnu-config-native"
-RDEPENDS_${PN}_virtclass-native = "m4-native gnu-config-native"
-
-DEPENDS_virtclass-nativesdk = "m4-nativesdk gnu-config-nativesdk"
-RDEPENDS_${PN}_virtclass-nativesdk = "m4-nativesdk gnu-config-nativesdk"
-
 SRC_URI_append_virtclass-native = " file://fix_path_xtra.patch"
 
 EXTRA_OECONF += "ac_cv_path_M4=m4"
diff --git a/meta/recipes-devtools/automake/automake_1.11.1.bb b/meta/recipes-devtools/automake/automake_1.11.1.bb
index ff8353f..6bffecf 100644
--- a/meta/recipes-devtools/automake/automake_1.11.1.bb
+++ b/meta/recipes-devtools/automake/automake_1.11.1.bb
@@ -3,7 +3,7 @@ LICENSE="GPLv2"
 LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe" 
 DEPENDS_virtclass-native = "autoconf-native"
 
-RDEPENDS_automake += "\
+RDEPENDS_${PN} += "\
     autoconf \
     perl \
     perl-module-bytes \
@@ -27,7 +27,7 @@ RDEPENDS_automake += "\
     perl-module-text-parsewords \
     perl-module-vars "
 
-RDEPENDS_automake-native = "autoconf-native perl-native-runtime"
+RDEPENDS_${PN}_virtclass-native = "autoconf-native perl-native-runtime"
 
 PATHFIXPATCH = "file://path_prog_fixes.patch"
 PATHFIXPATCH_virtclass-native = ""
diff --git a/meta/recipes-devtools/python/python-native_2.7.2.bb b/meta/recipes-devtools/python/python-native_2.7.2.bb
index d036eca..10bfa6c 100644
--- a/meta/recipes-devtools/python/python-native_2.7.2.bb
+++ b/meta/recipes-devtools/python/python-native_2.7.2.bb
@@ -16,6 +16,8 @@ S = "${WORKDIR}/Python-${PV}"
 
 inherit native
 
+RPROVIDES += "python-distutils-native python-compression-native python-textutils-native"
+
 EXTRA_OEMAKE = '\
   BUILD_SYS="" \
   HOST_SYS="" \
diff --git a/meta/recipes-gnome/gnome/gconf_3.2.3.bb b/meta/recipes-gnome/gnome/gconf_3.2.3.bb
index 9d327fc..f7d3594 100644
--- a/meta/recipes-gnome/gnome/gconf_3.2.3.bb
+++ b/meta/recipes-gnome/gnome/gconf_3.2.3.bb
@@ -39,6 +39,7 @@ do_install_append() {
 
 # disable dbus-x11 when x11 isn't in DISTRO_FEATURES
 RDEPENDS_${PN} += "${@base_contains('DISTRO_FEATURES', 'x11', 'dbus-x11', '', d)}"
+RDEPENDS_${PN}_virtclass-native = ""
 
 FILES_${PN} += "${libdir}/GConf/* \
 	        ${libdir}/gio/*/*.so \
diff --git a/meta/recipes-support/boost/boost.inc b/meta/recipes-support/boost/boost.inc
index aa577b3..fc417c9 100644
--- a/meta/recipes-support/boost/boost.inc
+++ b/meta/recipes-support/boost/boost.inc
@@ -74,6 +74,7 @@ FILES_${PN}-dev = "${includedir} ${libdir}/libboost_*.so ${libdir}/libboost_*.a"
 # "boost" is a metapackage which pulls in all boost librabries
 PACKAGES += "${PN}"
 RRECOMMENDS_${PN} += "${BOOST_PACKAGES}"
+RRECOMMENDS_${PN}_virtclass-native = ""
 ALLOW_EMPTY_${PN} = "1"
 
 # to avoid GNU_HASH QA errors added LDFLAGS to ARCH; a little bit dirty but at least it works





^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: [PATCH] native.bbclass: Fix variable remapping coverage
  2011-12-17 10:18 ` [PATCH] native.bbclass: Fix variable remapping coverage Richard Purdie
@ 2011-12-17 18:20   ` Darren Hart
  0 siblings, 0 replies; 3+ messages in thread
From: Darren Hart @ 2011-12-17 18:20 UTC (permalink / raw)
  To: Patches and discussions about the oe-core layer; +Cc: Wold, Saul

On 12/17/2011 02:18 AM, Richard Purdie wrote:
> When looking for RDEPENDS to process, bitbake iterates through PACKAGES
> *and* PN. Since native.bbclass sets PACKAGES to be empty, its pointless
> remapping the list of PACKAGES since this does nothing. There is a problem
> since *_${PN} are used by bitbake but not remapped by the native.bbclass
> class extension code.
> 
> This changes the code to remap _${PN} in both expanded and unexpanded
> forms. We use the unexpanded form since d.expandkeys() has not been called 
> at the point this code executes. Remapping the expanded form is belt and braces
> to cover any case where the unexpanded key form may not be present.
> 
> As a result of this, various surprising dependencies are uncovered
> and the patch rectifies those. These are real bugs since they're injecting
> unneeded (unremapped) dependencies into the dependency chain. Workarounds
> for this kind of problem in autoconf are removed.
> 
> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>

Tested. This resolves the issues I was experiencing with python-setuptools.

Acked-by: Darren Hart <dvhart@linux.intel.com>

I'm still wondering about the following commit:

$ git show 0c6595a71965e4c1a56902cb7e7ca74f3b469e19
commit 0c6595a71965e4c1a56902cb7e7ca74f3b469e19
Author: Martin Jansa <martin.jansa@gmail.com>
Date:   Sat Mar 5 06:15:52 2011 +0000

    distutils-base: Only RDEPEND python-core on target packages

    * fixes ie setuptools, without this patch it RDEPENDs on
python-core-native, wh
    * imported from OE 8377b8ec57f35b9e5b81a74c77f68fd6e02949c8

    (From OE-Core rev: 65317f21736293cc4eeb9a404e9f01043df7565d)

    Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
    Acked-by: Koen Kooi <koen@dominion.thruhere.net>
    Signed-off-by: Khem Raj <raj.khem@gmail.com>
    Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>

diff --git a/meta/classes/distutils-base.bbclass
b/meta/classes/distutils-base.bbcl
index 2e151de..e84b0fc 100644
--- a/meta/classes/distutils-base.bbclass
+++ b/meta/classes/distutils-base.bbclass
@@ -1,5 +1,5 @@
 DEPENDS  += "${@["python-native python",
""][(bb.data.getVar('PACKAGES', d, 1) ==
-RDEPENDS += "python-core"
+RDEPENDS_${PN} += "${@['', 'python-core']['${PN}' == '${BPN}']}"

 inherit distutils-common-base


This seems to be addressing similar sorts of issues. In the patch below
you added an RPROVIDES to python-native_2.7.2.bb. I reverted the above
commit and then appended "python-core-native" the the new RPROVIDES for
python-native and the build now succeeds. Is the above commit a bandaid
that is better resolved with the RDEPENDS?

--
Darren

> ---
> diff --git a/meta/classes/native.bbclass b/meta/classes/native.bbclass
> index 49823d6..00196ba 100644
> --- a/meta/classes/native.bbclass
> +++ b/meta/classes/native.bbclass
> @@ -127,7 +127,7 @@ python native_virtclass_handler () {
>          d.setVar(varname, " ".join(newdeps))
>  
>      map_dependencies("DEPENDS", e.data)
> -    for pkg in (e.data.getVar("PACKAGES", True).split() + [""]):
> +    for pkg in [e.data.getVar("PN", True), "", "${PN}"]:
>          map_dependencies("RDEPENDS", e.data, pkg)
>          map_dependencies("RRECOMMENDS", e.data, pkg)
>          map_dependencies("RSUGGESTS", e.data, pkg)
> diff --git a/meta/recipes-devtools/autoconf/autoconf.inc b/meta/recipes-devtools/autoconf/autoconf.inc
> index 08a1b02..1d0cf90 100644
> --- a/meta/recipes-devtools/autoconf/autoconf.inc
> +++ b/meta/recipes-devtools/autoconf/autoconf.inc
> @@ -6,6 +6,8 @@ LICENSE = "GPLv3"
>  HOMEPAGE = "http://www.gnu.org/software/autoconf/"
>  SECTION = "devel"
>  DEPENDS += "m4-native"
> +DEPENDS_virtclass-native = "m4-native gnu-config-native"
> +DEPENDS_virtclass-nativesdk = "m4-nativesdk gnu-config-nativesdk"
>  RDEPENDS_${PN} = "m4 gnu-config"
>  
>  SRC_URI = "${GNU_MIRROR}/autoconf/autoconf-${PV}.tar.bz2 \
> diff --git a/meta/recipes-devtools/autoconf/autoconf_2.68.bb b/meta/recipes-devtools/autoconf/autoconf_2.68.bb
> index 9028e83..84eb182 100644
> --- a/meta/recipes-devtools/autoconf/autoconf_2.68.bb
> +++ b/meta/recipes-devtools/autoconf/autoconf_2.68.bb
> @@ -4,8 +4,6 @@ PR = "r4"
>  
>  PARALLEL_MAKE = ""
>  
> -DEPENDS += "m4-native"
> -RDEPENDS_${PN} = "m4 gnu-config"
>  LICENSE = "GPLv2 & GPLv3"
>  LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe \
>  		    file://COPYINGv3;md5=d32239bcb673463ab874e80d47fae504"
> @@ -22,12 +20,6 @@ SRC_URI += "file://autoreconf-include.patch \
>  SRC_URI[md5sum] = "864d785215aa60d627c91fcb21b05b07"
>  SRC_URI[sha256sum] = "c491fb273fd6d4ca925e26ceed3d177920233c76d542b150ff35e571454332c8"
>  
> -DEPENDS_virtclass-native = "m4-native gnu-config-native"
> -RDEPENDS_${PN}_virtclass-native = "m4-native gnu-config-native"
> -
> -DEPENDS_virtclass-nativesdk = "m4-nativesdk gnu-config-nativesdk"
> -RDEPENDS_${PN}_virtclass-nativesdk = "m4-nativesdk gnu-config-nativesdk"
> -
>  SRC_URI_append_virtclass-native = " file://fix_path_xtra.patch"
>  
>  EXTRA_OECONF += "ac_cv_path_M4=m4"
> diff --git a/meta/recipes-devtools/automake/automake_1.11.1.bb b/meta/recipes-devtools/automake/automake_1.11.1.bb
> index ff8353f..6bffecf 100644
> --- a/meta/recipes-devtools/automake/automake_1.11.1.bb
> +++ b/meta/recipes-devtools/automake/automake_1.11.1.bb
> @@ -3,7 +3,7 @@ LICENSE="GPLv2"
>  LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe" 
>  DEPENDS_virtclass-native = "autoconf-native"
>  
> -RDEPENDS_automake += "\
> +RDEPENDS_${PN} += "\
>      autoconf \
>      perl \
>      perl-module-bytes \
> @@ -27,7 +27,7 @@ RDEPENDS_automake += "\
>      perl-module-text-parsewords \
>      perl-module-vars "
>  
> -RDEPENDS_automake-native = "autoconf-native perl-native-runtime"
> +RDEPENDS_${PN}_virtclass-native = "autoconf-native perl-native-runtime"
>  
>  PATHFIXPATCH = "file://path_prog_fixes.patch"
>  PATHFIXPATCH_virtclass-native = ""
> diff --git a/meta/recipes-devtools/python/python-native_2.7.2.bb b/meta/recipes-devtools/python/python-native_2.7.2.bb
> index d036eca..10bfa6c 100644
> --- a/meta/recipes-devtools/python/python-native_2.7.2.bb
> +++ b/meta/recipes-devtools/python/python-native_2.7.2.bb
> @@ -16,6 +16,8 @@ S = "${WORKDIR}/Python-${PV}"
>  
>  inherit native
>  
> +RPROVIDES += "python-distutils-native python-compression-native python-textutils-native"
> +
>  EXTRA_OEMAKE = '\
>    BUILD_SYS="" \
>    HOST_SYS="" \
> diff --git a/meta/recipes-gnome/gnome/gconf_3.2.3.bb b/meta/recipes-gnome/gnome/gconf_3.2.3.bb
> index 9d327fc..f7d3594 100644
> --- a/meta/recipes-gnome/gnome/gconf_3.2.3.bb
> +++ b/meta/recipes-gnome/gnome/gconf_3.2.3.bb
> @@ -39,6 +39,7 @@ do_install_append() {
>  
>  # disable dbus-x11 when x11 isn't in DISTRO_FEATURES
>  RDEPENDS_${PN} += "${@base_contains('DISTRO_FEATURES', 'x11', 'dbus-x11', '', d)}"
> +RDEPENDS_${PN}_virtclass-native = ""
>  
>  FILES_${PN} += "${libdir}/GConf/* \
>  	        ${libdir}/gio/*/*.so \
> diff --git a/meta/recipes-support/boost/boost.inc b/meta/recipes-support/boost/boost.inc
> index aa577b3..fc417c9 100644
> --- a/meta/recipes-support/boost/boost.inc
> +++ b/meta/recipes-support/boost/boost.inc
> @@ -74,6 +74,7 @@ FILES_${PN}-dev = "${includedir} ${libdir}/libboost_*.so ${libdir}/libboost_*.a"
>  # "boost" is a metapackage which pulls in all boost librabries
>  PACKAGES += "${PN}"
>  RRECOMMENDS_${PN} += "${BOOST_PACKAGES}"
> +RRECOMMENDS_${PN}_virtclass-native = ""
>  ALLOW_EMPTY_${PN} = "1"
>  
>  # to avoid GNU_HASH QA errors added LDFLAGS to ARCH; a little bit dirty but at least it works
> 
> 
> 
> _______________________________________________
> Openembedded-core mailing list
> Openembedded-core@lists.openembedded.org
> http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core

-- 
Darren Hart
Intel Open Source Technology Center
Yocto Project - Linux Kernel



^ permalink raw reply related	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2011-12-17 18:27 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2011-12-17  4:37 [PATCH V2] python-setuptools: Do not pull in target python for native recipe Darren Hart
2011-12-17 10:18 ` [PATCH] native.bbclass: Fix variable remapping coverage Richard Purdie
2011-12-17 18:20   ` Darren Hart

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.