[CVS] RPM: rpm/ CHANGES rpm/tools/ dbconvert.c

2011-07-06 Thread Per �yvind Karlsen
  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

2011-03-30 Thread Per �yvind Karlsen
  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