From c2bbc59b215aebed4771e7735a76648abbe86bbd Mon Sep 17 00:00:00 2001 From: Dexuan Cui Date: Wed, 14 Sep 2011 22:30:14 +0800 Subject: package_deb.bbclass, populate_sdk_deb.bbclass: fix meta-toolchain-gmae build [YOCTO #1070] Currently with deb packaging, we have 2 issues when running "bitbake meta-toolchain-gmae". 1) when MACHINE="qemux86", SDKMACHINE="i686", INSTALL_BASEARCH_DEB is "i686", too. This causes the following ERROR: | E: Couldn't find package task-sdk-host-nativesdk NOTE: package meta-toolchain-gmae-1.0-r6: task do_populate_sdk: Failed This is becasue: due to the DPKG_ARCH mapping, we create such a deb package tmp/deploy/deb/i686-nativesdk/task-sdk-host-nativesdk_1.0-r10_i386.deb; dpkg can't recoginze the package. We need to map INSTALL_BASEARCH_DEB in the same way. 2) when MACHINE="qemux86", SDKMACHINE="x86_64", INSTALL_BASEARCH_DEB is "x86_64", too. We get such an ERROR: | E: Couldn't find package task-cross-canadian-i586 NOTE: package meta-toolchain-gmae-1.0-r6: task do_populate_sdk: Failed This is because: dpkg can't recognize the generated package tmp/deploy/deb/x86_64-nativesdk/task-cross-canadian-i586_1.0-r0_i386.deb Here the "i386" suffix is incorrect and should be "x86_64" -- the i386 comes from the line DPKG_ARCH_i586 ?= "i386" in package_deb.bbclass. However, for canadian package, actually here the overriding of DPKG (from "x86-64" to "i386") should not happen -- it accidently happens just because TARGET_ARCH exists in OVERRIDES. We can move the overriding logic to the anonymous python function to work this around. (From OE-Core rev: 63010b9ee89643c8e83656783231f0a7848d9e45) Signed-off-by: Lianhao Lu Signed-off-by: Dexuan Cui Signed-off-by: Richard Purdie --- meta/classes/package_deb.bbclass | 10 ++++------ meta/classes/populate_sdk_deb.bbclass | 6 +++++- 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/meta/classes/package_deb.bbclass b/meta/classes/package_deb.bbclass index 87e20da843..5a32047322 100644 --- a/meta/classes/package_deb.bbclass +++ b/meta/classes/package_deb.bbclass @@ -6,13 +6,7 @@ inherit package IMAGE_PKGTYPE ?= "deb" -# Map TARGET_ARCH to Debian's ideas about architectures DPKG_ARCH ?= "${TARGET_ARCH}" -DPKG_ARCH_x86 ?= "i386" -DPKG_ARCH_i486 ?= "i386" -DPKG_ARCH_i586 ?= "i386" -DPKG_ARCH_i686 ?= "i386" -DPKG_ARCH_pentium ?= "i386" PKGWRITEDIRDEB = "${WORKDIR}/deploy-debs" @@ -418,6 +412,10 @@ python () { bb.data.setVarFlag('do_package_write_deb', 'depends', " ".join(deps), d) bb.data.setVarFlag('do_package_write_deb', 'fakeroot', "1", d) bb.data.setVarFlag('do_package_write_deb_setscene', 'fakeroot', "1", d) + + # Map TARGET_ARCH to Debian's ideas about architectures + if bb.data.getVar('DPKG_ARCH', d, True) in ["x86", "i486", "i586", "i686", "pentium"]: + bb.data.setVar('DPKG_ARCH', 'i386', d) } python do_package_write_deb () { diff --git a/meta/classes/populate_sdk_deb.bbclass b/meta/classes/populate_sdk_deb.bbclass index 40516b856c..2cff69e827 100644 --- a/meta/classes/populate_sdk_deb.bbclass +++ b/meta/classes/populate_sdk_deb.bbclass @@ -2,6 +2,10 @@ do_populate_sdk[depends] += "dpkg-native:do_populate_sysroot apt-native:do_popul do_populate_sdk[recrdeptask] += "do_package_write_deb" +DEB_SDK_ARCH = "${@[bb.data.getVar('SDK_ARCH', d, 1), "i386"]\ + [bb.data.getVar('SDK_ARCH', d, 1) in \ + ["x86", "i486", "i586", "i686", "pentium"]]}" + populate_sdk_post_deb () { local target_rootfs=$1 @@ -37,7 +41,7 @@ fakeroot populate_sdk_deb () { ## install nativesdk ## echo "Installing NATIVESDK packages" export INSTALL_ROOTFS_DEB="${SDK_OUTPUT}" - export INSTALL_BASEARCH_DEB="${SDK_ARCH}" + export INSTALL_BASEARCH_DEB="${DEB_SDK_ARCH}" export INSTALL_ARCHS_DEB="${SDK_PACKAGE_ARCHS}" export INSTALL_PACKAGES_NORMAL_DEB="${TOOLCHAIN_HOST_TASK}" export INSTALL_PACKAGES_ATTEMPTONLY_DEB="" -- cgit v1.2.3-54-g00ecf