X-Git-Url: http://git.pld-linux.org/?p=packages%2Frpm.git;a=blobdiff_plain;f=dbupgrade.sh;h=2d403b563ebdf05bddab1dbf5bc531a5c1bd83df;hp=8d5dcc0a1bcba5884856eb555e6825e5bbacb893;hb=e9576b98b1c166be5e164c20df8d8659bb0431be;hpb=f993b86cea1d73e2819c410f7507070f4095af95 diff --git a/dbupgrade.sh b/dbupgrade.sh index 8d5dcc0..2d403b5 100755 --- a/dbupgrade.sh +++ b/dbupgrade.sh @@ -1,30 +1,36 @@ #!/bin/sh -if [ ! -x /usr/bin/db5.2_load ]; then - echo "This script needs /usr/bin/db5.2_load to operate." - exit +ROOTDIR= +if [ "$1" = "-r" ]; then + shift + ROOTDIR="$1" + + if [ ! -d "$ROOTDIR" ]; then + echo "Specified root directory ($ROOTDIR) does not exist!" + echo "Bailing out!" + exit + fi fi -if /usr/bin/db5.2_load -r lsn /var/lib/rpm/Packages ; then - /bin/rm --interactive=never -f /var/lib/rpm/__db.00* >/dev/null 2>/dev/null || : - /bin/rm --interactive=never -f /var/lib/rpm/log/* >/dev/null 2>/dev/null || : -else +if ! /usr/lib/rpm/bin/rpmdb_reset -r lsn "$ROOTDIR"/var/lib/rpm/Packages ; then echo echo "rpm database conversion failed!" echo echo "You have to run:" echo - echo " /usr/bin/db5.2_load -r lsn /var/lib/rpm/Packages" + echo " /usr/lib/rpm/bin/rpmdb_reset -r lsn /var/lib/rpm/Packages" echo " /bin/rm -f /var/lib/rpm/__db.00*" echo " /bin/rm -f /var/lib/rpm/log/*" echo " /usr/lib/rpm/bin/dbconvert --rebuilddb" echo +else + /bin/rm --interactive=never -f "$ROOTDIR"/var/lib/rpm/__db.00* >/dev/null 2>/dev/null || : + /bin/rm --interactive=never -f "$ROOTDIR"/var/lib/rpm/log/* >/dev/null 2>/dev/null || : -fi - -if ! /usr/lib/rpm/bin/dbconvert --rebuilddb; then - echo - echo "rpm database conversion failed!" - echo "You have to run /usr/lib/rpm/bin/dbconvert manually" - echo + if ! /usr/lib/rpm/bin/dbconvert --rebuilddb ${ROOTDIR:+--root="$ROOTDIR"}; then + echo + echo "rpm database conversion failed!" + echo "You have to run /usr/lib/rpm/bin/dbconvert manually" + echo + fi fi