diff options
author | Mark Hatle <mhatle@windriver.com> | 2010-08-21 22:44:21 -0700 |
---|---|---|
committer | Richard Purdie <rpurdie@linux.intel.com> | 2010-08-23 20:56:47 +0100 |
commit | 59a3e98b044d3157e7472d35b1439a4a292c6693 (patch) | |
tree | 9562b2daac52cfea6b35a8733f067228b75f5ed2 /meta/classes/package_rpm.bbclass | |
parent | 55a046bd4c4bf6e8ebb41a68205f46795f56fdbc (diff) | |
download | poky-59a3e98b044d3157e7472d35b1439a4a292c6693.tar.gz |
rootfs_rpm: Enable multi dep solverdbs
Update package_rpm.bbclass to generate dep solver databases for each
package arch. Following the example of the deb and ipk integration
Revise the rootfs_rpm to solve the installation based on the multiple
dep solvers.
Note, recommends, locale and attemptonly pckages are still to be
implemented.
Signed-off-by: Mark Hatle <mhatle@windriver.com>
Diffstat (limited to 'meta/classes/package_rpm.bbclass')
-rw-r--r-- | meta/classes/package_rpm.bbclass | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/meta/classes/package_rpm.bbclass b/meta/classes/package_rpm.bbclass index 3334c9ae6a..f89fd94728 100644 --- a/meta/classes/package_rpm.bbclass +++ b/meta/classes/package_rpm.bbclass | |||
@@ -15,6 +15,57 @@ python package_rpm_install () { | |||
15 | bb.fatal("package_rpm_install not implemented!") | 15 | bb.fatal("package_rpm_install not implemented!") |
16 | } | 16 | } |
17 | 17 | ||
18 | # | ||
19 | # Update the Packages depsolver db in ${DEPLOY_DIR_RPM} | ||
20 | # | ||
21 | package_update_index_rpm () { | ||
22 | rpmarchs="${PACKAGE_ARCHS}" | ||
23 | |||
24 | if [ ! -z "${DEPLOY_KEEP_PACKAGES}" ]; then | ||
25 | return | ||
26 | fi | ||
27 | |||
28 | packagedirs="" | ||
29 | for arch in $rpmarchs ; do | ||
30 | sdkarch=`echo $arch | sed -e 's/${HOST_ARCH}/${SDK_ARCH}/'` | ||
31 | packagedirs="$packagedirs ${DEPLOY_DIR_RPM}/$arch ${DEPLOY_DIR_RPM}/$sdkarch-nativesdk" | ||
32 | done | ||
33 | |||
34 | packagedirs="$packagedirs ${DEPLOY_DIR_RPM}/${SDK_ARCH}-${TARGET_ARCH}-canadian" | ||
35 | |||
36 | cat /dev/null > ${DEPLOY_DIR_RPM}/solvedb.conf | ||
37 | for pkgdir in $packagedirs; do | ||
38 | if [ -e $pkgdir/ ]; then | ||
39 | rm -rf $pkgdir/solvedb | ||
40 | mkdir -p $pkgdir/solvedb | ||
41 | echo "# Dynamically generated solve manifest" >> $pkgdir/solvedb/manifest | ||
42 | find $pkgdir -maxdepth 1 -type f >> $pkgdir/solvedb/manifest | ||
43 | ${RPM} -i --replacepkgs --replacefiles --oldpackage \ | ||
44 | -D "_dbpath $pkgdir/solvedb" --justdb \ | ||
45 | --noaid --nodeps --noorder --noscripts --notriggers --noparentdirs --nolinktos --stats \ | ||
46 | $pkgdir/solvedb/manifest | ||
47 | echo $pkgdir/solvedb >> ${DEPLOY_DIR_RPM}/solvedb.conf | ||
48 | fi | ||
49 | done | ||
50 | } | ||
51 | |||
52 | # | ||
53 | # Generate an rpm configuration suitable for use against the | ||
54 | # generated depsolver db's... | ||
55 | # | ||
56 | package_generate_rpm_conf () { | ||
57 | printf "_solve_dbpath " > ${DEPLOY_DIR_RPM}/solvedb.macro | ||
58 | colon=false | ||
59 | for each in `cat ${DEPLOY_DIR_RPM}/solvedb.conf` ; do | ||
60 | if [ "$colon" == true ]; then | ||
61 | printf ":" >> ${DEPLOY_DIR_RPM}/solvedb.macro | ||
62 | fi | ||
63 | printf "%s" $each >> ${DEPLOY_DIR_RPM}/solvedb.macro | ||
64 | colon=true | ||
65 | done | ||
66 | printf "\n" >> ${DEPLOY_DIR_RPM}/solvedb.macro | ||
67 | } | ||
68 | |||
18 | python write_specfile () { | 69 | python write_specfile () { |
19 | # We need to change '-' in a version field to '+' | 70 | # We need to change '-' in a version field to '+' |
20 | # This needs to be done BEFORE the mapping_rename_hook | 71 | # This needs to be done BEFORE the mapping_rename_hook |