From 379ba0e9d73a96f72982070a71532e035878fee0 Mon Sep 17 00:00:00 2001 From: Mark Hatle Date: Tue, 31 Aug 2010 18:57:06 -0500 Subject: rootfs_rpm: Optimize rpm database processing Optimize the creation of the solverdb by disabling fsyncs and database caches that are not used when generating a solution. Signed-off-by: Mark Hatle --- meta/classes/package_rpm.bbclass | 4 ++++ meta/classes/rootfs_rpm.bbclass | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/meta/classes/package_rpm.bbclass b/meta/classes/package_rpm.bbclass index 36eb8e308..89e8fe891 100644 --- a/meta/classes/package_rpm.bbclass +++ b/meta/classes/package_rpm.bbclass @@ -36,6 +36,7 @@ package_update_index_rpm () { cat /dev/null > ${DEPLOY_DIR_RPM}/solvedb.conf for pkgdir in $packagedirs; do if [ -e $pkgdir/ ]; then + echo "Generating solve db for $pkgdir..." rm -rf $pkgdir/solvedb mkdir -p $pkgdir/solvedb echo "# Dynamically generated solve manifest" >> $pkgdir/solvedb/manifest @@ -43,6 +44,9 @@ package_update_index_rpm () { ${RPM} -i --replacepkgs --replacefiles --oldpackage \ -D "_dbpath $pkgdir/solvedb" --justdb \ --noaid --nodeps --noorder --noscripts --notriggers --noparentdirs --nolinktos --stats \ + --ignoresize --nosignature --nodigest \ + -D "_dbi_tags_3 Packages:Name:Basenames:Providename:Nvra" \ + -D "__dbi_cdb create mp_mmapsize=128Mb mp_size=1Mb nofsync" \ $pkgdir/solvedb/manifest echo $pkgdir/solvedb >> ${DEPLOY_DIR_RPM}/solvedb.conf fi diff --git a/meta/classes/rootfs_rpm.bbclass b/meta/classes/rootfs_rpm.bbclass index 9cbfdd3db..f56acada7 100644 --- a/meta/classes/rootfs_rpm.bbclass +++ b/meta/classes/rootfs_rpm.bbclass @@ -49,7 +49,7 @@ fakeroot rootfs_rpm_do_rootfs () { for pkg in ${PACKAGE_INSTALL} ; do echo "Processing $pkg..." for solve in `cat ${DEPLOY_DIR_RPM}/solvedb.conf`; do - pkg_name=$(${RPM} -D "_dbpath $solve" -q --yaml $pkg | grep -i 'Packageorigin' | cut -d : -f 2) + pkg_name=$(${RPM} -D "_dbpath $solve" -D "_dbi_tags_3 Packages:Name:Basenames:Providename:Nvra" -D "__dbi_cdb create mp_mmapsize=128Mb mp_size=1Mb nofsync" -q --yaml $pkg | grep -i 'Packageorigin' | cut -d : -f 2) if [ -n "$pkg_name" ]; then break; fi -- cgit v1.2.3