RPM Community Forums

Mailing List Message of <rpm-cvs>

[CVS] RPM: rpm-5_1: rpm/ CHANGES rpm/rpmio/ Makefile.am gengpg.sh libr...

From: Jeff Johnson <jbj@rpm5.org>
Date: Sat 14 Aug 2010 - 00:40:52 CEST
Message-Id: <20100813224052.3B391D1A29@rpm5.org>
  RPM Package Manager, CVS Repository
  /cvs/
  ____________________________________________________________________________

  Server: rpm5.org                         Name:   Jeff Johnson
  Root:   /v/rpm/cvs                       Email:  jbj@rpm5.org
  Module: rpm                              Date:   14-Aug-2010 00:40:52
  Branch: rpm-5_1                          Handle: 2009081422241731450592

  Added files:              (Branch: rpm-5_1)
    rpm/rpmio               rpmbag.c rpmbag.h
  Modified files:           (Branch: rpm-5_1)
    rpm                     CHANGES
    rpm/rpmio               Makefile.am librpmio.vers poptIO.c rpmio.c
  Removed files:            (Branch: rpm-5_1)
    rpm/rpmio               gengpg.sh

  Log:
    - solve: stub-in toy add/del methods.
    - solve: permit multiple solvedb's in a rpmbag.

  Summary:
    Revision    Changes     Path
    1.2288.2.314+2  -0      rpm/CHANGES
    1.162.2.27  +2  -3      rpm/rpmio/Makefile.am
    2.3         +0  -45     rpm/rpmio/gengpg.sh
    2.63.2.22   +4  -0      rpm/rpmio/librpmio.vers
    1.24.2.10   +6  -0      rpm/rpmio/poptIO.c
    2.2.6.2     +90 -0      rpm/rpmio/rpmbag.c
    2.2.6.2     +105 -0     rpm/rpmio/rpmbag.h
    1.127.2.27  +3  -0      rpm/rpmio/rpmio.c
  ____________________________________________________________________________

  patch -p0 <<'@@ .'
  Index: rpm/CHANGES
  ============================================================================
  $ cvs diff -u -r1.2288.2.313 -r1.2288.2.314 CHANGES
  --- rpm/CHANGES	13 Aug 2010 18:18:50 -0000	1.2288.2.313
  +++ rpm/CHANGES	13 Aug 2010 22:40:48 -0000	1.2288.2.314
  @@ -1,4 +1,6 @@
   5.1.9 -> 5.1.10:
  +    - 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.
       - jbj: solve: flip --aid "opt-in" behavior to --noaid "opt-out".
       - jbj: solve: fix: don't free the package file name when depsolving.
  @@ .
  patch -p0 <<'@@ .'
  Index: rpm/rpmio/Makefile.am
  ============================================================================
  $ cvs diff -u -r1.162.2.26 -r1.162.2.27 Makefile.am
  --- rpm/rpmio/Makefile.am	13 Apr 2009 10:22:33 -0000	1.162.2.26
  +++ rpm/rpmio/Makefile.am	13 Aug 2010 22:40:49 -0000	1.162.2.27
  @@ -24,7 +24,6 @@
   TESTS =
   check_PROGRAMS =
   check_SCRIPTS =
  -dist_noinst_SCRIPTS = gengpg.sh testit.sh
   
   AM_CPPFLAGS = \
   	-I$(srcdir) \
  @@ -65,7 +64,7 @@
   	ar.h cpio.h crc.h fnmatch.h glob.h iosm.h \
   	md2.h md4.h poptIO.h rmd128.h rmd160.h rmd256.h rmd320.h sha224.h \
   	salsa10.h salsa20.h tar.h tiger.h \
  -	rpmhook.h rpmio_internal.h rpmlua.h rpmbz.h
  +	rpmbag.h rpmbz.h rpmhook.h rpmio_internal.h rpmlua.h
   
   usrlibdir = $(libdir)
   usrlib_LTLIBRARIES = librpmio.la
  @@ -75,7 +74,7 @@
   	macro.c mire.c mount.c poptIO.c \
   	md2.c md4.c rmd128.c rmd160.c rmd256.c rmd320.c sha224.c \
   	salsa10.c salsa20.c tiger.c \
  -	rpmbc.c rpmdav.c rpmgc.c rpmhash.c rpmhook.c rpmio.c rpmiob.c \
  +	rpmbag.c rpmbc.c rpmdav.c rpmgc.c rpmhash.c rpmhook.c rpmio.c rpmiob.c \
   	rpmio-stub.c rpmku.c rpmlog.c rpmlua.c rpmmalloc.c rpmmg.c \
   	rpmnss.c rpmpgp.c rpmrpc.c rpmsq.c rpmssl.c rpmsw.c rpmuuid.c \
   	rpmxar.c rpmzlog.c strcasecmp.c strtolocale.c \
  @@ .
  rm -f rpm/rpmio/gengpg.sh <<'@@ .'
  Index: rpm/rpmio/gengpg.sh
  ============================================================================
  [NO CHANGE SUMMARY BECAUSE FILE AS A WHOLE IS JUST REMOVED]
  @@ .
  patch -p0 <<'@@ .'
  Index: rpm/rpmio/librpmio.vers
  ============================================================================
  $ cvs diff -u -r2.63.2.21 -r2.63.2.22 librpmio.vers
  --- rpm/rpmio/librpmio.vers	6 Apr 2009 00:20:11 -0000	2.63.2.21
  +++ rpm/rpmio/librpmio.vers	13 Aug 2010 22:40:49 -0000	2.63.2.22
  @@ -251,6 +251,10 @@
       _RequestPass;
       Rmdir;
       _Rmdir;
  +    _rpmbag_debug;
  +    rpmbagAdd;
  +    rpmbagDel;
  +    rpmbagNew;
       rpmbcImplVecs;
       rpmCleanPath;
       rpmCLIMacroContext;
  @@ .
  patch -p0 <<'@@ .'
  Index: rpm/rpmio/poptIO.c
  ============================================================================
  $ cvs diff -u -r1.24.2.9 -r1.24.2.10 poptIO.c
  --- rpm/rpmio/poptIO.c	18 Apr 2009 16:45:17 -0000	1.24.2.9
  +++ rpm/rpmio/poptIO.c	13 Aug 2010 22:40:49 -0000	1.24.2.10
  @@ -25,6 +25,8 @@
   #include <rpmssl.h>
   #endif
   
  +#include <rpmbag.h>
  +
   #include "debug.h"
   
   const char *__progname;
  @@ -402,6 +404,10 @@
   	N_("Debug rpmio I/O"), NULL},
    { "rpmiobdebug", '\0', POPT_ARG_VAL|POPT_ARGFLAG_DOC_HIDDEN, &_rpmiob_debug, -1,
   	N_("Debug rpmio I/O buffers"), NULL},
  +
  + { "rpmbagdebug", '\0', POPT_ARG_VAL|POPT_ARGFLAG_DOC_HIDDEN, &_rpmbag_debug, -1,
  +	N_("Debug depsolver wrappers "), NULL},
  +
   #ifdef WITH_LUA
    { "rpmluadebug", '\0', POPT_ARG_VAL|POPT_ARGFLAG_DOC_HIDDEN, &_rpmlua_debug, -1,
   	N_("Debug embedded Lua interpreter"), NULL},
  @@ .
  patch -p0 <<'@@ .'
  Index: rpm/rpmio/rpmbag.c
  ============================================================================
  $ cvs diff -u -r0 -r2.2.6.2 rpmbag.c
  --- /dev/null	2010-08-14 00:34:25.000000000 +0200
  +++ rpmbag.c	2010-08-14 00:40:51.361565633 +0200
  @@ -0,0 +1,90 @@
  +/** \ingroup rpmio
  + * \file rpmio/rpmbag.c
  + */
  +
  +#include "system.h"
  +
  +#include <rpmiotypes.h>
  +#include <rpmio.h>	/* for *Pool methods */
  +#include <rpmlog.h>
  +#include <rpmurl.h>
  +#define	_RPMBAG_INTERNAL
  +#include <rpmbag.h>
  +
  +#include "debug.h"
  +
  +/*@unchecked@*/
  +int _rpmbag_debug = 0;
  +
  +static int _maxnsdbp = 5;
  +
  +static void rpmbagFini(void * _bag)
  +	/*@globals fileSystem @*/
  +	/*@modifies *_bag, fileSystem @*/
  +{
  +    rpmbag bag = _bag;
  +
  +    bag->sdbp = _free(bag->sdbp);
  +    bag->nsdbp = 0;
  +    bag->fn = _free(bag->fn);
  +    bag->flags = 0;
  +}
  +
  +/*@unchecked@*/ /*@only@*/ /*@null@*/
  +rpmioPool _rpmbagPool = NULL;
  +
  +static rpmbag rpmbagGetPool(/*@null@*/ rpmioPool pool)
  +	/*@globals _rpmbagPool, fileSystem @*/
  +	/*@modifies pool, _rpmbagPool, fileSystem @*/
  +{
  +    rpmbag bag;
  +
  +    if (_rpmbagPool == NULL) {
  +	_rpmbagPool = rpmioNewPool("bag", sizeof(*bag), -1, _rpmbag_debug,
  +			NULL, NULL, rpmbagFini);
  +	pool = _rpmbagPool;
  +    }
  +    bag = (rpmbag) rpmioGetPool(pool, sizeof(*bag));
  +    memset(((char *)bag)+sizeof(bag->_item), 0, sizeof(*bag)-sizeof(bag->_item));
  +    return bag;
  +}
  +
  +rpmbag rpmbagNew(const char * fn, int flags)
  +{
  +    rpmbag bag = rpmbagGetPool(_rpmbagPool);
  +
  +    if (fn)
  +	bag->fn = xstrdup(fn);
  +    bag->flags = flags;
  +
  +    bag->sdbp = xcalloc(_maxnsdbp, sizeof(*bag->sdbp));
  +
  +    return rpmbagLink(bag);
  +}
  +
  +int rpmbagAdd(rpmbag bag, void *_db, int dbmode)
  +{
  +    if (bag && bag->sdbp && (int)bag->nsdbp >= 0 && bag->nsdbp < _maxnsdbp) {
  +	rpmsdb * sdbp = bag->sdbp;
  +	int i = bag->nsdbp++;		/* XXX find empty slot */
  +	sdbp[i] = xcalloc(1, sizeof(*sdbp[i]));
  +	sdbp[i]->dbmode = dbmode;
  +	sdbp[i]->_db = _db;
  +    }
  +
  +    return 0;
  +}
  +
  +int rpmbagDel(rpmbag bag, int i)
  +{
  +
  +    if (bag && bag->sdbp && i >= 0 && i <= _maxnsdbp) {
  +	rpmsdb * sdbp = bag->sdbp;
  +	memset(sdbp[i], 0, sizeof(*sdbp[i]));
  +	sdbp[i] = _free(sdbp[i]);
  +	if ((i+1) == (int)bag->nsdbp)	/* XXX find empty slot */
  +	    bag->nsdbp--;
  +    }
  +
  +    return 0;
  +}
  @@ .
  patch -p0 <<'@@ .'
  Index: rpm/rpmio/rpmbag.h
  ============================================================================
  $ cvs diff -u -r0 -r2.2.6.2 rpmbag.h
  --- /dev/null	2010-08-14 00:34:25.000000000 +0200
  +++ rpmbag.h	2010-08-14 00:40:51.611579944 +0200
  @@ -0,0 +1,105 @@
  +#ifndef	H_RPMBAG
  +#define	H_RPMBAG
  +
  +/** \ingroup rpmio
  + * \file rpmio/rpmbag.h
  + */
  +
  +/** \ingroup rpmio
  + */
  +/*@unchecked@*/
  +extern int _rpmbag_debug;
  +
  +/** \ingroup rpmio
  + */
  +typedef /*@refcounted@*/ struct rpmbag_s * rpmbag;
  +typedef struct rpmsdb_s * rpmsdb;
  +
  +#if defined(_RPMBAG_INTERNAL)
  +
  +struct rpmsdb_s {
  +    struct rpmioItem_s _item;	/*!< usage mutex and pool identifier. */
  +    void * _bf;
  +    int dbmode;
  +    void * _db;
  +#if defined(__LCLINT__)
  +/*@refs@*/
  +    int nrefs;			/*!< (unused) keep splint happy */
  +#endif
  +};
  +
  +/** \ingroup rpmio
  + */
  +struct rpmbag_s {
  +    struct rpmioItem_s _item;	/*!< usage mutex and pool identifier. */
  +    const char * fn;
  +    int flags;
  +    size_t nsdbp;
  +    rpmsdb * sdbp;
  +#if defined(__LCLINT__)
  +/*@refs@*/
  +    int nrefs;			/*!< (unused) keep splint happy */
  +#endif
  +};
  +#endif	/* _RPMBAG_INTERNAL */
  +
  +#ifdef __cplusplus
  +extern "C" {
  +#endif
  +
  +/**
  + * Unreference a bag wrapper instance.
  + * @param bag		bag wrapper
  + * @return		NULL on last dereference
  + */
  +/*@unused@*/ /*@null@*/
  +rpmbag rpmbagUnlink (/*@killref@*/ /*@only@*/ /*@null@*/ rpmbag bag)
  +	/*@modifies bag @*/;
  +#define	rpmbagUnlink(_bag)	\
  +    ((rpmbag)rpmioUnlinkPoolItem((rpmioItem)(_bag), __FUNCTION__, __FILE__, __LINE__))
  +
  +/**
  + * Reference a bag wrapper instance.
  + * @param bag		bag wrapper
  + * @return		new bag wrapper reference
  + */
  +/*@unused@*/ /*@newref@*/ /*@null@*/
  +rpmbag rpmbagLink (/*@null@*/ rpmbag bag)
  +	/*@modifies bag @*/;
  +#define	rpmbagLink(_bag)	\
  +    ((rpmbag)rpmioLinkPoolItem((rpmioItem)(_bag), __FUNCTION__, __FILE__, __LINE__))
  +
  +/**
  + * Destroy a bag wrapper.
  + * @param bag		bag wrapper
  + * @return		NULL on last dereference
  + */
  +/*@null@*/
  +rpmbag rpmbagFree(/*@killref@*/ /*@null@*/rpmbag bag)
  +	/*@globals fileSystem @*/
  +	/*@modifies bag, fileSystem @*/;
  +#define	rpmbagFree(_bag)	\
  +    ((rpmbag)rpmioFreePoolItem((rpmioItem)(_bag), __FUNCTION__, __FILE__, __LINE__))
  +
  +/**
  + * Create and load a bag wrapper.
  + * @param fn		bag file
  + * @param flags		bag flags
  + * @return		new bag wrapper
  + */
  +/*@newref@*/ /*@null@*/
  +rpmbag rpmbagNew(const char * fn, int flags)
  +	/*@globals fileSystem, internalState @*/
  +	/*@modifies fileSystem, internalState @*/;
  +
  +int rpmbagAdd(rpmbag bag, void *_db, int dbmode)
  +	/*@*/;
  +
  +int rpmbagDel(rpmbag bag, int i)
  +	/*@*/;
  +
  +#ifdef __cplusplus
  +}
  +#endif
  +
  +#endif	/* H_RPMBAG */
  @@ .
  patch -p0 <<'@@ .'
  Index: rpm/rpmio/rpmio.c
  ============================================================================
  $ cvs diff -u -r1.127.2.26 -r1.127.2.27 rpmio.c
  --- rpm/rpmio/rpmio.c	11 Apr 2009 16:34:41 -0000	1.127.2.26
  +++ rpm/rpmio/rpmio.c	13 Aug 2010 22:40:49 -0000	1.127.2.27
  @@ -3145,6 +3145,7 @@
       extern rpmioPool _mirePool;
       extern rpmioPool _htPool;
   /*@=shadow@*/
  +    extern rpmioPool _rpmbagPool;
       extern rpmioPool _rpmmgPool;
   /*@=nestedextern@*/
   #if defined(WITH_LUA)
  @@ -3166,6 +3167,8 @@
   #endif
       urlFreeCache();
   
  +    _rpmbagPool = rpmioFreePool(_rpmbagPool);
  +
   #if defined(WITH_LUA)
       _rpmluavPool = rpmioFreePool(_rpmluavPool);
       _rpmluaPool = rpmioFreePool(_rpmluaPool);
  @@ .
Received on Sat Aug 14 00:40:52 2010
Driven by Jeff Johnson and the RPM project team.
Hosted by OpenPKG and Ralf S. Engelschall.
Powered by FreeBSD and OpenPKG.