Sanity.
authorjbj <devnull@localhost>
Sat, 1 Mar 2003 20:23:39 +0000 (20:23 +0000)
committerjbj <devnull@localhost>
Sat, 1 Mar 2003 20:23:39 +0000 (20:23 +0000)
CVS patchset: 6641
CVS date: 2003/03/01 20:23:39

Makefile.am
build/Makefile.am
build/files.c
rpm.spec.in
scripts/Makefile.am
scripts/rpmdb_loadcvt [new file with mode: 0755]

index dffe25d..ae463f6 100644 (file)
@@ -14,7 +14,7 @@ EXTRA_DIST = CHANGES CREDITS Doxyheader GROUPS README.amiga INSTALL \
        po/*.in po/*.po po/rpm.pot \
        rpm.magic rpmpopt-$(VERSION) rpmqv.c rpm.c
 
-SUBDIRS = intl po @WITH_ZLIB_SUBDIR@ @WITH_ELFUTILS_SUBDIR@  file @WITH_DB_SUBDIR@ popt beecrypt rpmio rpmdb lib build misc @WITH_PYTHON_SUBDIR@ tools scripts tests doc .
+SUBDIRS = intl po @WITH_ZLIB_SUBDIR@ @WITH_ELFUTILS_SUBDIR@ file @WITH_DB_SUBDIR@ popt beecrypt rpmio rpmdb lib build misc @WITH_PYTHON_SUBDIR@ tools scripts tests doc .
 
 INCLUDES = \
        -I$(top_srcdir)/build \
index 3c57e70..00204a2 100644 (file)
@@ -38,7 +38,7 @@ rpmfile.h:
 files.c rpmfc.c: rpmfile.h
 
 clean-local:
-        rm -f *.o rpmfile.h # .created $(FILELOBJS)
+       rm -f *.o rpmfile.h # .created $(FILELOBJS)
 
 #BUILT_SOURCES = rpmbuild.lcd
 
index 3d043d7..64764c3 100644 (file)
@@ -768,7 +768,7 @@ static int parseForLang(char * buf, FileList fl)
        return RPMERR_BADSPEC;
     }
 
-    /* Localize. Erase parsed string */
+    /* Localize. Erase parsed string. */
     q = alloca((pe-p) + 1);
     strncpy(q, p, pe-p);
     q[pe-p] = '\0';
index cfef3d1..54c186f 100644 (file)
@@ -424,6 +424,7 @@ exit 0
 %rpmattr       %{__prefix}/lib/rpm/rpmdb_deadlock
 %rpmattr       %{__prefix}/lib/rpm/rpmdb_dump
 %rpmattr       %{__prefix}/lib/rpm/rpmdb_load
+%rpmattr       %{__prefix}/lib/rpm/rpmdb_loadcvt
 %rpmattr       %{__prefix}/lib/rpm/rpmdb_svc
 %rpmattr       %{__prefix}/lib/rpm/rpmdb_stat
 %rpmattr       %{__prefix}/lib/rpm/rpmdb_verify
index bf71819..c621212 100644 (file)
@@ -9,8 +9,8 @@ EXTRA_DIST = \
        find-debuginfo.sh find-lang.sh find-prov.pl find-req.pl \
        cpanflute cpanflute2 Specfile.pm find-provides.perl \
        find-requires.perl get_magic.pl getpo.sh http.req \
-       magic.prov magic.req perldeps.pl perl.prov perl.req rpmdiff \
-       rpmdiff.cgi \
+       magic.prov magic.req perldeps.pl perl.prov perl.req \
+       rpmdb_loadcvt rpmdiff rpmdiff.cgi \
        rpm.daily rpm.log rpm.xinetd rpm2cpio.sh \
        sql.prov sql.req tcl.req tgpg trpm u_pkg.sh \
        vpkg-provides.sh vpkg-provides2.sh \
@@ -29,8 +29,8 @@ config_SCRIPTS = \
        find-debuginfo.sh find-lang.sh find-prov.pl find-req.pl \
        cpanflute cpanflute2 Specfile.pm find-provides.perl \
        find-requires.perl get_magic.pl getpo.sh http.req \
-       magic.prov magic.req perldeps.pl perl.prov perl.req rpmdiff \
-       rpmdiff.cgi \
+       magic.prov magic.req perldeps.pl perl.prov perl.req \
+       rpmdb_loadcvt rpmdiff rpmdiff.cgi \
        rpm.daily rpm.log rpm.xinetd rpm2cpio.sh \
        sql.prov sql.req tcl.req tgpg trpm u_pkg.sh \
        vpkg-provides.sh vpkg-provides2.sh
diff --git a/scripts/rpmdb_loadcvt b/scripts/rpmdb_loadcvt
new file mode 100755 (executable)
index 0000000..aa70106
--- /dev/null
@@ -0,0 +1,69 @@
+#!/bin/bash
+
+ac=$#
+cmd=`basename $0`
+
+rpmdb=/var/lib/rpm
+dbfiles="`/bin/ls -1 $rpmdb/*`"
+dbdump=/usr/lib/rpm/rpmdb_dump
+dbload=/usr/bin/db_load
+
+set `$dbdump -V` || {
+    echo "The file $dbdump, usually in the rpm-devel package, is needed."
+    echo " Please install the rpm-devel package and retry $cmd."
+    exit 1
+}
+dumpfmt="${5%%:}"
+
+set `$dbload -V` || {
+    echo "The file $dbload, usually in the db4-utils package, is needed."
+    echo " Please install the db4_utils package and retry $cmd."
+    exit 1
+}
+loadfmt="${5%%:}"
+
+[ "$dumpfmt" = "$loadfmt" ] && {
+    echo "Both $dbdump and $dbload use db-$loadfmt format."
+    echo "No conversion is possible."
+    exit 0
+}
+
+[ "$ac" != "0" -o "`/usr/bin/id -u`" != "0" ] && {
+    echo "$cmd: Convert $rpmdb files to db-$loadfmt format."
+    echo "$cmd: Must be run as root, takes no arguments."
+    exit 1
+}
+
+echo "Converting to db-$loadfmt compatible format (1-10 minutes per file) ..."
+
+dbfile=
+trap "
+    [ -n "$dbfile" ] && {
+       [ -f $dbfile-O ] && /bin/mv $dbfile-O $dbfile
+       /bin/rm -f $dbfile-N
+    }
+    exit 1
+" 1 2 3 15
+
+rm -f $rpmdb/__db*
+
+for dbfile in $dbfiles
+do
+    echo " `/usr/bin/file $dbfile`"
+
+    $dbdump $dbfile | $dbload $dbfile-N || {
+       echo "Failed conversion:"
+       echo "    $dbdump $dbfile | $dbload $dbfile-N"
+       echo "Cleaning up and exiting ..."
+       /bin/rm -f $dbfile-N
+       exit 1
+    }
+
+    /bin/mv $dbfile $dbfile-O
+    /bin/mv $dbfile-N $dbfile
+    /bin/rm -f $dbfile-O
+done
+
+echo "Done!"
+
+exit 0