summaryrefslogtreecommitdiffstats
path: root/meta/classes/populate_sdk_rpm.bbclass
diff options
context:
space:
mode:
authorMark Hatle <mark.hatle@windriver.com>2013-02-21 17:18:29 -0600
committerRichard Purdie <richard.purdie@linuxfoundation.org>2013-02-22 06:39:07 -0800
commitc6209c96d9e0f466eb80072e7f02f935ec0c6249 (patch)
treec4f13a18918cbaf09e12a78a81615713142f2e0d /meta/classes/populate_sdk_rpm.bbclass
parent5fa61e368a037091969728f1090ea31b4f0f57df (diff)
downloadpoky-c6209c96d9e0f466eb80072e7f02f935ec0c6249.tar.gz
rootfs_rpm.bbclass: Handle multilib configures with different OS values
[ CQID: WIND00404082 ] It is possible for the TARGET_OS to change dependending on the multilib used for a given package build. mips64 has two potential TARGET_OS values: linux and linux-gnun32. The RPM and Smart setup needs to distinguish between the two otherwise packages of the "non-default" TARGET_OS may be ignored as incompatible. (From OE-Core rev: aa760ff7dee4029c30c9de9fc0b640149e4a4c77) Signed-off-by: Mark Hatle <mark.hatle@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta/classes/populate_sdk_rpm.bbclass')
-rw-r--r--meta/classes/populate_sdk_rpm.bbclass42
1 files changed, 30 insertions, 12 deletions
diff --git a/meta/classes/populate_sdk_rpm.bbclass b/meta/classes/populate_sdk_rpm.bbclass
index 0595aa7fca..2dfb80c592 100644
--- a/meta/classes/populate_sdk_rpm.bbclass
+++ b/meta/classes/populate_sdk_rpm.bbclass
@@ -39,7 +39,7 @@ populate_sdk_rpm () {
39 # This needs to work in the same way as rootfs_rpm.bbclass! 39 # This needs to work in the same way as rootfs_rpm.bbclass!
40 # 40 #
41 export INSTALL_ROOTFS_RPM="${SDK_OUTPUT}/${SDKTARGETSYSROOT}" 41 export INSTALL_ROOTFS_RPM="${SDK_OUTPUT}/${SDKTARGETSYSROOT}"
42 export INSTALL_PLATFORM_RPM="${TARGET_ARCH}" 42 export INSTALL_PLATFORM_RPM="$(echo ${TARGET_ARCH} | tr - _)${TARGET_VENDOR}-${TARGET_OS}"
43 export INSTALL_PACKAGES_RPM="${TOOLCHAIN_TARGET_TASK}" 43 export INSTALL_PACKAGES_RPM="${TOOLCHAIN_TARGET_TASK}"
44 export INSTALL_PACKAGES_ATTEMPTONLY_RPM="${TOOLCHAIN_TARGET_TASK_ATTEMPTONLY}" 44 export INSTALL_PACKAGES_ATTEMPTONLY_RPM="${TOOLCHAIN_TARGET_TASK_ATTEMPTONLY}"
45 export INSTALL_PACKAGES_LINGUAS_RPM="" 45 export INSTALL_PACKAGES_LINGUAS_RPM=""
@@ -57,20 +57,31 @@ populate_sdk_rpm () {
57 # List must be prefered to least preferred order 57 # List must be prefered to least preferred order
58 default_extra_rpm="" 58 default_extra_rpm=""
59 INSTALL_PLATFORM_EXTRA_RPM="" 59 INSTALL_PLATFORM_EXTRA_RPM=""
60 for i in ${MULTILIB_PREFIX_LIST} ; do 60 for os in ${MULTILIB_OS_LIST} ; do
61 old_IFS="$IFS" 61 old_IFS="$IFS"
62 IFS=":" 62 IFS=":"
63 set $i 63 set -- $os
64 IFS="$old_IFS" 64 IFS="$old_IFS"
65 mlib=$1 65 mlib=$1
66 shift #remove mlib 66 mlib_os=$2
67 while [ -n "$1" ]; do 67 for prefix in ${MULTILIB_PREFIX_LIST} ; do
68 if [ "$mlib" = "${BBEXTENDVARIANT}" ]; then 68 old_IFS="$IFS"
69 default_extra_rpm="$default_extra_rpm $1" 69 IFS=":"
70 else 70 set -- $prefix
71 INSTALL_PLATFORM_EXTRA_RPM="$INSTALL_PLATFORM_EXTRA_RPM $1" 71 IFS="$old_IFS"
72 if [ "$mlib" != "$1" ]; then
73 continue
72 fi 74 fi
73 shift 75 shift #remove mlib
76 while [ -n "$1" ]; do
77 platform="$(echo $1 | tr - _)-.*-$mlib_os"
78 if [ "$mlib" = "${BBEXTENDVARIANT}" ]; then
79 default_extra_rpm="$default_extra_rpm $platform"
80 else
81 INSTALL_PLATFORM_EXTRA_RPM="$INSTALL_PLATFORM_EXTRA_RPM $platform"
82 fi
83 shift
84 done
74 done 85 done
75 done 86 done
76 if [ -n "$default_extra_rpm" ]; then 87 if [ -n "$default_extra_rpm" ]; then
@@ -85,7 +96,7 @@ populate_sdk_rpm () {
85 ## install nativesdk ## 96 ## install nativesdk ##
86 echo "Installing NATIVESDK packages" 97 echo "Installing NATIVESDK packages"
87 export INSTALL_ROOTFS_RPM="${SDK_OUTPUT}" 98 export INSTALL_ROOTFS_RPM="${SDK_OUTPUT}"
88 export INSTALL_PLATFORM_RPM="${SDK_ARCH}" 99 export INSTALL_PLATFORM_RPM="$(echo ${TARGET_ARCH} | tr - _)${SDK_VENDOR}-${SDK_OS}"
89 export INSTALL_PACKAGES_RPM="${TOOLCHAIN_HOST_TASK}" 100 export INSTALL_PACKAGES_RPM="${TOOLCHAIN_HOST_TASK}"
90 export INSTALL_PACKAGES_ATTEMPTONLY_RPM="${TOOLCHAIN_TARGET_HOST_ATTEMPTONLY}" 101 export INSTALL_PACKAGES_ATTEMPTONLY_RPM="${TOOLCHAIN_TARGET_HOST_ATTEMPTONLY}"
91 export INSTALL_PACKAGES_LINGUAS_RPM="" 102 export INSTALL_PACKAGES_LINGUAS_RPM=""
@@ -96,7 +107,8 @@ populate_sdk_rpm () {
96 # List must be prefered to least preferred order 107 # List must be prefered to least preferred order
97 INSTALL_PLATFORM_EXTRA_RPM="" 108 INSTALL_PLATFORM_EXTRA_RPM=""
98 for each_arch in ${SDK_PACKAGE_ARCHS} ; do 109 for each_arch in ${SDK_PACKAGE_ARCHS} ; do
99 INSTALL_PLATFORM_EXTRA_RPM="$each_arch $INSTALL_PLATFORM_EXTRA_RPM" 110 platform="$(echo $each_arch | tr - _)-.*-${SDK_OS}"
111 INSTALL_PLATFORM_EXTRA_RPM="$platform $INSTALL_PLATFORM_EXTRA_RPM"
100 done 112 done
101 export INSTALL_PLATFORM_EXTRA_RPM 113 export INSTALL_PLATFORM_EXTRA_RPM
102 114
@@ -121,7 +133,9 @@ python () {
121 # package_arch order is reversed. This ensures the -best- match is listed first! 133 # package_arch order is reversed. This ensures the -best- match is listed first!
122 package_archs = d.getVar("PACKAGE_ARCHS", True) or "" 134 package_archs = d.getVar("PACKAGE_ARCHS", True) or ""
123 package_archs = ":".join(package_archs.split()[::-1]) 135 package_archs = ":".join(package_archs.split()[::-1])
136 package_os = d.getVar("TARGET_OS", True) or ""
124 ml_prefix_list = "%s:%s" % ('default', package_archs) 137 ml_prefix_list = "%s:%s" % ('default', package_archs)
138 ml_os_list = "%s:%s" % ('default', package_os)
125 multilibs = d.getVar('MULTILIBS', True) or "" 139 multilibs = d.getVar('MULTILIBS', True) or ""
126 for ext in multilibs.split(): 140 for ext in multilibs.split():
127 eext = ext.split(':') 141 eext = ext.split(':')
@@ -130,9 +144,13 @@ python () {
130 default_tune = localdata.getVar("DEFAULTTUNE_virtclass-multilib-" + eext[1], False) 144 default_tune = localdata.getVar("DEFAULTTUNE_virtclass-multilib-" + eext[1], False)
131 if default_tune: 145 if default_tune:
132 localdata.setVar("DEFAULTTUNE", default_tune) 146 localdata.setVar("DEFAULTTUNE", default_tune)
147 bb.data.update_data(localdata)
133 package_archs = localdata.getVar("PACKAGE_ARCHS", True) or "" 148 package_archs = localdata.getVar("PACKAGE_ARCHS", True) or ""
134 package_archs = ":".join([i in "all noarch any".split() and i or eext[1]+"_"+i for i in package_archs.split()][::-1]) 149 package_archs = ":".join([i in "all noarch any".split() and i or eext[1]+"_"+i for i in package_archs.split()][::-1])
150 package_os = localdata.getVar("TARGET_OS", True) or ""
135 ml_prefix_list += " %s:%s" % (eext[1], package_archs) 151 ml_prefix_list += " %s:%s" % (eext[1], package_archs)
152 ml_os_list += " %s:%s" % (eext[1], package_os)
136 d.setVar('MULTILIB_PREFIX_LIST', ml_prefix_list) 153 d.setVar('MULTILIB_PREFIX_LIST', ml_prefix_list)
154 d.setVar('MULTILIB_OS_LIST', ml_os_list)
137} 155}
138 156