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