[oe] [RFC, PATCH] Make packaged-staging use more correct PSTAGE_PKGARCH

Tom Rini tom_rini at mentor.com
Mon Jun 21 21:54:54 UTC 2010


packaged-staging.bbclass: Change PSTAGE_PKGARCH to something dynamic

Currently, we make all pstage packages be locked to BUILD_SYS which 
causes annoying warnings in some cases and doesn't allow for sharing 
between say 32 and 64bit (which is valid for target bits).

This changes to ${PACKAGE_ARCH}-${HOST_SYS} for everything and reworks 
the opkg.conf we generate to add entries as needed.

There is an alternative, suggested by Chris Larson, that we modify 
PSTAGE_PKGARCH in an anon python function so that we can avoid things 
like 'x86_64-x86_64-linux' in native packages and similar duplication in 
sdk packages, or otherwise be more dynamic (use HOST_OS instead of SYS 
and then catch the cross case, etc).

Signed-off-by: Tom Rini <tom_rini at mentor.com>

diff --git a/classes/packaged-staging.bbclass 
b/classes/packaged-staging.bbclass
index 8a98940..d6ac67b 100644
--- a/classes/packaged-staging.bbclass
+++ b/classes/packaged-staging.bbclass
  -12,7 +12,7 @@
  # bitbake.conf set PSTAGING_ACTIVE = "0", this class sets to "1" if 
we're active
  #
  PSTAGE_PKGVERSION = "${PV}-${PR}"
-PSTAGE_PKGARCH    = "${BUILD_SYS}"
+PSTAGE_PKGARCH    = "${PACKAGE_ARCH}-${HOST_SYS}"
  PSTAGE_EXTRAPATH  ?= "/${OELAYOUT_ABI}/${DISTRO_PR}/"
  PSTAGE_PKGPATH    = "${DISTRO}${PSTAGE_EXTRAPATH}"
  PSTAGE_PKGPN      = 
"${@bb.data.expand('staging-${PN}-${MULTIMACH_ARCH}${TARGET_VENDOR}-${TARGET_OS}', 
d).replace('_', '-')}"
  -148,15 +148,15 @@ staging_helper () {
  	# Assemble appropriate opkg.conf
  	conffile=${PSTAGE_MACHCONFIG}
  	mkdir -p ${PSTAGE_WORKDIR}/pstaging_lists
+	arch="${PSTAGE_PKGARCH}"
  	if [ ! -e $conffile ]; then
-		ipkgarchs="${BUILD_SYS}"
-		priority=1
-		for arch in $ipkgarchs; do
-			echo "arch $arch $priority" >> $conffile
-			priority=$(expr $priority + 5)
-		done
+		echo "arch $arch 1" > $conffile
  		echo "dest root /" >> $conffile
  	fi
+	if [ -f $conffile -a `grep -q $arch $conffile;echo $?` -ne 0 ]; then
+		priority=$(expr `grep -cE "^arch" $conffile` + 1)
+		sed -i -e "/dest/iarch $arch $priority" $conffile
+	fi
  	if [ ! -e ${TMPDIR}${libdir_native}/opkg/info/ ]; then
  		mkdir -p ${TMPDIR}${libdir_native}/opkg/info/
  	fi

-- 
Tom Rini
Mentor Graphics Corporation




More information about the Openembedded-devel mailing list