[CVS] RPM: rpm/ CHANGES rpm/lib/ rpmgi.c

2011-09-12 Thread Jeff Johnson
  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

2010-11-01 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:   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

2009-06-01 Thread Jeff Johnson
  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...

2008-02-07 Thread Jeff Johnson
  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

2008-02-02 Thread Jeff Johnson
  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...

2008-01-11 Thread Jeff Johnson
  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...

2007-11-20 Thread Jeff Johnson
  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...

2007-11-10 Thread Jeff Johnson
  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

2007-07-05 Thread Jeff Johnson
  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