[CVS] RPM: rpm/ CHANGES rpm/tools/ dbconvert.c
RPM Package Manager, CVS Repository http://rpm5.org/cvs/ Server: rpm5.org Name: Per Øyvind Karlsen Root: /v/rpm/cvs Email: pkarl...@rpm5.org Module: rpm Date: 06-Jul-2011 14:55:30 Branch: HEAD Handle: 2011070612552901 Modified files: rpm CHANGES rpm/tools dbconvert.c Log: dbconvert: fix segfault when no root is specified. Summary: RevisionChanges Path 1.3660 +1 -0 rpm/CHANGES 2.7 +2 -2 rpm/tools/dbconvert.c patch -p0 '@@ .' Index: rpm/CHANGES $ cvs diff -u -r1.3659 -r1.3660 CHANGES --- rpm/CHANGES 28 Jun 2011 12:00:19 - 1.3659 +++ rpm/CHANGES 6 Jul 2011 12:55:29 - 1.3660 @@ -1,4 +1,5 @@ HEAD: +- proyvind: dbconvert: fix segfault when no root is specified. - proyvind: check-multiarch-files: remove unnecessary import of MDK::Common, causing undesired dependency from perl dependency generator. - devzero2000: add a simple usage command to devtool @@ . patch -p0 '@@ .' Index: rpm/tools/dbconvert.c $ cvs diff -u -r2.6 -r2.7 dbconvert.c --- rpm/tools/dbconvert.c 11 May 2011 07:55:06 - 2.6 +++ rpm/tools/dbconvert.c 6 Jul 2011 12:55:30 - 2.7 @@ -114,7 +114,7 @@ create mpool txn thread thread_count=64 nofsync, -1); /* (ugly) clear any existing locks */ -fn = rpmGetPath(prefix[0] ? prefix : , dbpath, /, __db.*, NULL); +fn = rpmGetPath(prefix prefix[0] ? prefix : , dbpath, /, __db.*, NULL); xx = Glob(fn, 0, NULL, gl); for (i = 0; i (int) gl.gl_pathc; i++) xx = Unlink(gl.gl_pathv[i]); @@ -377,7 +377,7 @@ fn = _free(fn); /* clear locks */ -fn = rpmGetPath(prefix[0] ? prefix : , dbpath, /, __db.*, NULL); +fn = rpmGetPath(prefix prefix[0] ? prefix : , dbpath, /, __db.*, NULL); xx = Glob(fn, 0, NULL, gl); for (i = 0; i (int) gl.gl_pathc; i++) xx = Unlink(gl.gl_pathv[i]); @@ . __ RPM Package Managerhttp://rpm5.org CVS Sources Repositoryrpm-cvs@rpm5.org
[CVS] RPM: rpm/ CHANGES rpm/tools/ dbconvert.c
RPM Package Manager, CVS Repository http://rpm5.org/cvs/ Server: rpm5.org Name: Per Øyvind Karlsen Root: /v/rpm/cvs Email: pkarl...@rpm5.org Module: rpm Date: 30-Mar-2011 16:16:03 Branch: HEAD Handle: 2011033014160300 Modified files: rpm CHANGES rpm/tools dbconvert.c Log: fix conversion to older hash database format resulting in missing package from rpmdb Summary: RevisionChanges Path 1.3585 +2 -0 rpm/CHANGES 2.2 +13 -2 rpm/tools/dbconvert.c patch -p0 '@@ .' Index: rpm/CHANGES $ cvs diff -u -r1.3584 -r1.3585 CHANGES --- rpm/CHANGES 30 Mar 2011 10:53:26 - 1.3584 +++ rpm/CHANGES 30 Mar 2011 14:16:03 - 1.3585 @@ -1,4 +1,6 @@ 5.4.0 - 5.4.1: +- proyvind: dbconvert: fix conversion to older hash database format + resulting in missing package from rpmdb - devzero2000: add %_initddir macro for Mandriva (ref http://lists.mandriva.com/maintainers/2011-03/msg00252.php) - jbj: fix: reduce false positives checking for @@ . patch -p0 '@@ .' Index: rpm/tools/dbconvert.c $ cvs diff -u -r2.1 -r2.2 dbconvert.c --- rpm/tools/dbconvert.c 27 Jan 2011 00:57:58 - 2.1 +++ rpm/tools/dbconvert.c 30 Mar 2011 14:16:03 - 2.2 @@ -151,6 +151,17 @@ int doswap = -1; float pct = 0; uint8_t tmp; + /* + * Older rpm places number of keys as first entry of hash database, + * so any package placed at beginning of it will be missing from + * rpmdb... + */ + if (dbtype == 1){ + key.data = i; + data.data = nkeys; + key.size = data.size = sizeof(uint32_t); + xx = dbiNew-dbi_db-put(dbiNew-dbi_db, NULL, key, data, 0); + } while ((xx = dbcpCur-c_get(dbcpCur, key, data, DB_NEXT)) == 0) { tmp = pct; pct = (100*(float)++i/nkeys) + 0.5; @@ -159,8 +170,8 @@ fprintf(stderr, \rconverting %s%s/Packages: %u/%u %d%%, prefix prefix[0] ? prefix : , tmppath, i, nkeys, (int)pct); } fflush(stdout); - if(!*(uint32_t*)key.data) - continue; + if(i == 1 !*(uint32_t*)key.data) + continue; if(__builtin_expect(doswap, 1) 0) { if((htole32(*(uint32_t*)key.data) 1000 swap 0) || (htole32(*(uint32_t*)key.data) 1000 swap 0)) @@ . __ RPM Package Managerhttp://rpm5.org CVS Sources Repositoryrpm-cvs@rpm5.org