Skip to contentSkip to conversation

a new patch to bug 1070

PATCH New Dexuan Cui 1 participant 2 messages Sep 14, 2011

lore
Share & tools
lore

Dexuan Cui

author
#0 lore raw

cover a new patch to bug 1070

The following changes since commit 372fffc4e289f88388de55665b1c5d766b956b37:

dpkg: fix pkg_postinst_dpkg, don't supply {bindir}/update-alternatives (2011-09-13 21:08:37 +0800)

are available in the git repository at:
git://git.pokylinux.org/poky-contrib dcui/deb
http://git.pokylinux.org/cgit.cgi/poky-contrib/log/?h=dcui/deb

Dexuan Cui (1):
package_deb.bbclass, populate_sdk_deb.bbclass: fix
meta-toolchain-gmae build

 meta/classes/package_deb.bbclass      |   10 ++++------
 meta/classes/populate_sdk_deb.bbclass |    6 +++++-
 2 files changed, 9 insertions(+), 7 deletions(-)
Signature · 1 line
1.7.6
author
#1 lore raw

PATCH 1/1 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.

---
 meta/classes/package_deb.bbclass      |   10 ++++------
 meta/classes/populate_sdk_deb.bbclass |    6 +++++-
 2 files changed, 9 insertions(+), 7 deletions(-)
meta/classes/package_deb.bbclass +4 -6
index 87e20da..5a32047 100644
@@ -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 () {
meta/classes/populate_sdk_deb.bbclass +5 -1
index 40516b8..2cff69e 100644
@@ -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=""
Signature · 1 line
1.7.6