[CVS] RPM: rpm/ CHANGES rpm/lib/ rpmts.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: 14-Dec-2010 09:07:57 Branch: HEAD Handle: 2010121408075601 Modified files: rpm CHANGES rpm/lib rpmts.c Log: rpmts: don't default rootDir to if set to NULL, as it confusing rpm checks on NULL / only, without , making ie. %posttrans scriptlets fail where NULL is used (mdvbz#61696). Summary: RevisionChanges Path 1.3506 +3 -0 rpm/CHANGES 2.189 +1 -1 rpm/lib/rpmts.c patch -p0 '@@ .' Index: rpm/CHANGES $ cvs diff -u -r1.3505 -r1.3506 CHANGES --- rpm/CHANGES 13 Dec 2010 19:14:53 - 1.3505 +++ rpm/CHANGES 14 Dec 2010 08:07:56 - 1.3506 @@ -1,6 +1,9 @@ 5.3.7 - 5.4a1: 5.3.6 - 5.3.7: +- proyvind: rpmts: don't default rootDir to if set to NULL, as it + confusing rpm checks on NULL / only, without , making ie. + %posttrans scriptlets fail where NULL is used (mdvbz#61696). - jbj: fix memory leak on user lookup error. - proyvind: rubygems: only add runtime dependencies (Rémy Clouard). - proyvind: export rpmbf.h rpmgi.h to public API. @@ . patch -p0 '@@ .' Index: rpm/lib/rpmts.c $ cvs diff -u -r2.188 -r2.189 rpmts.c --- rpm/lib/rpmts.c 29 Sep 2010 02:07:24 - 2.188 +++ rpm/lib/rpmts.c 14 Dec 2010 08:07:57 - 2.189 @@ -922,7 +922,7 @@ ts-rootDir = _free(ts-rootDir); if (rootDir == NULL) { -#ifndef DYING +#ifdef DYING ts-rootDir = xstrdup(); #endif return; @@ . __ RPM Package Managerhttp://rpm5.org CVS Sources Repositoryrpm-cvs@rpm5.org
[CVS] RPM: rpm/ CHANGES rpm/lib/ rpmts.c
RPM Package Manager, CVS Repository http://rpm5.org/cvs/ Server: rpm5.org Name: Jeff Johnson Root: /v/rpm/cvs Email: j...@rpm5.org Module: rpm Date: 29-Sep-2010 04:07:24 Branch: HEAD Handle: 2010092902072301 Modified files: rpm CHANGES rpm/lib rpmts.c Log: - solvedb's never need a chroot prefix. Summary: RevisionChanges Path 1.3456 +1 -0 rpm/CHANGES 2.188 +7 -2 rpm/lib/rpmts.c patch -p0 '@@ .' Index: rpm/CHANGES $ cvs diff -u -r1.3455 -r1.3456 CHANGES --- rpm/CHANGES 27 Sep 2010 23:48:52 - 1.3455 +++ rpm/CHANGES 29 Sep 2010 02:07:23 - 1.3456 @@ -1,4 +1,5 @@ 5.3.4 - 5.4a1: +- jbj: solvedb's never need a chroot prefix. 5.3.3 - 5.3.4: - jbj: release 5.3.4. @@ . patch -p0 '@@ .' Index: rpm/lib/rpmts.c $ cvs diff -u -r2.187 -r2.188 rpmts.c --- rpm/lib/rpmts.c 19 Aug 2010 01:04:56 - 2.187 +++ rpm/lib/rpmts.c 29 Sep 2010 02:07:24 - 2.188 @@ -250,6 +250,11 @@ rpmdb sdb = NULL; int sdbmode = O_RDONLY; const char * s = NULL; +#ifdef DYING /* XXX solevedb's never need chroot prefix. */ +const char * rootDir = ts-rootDir; +#else +const char * rootDir = /; +#endif ARGV_t av = NULL; int ac = 0; int rc = 0; @@ -295,11 +300,11 @@ /* XXX Lstat(fn, sb) to ensure a directory? */ addMacro(NULL, _dbpath, NULL, fn, RMIL_DEFAULT); - xx = rpmdbOpen(ts-rootDir, sdb, dbmode, (mode_t)0644); + xx = rpmdbOpen(rootDir, sdb, dbmode, (mode_t)0644); delMacro(NULL, _dbpath); if (xx) { - const char * dn = rpmGetPath(ts-rootDir, fn, NULL); + const char * dn = rpmGetPath(rootDir, /, fn, NULL); rpmlog(RPMLOG_WARNING, _(cannot open Solve database in %s\n), dn); dn = _free(dn); if (rc == 0) @@ . __ RPM Package Managerhttp://rpm5.org CVS Sources Repositoryrpm-cvs@rpm5.org
[CVS] RPM: rpm/ CHANGES rpm/lib/ rpmts.c
RPM Package Manager, CVS Repository http://rpm5.org/cvs/ Server: rpm5.org Name: Jeff Johnson Root: /v/rpm/cvs Email: j...@rpm5.org Module: rpm Date: 19-Aug-2010 03:04:57 Branch: HEAD Handle: 2010081901045501 Modified files: rpm CHANGES rpm/lib rpmts.c Log: - solve: use RPMTAG_PACKAGEORIGIN paths when available. Summary: RevisionChanges Path 1.3417 +1 -0 rpm/CHANGES 2.187 +21 -12 rpm/lib/rpmts.c patch -p0 '@@ .' Index: rpm/CHANGES $ cvs diff -u -r1.3416 -r1.3417 CHANGES --- rpm/CHANGES 16 Aug 2010 16:09:08 - 1.3416 +++ rpm/CHANGES 19 Aug 2010 01:04:55 - 1.3417 @@ -1,4 +1,5 @@ 5.3.2 - 5.4a1: +- jbj: solve: use RPMTAG_PACKAGEORIGIN paths when available. - jbj: neon: fix: permit building w neon-0.25.x. - jbj: ssl: fix: permit building w/o ECDSA. - jbj: ruby: fix: retrofit RSTRING_PTR/RSTRING_LEN into ruby-1.8.5. @@ . patch -p0 '@@ .' Index: rpm/lib/rpmts.c $ cvs diff -u -r2.186 -r2.187 rpmts.c --- rpm/lib/rpmts.c 13 Aug 2010 23:41:55 - 2.186 +++ rpm/lib/rpmts.c 19 Aug 2010 01:04:56 - 2.187 @@ -341,9 +341,8 @@ HE_t he = memset(alloca(sizeof(*he)), 0, sizeof(*he)); rpmbag bag = ts-bag; rpmsdb * sdbp = NULL; -const char * errstr; +const char * errstr = NULL; const char * str = NULL; -const char * qfmt; rpmmi mi; Header bh = NULL; Header h = NULL; @@ -400,7 +399,7 @@ continue; /* Look for a matching Provides: in suggested universe. */ - rpmtag = (*keyp == '/' ? RPMTAG_BASENAMES : RPMTAG_PROVIDENAME); + rpmtag = (*keyp == '/' ? RPMTAG_FILEPATHS : RPMTAG_PROVIDENAME); mi = rpmmiInit(sdb, rpmtag, keyp, keylen); while ((h = rpmmiNext(mi)) != NULL) { size_t hnamelen; @@ -441,15 +440,25 @@ if (bh == NULL) goto exit; -/* Format the suggested resolution path. */ -qfmt = rpmExpand(%{?_solve_name_fmt}, NULL); -if (qfmt == NULL || *qfmt == '\0') - goto exit; -str = headerSprintf(bh, qfmt, NULL, rpmHeaderFormats, errstr); -(void)headerFree(bh); +/* Get the path to the package file. */ +he-tag = RPMTAG_PACKAGEORIGIN; +he-p.ptr = NULL; +xx = headerGet(bh, he, 0); +if (he-p.str) { + str = he-p.str; + he-p.str = NULL; +} else { + /* Format the suggested resolution path. */ + const char * qfmt = rpmExpand(%{?_solve_name_fmt}, NULL); + if (qfmt == NULL || *qfmt == '\0') + goto exit; + str = headerSprintf(bh, qfmt, NULL, rpmHeaderFormats, errstr); + qfmt = _free(qfmt); +} + +(void) headerFree(bh); bh = NULL; -qfmt = _free(qfmt); -if (str == NULL) { +if (errstr) { rpmlog(RPMLOG_ERR, _(incorrect solve path format: %s\n), errstr); goto exit; } @@ -515,7 +524,7 @@ exit: if (_rpmts_debug) -fprintf(stderr, -- %s(%p,%p,%p) rc %d\n, __FUNCTION__, ts, ds, data, rc); +fprintf(stderr, -- %s(%p,%p,%p) rc %d N %s EVR %s F 0x%x\n, __FUNCTION__, ts, ds, data, rc, rpmdsN(ds), rpmdsEVR(ds), rpmdsFlags(ds)); return rc; } @@ . __ RPM Package Managerhttp://rpm5.org CVS Sources Repositoryrpm-cvs@rpm5.org
[CVS] RPM: rpm/ CHANGES rpm/lib/ rpmts.c rpmts.h
RPM Package Manager, CVS Repository http://rpm5.org/cvs/ Server: rpm5.org Name: Jeff Johnson Root: /v/rpm/cvs Email: j...@rpm5.org Module: rpm Date: 13-Aug-2010 23:38:39 Branch: HEAD Handle: 2010081321383800 Modified files: rpm CHANGES rpm/lib rpmts.c rpmts.h Log: - solve: loop over solve db's in a bag. Summary: RevisionChanges Path 1.3414 +1 -0 rpm/CHANGES 2.185 +128 -52rpm/lib/rpmts.c 2.133 +2 -2 rpm/lib/rpmts.h patch -p0 '@@ .' Index: rpm/CHANGES $ cvs diff -u -r1.3413 -r1.3414 CHANGES --- rpm/CHANGES 13 Aug 2010 21:34:02 - 1.3413 +++ rpm/CHANGES 13 Aug 2010 21:38:38 - 1.3414 @@ -1,4 +1,5 @@ 5.3.2 - 5.4a1: +- jbj: solve: loop over solve db's in a bag. - jbj: solve: stub-in toy add/del methods. - jbj: solve: permit multiple solvedb's in a rpmbag. - jbj: solve: generalize %_dbpath to permit multiple rpmdb's. @@ . patch -p0 '@@ .' Index: rpm/lib/rpmts.c $ cvs diff -u -r2.184 -r2.185 rpmts.c --- rpm/lib/rpmts.c 13 Aug 2010 13:12:15 - 2.184 +++ rpm/lib/rpmts.c 13 Aug 2010 21:38:38 - 2.185 @@ -33,6 +33,7 @@ #include rpmte.h #define _RPMTS_INTERNAL +#define _RPMBAG_INTERNAL #include rpmts.h #include rpmcli.h @@ -213,14 +214,30 @@ int rpmtsCloseSDB(rpmts ts) { +rpmbag bag = ts-bag; int rc = 0; -if (ts-sdb != NULL) { - (void) rpmswAdd(rpmtsOp(ts, RPMTS_OP_DBGET), ts-sdb-db_getops); - (void) rpmswAdd(rpmtsOp(ts, RPMTS_OP_DBPUT), ts-sdb-db_putops); - (void) rpmswAdd(rpmtsOp(ts, RPMTS_OP_DBDEL), ts-sdb-db_delops); - rc = rpmdbClose(ts-sdb); - ts-sdb = NULL; +if (bag != NULL) { + rpmsdb * sdbp = bag-sdbp; + int i = bag-nsdbp; + if (sdbp) + while (--i = 0) { + rpmdb sdb; + if (sdbp[i] == NULL) + continue; + sdb = sdbp[i]-_db; + if (sdb) { + int xx; + (void) rpmswAdd(rpmtsOp(ts, RPMTS_OP_DBGET), sdb-db_getops); + (void) rpmswAdd(rpmtsOp(ts, RPMTS_OP_DBPUT), sdb-db_putops); + (void) rpmswAdd(rpmtsOp(ts, RPMTS_OP_DBDEL), sdb-db_delops); + xx = rpmdbClose(sdb); + if (xx rc == 0) + rc = xx; + } + (void) rpmbagDel(bag, i); + } + ts-bag = rpmbagFree(ts-bag); } return rc; } @@ -228,9 +245,27 @@ int rpmtsOpenSDB(rpmts ts, int dbmode) { static int has_sdbpath = -1; +rpmbag bag = ts-bag; +rpmsdb * sdbp = NULL; +rpmdb sdb = NULL; +int sdbmode = O_RDONLY; +const char * s = NULL; +ARGV_t av = NULL; +int ac = 0; int rc = 0; +int xx; +int i; + +if (bag == NULL) { + bag = ts-bag = rpmbagNew(NULL, 0); + if (bag == NULL) + goto exit; +} +sdbp = bag-sdbp; +sdb = (sdbp[i] ? sdbp[i]-_db : NULL); +sdbmode = (sdbp[i] ? sdbp[i]-dbmode : O_RDONLY); -if (ts-sdb != NULL ts-sdbmode == dbmode) { +if (sdb != NULL sdbmode == dbmode) { rc = 0; goto exit; } @@ -244,19 +279,42 @@ goto exit; } -addMacro(NULL, _dbpath, NULL, %{_solve_dbpath}, RMIL_DEFAULT); +s = rpmExpand(%{?_solve_dbpath}, NULL); +xx = argvSplit(av, s, :); +ac = argvCount(av); + +for (i = 0; i ac; i++) { + const char * fn; + urltype ut; -rc = rpmdbOpen(ts-rootDir, ts-sdb, ts-sdbmode, (mode_t)0644); -if (rc) { - const char * dn; - dn = rpmGetPath(ts-rootDir, %{_dbpath}, NULL); - rpmlog(RPMLOG_WARNING, - _(cannot open Solve database in %s\n), dn); - dn = _free(dn); - /* XXX only try to open the solvedb once. */ - has_sdbpath = 0; + if (av[i] == NULL || *av[i] == '\0') + continue; + + fn = NULL; + ut = urlPath(av[i], fn); + + /* XXX Lstat(fn, sb) to ensure a directory? */ + addMacro(NULL, _dbpath, NULL, fn, RMIL_DEFAULT); + xx = rpmdbOpen(ts-rootDir, sdb, dbmode, (mode_t)0644); + delMacro(NULL, _dbpath); + + if (xx) { + const char * dn = rpmGetPath(ts-rootDir, fn, NULL); + rpmlog(RPMLOG_WARNING, _(cannot open Solve database in %s\n), dn); + dn = _free(dn); + if (rc == 0) + rc = xx; + +
[CVS] RPM: rpm/ CHANGES rpm/lib/ rpmts.c rpmts.h rpm/rpmdb/ pkgio.c rp...
RPM Package Manager, CVS Repository http://rpm5.org/cvs/ Server: rpm5.org Name: Jeff Johnson Root: /v/rpm/cvs Email: j...@rpm5.org Module: rpm Date: 21-May-2010 07:01:03 Branch: HEAD Handle: 2010052105010102 Modified files: rpm CHANGES rpm/lib rpmts.c rpmts.h rpm/rpmdb pkgio.c rpmns.c signature.c Log: - hkp: refactor pubkey material from rpmts - rpmhkp. Summary: RevisionChanges Path 1.3362 +1 -0 rpm/CHANGES 2.183 +4 -9 rpm/lib/rpmts.c 2.132 +1 -4 rpm/lib/rpmts.h 1.108 +64 -42 rpm/rpmdb/pkgio.c 1.13+18 -10 rpm/rpmdb/rpmns.c 1.65+18 -1 rpm/rpmdb/signature.c patch -p0 '@@ .' Index: rpm/CHANGES $ cvs diff -u -r1.3361 -r1.3362 CHANGES --- rpm/CHANGES 21 May 2010 04:41:33 - 1.3361 +++ rpm/CHANGES 21 May 2010 05:01:01 - 1.3362 @@ -1,4 +1,5 @@ 5.3.0 - 5.4a1: +- jbj: hkp: refactor pubkey material from rpmts - rpmhkp. - jbj: hkp: fix: unbreak package signatures (but creepy logic todo++). - jbj: hkp: pull the trailing ...=0x out of _hkp_keyserver_query. - jbj: hkp: retrofit macro madness disablers for hkp:// lookups. @@ . patch -p0 '@@ .' Index: rpm/lib/rpmts.c $ cvs diff -u -r2.182 -r2.183 rpmts.c --- rpm/lib/rpmts.c 8 May 2010 22:53:26 - 2.182 +++ rpm/lib/rpmts.c 21 May 2010 05:01:02 - 2.183 @@ -12,6 +12,7 @@ #include rpmpgp.h #include rpmmacro.h/* XXX rpmtsOpenDB() needs rpmGetPath */ #include rpmkeyring.h +#include rpmhkp.h #include rpmsx.h #include rpmtypes.h @@ -644,11 +645,8 @@ ts-orderAlloced = 0; ts-keyring = rpmKeyringFree(ts-keyring); -ts-pkpkt = _free(ts-pkpkt); -ts-pkpktlen = 0; -(void) rpmbfFree((rpmbf)ts-pkbf); -ts-pkbf = NULL; -memset(ts-pksignid, 0, sizeof(ts-pksignid)); +(void) rpmhkpFree(ts-hkp); +ts-hkp = NULL; if (_rpmts_stats) rpmtsPrintStats(ts); @@ -1426,10 +1424,7 @@ ts-probs = NULL; ts-keyring = NULL; -ts-pkpkt = NULL; -ts-pkpktlen = 0; -ts-pkbf = NULL; -memset(ts-pksignid, 0, sizeof(ts-pksignid)); +ts-hkp = NULL; ts-dig = NULL; /* Set autorollback goal to the end of time. */ @@ . patch -p0 '@@ .' Index: rpm/lib/rpmts.h $ cvs diff -u -r2.131 -r2.132 rpmts.h --- rpm/lib/rpmts.h 8 May 2010 22:53:26 - 2.131 +++ rpm/lib/rpmts.h 21 May 2010 05:01:02 - 2.132 @@ -308,10 +308,7 @@ /*...@refcounted@*/ /*...@relnull@*/ rpmKeyring keyring; /*! Keyring in use. */ /*...@relnull@*/ -rpmuint8_t * pkpkt; /*! Current pubkey packet. */ -size_t pkpktlen; /*! Current pubkey packet length. */ -rpmuint8_t pksignid[8]; /*! Current pubkey fingerprint. */ -void * pkbf; /*! Negative pubkey lookup Bloom filter. */ +void * hkp; /*! Pubkey validation container. */ struct rpmop_s ops[RPMTS_OP_MAX]; @@ . patch -p0 '@@ .' Index: rpm/rpmdb/pkgio.c $ cvs diff -u -r1.107 -r1.108 pkgio.c --- rpm/rpmdb/pkgio.c 21 May 2010 03:16:15 - 1.107 +++ rpm/rpmdb/pkgio.c 21 May 2010 05:01:03 - 1.108 @@ -16,8 +16,9 @@ #include rpmio_internal.h #include rpmcb.h #include rpmbc.h /* XXX beecrypt base64 */ -#include rpmbf.h /* XXX negative lookup cache */ #include rpmmacro.h +#define _RPMHKP_INTERNAL +#include rpmhkp.h #include rpmku.h #define _RPMTAG_INTERNAL @@ -163,41 +164,51 @@ pgpDigParams pubp = pgpGetPubkey(dig); rpmRC res = RPMRC_NOKEY; const char * pubkeysource = NULL; -rpmbf bf; +rpmhkp hkp = NULL; +rpmbf awol; rpmiob iob = NULL; int krcache = 1; /* XXX assume pubkeys are cached in keyutils keyring. */ int xx; +if (_rpmhkp_debug) +fprintf(stderr, -- %s(%p,%p)\n, __FUNCTION__, ts, _dig); + assert(dig != NULL); assert(sigp != NULL); assert(pubp != NULL); /*...@-sefparams@*/ assert(rpmtsDig(ts) == dig); /*...@=sefparams@*/ +if (ts-hkp == NULL) + ts-hkp = rpmhkpNew(NULL, 0); +hkp = rpmhkpLink(ts-hkp); +awol =
[CVS] RPM: rpm/ CHANGES rpm/lib/ rpmts.c rpmts.h rpm/rpmdb/ pkgio.c
RPM Package Manager, CVS Repository http://rpm5.org/cvs/ Server: rpm5.org Name: Jeff Johnson Root: /v/rpm/cvs Email: j...@rpm5.org Module: rpm Date: 09-May-2010 00:53:27 Branch: HEAD Handle: 2010050822532501 Modified files: rpm CHANGES rpm/lib rpmts.c rpmts.h rpm/rpmdb pkgio.c Log: - add a negative pubkey lookup Bloom filter. Summary: RevisionChanges Path 1.3348 +1 -0 rpm/CHANGES 2.182 +3 -0 rpm/lib/rpmts.c 2.131 +1 -0 rpm/lib/rpmts.h 1.106 +19 -4 rpm/rpmdb/pkgio.c patch -p0 '@@ .' Index: rpm/CHANGES $ cvs diff -u -r1.3347 -r1.3348 CHANGES --- rpm/CHANGES 8 May 2010 14:58:22 - 1.3347 +++ rpm/CHANGES 8 May 2010 22:53:25 - 1.3348 @@ -1,4 +1,5 @@ 5.3.0 - 5.4a1: +- jbj: add a negative pubkey lookup Bloom filter. - jbj: fix: save chroot value across embedded scriptlet execution. from Przemyslaw Iskra spa...@pld-linux.org. - jbj: update version used details in INSTALL. @@ . patch -p0 '@@ .' Index: rpm/lib/rpmts.c $ cvs diff -u -r2.181 -r2.182 rpmts.c --- rpm/lib/rpmts.c 6 Mar 2010 15:31:29 - 2.181 +++ rpm/lib/rpmts.c 8 May 2010 22:53:26 - 2.182 @@ -646,6 +646,8 @@ ts-keyring = rpmKeyringFree(ts-keyring); ts-pkpkt = _free(ts-pkpkt); ts-pkpktlen = 0; +(void) rpmbfFree((rpmbf)ts-pkbf); +ts-pkbf = NULL; memset(ts-pksignid, 0, sizeof(ts-pksignid)); if (_rpmts_stats) @@ -1426,6 +1428,7 @@ ts-keyring = NULL; ts-pkpkt = NULL; ts-pkpktlen = 0; +ts-pkbf = NULL; memset(ts-pksignid, 0, sizeof(ts-pksignid)); ts-dig = NULL; @@ . patch -p0 '@@ .' Index: rpm/lib/rpmts.h $ cvs diff -u -r2.130 -r2.131 rpmts.h --- rpm/lib/rpmts.h 21 Feb 2010 20:52:35 - 2.130 +++ rpm/lib/rpmts.h 8 May 2010 22:53:26 - 2.131 @@ -311,6 +311,7 @@ rpmuint8_t * pkpkt; /*! Current pubkey packet. */ size_t pkpktlen; /*! Current pubkey packet length. */ rpmuint8_t pksignid[8]; /*! Current pubkey fingerprint. */ +void * pkbf; /*! Negative pubkey lookup Bloom filter. */ struct rpmop_s ops[RPMTS_OP_MAX]; @@ . patch -p0 '@@ .' Index: rpm/rpmdb/pkgio.c $ cvs diff -u -r1.105 -r1.106 pkgio.c --- rpm/rpmdb/pkgio.c 6 Mar 2010 16:20:46 - 1.105 +++ rpm/rpmdb/pkgio.c 8 May 2010 22:53:26 - 1.106 @@ -16,6 +16,7 @@ #include rpmio_internal.h #include rpmcb.h #include rpmbc.h /* XXX beecrypt base64 */ +#include rpmbf.h /* XXX negative lookup cache */ #include rpmmacro.h #include rpmku.h @@ -162,6 +163,7 @@ pgpDigParams pubp = pgpGetPubkey(dig); rpmRC res = RPMRC_NOKEY; const char * pubkeysource = NULL; +rpmbf bf; rpmiob iob = NULL; int krcache = 1; /* XXX assume pubkeys are cached in keyutils keyring. */ int xx; @@ -189,6 +191,11 @@ memset(ts-pksignid, 0, sizeof(ts-pksignid)); } +/* Has this pubkey failled a previous lookup? */ +if (ts-pkpkt == NULL (bf = ts-pkbf) != NULL + rpmbfChk(bf, sigp-signid, sizeof(sigp-signid))) + return res; + /* Try keyutils keyring lookup. */ if (ts-pkpkt == NULL) { iob = NULL; @@ -259,10 +266,9 @@ const char * fn = rpmExpand(%{_hkp_keyserver_query}, pgpHexStr(sigp-signid, sizeof(sigp-signid)), NULL); - xx = 0; - if (fn *fn != '%') { - xx = (pgpReadPkts(fn, ts-pkpkt, ts-pkpktlen) != PGPARMOR_PUBKEY); - } + xx = (fn *fn != '%') + ? (pgpReadPkts(fn, ts-pkpkt, ts-pkpktlen) != PGPARMOR_PUBKEY) + : 1;/* XXX assume failure */ fn = _free(fn); if (xx) { ts-pkpkt = _free(ts-pkpkt); @@ -336,6 +342,15 @@ if (res != RPMRC_OK) { ts-pkpkt = _free(ts-pkpkt); ts-pkpktlen = 0; + if ((bf = ts-pkbf) == NULL) { + static size_t n = 64; + static double e = 1.0e-6; + size_t m = 0; + size_t k = 0; + rpmbfParams(n, e, m, k); + ts-pkbf = bf = rpmbfNew(m, k, 0); + } + xx = rpmbfAdd(bf, sigp-signid,
[CVS] RPM: rpm/ CHANGES rpm/lib/ rpmts.c
RPM Package Manager, CVS Repository http://rpm5.org/cvs/ Server: rpm5.org Name: Jeff Johnson Root: /v/rpm/cvs Email: j...@rpm5.org Module: rpm Date: 09-Dec-2009 04:55:35 Branch: HEAD Handle: 2009120903553302 Modified files: rpm CHANGES rpm/lib rpmts.c Log: - rpmts: take checkpoints beroe and after --rebuilddb. Summary: RevisionChanges Path 1.3188 +1 -0 rpm/CHANGES 2.178 +16 -7 rpm/lib/rpmts.c patch -p0 '@@ .' Index: rpm/CHANGES $ cvs diff -u -r1.3187 -r1.3188 CHANGES --- rpm/CHANGES 8 Dec 2009 21:20:34 - 1.3187 +++ rpm/CHANGES 9 Dec 2009 03:55:33 - 1.3188 @@ -1,5 +1,6 @@ 5.2b1 - 5.3a1 +- jbj: rpmts: take checkpoints beroe and after --rebuilddb. - jbj: rpmdb: do in-place rebuilddb, opt-in for now. - jbj: rpmdb: lazily create non-existent secondary indices. - jbj: rpmdb: consolidate primary key swabbing to network order. @@ . patch -p0 '@@ .' Index: rpm/lib/rpmts.c $ cvs diff -u -r2.177 -r2.178 rpmts.c --- rpm/lib/rpmts.c 7 Dec 2009 17:53:47 - 2.177 +++ rpm/lib/rpmts.c 9 Dec 2009 03:55:35 - 2.178 @@ -116,10 +116,8 @@ ts-dbmode = dbmode; rc = rpmdbOpen(ts-rootDir, ts-rdb, ts-dbmode, 0644); if (rc) { - const char * dn; - dn = rpmGetPath(ts-rootDir, %{_dbpath}, NULL); - rpmlog(RPMLOG_ERR, - _(cannot open Packages database in %s\n), dn); + const char * dn = rpmGetPath(ts-rootDir, %{_dbpath}, NULL); + rpmlog(RPMLOG_ERR, _(cannot open Packages database in %s\n), dn); dn = _free(dn); } return rc; @@ -128,11 +126,22 @@ int rpmtsRebuildDB(rpmts ts) { void * lock = rpmtsAcquireLock(ts); -int rc = rpmtsOpenDB(ts, ts-dbmode); +int rc; + +rc = rpmtsOpenDB(ts, O_RDWR); +if (rc) goto exit; -if (rc == 0) - rc = rpmdbRebuild(ts-rootDir, +rc = rpmtxnCheckpoint(rpmtsGetRdb(ts)); +if (rc) goto exit; + +rc = rpmdbRebuild(ts-rootDir, (!(rpmtsVSFlags(ts) RPMVSF_NOHDRCHK) ? ts : NULL)); +if (rc) goto exit; + +rc = rpmtxnCheckpoint(rpmtsGetRdb(ts)); +if (rc) goto exit; + +exit: lock = rpmtsFreeLock(lock); return rc; } @@ . __ RPM Package Managerhttp://rpm5.org CVS Sources Repositoryrpm-cvs@rpm5.org
[CVS] RPM: rpm/ CHANGES rpm/lib/ rpmts.c rpm/rpmdb/ rpmdb.c
RPM Package Manager, CVS Repository http://rpm5.org/cvs/ Server: rpm5.org Name: Jeff Johnson Root: /v/rpm/cvs Email: j...@rpm5.org Module: rpm Date: 07-Dec-2009 18:53:47 Branch: HEAD Handle: 2009120717534601 Modified files: rpm CHANGES rpm/lib rpmts.c rpm/rpmdb rpmdb.c Log: - rpmdb: handle optional .A just like optional -V and -R patterns. Summary: RevisionChanges Path 1.3183 +1 -0 rpm/CHANGES 2.177 +3 -73 rpm/lib/rpmts.c 1.348 +4 -2 rpm/rpmdb/rpmdb.c patch -p0 '@@ .' Index: rpm/CHANGES $ cvs diff -u -r1.3182 -r1.3183 CHANGES --- rpm/CHANGES 4 Dec 2009 23:22:51 - 1.3182 +++ rpm/CHANGES 7 Dec 2009 17:53:46 - 1.3183 @@ -1,5 +1,6 @@ 5.2b1 - 5.3a1 +- jbj: rpmdb: handle optional .A just like optional -V and -R patterns. - jbj: rpmdb: use RPMTAG_NVRA patterns for RPMDBI_LABEL rpmmi iterators. - jbj: rpmdb: permit anchored patterns on RPMDBI_LABEL retrieves. strings are escaped and anchored. Still only RPMTAG_NAME, RPMTAG_NVRA next. @@ . patch -p0 '@@ .' Index: rpm/lib/rpmts.c $ cvs diff -u -r2.176 -r2.177 rpmts.c --- rpm/lib/rpmts.c 4 Dec 2009 04:51:43 - 2.176 +++ rpm/lib/rpmts.c 7 Dec 2009 17:53:47 - 2.177 @@ -141,79 +141,9 @@ rpmmi rpmtsInitIterator(const rpmts ts, rpmTag rpmtag, const void * keyp, size_t keylen) { -rpmmi mi; -const char * arch = NULL; -int xx; - -if (ts-rdb == NULL rpmtsOpenDB(ts, ts-dbmode)) - return NULL; - -/* Parse out N(EVR).A tokens from a label key. */ -if (rpmtag == RPMDBI_LABEL keyp != NULL) { - const char * s = keyp; - const char *se; - size_t slen = strlen(s); - char *t = alloca(slen+1); - int level = 0; - int c; - - keyp = t; - while ((c = *s++) != '\0') { - switch (c) { - default: - *t++ = (char)c; - /*...@switchbreak@*/ break; - case '(': - /* XXX Fail if nested parens. */ - if (level++ != 0) { - rpmlog(RPMLOG_ERR, _(extra '(' in package label: %s\n), (char *)keyp); - return NULL; - } - /* Parse explicit epoch. */ - for (se = s; *se xisdigit(*se); se++) - {}; - if (*se == ':') { - /* XXX skip explicit epoch's (for now) */ - *t++ = '-'; - s = se + 1; - } else { - /* No Epoch: found. Convert '(' to '-' and chug. */ - *t++ = '-'; - } - /*...@switchbreak@*/ break; - case ')': - /* XXX Fail if nested parens. */ - if (--level != 0) { - rpmlog(RPMLOG_ERR, _(missing '(' in package label: %s\n), (char *)keyp); - return NULL; - } - /* Don't copy trailing ')' */ - /*...@switchbreak@*/ break; - } - } - if (level) { - rpmlog(RPMLOG_ERR, _(missing ')' in package label: %s\n), (char *)keyp); - return NULL; - } - *t = '\0'; - t = (char *) keyp; - t = strrchr(t, '.'); - /* Is this a valid .arch suffix? */ - if (t != NULL rpmnsArch(t+1)) { -*t++ = '\0'; -arch = t; - } -} - -mi = rpmmiInit(ts-rdb, rpmtag, keyp, keylen); - -/* Verify header signature/digest during retrieve (if not disabled). */ -if (mi !(rpmtsVSFlags(ts) RPMVSF_NOHDRCHK)) - (void) rpmmiSetHdrChk(mi, ts); - -/* Select specified arch only. */ -if (arch != NULL) - xx = rpmmiAddPattern(mi, RPMTAG_ARCH, RPMMIRE_DEFAULT, arch); +rpmmi mi = (ts-rdb == NULL rpmtsOpenDB(ts, ts-dbmode)) + ? NULL + : rpmmiInit(ts-rdb, rpmtag, keyp, keylen); return mi; } /*...@=compdef@*/ @@ . patch -p0 '@@ .' Index: rpm/rpmdb/rpmdb.c $ cvs diff -u -r1.347 -r1.348 rpmdb.c --- rpm/rpmdb/rpmdb.c 6 Dec 2009 20:22:01 - 1.347 +++ rpm/rpmdb/rpmdb.c 7 Dec 2009 17:53:47 - 1.348 @@ -1296,7 +1296,7 @@ char * te; if (_pre == NULL) _pre = ^; -if (_post == NULL) _post = (-[^-]+-[^-]+|-[^-]+|)\\.[^.]+$; +
[CVS] RPM: rpm/ CHANGES rpm/lib/ rpmts.c rpmts.h
RPM Package Manager, CVS Repository http://rpm5.org/cvs/ Server: rpm5.org Name: Jeff Johnson Root: /v/rpm/cvs Email: j...@rpm5.org Module: rpm Date: 04-Dec-2009 05:51:44 Branch: HEAD Handle: 2009120404514300 Modified files: rpm CHANGES rpm/lib rpmts.c rpmts.h Log: - rpm.org: Only report disk space/inode issues for affected packages. Summary: RevisionChanges Path 1.3178 +1 -0 rpm/CHANGES 2.176 +10 -4 rpm/lib/rpmts.c 2.125 +2 -0 rpm/lib/rpmts.h patch -p0 '@@ .' Index: rpm/CHANGES $ cvs diff -u -r1.3177 -r1.3178 CHANGES --- rpm/CHANGES 4 Dec 2009 04:16:15 - 1.3177 +++ rpm/CHANGES 4 Dec 2009 04:51:43 - 1.3178 @@ -1,5 +1,6 @@ 5.2b1 - 5.3a1 +- rpm.org: Only report disk space/inode issues for affected packages. - jbj: rpmdb: mark code to renumber primary keys when needed. - jbj: rpmmi: fix: return native endian, but store big endian, primary keys. - jbj: DB_CONFIG: create /var/lib/rpm/tmp subdir. @@ . patch -p0 '@@ .' Index: rpm/lib/rpmts.c $ cvs diff -u -r2.175 -r2.176 rpmts.c --- rpm/lib/rpmts.c 17 Nov 2009 00:23:05 - 2.175 +++ rpm/lib/rpmts.c 4 Dec 2009 04:51:43 - 2.176 @@ -1146,17 +1146,23 @@ for (i = 0; i ts-filesystemCount; i++, dsi++) { if (dsi-f_bavail 0 adj_fs_blocks(dsi-bneeded) dsi-f_bavail) { - rpmpsAppend(ps, RPMPROB_DISKSPACE, + if (dsi-bneeded != dsi-obneeded) { + rpmpsAppend(ps, RPMPROB_DISKSPACE, rpmteNEVR(te), rpmteKey(te), ts-filesystems[i], NULL, NULL, -(adj_fs_blocks(dsi-bneeded) - dsi-f_bavail) * dsi-f_bsize); + (adj_fs_blocks(dsi-bneeded) - dsi-f_bavail) * dsi-f_bsize); + dsi-obneeded = dsi-bneeded; + } } if (dsi-f_favail 0 adj_fs_blocks(dsi-ineeded) dsi-f_favail) { - rpmpsAppend(ps, RPMPROB_DISKNODES, + if (dsi-ineeded != dsi-oineeded) { + rpmpsAppend(ps, RPMPROB_DISKNODES, rpmteNEVR(te), rpmteKey(te), ts-filesystems[i], NULL, NULL, - (adj_fs_blocks(dsi-ineeded) - dsi-f_favail)); + (adj_fs_blocks(dsi-ineeded) - dsi-f_favail)); + dsi-oineeded = dsi-ineeded; + } } if ((dsi-bneeded || dsi-ineeded) (dsi-f_flag ST_RDONLY)) { @@ . patch -p0 '@@ .' Index: rpm/lib/rpmts.h $ cvs diff -u -r2.124 -r2.125 rpmts.h --- rpm/lib/rpmts.h 4 Dec 2009 04:18:51 - 2.124 +++ rpm/lib/rpmts.h 4 Dec 2009 04:51:43 - 2.125 @@ -188,6 +188,8 @@ signed long long bneeded;/*! No. of blocks needed. */ signed long long ineeded;/*! No. of inodes needed. */ +signed long long obneeded; /*! Bookkeeping to avoid duplicate reports. */ +signed long long oineeded; /*! Bookkeeping to avoid duplicate reports. */ dev_t dev; /*! File system device number. */ }; @@ . __ RPM Package Managerhttp://rpm5.org CVS Sources Repositoryrpm-cvs@rpm5.org
[CVS] RPM: rpm/ CHANGES rpm/lib/ rpmts.c
RPM Package Manager, CVS Repository http://rpm5.org/cvs/ Server: rpm5.org Name: Jeff Johnson Root: /v/rpm/cvs Email: j...@rpm5.org Module: rpm Date: 25-Jun-2009 14:38:49 Branch: HEAD Handle: 2009062512384801 Modified files: rpm CHANGES rpm/lib rpmts.c Log: - selinux: fix: disabler bit toggle sense was inverted. Summary: RevisionChanges Path 1.3032 +1 -0 rpm/CHANGES 2.171 +4 -4 rpm/lib/rpmts.c patch -p0 '@@ .' Index: rpm/CHANGES $ cvs diff -u -r1.3031 -r1.3032 CHANGES --- rpm/CHANGES 22 Jun 2009 00:25:56 - 1.3031 +++ rpm/CHANGES 25 Jun 2009 12:38:48 - 1.3032 @@ -1,5 +1,6 @@ 5.2b1 - 5.3a1 +- jbj: selinux: fix: disabler bit toggle sense was inverted. - jbj: js: add getters/setters to handle defvar() variables. - jbj: js: add methods and unit tests for the Aug class. - jbj: augtool: finish proof-of-concept embedding. stdout capture todo++. @@ . patch -p0 '@@ .' Index: rpm/lib/rpmts.c $ cvs diff -u -r2.170 -r2.171 rpmts.c --- rpm/lib/rpmts.c 15 May 2009 13:40:58 - 2.170 +++ rpm/lib/rpmts.c 25 Jun 2009 12:38:49 - 2.171 @@ -1244,9 +1244,9 @@ if (ts != NULL) { transFlags = ts-transFlags; if (rpmtsSELinuxEnabled(ts) 0) - transFlags |= RPMTRANS_FLAG_NOCONTEXTS; - else transFlags = ~RPMTRANS_FLAG_NOCONTEXTS; + else + transFlags |= RPMTRANS_FLAG_NOCONTEXTS; } return transFlags; } @@ -1257,9 +1257,9 @@ if (ts != NULL) { otransFlags = ts-transFlags; if (rpmtsSELinuxEnabled(ts) 0) - transFlags |= RPMTRANS_FLAG_NOCONTEXTS; - else transFlags = ~RPMTRANS_FLAG_NOCONTEXTS; + else + transFlags |= RPMTRANS_FLAG_NOCONTEXTS; ts-transFlags = transFlags; } return otransFlags; @@ . __ RPM Package Managerhttp://rpm5.org CVS Sources Repositoryrpm-cvs@rpm5.org
[CVS] RPM: rpm/ CHANGES rpm/lib/ rpmts.c rpmts.h
RPM Package Manager, CVS Repository http://rpm5.org/cvs/ Server: rpm5.org Name: Jeff Johnson Root: /v/rpm/cvs Email: j...@rpm5.org Module: rpm Date: 24-Mar-2009 18:22:54 Branch: HEAD Handle: 2009032417225301 Modified files: rpm CHANGES rpm/lib rpmts.c rpmts.h Log: - yarn: wire up rpmtsFini, mark rpmtsFree for destruction. Summary: RevisionChanges Path 1.2866 +1 -0 rpm/CHANGES 2.164 +54 -65 rpm/lib/rpmts.c 2.114 +4 -0 rpm/lib/rpmts.h patch -p0 '@@ .' Index: rpm/CHANGES $ cvs diff -u -r1.2865 -r1.2866 CHANGES --- rpm/CHANGES 24 Mar 2009 16:45:54 - 1.2865 +++ rpm/CHANGES 24 Mar 2009 17:22:53 - 1.2866 @@ -1,5 +1,6 @@ 5.2a3 - 5.2a4: +- jbj: yarn: wire up rpmtsFini, mark rpmtsFree for destruction. - jbj: yarn: for now, don't assert fail, just print FIXME. - jbj: yarn: wire up headerScrub, eliminate header{Link,Unlink}. - devzero2000: fix: add autofu AC_CPP_FUNC portability macro in the acinclude.m4 @@ . patch -p0 '@@ .' Index: rpm/lib/rpmts.c $ cvs diff -u -r2.163 -r2.164 rpmts.c --- rpm/lib/rpmts.c 21 Mar 2009 20:15:39 - 2.163 +++ rpm/lib/rpmts.c 24 Mar 2009 17:22:54 - 2.164 @@ -88,24 +88,6 @@ /*...@unchecked@*/ int _rpmts_macros = 0; - -/*...@unchecked@*/ /*...@null@*/ -rpmioPool _rpmtsPool; - -static rpmts rpmtsGetPool(/*...@null@*/ rpmioPool pool) - /*...@modifies pool @*/ -{ -rpmts ts; - -if (_rpmtsPool == NULL) { - _rpmtsPool = rpmioNewPool(ts, sizeof(*ts), -1, _rpmts_debug, - NULL, NULL, NULL); - pool = _rpmtsPool; -} -return (rpmts) rpmioGetPool(pool, sizeof(*ts)); -} - - int rpmtsCloseDB(rpmts ts) { int rc = 0; @@ -636,82 +618,89 @@ /*...@=globstate@*/ } -rpmts rpmtsFree(rpmts ts) +static void rpmtsFini(void * _ts) + /*...@modifies *_ts @*/ { -if (ts == NULL) - return NULL; - -yarnPossess(ts-_item.use); -/*...@-modfilesys@*/ -if (_rpmts_debug) -fprintf(stderr, -- ts %p -- %ld %s at %s:%u\n, ts, yarnPeekLock(ts-_item.use), tsCreate, __FILE__, __LINE__); -/*...@=modfilesys@*/ - -if (yarnPeekLock(ts-_item.use) = 1L) { +rpmts ts = _ts; /*...@-nullstate@*/ /* FIX: partial annotations */ - /* XXX there's a recursion here ... release and reacquire the lock */ +/* XXX there's a recursion here ... release and reacquire the lock */ #ifndef BUGGY - yarnRelease(ts-_item.use); /* XXX hack-o-round */ +yarnRelease(ts-_item.use); /* XXX hack-o-round */ #endif - rpmtsEmpty(ts); +rpmtsEmpty(ts); #ifndef BUGGY - yarnPossess(ts-_item.use); /* XXX hack-o-round */ +yarnPossess(ts-_item.use); /* XXX hack-o-round */ #endif /*...@=nullstate@*/ - ts-PRCO = rpmdsFreePRCO(ts-PRCO); +ts-PRCO = rpmdsFreePRCO(ts-PRCO); - (void) rpmtsCloseDB(ts); +(void) rpmtsCloseDB(ts); - (void) rpmtsCloseSDB(ts); +(void) rpmtsCloseSDB(ts); - ts-sx = rpmsxFree(ts-sx); +ts-sx = rpmsxFree(ts-sx); - ts-removedPackages = _free(ts-removedPackages); +ts-removedPackages = _free(ts-removedPackages); - ts-availablePackages = rpmalFree(ts-availablePackages); - ts-numAvailablePackages = 0; +ts-availablePackages = rpmalFree(ts-availablePackages); +ts-numAvailablePackages = 0; - ts-dsi = _free(ts-dsi); +ts-dsi = _free(ts-dsi); - if (ts-scriptFd != NULL) { +if (ts-scriptFd != NULL) { /*...@-refcounttrans@*/ /* FIX: XfdFree annotation */ - ts-scriptFd = fdFree(ts-scriptFd, rpmtsFree); + ts-scriptFd = fdFree(ts-scriptFd, rpmtsFree); /*...@=refcounttrans@*/ - ts-scriptFd = NULL; - } - ts-rootDir = _free(ts-rootDir); - ts-currDir = _free(ts-currDir); + ts-scriptFd = NULL; +} +ts-rootDir = _free(ts-rootDir); +ts-currDir = _free(ts-currDir); /*...@-type +voidabstract @*//* FIX: double indirection */ - ts-order = _free(ts-order); +ts-order = _free(ts-order); /*...@=type =voidabstract @*/ - ts-orderAlloced = 0; +ts-orderAlloced = 0; - ts-keyring = rpmKeyringFree(ts-keyring); - ts-pkpkt = _free(ts-pkpkt); - ts-pkpktlen = 0; - memset(ts-pksignid, 0,
[CVS] RPM: rpm/ CHANGES rpm/lib/ rpmts.c rpm/rpmio/ rpmdav.c rpmdav.h
RPM Package Manager, CVS Repository http://rpm5.org/cvs/ Server: rpm5.org Name: Jeff Johnson Root: /v/rpm/cvs Email: [EMAIL PROTECTED] Module: rpm Date: 30-Oct-2008 16:56:22 Branch: HEAD Handle: 2008103015562101 Modified files: rpm CHANGES rpm/lib rpmts.c rpm/rpmio rpmdav.c rpmdav.h Log: - add #ifdef's needed to compile on __OpenBSD__. Summary: RevisionChanges Path 1.2637 +1 -0 rpm/CHANGES 2.157 +3 -0 rpm/lib/rpmts.c 2.91+1 -1 rpm/rpmio/rpmdav.c 2.34+1 -1 rpm/rpmio/rpmdav.h patch -p0 '@@ .' Index: rpm/CHANGES $ cvs diff -u -r1.2636 -r1.2637 CHANGES --- rpm/CHANGES 28 Oct 2008 15:25:19 - 1.2636 +++ rpm/CHANGES 30 Oct 2008 15:56:21 - 1.2637 @@ -1,5 +1,6 @@ 5.2a2 - 5.2a3: +- jbj: add #ifdef's needed to compile on __OpenBSD__. - proyvind: Mandriva: make directory symlink dependencies optional with %{_check_symlink_deps} %{_check_dirname_deps}. (optional-dirname-and-symlink-deps) - proyvind: Mandriva: prefer file extension for detecting file compression. @@ . patch -p0 '@@ .' Index: rpm/lib/rpmts.c $ cvs diff -u -r2.156 -r2.157 rpmts.c --- rpm/lib/rpmts.c 7 Oct 2008 20:49:53 - 2.156 +++ rpm/lib/rpmts.c 30 Oct 2008 15:56:22 - 2.157 @@ -1045,6 +1045,9 @@ #elif defined(__APPLE__) defined(__MACH__) !defined(_SYS_STATVFS_H_) dsi-f_fsid = 0; /* Not meaningful in this implementation. */ dsi-f_namemax = pathconf(ts-filesystems[i], _PC_NAME_MAX); +#elif defined(__OpenBSD__) + dsi-f_fsid = 0; /* sfb.f_fsid is a structure on OpenBSD */ + dsi-f_namemax = pathconf(ts-filesystems[i], _PC_NAME_MAX); #else dsi-f_fsid = sfb.f_fsid; dsi-f_namemax = sfb.f_namelen; @@ . patch -p0 '@@ .' Index: rpm/rpmio/rpmdav.c $ cvs diff -u -r2.90 -r2.91 rpmdav.c --- rpm/rpmio/rpmdav.c2 Aug 2008 22:37:38 - 2.90 +++ rpm/rpmio/rpmdav.c30 Oct 2008 15:56:22 - 2.91 @@ -220,7 +220,7 @@ #endif #if !(defined(hpux) || defined(__hpux) || defined(sun) || defined(RPM_OS_AIX) || defined(__CYGWIN__) || defined(__QNXNTO__)) -#if !defined(__APPLE__) !defined(__FreeBSD_kernel__) !defined(__FreeBSD__) !defined(__NetBSD__) !defined(__DragonFly__) +#if !defined(__APPLE__) !defined(__FreeBSD_kernel__) !defined(__FreeBSD__) !defined(__NetBSD__) !defined(__DragonFly__) !defined(__OpenBSD__) dp-d_off = 0; /* W2DO? */ #endif dp-d_type = dt[i]; @@ . patch -p0 '@@ .' Index: rpm/rpmio/rpmdav.h $ cvs diff -u -r2.33 -r2.34 rpmdav.h --- rpm/rpmio/rpmdav.h31 Jul 2008 02:40:10 - 2.33 +++ rpm/rpmio/rpmdav.h30 Oct 2008 15:56:21 - 2.34 @@ -45,7 +45,7 @@ typedef struct __dirstream * AVDIR; typedef struct __dirstream * DAVDIR; #else -# if defined(__FreeBSD__) || defined(__NetBSD__) || defined(__DragonFly__) +# if defined(__FreeBSD__) || defined(__NetBSD__) || defined(__DragonFly__) || defined(__OpenBSD__) typedef struct __dirstream * AVDIR; typedef struct __dirstream * DAVDIR; #else/* __FreeBSD__ */ @@ . __ RPM Package Managerhttp://rpm5.org CVS Sources Repositoryrpm-cvs@rpm5.org
[CVS] RPM: rpm/ CHANGES rpm/lib/ rpmts.c transaction.c
RPM Package Manager, CVS Repository http://rpm5.org/cvs/ Server: rpm5.org Name: Jeff Johnson Root: /v/rpm/cvs Email: [EMAIL PROTECTED] Module: rpm Date: 03-Jul-2008 16:27:31 Branch: HEAD Handle: 2008070314273001 Modified files: rpm CHANGES rpm/lib rpmts.c transaction.c Log: - rpm.org: single point to control how callbacks are made. Summary: RevisionChanges Path 1.2457 +1 -0 rpm/CHANGES 2.148 +12 -4 rpm/lib/rpmts.c 1.372 +26 -51 rpm/lib/transaction.c patch -p0 '@@ .' Index: rpm/CHANGES $ cvs diff -u -r1.2456 -r1.2457 CHANGES --- rpm/CHANGES 3 Jul 2008 13:50:47 - 1.2456 +++ rpm/CHANGES 3 Jul 2008 14:27:30 - 1.2457 @@ -1,5 +1,6 @@ 5.1.0 - 5.2a0: +- rpm.org: single point to control how callbacks are made. - rpm.org: Don't leak memory on python expandMacro(). - jbj: rpmgpg: stub in gpg options using popt. - rpm.org: get/set transaction keyring methods. @@ . patch -p0 '@@ .' Index: rpm/lib/rpmts.c $ cvs diff -u -r2.147 -r2.148 rpmts.c --- rpm/lib/rpmts.c 2 Jul 2008 16:02:50 - 2.147 +++ rpm/lib/rpmts.c 3 Jul 2008 14:27:31 - 2.148 @@ -1150,12 +1150,20 @@ rpmCallbackType what, uint64_t amount, uint64_t total) { void * ptr = NULL; -if (ts ts-notify te) { -assert(!(te-type == TR_ADDED te-h == NULL)); +if (ts ts-notify) { + Header h; + fnpyKey cbkey; /[EMAIL PROTECTED]@*/ /* FIX: cast? */ /[EMAIL PROTECTED] @*/ /* FIX: check rc */ - ptr = ts-notify(te-h, what, amount, total, - rpmteKey(te), ts-notifyData); + if (te) { + h = headerLink(te-h); + cbkey = rpmteKey(te); + } else { + h = NULL; + cbkey = NULL; + } + ptr = ts-notify(h, what, amount, total, cbkey, ts-notifyData); + h = headerFree(h); /[EMAIL PROTECTED] @*/ /[EMAIL PROTECTED]@*/ } @@ . patch -p0 '@@ .' Index: rpm/lib/transaction.c $ cvs diff -u -r1.371 -r1.372 transaction.c --- rpm/lib/transaction.c 12 Mar 2008 18:11:08 - 1.371 +++ rpm/lib/transaction.c 3 Jul 2008 14:27:31 - 1.372 @@ -33,7 +33,6 @@ #include debug.h -/[EMAIL PROTECTED] Header @*//* XXX ts-notify arg1 is void ptr */ /[EMAIL PROTECTED] rpmps @*/ /* XXX need rpmProblemSetOK() */ /[EMAIL PROTECTED] dbiIndexSet @*/ @@ -1117,8 +1116,6 @@ return 0; } -#define NOTIFY(_ts, _al) /[EMAIL PROTECTED]@*/ if ((_ts)-notify) (void) (_ts)-notify _al - int rpmtsRun(rpmts ts, rpmps okProbs, rpmprobFilterFlags ignoreSet) { uint32_t tscolor = rpmtsColor(ts); @@ -1309,9 +1306,8 @@ if (fi-pretrans == NULL) continue; - p-fd = ts-notify(p-h, RPMCALLBACK_INST_OPEN_FILE, 0, 0, - rpmteKey(p), ts-notifyData); p-h = NULL; + p-fd = rpmtsNotify(ts, p, RPMCALLBACK_INST_OPEN_FILE, 0, 0); if (rpmteFd(p) != NULL) { rpmVSFlags ovsflags = rpmtsVSFlags(ts); rpmVSFlags vsflags = ovsflags | RPMVSF_NEEDPAYLOAD; @@ -1322,11 +1318,7 @@ vsflags = rpmtsSetVSFlags(ts, ovsflags); switch (rpmrc) { default: - /[EMAIL PROTECTED]@*/ /* FIX: notify annotations */ - p-fd = ts-notify(p-h, RPMCALLBACK_INST_CLOSE_FILE, - 0, 0, - rpmteKey(p), ts-notifyData); - /[EMAIL PROTECTED]@*/ + p-fd = rpmtsNotify(ts, p, RPMCALLBACK_INST_CLOSE_FILE, 0, 0); p-fd = NULL; /[EMAIL PROTECTED]@*/ break; case RPMRC_NOTTRUSTED: @@ -1353,10 +1345,9 @@ xx = rpmpsmStage(psm, PSM_SCRIPT); psm = rpmpsmFree(psm); -/[EMAIL PROTECTED] -compdef -usereleased @*/ - (void) ts-notify(p-h, RPMCALLBACK_INST_CLOSE_FILE, 0, 0, - rpmteKey(p), ts-notifyData); -/[EMAIL PROTECTED] =compdef =usereleased @*/ +/[EMAIL PROTECTED] -usereleased @*/ + p-fd = rpmtsNotify(ts, p, RPMCALLBACK_INST_CLOSE_FILE, 0, 0); +/[EMAIL PROTECTED] =usereleased @*/ p-fd = NULL;
[CVS] RPM: rpm/ CHANGES rpm/lib/ rpmts.c
RPM Package Manager, CVS Repository http://rpm5.org/cvs/ Server: rpm5.org Name: Per Øyvind Karlsen Root: /v/rpm/cvs Email: [EMAIL PROTECTED] Module: rpm Date: 20-Feb-2008 20:14:10 Branch: HEAD Handle: 2008022019140901 Modified files: rpm CHANGES rpm/lib rpmts.c Log: from pixel: librpm uses bavail ie free blocks avail to non-superuser that's ok, it will help keeping some free space, even for root but when bavail == 0, librpm thinks statfs failed, and do not check so setting bavail to 1 when bavail it is 0 (no package should fit in one block!) Summary: RevisionChanges Path 1.2199 +1 -0 rpm/CHANGES 2.139 +1 -1 rpm/lib/rpmts.c patch -p0 '@@ .' Index: rpm/CHANGES $ cvs diff -u -r1.2198 -r1.2199 CHANGES --- rpm/CHANGES 20 Feb 2008 00:39:14 - 1.2198 +++ rpm/CHANGES 20 Feb 2008 19:14:09 - 1.2199 @@ -1,4 +1,5 @@ 5.0.0 - 5.1a1: +- pixel: do check free size when bavail is 0 - jbj: add variadic checks, remove warnings. - jbj: refactor rpmcliErase to use same code as rpmtsInstall. - jbj: fix: rpmtsCheck non-zero return prevents --erase. @@ . patch -p0 '@@ .' Index: rpm/lib/rpmts.c $ cvs diff -u -r2.138 -r2.139 rpmts.c --- rpm/lib/rpmts.c 20 Feb 2008 00:39:14 - 2.138 +++ rpm/lib/rpmts.c 20 Feb 2008 19:14:10 - 2.139 @@ -991,7 +991,7 @@ dsi-bneeded = 0; dsi-ineeded = 0; #ifdef STATFS_HAS_F_BAVAIL - dsi-f_bavail = sfb.f_bavail; + dsi-f_bavail = sfb.f_bavail ? sfb.f_bavail : 1; if (sfb.f_ffree 0 sfb.f_files 0 sfb.f_favail 0) dsi-f_favail = sfb.f_favail; else/* XXX who knows what evil lurks here? */ @@ . __ RPM Package Managerhttp://rpm5.org CVS Sources Repositoryrpm-cvs@rpm5.org
[CVS] RPM: rpm/ CHANGES rpm/lib/ rpmts.c rpm/rpmdb/ librpmdb.vers pkgi...
RPM Package Manager, CVS Repository http://rpm5.org/cvs/ Server: rpm5.org Name: Jeff Johnson Root: /v/rpm/cvs Email: [EMAIL PROTECTED] Module: rpm Date: 29-Sep-2007 19:06:26 Branch: HEAD Handle: 2007092918062500 Modified files: rpm CHANGES rpm/lib rpmts.c rpm/rpmdb librpmdb.vers pkgio.c rpmdb.h sqlite.c Log: - move rpmtsFindPubkey() and rpmtsOp() to rpmdb for forward linkage. Summary: RevisionChanges Path 1.1647 +1 -0 rpm/CHANGES 2.101 +0 -259rpm/lib/rpmts.c 1.18+2 -0 rpm/rpmdb/librpmdb.vers 1.7 +237 -21rpm/rpmdb/pkgio.c 1.65+8 -6 rpm/rpmdb/rpmdb.h 1.14+1 -1 rpm/rpmdb/sqlite.c patch -p0 '@@ .' Index: rpm/CHANGES $ cvs diff -u -r1.1646 -r1.1647 CHANGES --- rpm/CHANGES 29 Sep 2007 16:23:39 - 1.1646 +++ rpm/CHANGES 29 Sep 2007 17:06:25 - 1.1647 @@ -1,4 +1,5 @@ 4.5 - 5.0: +- jbj: move rpmtsFindPubkey() and rpmtsOp() to rpmdb for forward linkage. - jbj: add _RPMTS_PRINT to keep rpmrollback.c happy. - jbj: rearrange package.c internals to new locations. - jbj: start eliminating rpmtsSetSig by inlining. @@ . patch -p0 '@@ .' Index: rpm/lib/rpmts.c $ cvs diff -u -r2.100 -r2.101 rpmts.c --- rpm/lib/rpmts.c 29 Sep 2007 16:23:39 - 2.100 +++ rpm/lib/rpmts.c 29 Sep 2007 17:06:25 - 2.101 @@ -3,9 +3,6 @@ * Routine(s) to handle a rpmts transaction sets. */ #include system.h -#if defined(HAVE_KEYUTILS_H) -#include keyutils.h -#endif #include rpmio_internal.h /* XXX for pgp and beecrypt */ #include rpmlib.h @@ -240,204 +237,6 @@ } /[EMAIL PROTECTED]@*/ -rpmRC rpmtsFindPubkey(rpmts ts, void * _dig) -{ -pgpDig dig = (_dig ? _dig : rpmtsDig(ts)); -const void * sig = pgpGetSig(dig); -pgpDigParams sigp = pgpGetSignature(dig); -pgpDigParams pubp = pgpGetPubkey(dig); -rpmRC res = RPMRC_NOKEY; -const char * pubkeysource = NULL; -#if defined(HAVE_KEYUTILS_H) -int krcache = 1; /* XXX assume pubkeys are cached in keyutils keyring. */ -#endif -int xx; - -if (sig == NULL || dig == NULL || sigp == NULL || pubp == NULL) - goto exit; - -#if 0 -fprintf(stderr, == find sig id %08x %08x ts pubkey id %08x %08x\n, -pgpGrab(sigp-signid, 4), pgpGrab(sigp-signid+4, 4), -pgpGrab(ts-pksignid, 4), pgpGrab(ts-pksignid+4, 4)); -#endif - -/* Lazy free of previous pubkey if pubkey does not match this signature. */ -if (memcmp(sigp-signid, ts-pksignid, sizeof(ts-pksignid))) { -#if 0 -fprintf(stderr, *** free pkt %p[%d] id %08x %08x\n, ts-pkpkt, ts-pkpktlen, pgpGrab(ts-pksignid, 4), pgpGrab(ts-pksignid+4, 4)); -#endif - ts-pkpkt = _free(ts-pkpkt); - ts-pkpktlen = 0; - memset(ts-pksignid, 0, sizeof(ts-pksignid)); -} - -#if defined(HAVE_KEYUTILS_H) - /* Try keyutils keyring lookup. */ -if (krcache ts-pkpkt == NULL) { - key_serial_t keyring = KEY_SPEC_PROCESS_KEYRING; - const char * krprefix = rpm:gpg:pubkey:; - char krfp[32]; - char * krn = alloca(strlen(krprefix) + sizeof(12345678)); - long key; - - snprintf(krfp, sizeof(krfp), %08X, pgpGrab(sigp-signid+4, 4)); - krfp[sizeof(krfp)-1] = '\0'; - *krn = '\0'; - (void) stpcpy( stpcpy(krn, krprefix), krfp); - - key = keyctl_search(keyring, user, krn, 0); - xx = keyctl_read(key, NULL, 0); - if (xx 0) { - ts-pkpktlen = xx; - ts-pkpkt = NULL; - xx = keyctl_read_alloc(key, (void **)ts-pkpkt); - if (xx 0) { - pubkeysource = xstrdup(krn); - krcache = 0;/* XXX don't bother caching. */ - } else { - ts-pkpkt = _free(ts-pkpkt); - ts-pkpktlen = 0; - } -} -} -#endif - -/* Try rpmdb keyring lookup. */ -if (ts-pkpkt == NULL) { - int hx = -1; - int ix = -1; - rpmdbMatchIterator mi; - Header h; - - /* Retrieve the pubkey that matches the signature. */ - mi = rpmtsInitIterator(ts, RPMTAG_PUBKEYS, sigp-signid, sizeof(sigp-signid)); - while ((h = rpmdbNextIterator(mi)) != NULL) { - const char ** pubkeys; - int_32 pt, pc; - - if (!headerGetEntry(h, RPMTAG_PUBKEYS, pt, pubkeys, pc)) - continue; - hx =
[CVS] RPM: rpm/ CHANGES rpm/lib/ rpmts.c
RPM Package Manager, CVS Repository http://rpm5.org/cvs/ Server: rpm5.org Name: Jeff Johnson Root: /v/rpm/cvs Email: [EMAIL PROTECTED] Module: rpm Date: 31-Aug-2007 16:49:33 Branch: HEAD Handle: 2007083115493200 Modified files: rpm CHANGES rpm/lib rpmts.c Log: - afb: handle Mac OS X 10.3.9 statvfs deviance. Summary: RevisionChanges Path 1.1610 +1 -0 rpm/CHANGES 2.91+3 -0 rpm/lib/rpmts.c patch -p0 '@@ .' Index: rpm/CHANGES $ cvs diff -u -r1.1609 -r1.1610 CHANGES --- rpm/CHANGES 30 Aug 2007 09:34:08 - 1.1609 +++ rpm/CHANGES 31 Aug 2007 14:49:32 - 1.1610 @@ -1,4 +1,5 @@ 4.5 - 5.0: +- afb: handle Mac OS X 10.3.9 statvfs deviance. - rse: make devtool %standalone fully modular for allowing its modules to be reused in other devtool targets - jbj: assume that mount(2) et al are linux-peculier for the moment. - jbj: add rpmio Mount/Umount/Umount2 stubs. @@ . patch -p0 '@@ .' Index: rpm/lib/rpmts.c $ cvs diff -u -r2.90 -r2.91 rpmts.c --- rpm/lib/rpmts.c 28 Aug 2007 19:38:53 - 2.90 +++ rpm/lib/rpmts.c 31 Aug 2007 14:49:32 - 2.91 @@ -1260,6 +1260,9 @@ dsi-f_flag = sfb.f_flag; dsi-f_favail = sfb.f_favail; dsi-f_namemax = sfb.f_namemax; +#elif defined(__APPLE__) defined(__MACH__) !defined(_SYS_STATVFS_H_) + dsi-f_fsid = 0; /* Not meaningful in this implementation. */ + dsi-f_namemax = pathconf(ts-filesystems[i], _PC_NAME_MAX); #else dsi-f_fsid = sfb.f_fsid; dsi-f_namemax = sfb.f_namelen; @@ . __ RPM Package Managerhttp://rpm5.org CVS Sources Repositoryrpm-cvs@rpm5.org
[CVS] RPM: rpm/ CHANGES rpm/lib/ rpmts.c
RPM Package Manager, CVS Repository http://rpm5.org/cvs/ Server: rpm5.org Name: Jeff Johnson Root: /v/rpm/cvs Email: [EMAIL PROTECTED] Module: rpm Date: 28-Aug-2007 21:22:34 Branch: HEAD Handle: 2007082820223400 Modified files: rpm CHANGES rpm/lib rpmts.c Log: - use keyutils for pubkey cache. Summary: RevisionChanges Path 1.1605 +1 -0 rpm/CHANGES 2.88+48 -0 rpm/lib/rpmts.c patch -p0 '@@ .' Index: rpm/CHANGES $ cvs diff -u -r1.1604 -r1.1605 CHANGES --- rpm/CHANGES 28 Aug 2007 00:36:52 - 1.1604 +++ rpm/CHANGES 28 Aug 2007 19:22:34 - 1.1605 @@ -1,4 +1,5 @@ 4.5 - 5.0: +- jbj: use keyutils for pubkey cache. - jbj: update id.po (Translation Project). - jbj: teach --querytags to chain through headerCompoundFormats. - rse: apply upstream vendor Lua 5.1.2 patches 1-7 @@ . patch -p0 '@@ .' Index: rpm/lib/rpmts.c $ cvs diff -u -r2.87 -r2.88 rpmts.c --- rpm/lib/rpmts.c 21 Aug 2007 03:41:52 - 2.87 +++ rpm/lib/rpmts.c 28 Aug 2007 19:22:34 - 2.88 @@ -3,6 +3,9 @@ * Routine(s) to handle a rpmts transaction sets. */ #include system.h +#if defined(HAVE_KEYUTILS_H) +#include keyutils.h +#endif #include rpmio_internal.h /* XXX for pgp and beecrypt */ #include rpmlib.h @@ -266,6 +269,36 @@ memset(ts-pksignid, 0, sizeof(ts-pksignid)); } +#if defined(HAVE_KEYUTILS_H) + /* Try keyutils keyring lookup. */ +if (ts-pkpkt == NULL) { + key_serial_t keyring = KEY_SPEC_PROCESS_KEYRING; + const char * krprefix = rpm:gpg:pubkey:; + char krfp[32]; + char * krn = alloca(strlen(krprefix) + sizeof(12345678)); + long key; + + snprintf(krfp, sizeof(krfp), %08X, pgpGrab(sigp-signid+4, 4)); + krfp[sizeof(krfp)-1] = '\0'; + *krn = '\0'; + (void) stpcpy( stpcpy(krn, krprefix), krfp); + + key = keyctl_search(keyring, user, krn, 0); + xx = keyctl_read(key, NULL, 0); + if (xx 0) { + ts-pkpktlen = xx; + ts-pkpkt = NULL; + xx = keyctl_read_alloc(key, (void **)ts-pkpkt); + if (xx 0) { + pubkeysource = xstrdup(krn); + } else { + ts-pkpkt = _free(ts-pkpkt); + ts-pkpktlen = 0; + } +} +} +#endif + /* Try rpmdb keyring lookup. */ if (ts-pkpkt == NULL) { int hx = -1; @@ -361,6 +394,21 @@ /* XXX Verify any pubkey signatures. */ +#if defined(HAVE_KEYUTILS_H) + /* Save the pubkey in the keyutils keyring. */ + { key_serial_t keyring = KEY_SPEC_PROCESS_KEYRING; + const char * krprefix = rpm:gpg:pubkey:; + char krfp[32]; + char * krn = alloca(strlen(krprefix) + sizeof(12345678)); + + snprintf(krfp, sizeof(krfp), %08X, pgpGrab(sigp-signid+4, 4)); + krfp[sizeof(krfp)-1] = '\0'; + *krn = '\0'; + (void) stpcpy( stpcpy(krn, krprefix), krfp); + (void) add_key(user, krn, ts-pkpkt, ts-pkpktlen, keyring); + } +#endif + /* Pubkey packet looks good, save the signer id. */ /[EMAIL PROTECTED]@*/ memcpy(ts-pksignid, pubp-signid, sizeof(ts-pksignid)); @@ . __ RPM Package Managerhttp://rpm5.org CVS Sources Repositoryrpm-cvs@rpm5.org