native.bbclass: Fix variable remapping coverage

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. 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.

(From OE-Core rev: 0f485bfd6fc82a109b9da629e464fca1e90faec3)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Richard Purdie 2011-12-17 10:08:53 +00:00
parent 5aabdbaff7
commit 0fa52f7078
7 changed files with 10 additions and 11 deletions

View File

@ -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)

View File

@ -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 \

View File

@ -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"

View File

@ -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,8 @@ 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"
RDEPENDS_${PN}_virtclass-nativesdk = "autoconf-nativesdk"
PATHFIXPATCH = "file://path_prog_fixes.patch"
PATHFIXPATCH_virtclass-native = ""

View File

@ -18,6 +18,8 @@ S = "${WORKDIR}/Python-${PV}"
inherit native
RPROVIDES += "python-distutils-native python-compression-native python-textutils-native"
EXTRA_OEMAKE = '\
BUILD_SYS="" \
HOST_SYS="" \

View File

@ -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 \

View File

@ -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