[OE-core] [PATCH 1/3] package/rootfs_rpm: Implement RPM multilib package handling
Mark Hatle
mark.hatle at windriver.com
Wed Jul 27 03:18:55 UTC 2011
We found a minor bug in the patch since it was first sent out:
On 7/26/11 5:50 PM, Richard Purdie wrote:
> From: Mark Hatle <mark.hatle at windriver.com>
>
> This is a first pass at adding multilib support to the RPM package
> and image handling code.
>
> Signed-off-by: Mark Hatle <mark.hatle at windriver.com>
> ---
> meta/classes/package_rpm.bbclass | 229 ++++++++++++++++++++++++--------------
> meta/classes/rootfs_rpm.bbclass | 17 +++-
> 2 files changed, 160 insertions(+), 86 deletions(-)
>
> diff --git a/meta/classes/package_rpm.bbclass b/meta/classes/package_rpm.bbclass
> index 2cc5742..05f3929 100644
> --- a/meta/classes/package_rpm.bbclass
> +++ b/meta/classes/package_rpm.bbclass
> @@ -21,67 +21,71 @@ RPMCONF_HOST_BASE = "${DEPLOY_DIR_RPM}/solvedb-sdk"
> # Update the Packages depsolver db in ${DEPLOY_DIR_RPM}
> #
> package_update_index_rpm () {
> - rpmarchs="${PACKAGE_ARCHS}"
> -
> if [ ! -z "${DEPLOY_KEEP_PACKAGES}" ]; then
> return
> fi
>
> - packagedirs=""
> - packagedirs_sdk=""
> - for arch in $rpmarchs ; do
> - sdkarch=`echo $arch | sed -e 's/${HOST_ARCH}/${SDK_ARCH}/'`
> - extension="-nativesdk"
> - if [ "$sdkarch" = "all" -o "$sdkarch" = "any" -o "$sdkarch" = "noarch" ]; then
> - extension=""
> - fi
> - packagedirs="${DEPLOY_DIR_RPM}/$arch $packagedirs"
> - packagedirs_sdk="${DEPLOY_DIR_RPM}/$sdkarch$extension $packagedirs_sdk"
> + base_package_archs="${PACKAGE_ARCHS}"
> + ml_package_archs="${MULTILIB_PACKAGE_ARCHS}"
> +
> + for archvar in base_package_archs ml_package_archs; do
> + eval archs=\${${archvar}}
> + packagedirs=""
> + packagedirs_sdk=""
> + for arch in $archs; do
> + sdkarch=`echo $arch | sed -e 's/${HOST_ARCH}/${SDK_ARCH}/'`
> + extension="-nativesdk"
> + if [ "$sdkarch" = "all" -o "$sdkarch" = "any" -o "$sdkarch" = "noarch" ]; then
> + extension=""
> + fi
> + packagedirs="${DEPLOY_DIR_RPM}/$arch $packagedirs"
> + packagedirs_sdk="${DEPLOY_DIR_RPM}/$sdkarch$extension $packagedirs_sdk"
>
> - rm -rf ${DEPLOY_DIR_RPM}/$arch/solvedb
> - rm -rf ${DEPLOY_DIR_RPM}/$sdkarch$extension/solvedb
> - done
> + rm -rf ${DEPLOY_DIR_RPM}/$arch/solvedb
> + rm -rf ${DEPLOY_DIR_RPM}/$sdkarch$extension/solvedb
> + done
>
> - cat /dev/null > ${RPMCONF_TARGET_BASE}.conf
> - for pkgdir in $packagedirs; do
> - if [ -e $pkgdir/ ]; then
> - echo "Generating solve db for $pkgdir..."
> - echo $pkgdir/solvedb >> ${RPMCONF_TARGET_BASE}.conf
> - if [ -d $pkgdir/solvedb ]; then
> - # We've already processed this and it's a duplicate
> - continue
> + cat /dev/null > ${RPMCONF_TARGET_BASE}-${archvar}.conf
> + for pkgdir in $packagedirs; do
> + if [ -e $pkgdir/ ]; then
> + echo "Generating solve db for $pkgdir..."
> + echo $pkgdir/solvedb >> ${RPMCONF_TARGET_BASE}-${archvar}.conf
> + if [ -d $pkgdir/solvedb ]; then
> + # We've already processed this and it's a duplicate
> + continue
> + fi
> + mkdir -p $pkgdir/solvedb
> + echo "# Dynamically generated solve manifest" >> $pkgdir/solvedb/manifest
> + find $pkgdir -maxdepth 1 -type f >> $pkgdir/solvedb/manifest
> + ${RPM} -i --replacepkgs --replacefiles --oldpackage \
> + -D "_dbpath $pkgdir/solvedb" --justdb \
> + --noaid --nodeps --noorder --noscripts --notriggers --noparentdirs --nolinktos --stats \
> + --ignoresize --nosignature --nodigest \
> + -D "__dbi_txn create nofsync" \
> + $pkgdir/solvedb/manifest
> fi
> - mkdir -p $pkgdir/solvedb
> - echo "# Dynamically generated solve manifest" >> $pkgdir/solvedb/manifest
> - find $pkgdir -maxdepth 1 -type f >> $pkgdir/solvedb/manifest
> - ${RPM} -i --replacepkgs --replacefiles --oldpackage \
> - -D "_dbpath $pkgdir/solvedb" --justdb \
> - --noaid --nodeps --noorder --noscripts --notriggers --noparentdirs --nolinktos --stats \
> - --ignoresize --nosignature --nodigest \
> - -D "__dbi_txn create nofsync" \
> - $pkgdir/solvedb/manifest
> - fi
> - done
> + done
>
> - cat /dev/null > ${RPMCONF_HOST_BASE}.conf
> - for pkgdir in $packagedirs_sdk; do
> - if [ -e $pkgdir/ ]; then
> - echo "Generating solve db for $pkgdir..."
> - echo $pkgdir/solvedb >> ${RPMCONF_HOST_BASE}.conf
> - if [ -d $pkgdir/solvedb ]; then
> - # We've already processed this and it's a duplicate
> - continue
> - fi
> - mkdir -p $pkgdir/solvedb
> - echo "# Dynamically generated solve manifest" >> $pkgdir/solvedb/manifest
> - find $pkgdir -maxdepth 1 -type f >> $pkgdir/solvedb/manifest
> - ${RPM} -i --replacepkgs --replacefiles --oldpackage \
> - -D "_dbpath $pkgdir/solvedb" --justdb \
> - --noaid --nodeps --noorder --noscripts --notriggers --noparentdirs --nolinktos --stats \
> - --ignoresize --nosignature --nodigest \
> - -D "__dbi_txn create nofsync" \
> - $pkgdir/solvedb/manifest
> - fi
> + cat /dev/null > ${RPMCONF_HOST_BASE}.conf
The above line should be:
cat /dev/null > ${RPMCONF_HOST_BASE}-${archvar}.conf
....
More information about the Openembedded-core
mailing list