RPM Community Forums

Mailing List Message of <rpm-cvs>

[CVS] RPM: rpm/ CHANGES rpm/lib/ poptALL.c rpm/rpmdb/ Makefile.am libr...

From: Jeff Johnson <jbj@rpm5.org>
Date: Fri 17 Sep 2010 - 18:17:03 CEST
Message-Id: <20100917161703.23699BA2BF@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:   17-Sep-2010 18:17:03
  Branch: HEAD                             Handle: 2010091716170101

  Added files:
    rpm/rpmdb               rpmmdb.c rpmmdb.h
  Modified files:
    rpm                     CHANGES
    rpm/lib                 poptALL.c
    rpm/rpmdb               Makefile.am librpmdb.vers poptDB.c

  Log:
    - mongo: stub-in a rpmmdb object to carry the Mongo DB C driver.

  Summary:
    Revision    Changes     Path
    1.3444      +1  -0      rpm/CHANGES
    2.142       +7  -6      rpm/lib/poptALL.c
    1.129       +4  -3      rpm/rpmdb/Makefile.am
    1.87        +4  -0      rpm/rpmdb/librpmdb.vers
    1.18        +3  -0      rpm/rpmdb/poptDB.c
    1.1         +59 -0      rpm/rpmdb/rpmmdb.c
    1.1         +87 -0      rpm/rpmdb/rpmmdb.h
  ____________________________________________________________________________

  patch -p0 <<'@@ .'
  Index: rpm/CHANGES
  ============================================================================
  $ cvs diff -u -r1.3443 -r1.3444 CHANGES
  --- rpm/CHANGES	13 Sep 2010 22:36:38 -0000	1.3443
  +++ rpm/CHANGES	17 Sep 2010 16:17:01 -0000	1.3444
  @@ -1,4 +1,5 @@
   5.3.3 -> 5.4a1:
  +    - jbj: mongo: stub-in a rpmmdb object to carry the Mongo DB C driver.
       - jbj: mongo: stub-in a mongo spewage alias as --wdj:srpm.mongo.
       - jbj: gpsee: replace WITH_JS everwhere with WITH_GPSEE. GPSEE->JS always.
       - jbj: rpmjs: resecusitate sufficiently to use with jx/ngsr.c. more todo++.
  @@ .
  patch -p0 <<'@@ .'
  Index: rpm/lib/poptALL.c
  ============================================================================
  $ cvs diff -u -r2.141 -r2.142 poptALL.c
  --- rpm/lib/poptALL.c	12 Aug 2010 19:33:23 -0000	2.141
  +++ rpm/lib/poptALL.c	17 Sep 2010 16:17:02 -0000	2.142
  @@ -26,13 +26,13 @@
   
   #include <rpmtag.h>
   #include <rpmtypes.h>
  -#include <rpmrc.h>
   #include <rpmversion.h>
  -#include <rpmcli.h>
  -
  +#include <rpmmdb.h>
   #include <rpmns.h>		/* XXX rpmnsClean() */
   
  +#include <rpmrc.h>
   #include <fs.h>			/* XXX rpmFreeFilesystems() */
  +#include <rpmcli.h>
   
   #include "debug.h"
   
  @@ -87,9 +87,6 @@
   extern int _rpmal_debug;
   
   /*@unchecked@*/
  -extern int _rpmdb_debug;
  -
  -/*@unchecked@*/
   extern int _rpmds_debug;
   /*@unchecked@*/
   extern rpmioPool _rpmdsPool;
  @@ -491,6 +488,7 @@
       extern rpmioPool _rpmmiPool;
       extern rpmioPool _dbiPool;
       extern rpmioPool _rpmdbPool;
  +    extern rpmioPool _rpmmdbPool;
       extern rpmioPool _rpmwfPool;
       extern const char * evr_tuple_order;
       extern const char * evr_tuple_match;
  @@ -509,6 +507,9 @@
       _rpmrubyI = rpmrubyFree(_rpmrubyI);
       _rpmrubyPool = rpmioFreePool(_rpmrubyPool);
   
  +    _rpmmdbI = rpmmdbFree(_rpmmdbI);
  +    _rpmmdbPool = rpmioFreePool(_rpmmdbPool);
  +
       _rpmgiPool = rpmioFreePool(_rpmgiPool);
       _rpmmiPool = rpmioFreePool(_rpmmiPool);
   
  @@ .
  patch -p0 <<'@@ .'
  Index: rpm/rpmdb/Makefile.am
  ============================================================================
  $ cvs diff -u -r1.128 -r1.129 Makefile.am
  --- rpm/rpmdb/Makefile.am	29 Apr 2010 23:35:15 -0000	1.128
  +++ rpm/rpmdb/Makefile.am	17 Sep 2010 16:17:02 -0000	1.129
  @@ -49,7 +49,7 @@
   pkgincdir = $(pkgincludedir)$(WITH_PATH_VERSIONED_SUFFIX)
   pkginc_HEADERS = pkgio.h rpmdb.h rpmevr.h rpmns.h rpmtag.h rpmtypes.h
   noinst_HEADERS = \
  -	fprint.h header_internal.h legacy.h rpmdpkg.h rpmlio.h \
  +	fprint.h header_internal.h legacy.h rpmdpkg.h rpmlio.h rpmmdb.h \
   	rpmtd.h rpmtxn.h rpmwf.h signature.h
   
   pkglibdir =		@USRLIBRPM@
  @@ -66,8 +66,9 @@
   librpmdb_la_SOURCES = \
   	dbconfig.c fprint.c \
   	hdrfmt.c hdrNVR.c header.c header_internal.c legacy.c merge.c \
  -	pkgio.c poptDB.c rpmdb.c rpmdpkg.c rpmevr.c rpmlio.c rpmns.c rpmtd.c \
  -	rpmtxn.c rpmwf.c signature.c tagname.c tagtbl.c $(logio_LSOURCES)
  +	pkgio.c poptDB.c rpmdb.c rpmdpkg.c rpmevr.c rpmlio.c rpmmdb.c \
  +	rpmns.c rpmtd.c rpmtxn.c rpmwf.c signature.c tagname.c tagtbl.c \
  +	$(logio_LSOURCES)
   librpmdb_la_LDFLAGS = -release $(LT_CURRENT).$(LT_REVISION)
   if HAVE_LD_VERSION_SCRIPT
   librpmdb_la_LDFLAGS += -Wl,--version-script=$(srcdir)/librpmdb.vers
  @@ .
  patch -p0 <<'@@ .'
  Index: rpm/rpmdb/librpmdb.vers
  ============================================================================
  $ cvs diff -u -r1.86 -r1.87 librpmdb.vers
  --- rpm/rpmdb/librpmdb.vers	6 Mar 2010 16:20:46 -0000	1.86
  +++ rpm/rpmdb/librpmdb.vers	17 Sep 2010 16:17:02 -0000	1.87
  @@ -157,6 +157,10 @@
       rpmlioPostin;
       rpmlioPreun;
       rpmlioPostun;
  +    _rpmmdb_debug;
  +    _rpmmdbI;
  +    _rpmmdbPool;
  +    rpmmdbNew;
       _rpmmi_debug;
       _rpmmiPool;
       rpmmiAddPattern;
  @@ .
  patch -p0 <<'@@ .'
  Index: rpm/rpmdb/poptDB.c
  ============================================================================
  $ cvs diff -u -r1.17 -r1.18 poptDB.c
  --- rpm/rpmdb/poptDB.c	29 Jan 2010 21:02:31 -0000	1.17
  +++ rpm/rpmdb/poptDB.c	17 Sep 2010 16:17:02 -0000	1.18
  @@ -11,6 +11,7 @@
   #include <rpmtag.h>
   #include <rpmdb.h>
   #include <rpmlio.h>
  +#include <rpmmdb.h>
   #include <rpmtxn.h>
   
   #include <rpmcli.h>	/* XXX rpmQVKArguments_s, <popt.h> */
  @@ -39,6 +40,8 @@
   	N_("Debug dbiIndex DataBase Index"), NULL},
    { "rpmliodebug", '\0', POPT_ARG_VAL|POPT_ARGFLAG_DOC_HIDDEN, &_rpmlio_debug, -1,
   	N_("Debug rpmlio database Log I/O"), NULL},
  + { "rpmmdbdebug", '\0', POPT_ARG_VAL|POPT_ARGFLAG_DOC_HIDDEN, &_rpmmdb_debug, -1,
  +	N_("Debug Mongo DB"), NULL},
    { "rpmtxndebug", '\0', POPT_ARG_VAL|POPT_ARGFLAG_DOC_HIDDEN, &_rpmtxn_debug, -1,
   	N_("Debug rpmtxn database Transaction"), NULL},
   
  @@ .
  patch -p0 <<'@@ .'
  Index: rpm/rpmdb/rpmmdb.c
  ============================================================================
  $ cvs diff -u -r0 -r1.1 rpmmdb.c
  --- /dev/null	2010-09-17 18:16:08.000000000 +0200
  +++ rpmmdb.c	2010-09-17 18:17:02.680817616 +0200
  @@ -0,0 +1,59 @@
  +/** \ingroup rpmio
  + * \file rpmio/rpmmdb.c
  + */
  +
  +#include "system.h"
  +
  +#include <rpmiotypes.h>
  +#include <rpmio.h>	/* for *Pool methods */
  +#include <rpmlog.h>
  +#include <rpmurl.h>
  +#define	_RPMMDB_INTERNAL
  +#include <rpmmdb.h>
  +
  +#include "debug.h"
  +
  +/*@unchecked@*/
  +int _rpmmdb_debug = 0;
  +
  +/*@unchecked@*/ /*@relnull@*/
  +rpmmdb _rpmmdbI;
  +
  +static void rpmmdbFini(void * _mdb)
  +	/*@globals fileSystem @*/
  +	/*@modifies *_mdb, fileSystem @*/
  +{
  +    rpmmdb mdb = _mdb;
  +
  +    mdb->fn = _free(mdb->fn);
  +}
  +
  +/*@unchecked@*/ /*@only@*/ /*@null@*/
  +rpmioPool _rpmmdbPool = NULL;
  +
  +static rpmmdb rpmmdbGetPool(/*@null@*/ rpmioPool pool)
  +	/*@globals _rpmmdbPool, fileSystem @*/
  +	/*@modifies pool, _rpmmdbPool, fileSystem @*/
  +{
  +    rpmmdb mdb;
  +
  +    if (_rpmmdbPool == NULL) {
  +	_rpmmdbPool = rpmioNewPool("mdb", sizeof(*mdb), -1, _rpmmdb_debug,
  +			NULL, NULL, rpmmdbFini);
  +	pool = _rpmmdbPool;
  +    }
  +    mdb = (rpmmdb) rpmioGetPool(pool, sizeof(*mdb));
  +    memset(((char *)mdb)+sizeof(mdb->_item), 0, sizeof(*mdb)-sizeof(mdb->_item));
  +    return mdb;
  +}
  +
  +rpmmdb rpmmdbNew(const char * fn, int flags)
  +{
  +    rpmmdb mdb = rpmmdbGetPool(_rpmmdbPool);
  +    int xx;
  +
  +    if (fn)
  +	mdb->fn = xstrdup(fn);
  +
  +    return rpmmdbLink(mdb);
  +}
  @@ .
  patch -p0 <<'@@ .'
  Index: rpm/rpmdb/rpmmdb.h
  ============================================================================
  $ cvs diff -u -r0 -r1.1 rpmmdb.h
  --- /dev/null	2010-09-17 18:16:08.000000000 +0200
  +++ rpmmdb.h	2010-09-17 18:17:02.720819562 +0200
  @@ -0,0 +1,87 @@
  +#ifndef	H_RPMMDB
  +#define	H_RPMMDB
  +
  +/** \ingroup rpmio
  + * \file rpmdb/rpmmdb.h
  + */
  +
  +/** \ingroup rpmio
  + */
  +typedef /*@refcounted@*/ struct rpmmdb_s * rpmmdb;
  +
  +/** \ingroup rpmdb
  + */
  +/*@unchecked@*/
  +extern int _rpmmdb_debug;
  +
  +/*@unchecked@*/ /*@relnull@*/
  +extern rpmmdb _rpmmdbI;
  +
  +#if defined(_RPMMDB_INTERNAL)
  +
  +/** \ingroup rpmdb
  + */
  +struct rpmmdb_s {
  +    struct rpmioItem_s _item;	/*!< usage mutex and pool identifier. */
  +    const char * fn;
  +#if defined(__LCLINT__)
  +/*@refs@*/
  +    int nrefs;			/*!< (unused) keep splint happy */
  +#endif
  +};
  +#endif	/* _RPMMDB_INTERNAL */
  +
  +#ifdef __cplusplus
  +extern "C" {
  +#endif
  +
  +/**
  + * Unreference a mdb wrapper instance.
  + * @param mdb		mdb wrapper
  + * @return		NULL on last dereference
  + */
  +/*@unused@*/ /*@null@*/
  +rpmmdb rpmmdbUnlink (/*@killref@*/ /*@only@*/ /*@null@*/ rpmmdb mdb)
  +	/*@modifies mdb @*/;
  +#define	rpmmdbUnlink(_mdb)	\
  +    ((rpmmdb)rpmioUnlinkPoolItem((rpmioItem)(_mdb), __FUNCTION__, __FILE__, __LINE__))
  +
  +/**
  + * Reference a mdb wrapper instance.
  + * @param mdb		mdb wrapper
  + * @return		new mdb wrapper reference
  + */
  +/*@unused@*/ /*@newref@*/ /*@null@*/
  +rpmmdb rpmmdbLink (/*@null@*/ rpmmdb mdb)
  +	/*@modifies mdb @*/;
  +#define	rpmmdbLink(_mdb)	\
  +    ((rpmmdb)rpmioLinkPoolItem((rpmioItem)(_mdb), __FUNCTION__, __FILE__, __LINE__))
  +
  +/**
  + * Destroy a mdb wrapper.
  + * @param mdb		mdb wrapper
  + * @return		NULL on last dereference
  + */
  +/*@null@*/
  +rpmmdb rpmmdbFree(/*@killref@*/ /*@null@*/rpmmdb mdb)
  +	/*@globals fileSystem @*/
  +	/*@modifies mdb, fileSystem @*/;
  +#define	rpmmdbFree(_mdb)	\
  +    ((rpmmdb)rpmioFreePoolItem((rpmioItem)(_mdb), __FUNCTION__, __FILE__, __LINE__))
  +
  +/**
  + * Create and load a mdb wrapper.
  + * @param fn		mdb file
  + * @param flags		mdb flags
  + * @return		new mdb wrapper
  + */
  +/*@newref@*/ /*@null@*/
  +rpmmdb rpmmdbNew(const char * fn, int flags)
  +	/*@globals fileSystem, internalState @*/
  +	/*@modifies fileSystem, internalState @*/;
  +
  +#ifdef __cplusplus
  +}
  +#endif
  +
  +#endif	/* H_RPMMDB */
  @@ .
Received on Fri Sep 17 18:17:03 2010
Driven by Jeff Johnson and the RPM project team.
Hosted by OpenPKG and Ralf S. Engelschall.
Powered by FreeBSD and OpenPKG.