[CVS] RPM: rpm-5_4: 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:56:52
  Branch: rpm-5_4  Handle: 2011070612565101

  Modified files:   (Branch: rpm-5_4)
rpm CHANGES
rpm/tools   dbconvert.c

  Log:
dbconvert: fix segfault when no root is specified.

  Summary:
RevisionChanges Path
1.3501.2.145+1  -0  rpm/CHANGES
2.1.2.7 +2  -2  rpm/tools/dbconvert.c
  

  patch -p0 '@@ .'
  Index: rpm/CHANGES
  
  $ cvs diff -u -r1.3501.2.144 -r1.3501.2.145 CHANGES
  --- rpm/CHANGES   28 Jun 2011 12:26:10 -  1.3501.2.144
  +++ rpm/CHANGES   6 Jul 2011 12:56:51 -   1.3501.2.145
  @@ -1,4 +1,5 @@
   5.4.1 - 5.4.2
  +- proyvind: dbconvert: fix segfault when no root is specified.
   - devzero2000: merge afb patch portability of endian
   - proyvind: check-multiarch-files: remove unnecessary import of 
MDK::Common,
causing undesired dependency from perl dependency generator.
  @@ .
  patch -p0 '@@ .'
  Index: rpm/tools/dbconvert.c
  
  $ cvs diff -u -r2.1.2.6 -r2.1.2.7 dbconvert.c
  --- rpm/tools/dbconvert.c 28 Jun 2011 12:26:11 -  2.1.2.6
  +++ rpm/tools/dbconvert.c 6 Jul 2011 12:56:52 -   2.1.2.7
  @@ -82,7 +82,7 @@
 addMacro(NULL, __dbi_txn, NULL, 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]);
  @@ -90,7 +90,7 @@
 Globfree(gl);
   
 tsCur = rpmtsCreate();
  -  rpmtsSetRootDir(tsCur, prefix  prefix[0] ? prefix : NULL);
  +  rpmtsSetRootDir(tsCur, prefix  prefix  prefix[0] ? prefix : NULL);
 if(!rpmtsOpenDB(tsCur, O_RDONLY)) {
   if(dbtype == 1) {
 addMacro(NULL, _dbi_tags, NULL, 
Packages:Name:Basenames:Group:Requirename:Providename:Conflictname:Triggername:Dirnames:Requireversion:Provideversion:Installtid:Sigmd5:Sha1header:Filedigests:Depends:Pubkeys,
 -1);
  @@ .
__
RPM Package Managerhttp://rpm5.org
CVS Sources Repositoryrpm-cvs@rpm5.org


[CVS] RPM: rpm-5_4: 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:17:31
  Branch: rpm-5_4  Handle: 2011033014173100

  Modified files:   (Branch: rpm-5_4)
rpm CHANGES
rpm/tools   dbconvert.c

  Log:
fix conversion to older hash database format resulting in missing
package from rpmdb

  Summary:
RevisionChanges Path
1.3501.2.83 +2  -0  rpm/CHANGES
2.1.2.3 +13 -2  rpm/tools/dbconvert.c
  

  patch -p0 '@@ .'
  Index: rpm/CHANGES
  
  $ cvs diff -u -r1.3501.2.82 -r1.3501.2.83 CHANGES
  --- rpm/CHANGES   30 Mar 2011 11:09:47 -  1.3501.2.82
  +++ rpm/CHANGES   30 Mar 2011 14:17:31 -  1.3501.2.83
  @@ -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 duplicate 
keys(mdvbz#62822).
  @@ .
  patch -p0 '@@ .'
  Index: rpm/tools/dbconvert.c
  
  $ cvs diff -u -r2.1.2.2 -r2.1.2.3 dbconvert.c
  --- rpm/tools/dbconvert.c 27 Jan 2011 01:10:02 -  2.1.2.2
  +++ rpm/tools/dbconvert.c 30 Mar 2011 14:17:31 -  2.1.2.3
  @@ -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