From dd8e9be4ce4a9d98dea8df4eff7c1ccf1e038adf Mon Sep 17 00:00:00 2001 From: jbj Date: Sat, 1 Mar 2003 20:23:39 +0000 Subject: [PATCH] Sanity. CVS patchset: 6641 CVS date: 2003/03/01 20:23:39 --- Makefile.am | 2 +- build/Makefile.am | 2 +- build/files.c | 2 +- rpm.spec.in | 1 + scripts/Makefile.am | 8 +++--- scripts/rpmdb_loadcvt | 69 +++++++++++++++++++++++++++++++++++++++++++++++++++ 6 files changed, 77 insertions(+), 7 deletions(-) create mode 100755 scripts/rpmdb_loadcvt diff --git a/Makefile.am b/Makefile.am index dffe25d..ae463f6 100644 --- a/Makefile.am +++ b/Makefile.am @@ -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 \ diff --git a/build/Makefile.am b/build/Makefile.am index 3c57e70..00204a2 100644 --- a/build/Makefile.am +++ b/build/Makefile.am @@ -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 diff --git a/build/files.c b/build/files.c index 3d043d7..64764c3 100644 --- a/build/files.c +++ b/build/files.c @@ -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'; diff --git a/rpm.spec.in b/rpm.spec.in index cfef3d1..54c186f 100644 --- a/rpm.spec.in +++ b/rpm.spec.in @@ -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 diff --git a/scripts/Makefile.am b/scripts/Makefile.am index bf71819..c621212 100644 --- a/scripts/Makefile.am +++ b/scripts/Makefile.am @@ -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 index 0000000..aa70106 --- /dev/null +++ b/scripts/rpmdb_loadcvt @@ -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 -- 2.7.4