[CVS] RPM: rpm/ CHANGES rpm/lib/ rpmgi.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: 12-Sep-2011 16:16:38 Branch: HEAD Handle: 2011091214163700 Modified files: rpm CHANGES rpm/lib rpmgi.c Log: - rpmgi: fix: load rpmdb tag value filters more carefully. Summary: RevisionChanges Path 1.3675 +1 -0 rpm/CHANGES 2.79+8 -5 rpm/lib/rpmgi.c patch -p0 <<'@@ .' Index: rpm/CHANGES $ cvs diff -u -r1.3674 -r1.3675 CHANGES --- rpm/CHANGES 6 Sep 2011 14:41:17 - 1.3674 +++ rpm/CHANGES 12 Sep 2011 14:16:37 - 1.3675 @@ -1,4 +1,5 @@ HEAD: +- jbj: rpmgi: fix: load rpmdb tag value filters more carefully. - devzero2000: add lzip support - devzero2000: add lrzip support (blueprint https://blueprints.launchpad.net/rpm/+spec/rpm5-use-lrzip-as-new-compression-program) @@ . patch -p0 <<'@@ .' Index: rpm/lib/rpmgi.c $ cvs diff -u -r2.78 -r2.79 rpmgi.c --- rpm/lib/rpmgi.c 19 Mar 2011 14:51:51 - 2.78 +++ rpm/lib/rpmgi.c 12 Sep 2011 14:16:37 - 2.79 @@ -432,7 +432,7 @@ { rpmRC rpmrc = RPMRC_OK; ARGV_t av; -int res = 0; +int got = 0; gi->mi = rpmtsInitIterator(gi->ts, gi->tag, gi->keyp, gi->keylen); @@ -454,22 +454,25 @@ *ae++ = '\0'; if (*a != '\0') { /* XXX HACK: permit '=foo' */ tag = tagValue(a); +#ifdef DYING /* XXX arbitrary tags always have a return value */ if (tag < 0) { rpmlog(RPMLOG_NOTICE, _("unknown tag: \"%s\"\n"), a); - res = 1; + got = -1; } +#endif } pat = ae; + got++; } - if (!res) { + if (got) { if (_rpmgi_debug < 0) fprintf(stderr, "\tav %p[%d]: \"%s\" -> %s ~= \"%s\"\n", gi->argv, (int)(av - gi->argv), *av, tagName(tag), pat); - res = rpmmiAddPattern(gi->mi, tag, RPMMIRE_DEFAULT, pat); + got = rpmmiAddPattern(gi->mi, tag, RPMMIRE_DEFAULT, pat); } a = _free(a); } - if (res == 0) + if (got >= 0) continue; gi->mi = rpmmiFree(gi->mi); /* XXX odd side effect? */ @@ . __ RPM Package Managerhttp://rpm5.org CVS Sources Repositoryrpm-cvs@rpm5.org
[CVS] RPM: rpm/ CHANGES rpm/lib/ rpmgi.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: 01-Nov-2010 15:44:33 Branch: HEAD Handle: 2010110114443200 Modified files: rpm CHANGES rpm/lib rpmgi.c Log: fix assert failure with Fadvise() on non-existing files. Summary: RevisionChanges Path 1.3487 +1 -0 rpm/CHANGES 2.75+2 -1 rpm/lib/rpmgi.c patch -p0 <<'@@ .' Index: rpm/CHANGES $ cvs diff -u -r1.3486 -r1.3487 CHANGES --- rpm/CHANGES 26 Oct 2010 16:17:38 - 1.3486 +++ rpm/CHANGES 1 Nov 2010 14:44:32 - 1.3487 @@ -1,4 +1,5 @@ 5.3.5 -> 5.4a1: +- proyvind: fix assert failure with Fadvise() on non-existing files. - proyvind: mandriva: fix 'Conflicts: dependencies without release misfire'. (mdvbz#55810) - proyvind: make sure to expand %buildroot from main package. @@ . patch -p0 <<'@@ .' Index: rpm/lib/rpmgi.c $ cvs diff -u -r2.74 -r2.75 rpmgi.c --- rpm/lib/rpmgi.c 29 Sep 2010 14:54:30 - 2.74 +++ rpm/lib/rpmgi.c 1 Nov 2010 14:44:32 - 2.75 @@ -108,7 +108,8 @@ fn = _free(fn); #if defined(POSIX_FADV_WILLNEED) -(void) Fadvise(fd, 0, 0, POSIX_FADV_WILLNEED); +if(fd != NULL) + (void) Fadvise(fd, 0, 0, POSIX_FADV_WILLNEED); #endif return fd; @@ . __ RPM Package Managerhttp://rpm5.org CVS Sources Repositoryrpm-cvs@rpm5.org
[CVS] RPM: rpm/ CHANGES rpm/lib/ rpmgi.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: 01-Jun-2009 22:37:24 Branch: HEAD Handle: 2009060120372300 Modified files: rpm CHANGES rpm/lib rpmgi.c Log: - rpmgi: remove duplicated code. Summary: RevisionChanges Path 1.3012 +1 -0 rpm/CHANGES 2.69+5 -33 rpm/lib/rpmgi.c patch -p0 <<'@@ .' Index: rpm/CHANGES $ cvs diff -u -r1.3011 -r1.3012 CHANGES --- rpm/CHANGES 1 Jun 2009 20:35:02 - 1.3011 +++ rpm/CHANGES 1 Jun 2009 20:37:23 - 1.3012 @@ -1,5 +1,6 @@ 5.2b1 -> 5.3a1 +- jbj: rpmgi: remove duplicated code. - jbj: header: add getter/setter for header parent. - jbj: add RPMSIGTAG_PADDING to force metadata header alignment in file. - jbj: save %pre/%post scriptlet's exit code and duration. @@ . patch -p0 <<'@@ .' Index: rpm/lib/rpmgi.c $ cvs diff -u -r2.68 -r2.69 rpmgi.c --- rpm/lib/rpmgi.c 15 May 2009 13:40:58 - 2.68 +++ rpm/lib/rpmgi.c 1 Jun 2009 20:37:23 - 2.69 @@ -21,7 +21,7 @@ #include "manifest.h" -#include +#include /* XXX rpmcliInstallFoo() */ #include "debug.h" @@ -512,7 +512,7 @@ /*...@-assignexpose -castexpose @*/ gi->ts = rpmtsLink(ts, "rpmgiNew"); /*...@=assignexpose =castexpose @*/ -gi->tsOrder = rpmtsOrder; +gi->tsOrder = rpmcliInstallOrder; gi->tag = (rpmTag) tag; /*...@-assignexpose@*/ gi->keyp = keyp; @@ -743,8 +743,6 @@ enditer: if (gi->flags & RPMGI_TSORDER) { rpmts ts = gi->ts; - rpmps ps; - int i; /* Block access to indices used for depsolving. */ if (!(gi->flags & RPMGI_ERASING)) { @@ -756,7 +754,9 @@ (void) rpmtsSetGoal(ts, TSM_ERASE); } - xx = rpmtsCheck(ts); + /* XXX query/verify will need the glop added to a buffer instead. */ + xx = rpmcliInstallCheck(ts); + xx = rpmcliInstallSuggests(ts); /* Permit access to indices used for depsolving. */ if (!(gi->flags & RPMGI_ERASING)) { @@ -765,34 +765,6 @@ xx = rpmdbBlockDBI(rpmtsGetRdb(ts), RPMDBI_DEPENDS); } - /* XXX query/verify will need the glop added to a buffer instead. */ - ps = rpmtsProblems(ts); - if (rpmpsNumProblems(ps) > 0) { - /* XXX rpminstall will need RPMLOG_ERR */ - rpmlog(RPMLOG_INFO, _("Failed dependencies:\n")); - if (rpmIsVerbose()) - rpmpsPrint(NULL, ps); - - if (ts->suggests != NULL && ts->nsuggests > 0) { - rpmlog(RPMLOG_INFO, _("Suggested resolutions:\n")); - for (i = 0; i < ts->nsuggests; i++) { - const char * str = ts->suggests[i]; - - if (str == NULL) - break; - - rpmlog(RPMLOG_INFO, "\t%s\n", str); - - ts->suggests[i] = NULL; - str = _free(str); - } - ts->suggests = _free(ts->suggests); - } - - } - ps = rpmpsFree(ps); - ts->probs = rpmpsFree(ts->probs); /* XXX hackery */ - /* XXX Display dependency loops with rpm -qvT. */ if (rpmIsVerbose()) (void) rpmtsSetDFlags(ts, (rpmtsDFlags(ts) | RPMDEPS_FLAG_DEPLOOPS)); @@ . __ RPM Package Managerhttp://rpm5.org CVS Sources Repositoryrpm-cvs@rpm5.org
[CVS] RPM: rpm/ CHANGES rpm/lib/ rpmgi.c rpm/ macros.in rpm.spec.in rp...
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: 07-Feb-2008 20:29:33 Branch: HEAD Handle: 2008020719293201 Modified files: rpm CHANGES macros.in rpm.spec.in rpm/lib rpmgi.c rpm/rpmio rpmrpc.c rpm/tools rpmcache.c Log: - jbj: rpm.spec: nuke the xar.1 man page. - jbj: rpmrpc: split stat(2) prints so valgrind can detect uninitialized. - jbj: rpmcache: fix: don't check fo ".i386" suffix if name is too short. - jbj: rpmcache: use file:///, not clunkier file://localhost/, url. - jbj: rpmcache: add --cache opt-in, rather than --nocache opt-out, for now. Summary: RevisionChanges Path 1.2141 +5 -0 rpm/CHANGES 2.51+2 -0 rpm/lib/rpmgi.c 1.234 +3 -3 rpm/macros.in 2.451 +1 -0 rpm/rpm.spec.in 2.64+18 -10 rpm/rpmio/rpmrpc.c 2.28+9 -4 rpm/tools/rpmcache.c patch -p0 <<'@@ .' Index: rpm/CHANGES $ cvs diff -u -r1.2140 -r1.2141 CHANGES --- rpm/CHANGES 7 Feb 2008 05:25:18 - 1.2140 +++ rpm/CHANGES 7 Feb 2008 19:29:32 - 1.2141 @@ -1,4 +1,9 @@ 5.0.0 -> 5.1a1: +- jbj: rpm.spec: nuke the xar.1 man page. +- jbj: rpmrpc: split stat(2) prints so valgrind can detect uninitialized. +- jbj: rpmcache: fix: don't check fo ".i386" suffix if name is too short. +- jbj: rpmcache: use file:///, not clunkier file://localhost/, url. +- jbj: rpmcache: add --cache opt-in, rather than --nocache opt-out, for now. - proyvind: add sparcv9v2 (Niagara 2) architecture - proyvind: add arch macros for alpha and sparc - afb: workaround for "uuid_t" type conflict, between and "uuid.h" @@ . patch -p0 <<'@@ .' Index: rpm/lib/rpmgi.c $ cvs diff -u -r2.50 -r2.51 rpmgi.c --- rpm/lib/rpmgi.c 2 Feb 2008 21:45:18 - 2.50 +++ rpm/lib/rpmgi.c 7 Feb 2008 19:29:33 - 2.51 @@ -250,6 +250,8 @@ case FTS_DP: /* postorder directory */ break; case FTS_F: /* regular file */ + if (fts->fts_namelen <= sizeof(".rpm")) + break; /* Ignore all but *.rpm files. */ s = fts->fts_name + fts->fts_namelen + 1 - sizeof(".rpm"); if (strcmp(s, ".rpm")) @@ . patch -p0 <<'@@ .' Index: rpm/macros.in $ cvs diff -u -r1.233 -r1.234 macros.in --- rpm/macros.in 7 Feb 2008 05:22:40 - 1.233 +++ rpm/macros.in 7 Feb 2008 19:29:32 - 1.234 @@ -1,7 +1,7 @@ #/*! \page config_macros Default configuration: @USRLIBRPM@/macros # \verbatim # -# $Id: macros.in,v 1.233 2008/02/07 05:22:40 pkarlsen Exp $ +# $Id: macros.in,v 1.234 2008/02/07 19:29:32 jbj Exp $ # # This is a global RPM configuration file. All changes made here will # be lost when the rpm package is upgraded. Any per-system configuration @@ -1036,8 +1036,8 @@ #%_bhA RPMS # -# A configuration to build an rpmdb from yum package -%_bhpathfile://localhost/var/cache/yum +# A configuration to build an rpmdb from yum package hierarchy +%_bhpathfile:///var/cache/yum %_bhcoll@(updates) %_bhN @(packages) %_bhVR %{nil} @@ . patch -p0 <<'@@ .' Index: rpm/rpm.spec.in $ cvs diff -u -r2.450 -r2.451 rpm.spec.in --- rpm/rpm.spec.in 22 Jan 2008 21:52:44 - 2.450 +++ rpm/rpm.spec.in 7 Feb 2008 19:29:32 - 2.451 @@ -274,6 +274,7 @@ rm -rf .%{_mandir}/pl/man8/rpmcache.8* rm -rf .%{_mandir}/pl/man8/rpmgraph.8* rm -rf .%{_mandir}/{fr,ko} + rm -rf .%{_mandir}/man1/xar.1* rm -rf .%{_bindir}/xar rm -rf .%{_includedir}/xar rm -rf .%{_libdir}/libxar* @@ . patch -p0 <<'@@ .' Index: rpm/rpmio/rpmrpc.c $ cvs diff -u -r2.63 -r2.64 rpmrpc.c --- rpm/rpmio/rpmrpc.c25 Jan 2008 16:39:26 - 2.63 +++ rpm/rpmio/rpmrpc.c7 Feb 2008 19:29:33 - 2.64 @@ -1136,16 +1136,24 @@ /[EMAIL PROTECTED]@*/ /[EMAIL PROTECTED]@*/ char * buf) /[EMAIL PROTECTED] *buf @*/ { -sprintf(buf, - "*** dev %x ino %x mode %0o nlink
[CVS] RPM: rpm/ CHANGES rpm/lib/ rpmgi.c rpmgi.h rpminstall.c tgi.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: 02-Feb-2008 22:45:18 Branch: HEAD Handle: 2008020221451701 Modified files: rpm CHANGES rpm/lib rpmgi.c rpmgi.h rpminstall.c tgi.c Log: - functional "+N-V-R.A" path-to-repository expansions with -i/-U. Summary: RevisionChanges Path 1.2125 +1 -0 rpm/CHANGES 2.50+1 -10 rpm/lib/rpmgi.c 2.25+11 -0 rpm/lib/rpmgi.h 1.192 +51 -26 rpm/lib/rpminstall.c 2.17+125 -14rpm/lib/tgi.c patch -p0 <<'@@ .' Index: rpm/CHANGES $ cvs diff -u -r1.2124 -r1.2125 CHANGES --- rpm/CHANGES 2 Feb 2008 01:33:19 - 1.2124 +++ rpm/CHANGES 2 Feb 2008 21:45:17 - 1.2125 @@ -1,4 +1,5 @@ 5.0.0 -> 5.1a1: +- jbj: functional "+N-V-R.A" path-to-repository expansions with -i/-U. - jbj: mire.c: add STANDALONE test exerciser. - jbj: use struct timeval timestamp for INSTALL{TID,TIME} and ORIGIN{TID,TIME}. Note: TID.usec field is always 0 atm. @@ . patch -p0 <<'@@ .' Index: rpm/lib/rpmgi.c $ cvs diff -u -r2.49 -r2.50 rpmgi.c --- rpm/lib/rpmgi.c 31 Jan 2008 15:35:09 - 2.49 +++ rpm/lib/rpmgi.c 2 Feb 2008 21:45:18 - 2.50 @@ -125,16 +125,7 @@ return rpmrc; } -/** - * Return header from package. - * @param gi generalized iterator - * @param path file path - * @return header (NULL on failure) - */ -/[EMAIL PROTECTED]@*/ -static Header rpmgiReadHeader(rpmgi gi, const char * path) - /[EMAIL PROTECTED] rpmGlobalMacroContext, h_errno, internalState @*/ - /[EMAIL PROTECTED] gi, rpmGlobalMacroContext, h_errno, internalState @*/ +Header rpmgiReadHeader(rpmgi gi, const char * path) { FD_t fd = rpmgiOpen(path, "r%{?_rpmgio}"); Header h = NULL; @@ . patch -p0 <<'@@ .' Index: rpm/lib/rpmgi.h $ cvs diff -u -r2.24 -r2.25 rpmgi.h --- rpm/lib/rpmgi.h 8 Dec 2007 19:36:29 - 2.24 +++ rpm/lib/rpmgi.h 2 Feb 2008 21:45:18 - 2.25 @@ -217,6 +217,17 @@ /[EMAIL PROTECTED] internalState @*/ /[EMAIL PROTECTED] gi, internalState @*/; +/** + * Return header from package. + * @param gi generalized iterator + * @param path file path + * @return header (NULL on failure) + */ +/[EMAIL PROTECTED]@*/ +Header rpmgiReadHeader(rpmgi gi, const char * path) + /[EMAIL PROTECTED] rpmGlobalMacroContext, h_errno, internalState @*/ + /[EMAIL PROTECTED] gi, rpmGlobalMacroContext, h_errno, internalState @*/; + /[EMAIL PROTECTED]/ #ifdef __cplusplus @@ . patch -p0 <<'@@ .' Index: rpm/lib/rpminstall.c $ cvs diff -u -r1.191 -r1.192 rpminstall.c --- rpm/lib/rpminstall.c 31 Jan 2008 15:35:09 - 1.191 +++ rpm/lib/rpminstall.c 2 Feb 2008 21:45:18 - 1.192 @@ -17,6 +17,7 @@ #include "rpmte.h" /* XXX rpmtsPrint() */ #include "manifest.h" +#define _RPMGI_INTERNAL /* XXX "+bing" args need gi->h. */ #include "rpmgi.h" #include "debug.h" @@ -331,6 +332,38 @@ return 0; } +static const char * rpmcliInstallElementPath(rpmts ts, const char * arg) +{ +static const char * pkgpat = "-[^-]*-[^-]*.[^.]*.rpm$"; +const char * mirePattern = rpmExpand(&arg[1], pkgpat, NULL); +miRE mire = mireNew(RPMMIRE_REGEX, 0); +const char * fn = NULL; +ARGV_t av = NULL; +int ac = 0; +int xx = mireRegcomp(mire, mirePattern); +int i; + +/* Get list of candidate package paths. */ +/* XXX note the added "-*.rpm" to force globbing on '-' boundaries. */ +fn = rpmGetPath("%{?_rpmgi_prefix:%{?_rpmgi_prefix}/}", arg, "-*.rpm", NULL); +xx = rpmGlob(fn, &ac, &av); +fn = _free(fn); + +/* Filter out glibc <-> glibc-common confusions. */ +for (i = 0; i < ac; i++) { + if (mireRegexec(mire, av[i])) + continue; + fn = xstrdup(av[0]); + break; +} + +av = argvFree(av); +mire = mireFree(mire); +mirePattern = _free(mirePattern); + +return fn; +} + /** @todo Generalize --freshen policies.
[CVS] RPM: rpm/ CHANGES rpm/lib/ rpmgi.c rpm/ macros.in rpm/rpmio/ rpm...
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: 12-Jan-2008 00:05:34 Branch: HEAD Handle: 2008011123053202 Modified files: rpm CHANGES macros.in rpm/lib rpmgi.c rpm/rpmio rpmio.c Log: - permit opt-in network access using %_rpmgio macro. - fix: deny rpmioSlurp network access (like all other Fopen call's). Summary: RevisionChanges Path 1.2060 +2 -0 rpm/CHANGES 2.48+3 -3 rpm/lib/rpmgi.c 1.228 +5 -1 rpm/macros.in 1.118 +1 -1 rpm/rpmio/rpmio.c patch -p0 <<'@@ .' Index: rpm/CHANGES $ cvs diff -u -r1.2059 -r1.2060 CHANGES --- rpm/CHANGES 11 Jan 2008 12:57:49 - 1.2059 +++ rpm/CHANGES 11 Jan 2008 23:05:32 - 1.2060 @@ -1,4 +1,6 @@ 5.0.0 -> 5.1a1: +- jbj: permit opt-in network access using %_rpmgio macro. +- jbj: fix: deny rpmioSlurp network access (like all other Fopen call's). - rse: add RPM Lua function rpm.slurp() for slurping in the whole content of a file or an URL - rse: add OSSP uuid support to RPM Lua via functions uuid.generate() and uuid.describe() - rpm.org: Assorted int -> size_t corrections for string lengths. @@ . patch -p0 <<'@@ .' Index: rpm/lib/rpmgi.c $ cvs diff -u -r2.47 -r2.48 rpmgi.c --- rpm/lib/rpmgi.c 1 Dec 2007 17:54:30 - 2.47 +++ rpm/lib/rpmgi.c 11 Jan 2008 23:05:33 - 2.48 @@ -115,7 +115,7 @@ /[EMAIL PROTECTED] rpmGlobalMacroContext, h_errno, internalState @*/ /[EMAIL PROTECTED] gi, rpmGlobalMacroContext, h_errno, internalState @*/ { -FD_t fd = rpmgiOpen(path, "r.fdio"); +FD_t fd = rpmgiOpen(path, "r%{?_rpmgio}"); rpmRC rpmrc = RPMRC_FAIL; if (fd != NULL) { @@ -136,7 +136,7 @@ /[EMAIL PROTECTED] rpmGlobalMacroContext, h_errno, internalState @*/ /[EMAIL PROTECTED] gi, rpmGlobalMacroContext, h_errno, internalState @*/ { -FD_t fd = rpmgiOpen(path, "r.fdio"); +FD_t fd = rpmgiOpen(path, "r%{?_rpmgio}"); Header h = NULL; if (fd != NULL) { @@ -665,7 +665,7 @@ path = _free(path); path = rpmExpand(_query_hdlist_path, NULL); } - gi->fd = rpmgiOpen(path, "rm.fdio"); + gi->fd = rpmgiOpen(path, "rm%{?_rpmgio}"); gi->active = 1; path = _free(path); } @@ . patch -p0 <<'@@ .' Index: rpm/macros.in $ cvs diff -u -r1.227 -r1.228 macros.in --- rpm/macros.in 4 Jan 2008 22:20:47 - 1.227 +++ rpm/macros.in 11 Jan 2008 23:05:32 - 1.228 @@ -1,7 +1,7 @@ #/*! \page config_macros Default configuration: @USRLIBRPM@/macros # \verbatim # -# $Id: macros.in,v 1.227 2008/01/04 22:20:47 rse Exp $ +# $Id: macros.in,v 1.228 2008/01/11 23:05:32 jbj Exp $ # # This is a global RPM configuration file. All changes made here will # be lost when the rpm package is upgraded. Any per-system configuration @@ -975,6 +975,10 @@ # Path for rpm -qH (default is /usr/share/comps/%{_arch}/hdlist) %_query_hdlist_path %{_datadir}/comps/%{_arch}/hdlist +# +# Permit network access? (".fdio" prohibits network access) +%_rpmgio .fdio + #== # Run-time probe dependency macros. @@ . patch -p0 <<'@@ .' Index: rpm/rpmio/rpmio.c $ cvs diff -u -r1.117 -r1.118 rpmio.c --- rpm/rpmio/rpmio.c 16 Dec 2007 22:54:40 - 1.117 +++ rpm/rpmio/rpmio.c 11 Jan 2008 23:05:34 - 1.118 @@ -3836,7 +3836,7 @@ FD_t fd; int rc = 0; -fd = Fopen(fn, "r"); +fd = Fopen(fn, "r%{?_rpmgio}"); if (fd == NULL || Ferror(fd)) { rc = 2; goto exit; @@ . __ RPM Package Managerhttp://rpm5.org CVS Sources Repositoryrpm-cvs@rpm5.org
[CVS] RPM: rpm/ CHANGES rpm/lib/ rpmgi.c rpm/perl/ RPM_Header.xs rpm/p...
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: 21-Nov-2007 01:25:05 Branch: HEAD Handle: 2007112100250301 Modified files: rpm CHANGES rpm/lib rpmgi.c rpm/perlRPM_Header.xs rpm/python header-py.c rpm/rpmdb hdrinline.h pkgio.c Log: - jbj: convert+remove headerRead() from the API, use rpmpkgRead instead. Summary: RevisionChanges Path 1.1860 +1 -0 rpm/CHANGES 2.41+9 -1 rpm/lib/rpmgi.c 1.13+12 -1 rpm/perl/RPM_Header.xs 1.79+35 -5 rpm/python/header-py.c 1.35+0 -12 rpm/rpmdb/hdrinline.h 1.48+12 -0 rpm/rpmdb/pkgio.c patch -p0 <<'@@ .' Index: rpm/CHANGES $ cvs diff -u -r1.1859 -r1.1860 CHANGES --- rpm/CHANGES 20 Nov 2007 23:50:55 - 1.1859 +++ rpm/CHANGES 21 Nov 2007 00:25:03 - 1.1860 @@ -1,4 +1,5 @@ 5.0a2 -> 5.0a3: +- jbj: convert+remove headerRead() from the API, use rpmpkgRead instead. - jbj: rebase rpmParseState_e +256 to permit rpmRC to be returned too. - jbj: remove headerWrite() from the public API, use rpmpkgWrite instead. - jbj: convert last headerWrite to use rpmpkgWrite instead. @@ . patch -p0 <<'@@ .' Index: rpm/lib/rpmgi.c $ cvs diff -u -r2.40 -r2.41 rpmgi.c --- rpm/lib/rpmgi.c 19 Nov 2007 18:57:54 - 2.40 +++ rpm/lib/rpmgi.c 21 Nov 2007 00:25:04 - 2.41 @@ -672,7 +672,15 @@ path = _free(path); } if (gi->fd != NULL) { - Header h = headerRead(gi->fd); + Header h = NULL; + const char item[] = "Header"; + const char * msg = NULL; + rpmrc = rpmpkgRead(item, gi->fd, &h, &msg); + if (rpmrc != RPMRC_OK) { + rpmlog(RPMLOG_ERR, "%s: %s: %s\n", "headerRead", item, msg); + h = NULL; + } + msg = _free(msg); if (h != NULL) { if (!(gi->flags & RPMGI_NOHEADER)) gi->h = headerLink(h); @@ . patch -p0 <<'@@ .' Index: rpm/perl/RPM_Header.xs $ cvs diff -u -r1.12 -r1.13 RPM_Header.xs --- rpm/perl/RPM_Header.xs20 Nov 2007 23:02:50 - 1.12 +++ rpm/perl/RPM_Header.xs21 Nov 2007 00:25:04 - 1.13 @@ -38,7 +38,18 @@ Header header; PPCODE: if (fp && (fd = fdDup(fileno(fp { -while ((header = headerRead(fd))) { + while (1) { + const char item[] = "Header"; + const char * msg = NULL; + header = NULL; + rpmRC rc = rpmpkgRead(item, fd, &header, &msg); + if (rc != RPMRC_OK) { + rpmlog(RPMLOG_ERR, "%s: %s: %s\n", "headerRead", item, msg); + header = NULL; + } + msg = _free(msg); + if (header == NULL) + break; if (callback != NULL && SvROK(callback)) { ENTER; SAVETMPS; @@ . patch -p0 <<'@@ .' Index: rpm/python/header-py.c $ cvs diff -u -r1.78 -r1.79 header-py.c --- rpm/python/header-py.c17 Nov 2007 18:11:45 - 1.78 +++ rpm/python/header-py.c21 Nov 2007 00:25:04 - 1.79 @@ -692,7 +692,13 @@ list = PyList_New(0); Py_BEGIN_ALLOW_THREADS -h = headerRead(fd); +{ const char item[] = "Header"; + const char * msg = NULL; + rpmRC rc = rpmpkgRead(item, fd, &h, &msg); + if (rc != RPMRC_OK) + rpmlog(RPMLOG_ERR, "%s: %s: %s\n", "headerRead", item, msg); + msg = _free(msg); +} Py_END_ALLOW_THREADS while (h) { @@ -707,7 +713,13 @@ h = headerFree(h); /* XXX ref held by hdr */ Py_BEGIN_ALLOW_THREADS - h = headerRead(fd); + { const char item[] = "Header"; + const char * msg = NULL; + rpmRC rc = rpmpkgRead(item, fd, &h, &msg); + if (rc != RPMRC_OK) + rpmlog(RPMLOG_ERR, "%s: %s: %s\n", "headerRead", item, msg); + msg = _free(msg); + } Py_END_ALLOW_THREADS } @@ -778,7 +790,13 @@ int xx; Py_BEGIN_ALLOW_THREADS -h = headerRead(fd); +{ c
[CVS] RPM: rpm/ CHANGES rpm/lib/ rpmgi.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: 11-Nov-2007 03:23:45 Branch: HEAD Handle: 200702234401 Modified files: rpm CHANGES rpm/lib rpmgi.c rpm/rpmdb librpmdb.vers pkgio.c pkgio.h rpmwf.c rpm/rpmio rpmio.c rpmio_internal.h Log: - jbj: clean up rpmpkg memory leaks. Summary: RevisionChanges Path 1.1801 +1 -0 rpm/CHANGES 2.37+2 -0 rpm/lib/rpmgi.c 1.25+1 -0 rpm/rpmdb/librpmdb.vers 1.28+23 -11 rpm/rpmdb/pkgio.c 1.7 +8 -0 rpm/rpmdb/pkgio.h 1.2 +4 -1 rpm/rpmdb/rpmwf.c 1.100 +0 -1 rpm/rpmio/rpmio.c 2.85+0 -4 rpm/rpmio/rpmio_internal.h patch -p0 <<'@@ .' Index: rpm/CHANGES $ cvs diff -u -r1.1800 -r1.1801 CHANGES --- rpm/CHANGES 10 Nov 2007 23:41:11 - 1.1800 +++ rpm/CHANGES 11 Nov 2007 02:23:44 - 1.1801 @@ -1,4 +1,5 @@ 4.5 -> 5.0: +- jbj: clean up rpmpkg memory leaks. - jbj: functional queries of *.xar packages, on to payload. - jbj: lash up rpmwf implicit iteration for Lead/Signature/Header reads. - jbj: add rpmwf getter/setter to FD_t for now. @@ . patch -p0 <<'@@ .' Index: rpm/lib/rpmgi.c $ cvs diff -u -r2.36 -r2.37 rpmgi.c --- rpm/lib/rpmgi.c 11 Oct 2007 19:44:22 - 2.36 +++ rpm/lib/rpmgi.c 11 Nov 2007 02:23:44 - 2.37 @@ -141,6 +141,7 @@ /* XXX what if path needs expansion? */ rpmRC rpmrc = rpmReadPackageFile(gi->ts, fd, path, &h); + (void) rpmpkgClean(fd); (void) Fclose(fd); switch (rpmrc) { @@ -496,6 +497,7 @@ gi->fts = NULL; } if (gi->fd != NULL) { + (void) rpmpkgClean(gi->fd); (void) Fclose(gi->fd); gi->fd = NULL; } @@ . patch -p0 <<'@@ .' Index: rpm/rpmdb/librpmdb.vers $ cvs diff -u -r1.24 -r1.25 librpmdb.vers --- rpm/rpmdb/librpmdb.vers 10 Nov 2007 23:41:11 - 1.24 +++ rpm/rpmdb/librpmdb.vers 11 Nov 2007 02:23:44 - 1.25 @@ -82,6 +82,7 @@ rpmdbVerify; rpmdbVerifyAllDBI; rpmpkgCheck; +rpmpkgClean; rpmpkgRead; rpmpkgSizeof; rpmpkgWrite; @@ . patch -p0 <<'@@ .' Index: rpm/rpmdb/pkgio.c $ cvs diff -u -r1.27 -r1.28 pkgio.c --- rpm/rpmdb/pkgio.c 10 Nov 2007 23:41:11 - 1.27 +++ rpm/rpmdb/pkgio.c 11 Nov 2007 02:23:44 - 1.28 @@ -1310,14 +1310,14 @@ if (_jbj) fprintf(stderr, "==> rpmpkgSizeof(%s, %p)\n", fn, ptr); if (!strcmp(fn, "Lead")) - return 96; /* RPMLEAD_SIZE */ + len = 96; /* RPMLEAD_SIZE */ +else if (!strcmp(fn, "Signature")) { - size_t nb = szHeader(ptr); - nb += (8 - (nb % 8)); /* padding */ - return nb; -} + len = szHeader(ptr); + len += (8 - (len % 8)); /* padding */ +} else if (!strcmp(fn, "Header")) - return szHeader(ptr); + len = szHeader(ptr); return len; } @@ -1328,7 +1328,7 @@ if (_jbj) fprintf(stderr, "==> rpmpkgCheck(%s, %p, %p, %p)\n", fn, fd, ptr, msg); if (!strcmp(fn, "Header")) - return ckHeader(fd, ptr, msg); + rc = ckHeader(fd, ptr, msg); return rc; } @@ -1355,7 +1355,7 @@ rc = rdSignature(fd, ptr, msg); else if (!strcmp(fn, "Header")) - return rdHeader(fd, ptr, msg); + rc = rdHeader(fd, ptr, msg); return rc; } @@ -1366,10 +1366,22 @@ if (_jbj) fprintf(stderr, "==> rpmpkgWrite(%s, %p, %p, %p) use_xar %d\n", fn, fd, ptr, msg, _use_xar); if (!strcmp(fn, "Lead")) - return wrLead(fd, ptr, msg); + rc = wrLead(fd, ptr, msg); +else if (!strcmp(fn, "Signature")) - return wrSignature(fd, ptr, msg); + rc = wrSignature(fd, ptr, msg); +else if (!strcmp(fn, "Header")) - return wrHeader(fd, ptr, msg); + rc = wrHeader(fd, ptr, msg); return rc; } + +rpmRC rpmpkgClean(FD_t fd) +{ +rpmwf wf = fdGetWF(fd); +if (wf != NULL) { + fdSetWF(fd, NULL); + wf = rpmwfFree(wf); +} +return RPMRC_OK; +} @@ . patch -p0 <<
[CVS] RPM: rpm/ CHANGES rpm/lib/ rpmgi.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: 05-Jul-2007 17:38:37 Branch: HEAD Handle: 2007070516383601 Modified files: rpm CHANGES rpm/lib rpmgi.c Log: - reset errno to 0 in rpmgiOpen to eliminate false ENOENT failure. Summary: RevisionChanges Path 1.1431 +1 -0 rpm/CHANGES 2.26+5 -4 rpm/lib/rpmgi.c patch -p0 <<'@@ .' Index: rpm/CHANGES $ cvs diff -u -r1.1430 -r1.1431 CHANGES --- rpm/CHANGES 4 Jul 2007 16:32:44 - 1.1430 +++ rpm/CHANGES 5 Jul 2007 15:38:36 - 1.1431 @@ -1,4 +1,5 @@ 4.5 -> 5.0: +- jbj: reset errno to 0 in rpmgiOpen to eliminate false ENOENT failure. - rse: do not build and install NLS data under po/ at all in case of --disable-nls - jbj: add new-fangled debugedit patch (#246404). - mgh: When the rpmfc_magic_path is not set or can't be expanded, act as if there is no magic file @@ . patch -p0 <<'@@ .' Index: rpm/lib/rpmgi.c $ cvs diff -u -r2.25 -r2.26 rpmgi.c --- rpm/lib/rpmgi.c 4 Jul 2007 16:16:50 - 2.25 +++ rpm/lib/rpmgi.c 5 Jul 2007 15:38:37 - 2.26 @@ -85,7 +85,11 @@ /[EMAIL PROTECTED] rpmGlobalMacroContext, h_errno, internalState @*/ { const char * fn = rpmExpand(path, NULL); -FD_t fd = Fopen(fn, fmode); +FD_t fd; + +/* FIXME (see http://rpm5.org/community/rpm-devel/0523.html) */ +errno = 0; +fd = Fopen(fn, fmode); if (fd == NULL || Ferror(fd)) { rpmError(RPMERR_OPEN, _("open of %s failed: %s\n"), fn, Fstrerror(fd)); @@ -204,11 +208,8 @@ if (rpmrc == RPMRC_OK || gi->flags & RPMGI_NOMANIFEST) break; -#if 0 - /* FIXME (see http://rpm5.org/community/rpm-devel/0523.html) */ if (errno == ENOENT) break; -#endif /* Not a header, so try for a manifest. */ gi->argv[gi->i] = NULL; /* Mark the insertion point */ @@ . __ RPM Package Managerhttp://rpm5.org CVS Sources Repositoryrpm-cvs@rpm5.org