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:24:17
Branch: rpm-5_2 Handle: 2010081322241401
Added files: (Branch: rpm-5_2)
rpm/rpmio rpmbag.c rpmbag.h
Modified files: (Branch: rpm-5_2)
rpm CHANGES
rpm/rpmio Makefile.am librpmio.vers poptIO.c rpmio.c
Log:
- solve: stub-in toy add/del methods.
- solve: permit multiple solvedb's in a rpmbag.
Summary:
Revision Changes Path
1.2970.2.60 +2 -0 rpm/CHANGES
1.228.2.6 +2 -2 rpm/rpmio/Makefile.am
2.114.2.5 +4 -0 rpm/rpmio/librpmio.vers
1.49.2.1 +6 -0 rpm/rpmio/poptIO.c
2.2.4.2 +90 -0 rpm/rpmio/rpmbag.c
2.2.4.2 +105 -0 rpm/rpmio/rpmbag.h
1.192.2.5 +8 -3 rpm/rpmio/rpmio.c
____________________________________________________________________________
patch -p0 <<'@@ .'
Index: rpm/CHANGES
============================================================================
$ cvs diff -u -r1.2970.2.59 -r1.2970.2.60 CHANGES
--- rpm/CHANGES 13 Aug 2010 18:18:16 -0000 1.2970.2.59
+++ rpm/CHANGES 13 Aug 2010 22:24:14 -0000 1.2970.2.60
@@ -1,4 +1,6 @@
5.2.1 -> 5.2.2:
+ - 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.228.2.5 -r1.228.2.6 Makefile.am
--- rpm/rpmio/Makefile.am 23 Jul 2009 16:25:27 -0000 1.228.2.5
+++ rpm/rpmio/Makefile.am 13 Aug 2010 22:24:15 -0000 1.228.2.6
@@ -66,7 +66,7 @@
argv.h ar.h cpio.h crc.h envvar.h fnmatch.h fts.h glob.h iosm.h \
md2.h md4.h rmd128.h rmd160.h rmd256.h rmd320.h sha224.h \
salsa10.h salsa20.h tiger.h \
- poptIO.h rpmbc.h rpmbz.h rpmdav.h rpmficl.h rpmgc.h rpmhash.h \
+ poptIO.h rpmbag.h rpmbc.h rpmbz.h rpmdav.h rpmficl.h rpmgc.h rpmhash.h \
rpmhook.h rpmio_internal.h rpmjs.h rpmkeyring.h rpmku.h \
rpmlua.h rpmmg.h rpmnss.h rpmperl.h rpmpython.h rpmruby.h rpmsq.h \
rpmssl.h rpmsyck.h rpmtcl.h rpmurl.h rpmuuid.h rpmxar.h rpmz.h rpmzq.h \
@@ -80,7 +80,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 rpmficl.c rpmgc.c rpmhash.c rpmhook.c \
+ rpmbag.c rpmbc.c rpmdav.c rpmficl.c rpmgc.c rpmhash.c rpmhook.c \
rpmio.c rpmiob.c rpmio-stub.c rpmjs.c rpmkeyring.c \
rpmku.c rpmlog.c rpmlua.c rpmmalloc.c rpmmg.c rpmnss.c \
rpmperl.c rpmpgp.c rpmpython.c rpmrpc.c rpmruby.c rpmsq.c \
@@ .
patch -p0 <<'@@ .'
Index: rpm/rpmio/librpmio.vers
============================================================================
$ cvs diff -u -r2.114.2.4 -r2.114.2.5 librpmio.vers
--- rpm/rpmio/librpmio.vers 21 May 2009 16:37:27 -0000 2.114.2.4
+++ rpm/rpmio/librpmio.vers 13 Aug 2010 22:24:15 -0000 2.114.2.5
@@ -255,6 +255,10 @@
_RequestPass;
Rmdir;
_Rmdir;
+ _rpmbag_debug;
+ rpmbagAdd;
+ rpmbagDel;
+ rpmbagNew;
rpmbcImplVecs;
rpmCleanPath;
rpmCLIMacroContext;
@@ .
patch -p0 <<'@@ .'
Index: rpm/rpmio/poptIO.c
============================================================================
$ cvs diff -u -r1.49 -r1.49.2.1 poptIO.c
--- rpm/rpmio/poptIO.c 18 Apr 2009 16:41:58 -0000 1.49
+++ rpm/rpmio/poptIO.c 13 Aug 2010 22:24:15 -0000 1.49.2.1
@@ -25,6 +25,8 @@
#include <rpmssl.h>
#endif
+#include <rpmbag.h>
+
#include <rpmficl.h>
#include <rpmjs.h>
#include <rpmperl.h>
@@ -414,6 +416,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},
+
{ "rpmficldebug", '\0', POPT_ARG_VAL|POPT_ARGFLAG_DOC_HIDDEN, &_rpmficl_debug, -1,
N_("Debug embedded FICL interpreter"), NULL},
{ "rpmjsdebug", '\0', POPT_ARG_VAL|POPT_ARGFLAG_DOC_HIDDEN, &_rpmjs_debug, -1,
@@ .
patch -p0 <<'@@ .'
Index: rpm/rpmio/rpmbag.c
============================================================================
$ cvs diff -u -r0 -r2.2.4.2 rpmbag.c
--- /dev/null 2010-08-14 00:23:57.000000000 +0200
+++ rpmbag.c 2010-08-14 00:24:16.518988295 +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.4.2 rpmbag.h
--- /dev/null 2010-08-14 00:23:57.000000000 +0200
+++ rpmbag.h 2010-08-14 00:24:16.709000233 +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.192.2.4 -r1.192.2.5 rpmio.c
--- rpm/rpmio/rpmio.c 11 Nov 2009 22:27:52 -0000 1.192.2.4
+++ rpm/rpmio/rpmio.c 13 Aug 2010 22:24:15 -0000 1.192.2.5
@@ -3142,11 +3142,12 @@
extern rpmioPool _htPool;
extern rpmioPool _rpmsyckPool;
/*@=shadow@*/
- extern rpmioPool _rpmmgPool;
- extern rpmioPool _rpmluavPool;
- extern rpmioPool _rpmluaPool;
+ extern rpmioPool _rpmbagPool;
extern rpmioPool _rpmficlPool;
extern rpmioPool _rpmjsPool;
+ extern rpmioPool _rpmluavPool;
+ extern rpmioPool _rpmluaPool;
+ extern rpmioPool _rpmmgPool;
extern rpmioPool _rpmperlPool;
extern rpmioPool _rpmpythonPool;
extern rpmioPool _rpmrubyPool;
@@ -3181,10 +3182,14 @@
_rpmficlPool = rpmioFreePool(_rpmficlPool);
_rpmluavPool = rpmioFreePool(_rpmluavPool);
_rpmluaPool = rpmioFreePool(_rpmluaPool);
+
+ _rpmbagPool = rpmioFreePool(_rpmbagPool);
+
_mirePool = rpmioFreePool(_mirePool);
_rpmmgPool = rpmioFreePool(_rpmmgPool);
_htPool = rpmioFreePool(_htPool);
_rpmsyckPool = rpmioFreePool(_rpmsyckPool);
+
_rpmiobPool = rpmioFreePool(_rpmiobPool);
_digPool = rpmioFreePool(_digPool);
_xarPool = rpmioFreePool(_xarPool);
@@ .
Received on Sat Aug 14 00:24:17 2010