diff options
| -rw-r--r-- | meta/classes/package_rpm.bbclass | 188 | ||||
| -rw-r--r-- | meta/classes/populate_sdk_rpm.bbclass | 28 | ||||
| -rw-r--r-- | meta/classes/rootfs_rpm.bbclass | 47 |
3 files changed, 216 insertions, 47 deletions
diff --git a/meta/classes/package_rpm.bbclass b/meta/classes/package_rpm.bbclass index 4b81b68bf7..4f60daffb4 100644 --- a/meta/classes/package_rpm.bbclass +++ b/meta/classes/package_rpm.bbclass | |||
| @@ -24,11 +24,24 @@ package_update_index_rpm () { | |||
| 24 | return | 24 | return |
| 25 | fi | 25 | fi |
| 26 | 26 | ||
| 27 | base_archs="`echo ${PACKAGE_ARCHS} | sed 's/-/_/g'`" | 27 | sdk_archs=`echo "${SDK_PACKAGE_ARCHS}" | tr - _` |
| 28 | ml_archs="`echo ${MULTILIB_PACKAGE_ARCHS} | sed 's/-/_/g'`" | 28 | |
| 29 | sdk_archs="`echo ${SDK_PACKAGE_ARCHS} | sed 's/-/_/g'`" | 29 | target_archs="" |
| 30 | for i in ${MULTILIB_PREFIX_LIST} ; do | ||
| 31 | old_IFS="$IFS" | ||
| 32 | IFS=":" | ||
| 33 | set $i | ||
| 34 | IFS="$old_IFS" | ||
| 35 | shift # remove mlib | ||
| 36 | while [ -n "$1" ]; do | ||
| 37 | target_archs="$target_archs $1" | ||
| 38 | shift | ||
| 39 | done | ||
| 40 | done | ||
| 30 | 41 | ||
| 31 | archs=`for arch in $base_archs $ml_archs $sdk_archs ; do | 42 | target_archs=`echo "$target_archs" | tr - _` |
| 43 | |||
| 44 | archs=`for arch in $target_archs $sdk_archs ; do | ||
| 32 | echo $arch | 45 | echo $arch |
| 33 | done | sort | uniq` | 46 | done | sort | uniq` |
| 34 | 47 | ||
| @@ -59,6 +72,143 @@ rpm_log_check() { | |||
| 59 | true | 72 | true |
| 60 | } | 73 | } |
| 61 | 74 | ||
| 75 | # Translate the RPM/Smart format names to the OE multilib format names | ||
| 76 | # Input via stdin (only the first item per line is converted!) | ||
| 77 | # Output via stdout | ||
| 78 | translate_smart_to_oe() { | ||
| 79 | arg1="$1" | ||
| 80 | |||
| 81 | # Dump installed packages | ||
| 82 | while read pkg arch other ; do | ||
| 83 | if [ -z "$pkg" ]; then | ||
| 84 | continue | ||
| 85 | fi | ||
| 86 | new_pkg=$pkg | ||
| 87 | fixed_arch=`echo "$arch" | tr _ -` | ||
| 88 | for i in ${MULTILIB_PREFIX_LIST} ; do | ||
| 89 | old_IFS="$IFS" | ||
| 90 | IFS=":" | ||
| 91 | set $i | ||
| 92 | IFS="$old_IFS" | ||
| 93 | mlib="$1" | ||
| 94 | shift | ||
| 95 | while [ -n "$1" ]; do | ||
| 96 | cmp_arch=$1 | ||
| 97 | shift | ||
| 98 | if [ "$arch" = "$cmp_arch" -o "$fixed_arch" = "$cmp_arch" ]; then | ||
| 99 | if [ "$mlib" = "default" ]; then | ||
| 100 | new_pkg="$pkg" | ||
| 101 | else | ||
| 102 | new_pkg="$mlib-$pkg" | ||
| 103 | fi | ||
| 104 | break | ||
| 105 | fi | ||
| 106 | done | ||
| 107 | if [ "$arch" = "$cmp_arch" -o "$fixed_arch" = "$cmp_arch" ]; then | ||
| 108 | break | ||
| 109 | fi | ||
| 110 | done | ||
| 111 | |||
| 112 | #echo "$pkg -> $new_pkg" >&2 | ||
| 113 | if [ "$arg1" = "arch" ]; then | ||
| 114 | echo $new_pkg $cmp_arch $other | ||
| 115 | else | ||
| 116 | echo $new_pkg $other | ||
| 117 | fi | ||
| 118 | done | ||
| 119 | } | ||
| 120 | |||
| 121 | # Translate the OE multilib format names to the RPM/Smart format names | ||
| 122 | # Input via arguments | ||
| 123 | # Ouput via pkgs_to_install | ||
| 124 | translate_oe_to_smart() { | ||
| 125 | default_archs="" | ||
| 126 | sdk_mode="" | ||
| 127 | if [ "$1" = "--sdk" ]; then | ||
| 128 | shift | ||
| 129 | sdk_mode="true" | ||
| 130 | # Need to reverse the order of the SDK_ARCHS highest -> lowest priority | ||
| 131 | archs=`echo "${SDK_PACKAGE_ARCHS}" | tr - _` | ||
| 132 | for arch in $archs ; do | ||
| 133 | default_archs="$arch $default_archs" | ||
| 134 | done | ||
| 135 | fi | ||
| 136 | |||
| 137 | attemptonly="Error" | ||
| 138 | if [ "$1" = "--attemptonly" ]; then | ||
| 139 | attemptonly="Warning" | ||
| 140 | shift | ||
| 141 | fi | ||
| 142 | |||
| 143 | # Dump a list of all available packages | ||
| 144 | [ ! -e ${target_rootfs}/install/tmp/fullpkglist.query ] && smart --data-dir=${target_rootfs}/var/lib/smart query --output ${target_rootfs}/install/tmp/fullpkglist.query | ||
| 145 | |||
| 146 | pkgs_to_install="" | ||
| 147 | for pkg in "$@" ; do | ||
| 148 | new_pkg="$pkg" | ||
| 149 | if [ -z "$sdk_mode" ]; then | ||
| 150 | for i in ${MULTILIB_PREFIX_LIST} ; do | ||
| 151 | old_IFS="$IFS" | ||
| 152 | IFS=":" | ||
| 153 | set $i | ||
| 154 | IFS="$old_IFS" | ||
| 155 | mlib="$1" | ||
| 156 | shift | ||
| 157 | if [ "$mlib" = "default" ]; then | ||
| 158 | if [ -z "$default_archs" ]; then | ||
| 159 | default_archs=$@ | ||
| 160 | fi | ||
| 161 | continue | ||
| 162 | fi | ||
| 163 | subst=${pkg#${mlib}-} | ||
| 164 | if [ "$subst" != "$pkg" ]; then | ||
| 165 | feeds=$@ | ||
| 166 | while [ -n "$1" ]; do | ||
| 167 | arch="$1" | ||
| 168 | arch=`echo "$arch" | tr - _` | ||
| 169 | shift | ||
| 170 | if grep -q '^'$subst'-[^-]*-[^-]*@'$arch'$' ${target_rootfs}/install/tmp/fullpkglist.query ; then | ||
| 171 | new_pkg="$subst@$arch" | ||
| 172 | # First found is best match | ||
| 173 | break | ||
| 174 | fi | ||
| 175 | done | ||
| 176 | if [ "$pkg" = "$new_pkg" ]; then | ||
| 177 | # Failed to translate, package not found! | ||
| 178 | echo "$attemptonly: $pkg not found in the $mlib feeds ($feeds)." >&2 | ||
| 179 | if [ "$attemptonly" = "Error" ]; then | ||
| 180 | exit 1 | ||
| 181 | fi | ||
| 182 | continue | ||
| 183 | fi | ||
| 184 | fi | ||
| 185 | done | ||
| 186 | fi | ||
| 187 | # Apparently not a multilib package... | ||
| 188 | if [ "$pkg" = "$new_pkg" ]; then | ||
| 189 | default_archs_fixed=`echo "$default_archs" | tr - _` | ||
| 190 | for arch in $default_archs_fixed ; do | ||
| 191 | if grep -q '^'$pkg'-[^-]*-[^-]*@'$arch'$' ${target_rootfs}/install/tmp/fullpkglist.query ; then | ||
| 192 | new_pkg="$pkg@$arch" | ||
| 193 | # First found is best match | ||
| 194 | break | ||
| 195 | fi | ||
| 196 | done | ||
| 197 | if [ "$pkg" = "$new_pkg" ]; then | ||
| 198 | # Failed to translate, package not found! | ||
| 199 | echo "$attemptonly: $pkg not found in the base feeds ($default_archs)." >&2 | ||
| 200 | if [ "$attemptonly" = "Error" ]; then | ||
| 201 | exit 1 | ||
| 202 | fi | ||
| 203 | continue | ||
| 204 | fi | ||
| 205 | fi | ||
| 206 | #echo "$pkg -> $new_pkg" >&2 | ||
| 207 | pkgs_to_install="${pkgs_to_install} ${new_pkg}" | ||
| 208 | done | ||
| 209 | export pkgs_to_install | ||
| 210 | } | ||
| 211 | |||
| 62 | 212 | ||
| 63 | # | 213 | # |
| 64 | # Install a bunch of packages using rpm. | 214 | # Install a bunch of packages using rpm. |
| @@ -96,18 +246,26 @@ package_install_internal_rpm () { | |||
| 96 | local providename="$INSTALL_PROVIDENAME_RPM" | 246 | local providename="$INSTALL_PROVIDENAME_RPM" |
| 97 | local task="$INSTALL_TASK_RPM" | 247 | local task="$INSTALL_TASK_RPM" |
| 98 | 248 | ||
| 249 | local sdk_mode="" | ||
| 250 | if [ "$1" = "--sdk" ]; then | ||
| 251 | sdk_mode="--sdk" | ||
| 252 | fi | ||
| 253 | |||
| 99 | # Configure internal RPM environment when using Smart | 254 | # Configure internal RPM environment when using Smart |
| 100 | export RPM_ETCRPM=${target_rootfs}/etc/rpm | 255 | export RPM_ETCRPM=${target_rootfs}/etc/rpm |
| 101 | 256 | ||
| 102 | # Setup temporary directory -- install... | 257 | # Setup temporary directory -- install... |
| 103 | mkdir -p ${target_rootfs}/install | 258 | rm -rf ${target_rootfs}/install |
| 259 | mkdir -p ${target_rootfs}/install/tmp | ||
| 104 | 260 | ||
| 261 | channel_priority=5 | ||
| 105 | if [ "${INSTALL_COMPLEMENTARY_RPM}" != "1" ] ; then | 262 | if [ "${INSTALL_COMPLEMENTARY_RPM}" != "1" ] ; then |
| 106 | # Setup base system configuration | 263 | # Setup base system configuration |
| 107 | mkdir -p ${target_rootfs}/etc/rpm/ | 264 | mkdir -p ${target_rootfs}/etc/rpm/ |
| 108 | echo "${platform}${TARGET_VENDOR}-${TARGET_OS}" > ${target_rootfs}/etc/rpm/platform | 265 | echo "${platform}${TARGET_VENDOR}-${TARGET_OS}" > ${target_rootfs}/etc/rpm/platform |
| 109 | if [ ! -z "$platform_extra" ]; then | 266 | if [ ! -z "$platform_extra" ]; then |
| 110 | for pt in $platform_extra ; do | 267 | for pt in $platform_extra ; do |
| 268 | channel_priority=$(expr $channel_priority + 5) | ||
| 111 | case $pt in | 269 | case $pt in |
| 112 | noarch | any | all) | 270 | noarch | any | all) |
| 113 | os="`echo ${TARGET_OS} | sed "s,-.*,,"`.*" | 271 | os="`echo ${TARGET_OS} | sed "s,-.*,,"`.*" |
| @@ -178,11 +336,14 @@ EOF | |||
| 178 | smart --data-dir=${target_rootfs}/var/lib/smart config --set rpm-extra-macros._tmppath=/install/tmp | 336 | smart --data-dir=${target_rootfs}/var/lib/smart config --set rpm-extra-macros._tmppath=/install/tmp |
| 179 | smart --data-dir=${target_rootfs}/var/lib/smart channel --add rpmsys type=rpm-sys -y | 337 | smart --data-dir=${target_rootfs}/var/lib/smart channel --add rpmsys type=rpm-sys -y |
| 180 | 338 | ||
| 181 | for arch in $platform_extra ; do | 339 | platform_extra_fixed=`echo "$platform_extra" | tr - _` |
| 340 | for arch in $platform_extra_fixed ; do | ||
| 182 | if [ -d ${DEPLOY_DIR_RPM}/$arch -a ! -e ${target_rootfs}/install/channel.$arch.stamp ] ; then | 341 | if [ -d ${DEPLOY_DIR_RPM}/$arch -a ! -e ${target_rootfs}/install/channel.$arch.stamp ] ; then |
| 183 | smart --data-dir=${target_rootfs}/var/lib/smart channel --add $arch type=rpm-md type=rpm-md baseurl=${DEPLOY_DIR_RPM}/$arch -y | 342 | smart --data-dir=${target_rootfs}/var/lib/smart channel --add $arch type=rpm-md type=rpm-md baseurl=${DEPLOY_DIR_RPM}/$arch -y |
| 343 | smart --data-dir=${target_rootfs}/var/lib/smart channel --set $arch priority=$channel_priority | ||
| 184 | touch ${target_rootfs}/install/channel.$arch.stamp | 344 | touch ${target_rootfs}/install/channel.$arch.stamp |
| 185 | fi | 345 | fi |
| 346 | channel_priority=$(expr $channel_priority - 5) | ||
| 186 | done | 347 | done |
| 187 | fi | 348 | fi |
| 188 | 349 | ||
| @@ -218,14 +379,15 @@ EOF | |||
| 218 | chmod 0755 ${WORKDIR}/scriptlet_wrapper | 379 | chmod 0755 ${WORKDIR}/scriptlet_wrapper |
| 219 | smart --data-dir=${target_rootfs}/var/lib/smart config --set rpm-extra-macros._cross_scriptlet_wrapper=${WORKDIR}/scriptlet_wrapper | 380 | smart --data-dir=${target_rootfs}/var/lib/smart config --set rpm-extra-macros._cross_scriptlet_wrapper=${WORKDIR}/scriptlet_wrapper |
| 220 | 381 | ||
| 221 | smart --data-dir=${target_rootfs}/var/lib/smart install -y ${package_to_install} ${package_linguas} | 382 | # Determine what to install |
| 383 | translate_oe_to_smart ${sdk_mode} ${package_to_install} ${package_linguas} | ||
| 222 | 384 | ||
| 223 | if [ ! -z "${package_attemptonly}" ]; then | 385 | [ -n "$pkgs_to_install" ] && smart --data-dir=${target_rootfs}/var/lib/smart install -y ${pkgs_to_install} |
| 224 | echo "Installing attempt only packages..." | 386 | |
| 225 | for pkg_name in ${package_attemptonly} ; do | 387 | if [ -n "${package_attemptonly}" ]; then |
| 226 | echo "Attempting $pkg_name..." >> "`dirname ${BB_LOGFILE}`/log.do_${task}_attemptonly.${PID}" | 388 | translate_oe_to_smart ${sdk_mode} --attemptonly $package_attemptonly |
| 227 | smart --data-dir=${target_rootfs}/var/lib/smart install -y $pkg_name >> "`dirname ${BB_LOGFILE}`/log.do_${task}_attemptonly.${PID}" 2>&1 || true | 389 | echo "Attempting $pkgs_to_install" |
| 228 | done | 390 | smart --data-dir=${target_rootfs}/var/lib/smart install -y $pkgs_to_install >> "`dirname ${BB_LOGFILE}`/log.do_${task}_attemptonly.${PID}" 2>&1 || true |
| 229 | fi | 391 | fi |
| 230 | } | 392 | } |
| 231 | 393 | ||
diff --git a/meta/classes/populate_sdk_rpm.bbclass b/meta/classes/populate_sdk_rpm.bbclass index d26867fa9a..eb80e1dd9c 100644 --- a/meta/classes/populate_sdk_rpm.bbclass +++ b/meta/classes/populate_sdk_rpm.bbclass | |||
| @@ -54,8 +54,16 @@ populate_sdk_rpm () { | |||
| 54 | 54 | ||
| 55 | # List must be prefered to least preferred order | 55 | # List must be prefered to least preferred order |
| 56 | INSTALL_PLATFORM_EXTRA_RPM="" | 56 | INSTALL_PLATFORM_EXTRA_RPM="" |
| 57 | for each_arch in ${MULTILIB_PACKAGE_ARCHS} ${PACKAGE_ARCHS} ; do | 57 | for i in ${MULTILIB_PREFIX_LIST} ; do |
| 58 | INSTALL_PLATFORM_EXTRA_RPM="$each_arch $INSTALL_PLATFORM_EXTRA_RPM" | 58 | old_IFS="$IFS" |
| 59 | IFS=":" | ||
| 60 | set $i | ||
| 61 | IFS="$old_IFS" | ||
| 62 | shift #remove mlib | ||
| 63 | while [ -n "$1" ]; do | ||
| 64 | INSTALL_PLATFORM_EXTRA_RPM="$INSTALL_PLATFORM_EXTRA_RPM $1" | ||
| 65 | shift | ||
| 66 | done | ||
| 59 | done | 67 | done |
| 60 | export INSTALL_PLATFORM_EXTRA_RPM | 68 | export INSTALL_PLATFORM_EXTRA_RPM |
| 61 | 69 | ||
| @@ -81,7 +89,7 @@ populate_sdk_rpm () { | |||
| 81 | done | 89 | done |
| 82 | export INSTALL_PLATFORM_EXTRA_RPM | 90 | export INSTALL_PLATFORM_EXTRA_RPM |
| 83 | 91 | ||
| 84 | package_install_internal_rpm | 92 | package_install_internal_rpm --sdk |
| 85 | populate_sdk_post_rpm ${INSTALL_ROOTFS_RPM} | 93 | populate_sdk_post_rpm ${INSTALL_ROOTFS_RPM} |
| 86 | 94 | ||
| 87 | # move host RPM library data | 95 | # move host RPM library data |
| @@ -98,8 +106,11 @@ populate_sdk_rpm () { | |||
| 98 | 106 | ||
| 99 | python () { | 107 | python () { |
| 100 | # The following code should be kept in sync w/ the rootfs_rpm version. | 108 | # The following code should be kept in sync w/ the rootfs_rpm version. |
| 101 | ml_package_archs = "" | 109 | |
| 102 | ml_prefix_list = "" | 110 | # package_arch order is reversed. This ensures the -best- match is listed first! |
| 111 | package_archs = d.getVar("PACKAGE_ARCHS", True) or "" | ||
| 112 | package_archs = ":".join(package_archs.split()[::-1]) | ||
| 113 | ml_prefix_list = "%s:%s" % ('default', package_archs) | ||
| 103 | multilibs = d.getVar('MULTILIBS', True) or "" | 114 | multilibs = d.getVar('MULTILIBS', True) or "" |
| 104 | for ext in multilibs.split(): | 115 | for ext in multilibs.split(): |
| 105 | eext = ext.split(':') | 116 | eext = ext.split(':') |
| @@ -109,11 +120,8 @@ python () { | |||
| 109 | if default_tune: | 120 | if default_tune: |
| 110 | localdata.setVar("DEFAULTTUNE", default_tune) | 121 | localdata.setVar("DEFAULTTUNE", default_tune) |
| 111 | package_archs = localdata.getVar("PACKAGE_ARCHS", True) or "" | 122 | package_archs = localdata.getVar("PACKAGE_ARCHS", True) or "" |
| 112 | package_archs = " ".join([i in "all noarch any".split() and i or eext[1]+"_"+i for i in package_archs.split()]) | 123 | package_archs = ":".join([i in "all noarch any".split() and i or eext[1]+"_"+i for i in package_archs.split()][::-1]) |
| 113 | ml_package_archs += " " + package_archs | 124 | ml_prefix_list += " %s:%s" % (eext[1], package_archs) |
| 114 | ml_prefix_list += " " + eext[1] | ||
| 115 | #bb.note("ML_PACKAGE_ARCHS %s %s %s" % (eext[1], localdata.getVar("PACKAGE_ARCHS", True) or "(none)", overrides)) | ||
| 116 | d.setVar('MULTILIB_PACKAGE_ARCHS', ml_package_archs) | ||
| 117 | d.setVar('MULTILIB_PREFIX_LIST', ml_prefix_list) | 125 | d.setVar('MULTILIB_PREFIX_LIST', ml_prefix_list) |
| 118 | } | 126 | } |
| 119 | 127 | ||
diff --git a/meta/classes/rootfs_rpm.bbclass b/meta/classes/rootfs_rpm.bbclass index a507ad62e8..5000956d14 100644 --- a/meta/classes/rootfs_rpm.bbclass +++ b/meta/classes/rootfs_rpm.bbclass | |||
| @@ -62,8 +62,16 @@ fakeroot rootfs_rpm_do_rootfs () { | |||
| 62 | 62 | ||
| 63 | # List must be prefered to least preferred order | 63 | # List must be prefered to least preferred order |
| 64 | INSTALL_PLATFORM_EXTRA_RPM="" | 64 | INSTALL_PLATFORM_EXTRA_RPM="" |
| 65 | for each_arch in ${MULTILIB_PACKAGE_ARCHS} ${PACKAGE_ARCHS}; do | 65 | for i in ${MULTILIB_PREFIX_LIST} ; do |
| 66 | INSTALL_PLATFORM_EXTRA_RPM="$each_arch $INSTALL_PLATFORM_EXTRA_RPM" | 66 | old_IFS="$IFS" |
| 67 | IFS=":" | ||
| 68 | set $i | ||
| 69 | IFS="$old_IFS" | ||
| 70 | shift #remove mlib | ||
| 71 | while [ -n "$1" ]; do | ||
| 72 | INSTALL_PLATFORM_EXTRA_RPM="$INSTALL_PLATFORM_EXTRA_RPM $1" | ||
| 73 | shift | ||
| 74 | done | ||
| 67 | done | 75 | done |
| 68 | export INSTALL_PLATFORM_RPM | 76 | export INSTALL_PLATFORM_RPM |
| 69 | 77 | ||
| @@ -143,21 +151,12 @@ rpm_setup_smart_target_config() { | |||
| 143 | RPM_QUERY_CMD = '${RPM} --root $INSTALL_ROOTFS_RPM -D "_dbpath ${rpmlibdir}"' | 151 | RPM_QUERY_CMD = '${RPM} --root $INSTALL_ROOTFS_RPM -D "_dbpath ${rpmlibdir}"' |
| 144 | 152 | ||
| 145 | list_installed_packages() { | 153 | list_installed_packages() { |
| 146 | GET_LIST=$(${RPM_QUERY_CMD} -qa --qf "[%{NAME} %{ARCH} %{PACKAGEORIGIN} %{Platform}\n]") | 154 | if [ "$1" = "arch" ]; then |
| 147 | 155 | ${RPM_QUERY_CMD} -qa --qf "[%{NAME} %{ARCH}\n]" | translate_smart_to_oe arch | tee /tmp/arch_list | |
| 148 | # Use awk to find the multilib prefix and compare it | 156 | elif [ "$1" = "file" ]; then |
| 149 | # with the platform RPM thinks it is part of | 157 | ${RPM_QUERY_CMD} -qa --qf "[%{NAME} %{ARCH} %{PACKAGEORIGIN}\n]" | translate_smart_to_oe | tee /tmp/file_list |
| 150 | for prefix in `echo ${MULTILIB_PREFIX_LIST}`; do | 158 | else |
| 151 | GET_LIST=$(echo "$GET_LIST" | awk -v prefix="$prefix" '$0 ~ prefix {printf("%s-%s\n", prefix, $0); } $0 !~ prefix {print $0}') | 159 | ${RPM_QUERY_CMD} -qa --qf "[%{NAME} %{ARCH}\n]" | translate_smart_to_oe | tee /tmp/default_list |
| 152 | done | ||
| 153 | |||
| 154 | # print the info, need to different return counts | ||
| 155 | if [ "$1" = "arch" ] ; then | ||
| 156 | echo "$GET_LIST" | awk -v archs="${PACKAGE_ARCHS}" '{if(!index(archs, $2)) {gsub("_", "-", $2)} print $1, $2}' | ||
| 157 | elif [ "$1" = "file" ] ; then | ||
| 158 | echo "$GET_LIST" | awk '{print $1, $3}' | ||
| 159 | else | ||
| 160 | echo "$GET_LIST" | awk '{print $1}' | ||
| 161 | fi | 160 | fi |
| 162 | } | 161 | } |
| 163 | 162 | ||
| @@ -187,8 +186,11 @@ python () { | |||
| 187 | d.setVar('RPM_POSTPROCESS_COMMANDS', '') | 186 | d.setVar('RPM_POSTPROCESS_COMMANDS', '') |
| 188 | 187 | ||
| 189 | # The following code should be kept in sync w/ the populate_sdk_rpm version. | 188 | # The following code should be kept in sync w/ the populate_sdk_rpm version. |
| 190 | ml_package_archs = "" | 189 | |
| 191 | ml_prefix_list = "" | 190 | # package_arch order is reversed. This ensures the -best- match is listed first! |
| 191 | package_archs = d.getVar("PACKAGE_ARCHS", True) or "" | ||
| 192 | package_archs = ":".join(package_archs.split()[::-1]) | ||
| 193 | ml_prefix_list = "%s:%s" % ('default', package_archs) | ||
| 192 | multilibs = d.getVar('MULTILIBS', True) or "" | 194 | multilibs = d.getVar('MULTILIBS', True) or "" |
| 193 | for ext in multilibs.split(): | 195 | for ext in multilibs.split(): |
| 194 | eext = ext.split(':') | 196 | eext = ext.split(':') |
| @@ -198,10 +200,7 @@ python () { | |||
| 198 | if default_tune: | 200 | if default_tune: |
| 199 | localdata.setVar("DEFAULTTUNE", default_tune) | 201 | localdata.setVar("DEFAULTTUNE", default_tune) |
| 200 | package_archs = localdata.getVar("PACKAGE_ARCHS", True) or "" | 202 | package_archs = localdata.getVar("PACKAGE_ARCHS", True) or "" |
| 201 | package_archs = " ".join([i in "all noarch any".split() and i or eext[1]+"_"+i for i in package_archs.split()]) | 203 | package_archs = ":".join([i in "all noarch any".split() and i or eext[1]+"_"+i for i in package_archs.split()][::-1]) |
| 202 | ml_package_archs += " " + package_archs | 204 | ml_prefix_list += " %s:%s" % (eext[1], package_archs) |
| 203 | ml_prefix_list += " " + eext[1] | ||
| 204 | #bb.note("ML_PACKAGE_ARCHS %s %s %s" % (eext[1], localdata.getVar("PACKAGE_ARCHS", True) or "(none)", overrides)) | ||
| 205 | d.setVar('MULTILIB_PACKAGE_ARCHS', ml_package_archs) | ||
| 206 | d.setVar('MULTILIB_PREFIX_LIST', ml_prefix_list) | 205 | d.setVar('MULTILIB_PREFIX_LIST', ml_prefix_list) |
| 207 | } | 206 | } |
