RPM Package Manager, CVS Repository
http://rpm5.org/cvs/
____________________________________________________________________________
Server: rpm5.org Name: Jeff Johnson
Root: /v/rpm/cvs Email: jbj@rpm5.org
Module: rpm Date: 03-Dec-2007 20:09:29
Branch: HEAD Handle: 2007120319092800
Added files:
rpm/python rpmmacro-py.c rpmmacro-py.h
Modified files:
rpm CHANGES
rpm/python Makefile.am rpmdebug-py.c rpmmodule.c
Removed files:
rpm/python rpmrc-py.c rpmrc-py.h
Log:
- rpm.org: Lose the useless rpmrc python stuff, group macro handling
to rpmmacro-py.
Summary:
Revision Changes Path
1.1923 +1 -0 rpm/CHANGES
1.77 +6 -6 rpm/python/Makefile.am
1.11 +0 -2 rpm/python/rpmdebug-py.c
1.1 +165 -0 rpm/python/rpmmacro-py.c
1.1 +49 -0 rpm/python/rpmmacro-py.h
1.159 +5 -15 rpm/python/rpmmodule.c
1.23 +0 -519 rpm/python/rpmrc-py.c
1.12 +0 -75 rpm/python/rpmrc-py.h
____________________________________________________________________________
patch -p0 <<'@@ .'
Index: rpm/CHANGES
============================================================================
$ cvs diff -u -r1.1922 -r1.1923 CHANGES
--- rpm/CHANGES 3 Dec 2007 18:51:57 -0000 1.1922
+++ rpm/CHANGES 3 Dec 2007 19:09:28 -0000 1.1923
@@ -1,4 +1,5 @@
5.0a4 -> 5.0b1:
+ - rpm.org: Lose the useless rpmrc python stuff, group macro handling to rpmmacro-py.
- rpm.org: rpmpgp doxygen tagging.
- rpm.org: Add bunch of missing rpmts doxygen groupings.
- rpm.org: Move file state defs to rpmfi where they logically belong.
@@ .
patch -p0 <<'@@ .'
Index: rpm/python/Makefile.am
============================================================================
$ cvs diff -u -r1.76 -r1.77 Makefile.am
--- rpm/python/Makefile.am 11 Nov 2007 15:05:19 -0000 1.76
+++ rpm/python/Makefile.am 3 Dec 2007 19:09:28 -0000 1.77
@@ -27,7 +27,7 @@
noinst_HEADERS = header-py.h \
rpmal-py.h rpmds-py.h rpmdb-py.h rpmfd-py.h rpmfts-py.h \
- rpmfi-py.h rpmmi-py.h rpmps-py.h rpmrc-py.h rpmte-py.h rpmts-py.h \
+ rpmfi-py.h rpmmacro-py.h rpmmi-py.h rpmps-py.h rpmte-py.h rpmts-py.h \
spec-py.h
mylibs = \
@@ -48,17 +48,17 @@
_rpmmodule_la_LIBADD =
_rpmmodule_la_SOURCES = rpmmodule.c header-py.c \
- rpmal-py.c rpmds-py.c rpmdb-py.c rpmfd-py.c rpmfts-py.c \
- rpmfi-py.c rpmmi-py.c rpmps-py.c rpmrc-py.c rpmte-py.c \
- rpmts-py.c spec-py.c
+ rpmal-py.c rpmds-py.c rpmdb-py.c rpmfd-py.c rpmfts-py.c\
+ rpmfi-py.c rpmmacro-py.c rpmmi-py.c rpmps-py.c \
+ rpmte-py.c rpmts-py.c spec-py.c
# rpmmodule.c header-py.c \
# rpmal-py.c rpmds-py.c rpmdb-py.c rpmfd-py.c rpmfi-py.c rpmmi-py.c \
-# rpmps-py.c rpmrc-py.c rpmte-py.c rpmts-py.c
+# rpmmacro-py.c rpmps-py.c rpmte-py.c rpmts-py.c
# rpmmodule.c header-py.c
splint_srcs = \
rpmal-py.c rpmds-py.c rpmdb-py.c rpmfd-py.c rpmfts-py.c \
- rpmfi-py.c rpmmi-py.c rpmps-py.c rpmrc-py.c rpmte-py.c rpmts-py.c \
+ rpmfi-py.c rpmmacro-py.c rpmmi-py.c rpmps-py.c rpmte-py.c rpmts-py.c \
spec-py.c
.PHONY: lint
@@ .
patch -p0 <<'@@ .'
Index: rpm/python/rpmdebug-py.c
============================================================================
$ cvs diff -u -r1.10 -r1.11 rpmdebug-py.c
--- rpm/python/rpmdebug-py.c 9 Nov 2004 06:59:34 -0000 1.10
+++ rpm/python/rpmdebug-py.c 3 Dec 2007 19:09:28 -0000 1.11
@@ -16,7 +16,6 @@
#include "rpmfts-py.h" /* XXX debug only */
#include "rpmmi-py.h" /* XXX debug only */
#include "rpmps-py.h" /* XXX debug only */
-#include "rpmrc-py.h" /* XXX debug only */
#include "rpmte-py.h" /* XXX debug only */
#include "rpmts-py.h" /* XXX debug only */
@@ -79,7 +78,6 @@
if (o->ob_type == &rpmfts_Type) return "rpmfts";
if (o->ob_type == &rpmmi_Type) return "rpmmi";
if (o->ob_type == &rpmps_Type) return "rpmps";
- if (o->ob_type == &rpmrc_Type) return "rpmrc";
if (o->ob_type == &rpmte_Type) return "rpmte";
if (o->ob_type == &rpmts_Type) return "rpmts";
@@ .
patch -p0 <<'@@ .'
Index: rpm/python/rpmmacro-py.c
============================================================================
$ cvs diff -u -r0 -r1.1 rpmmacro-py.c
--- /dev/null 2007-12-03 20:07:17 +0100
+++ rpmmacro-py.c 2007-12-03 20:09:28 +0100
@@ -0,0 +1,165 @@
+/** \ingroup py_c
+ * \file python/rpmrc-py.c
+ */
+
+#include "system.h"
+
+#include "structmember.h"
+
+#include <rpmio.h>
+#include <rpmmacro.h>
+
+#include "rpmdebug-py.c"
+#include "rpmmacro-py.h"
+
+#include "debug.h"
+
+/** \ingroup python
+ * \class Rpmmacro
+ * \brief A python rpm.macro object encapsulates macro configuration.
+ */
+
+/** \ingroup python
+ * \name Class: Rpmmacro
+ */
+/*@{*/
+
+/**
+ */
+PyObject *
+rpmmacro_AddMacro(/*@unused@*/ PyObject * self, PyObject * args, PyObject * kwds)
+{
+ char * name, * val;
+ char * kwlist[] = {"name", "value", NULL};
+
+ if (!PyArg_ParseTupleAndKeywords(args, kwds, "ss:AddMacro", kwlist,
+ &name, &val))
+ return NULL;
+
+ addMacro(NULL, name, NULL, val, -1);
+
+ Py_INCREF(Py_None);
+ return Py_None;
+}
+
+/**
+ */
+PyObject *
+rpmmacro_DelMacro(/*@unused@*/ PyObject * self, PyObject * args, PyObject * kwds)
+{
+ char * name;
+ char * kwlist[] = {"name", NULL};
+
+ if (!PyArg_ParseTupleAndKeywords(args, kwds, "s:DelMacro", kwlist, &name))
+ return NULL;
+
+ delMacro(NULL, name);
+
+ Py_INCREF(Py_None);
+ return Py_None;
+}
+
+/**
+ */
+PyObject *
+rpmmacro_ExpandMacro(/*@unused@*/PyObject * self, PyObject * args, PyObject * kwds)
+{
+ char * macro;
+ char * kwlist[] = {"macro", NULL};
+
+ if (!PyArg_ParseTupleAndKeywords(args, kwds, "s:ExpandMacro", kwlist, ¯o))
+ return NULL;
+
+ return Py_BuildValue("s", rpmExpand(macro, NULL));
+}
+
+/**
+ */
+PyObject *
+rpmmacro_GetMacros(/*@unused@*/ PyObject * self, PyObject * args, PyObject * kwds)
+{
+ char * kwlist[] = { NULL };
+ PyObject * mdict;
+ PyObject *oo, *bo;
+ const char ** av = NULL;
+ int ac = 0;
+ int i;
+
+ if (!PyArg_ParseTupleAndKeywords(args, kwds, ":GetMacros", kwlist))
+ return NULL;
+
+ mdict = PyDict_New();
+ ac = rpmGetMacroEntries(NULL, NULL, -1, &av);
+ if (mdict == NULL || ac < 0 || av == NULL) {
+ PyErr_SetString(pyrpmError, "out of memory");
+ return NULL;
+ }
+
+ if (ac == 0) {
+ av = argvFree(av);
+ return mdict;
+ }
+
+ oo = PyString_FromString("opts");
+ bo = PyString_FromString("body");
+
+ if (oo != NULL && bo != NULL)
+ for (i = 0; i < ac; i++) {
+ char *n, *o, *b;
+ PyObject *ndo, *no, *vo;
+ int failed = 0;
+
+ /* Parse out "%name(opts)\tbody" into n/o/b strings. */
+ n = (char *) av[i];
+ b = strchr(n, '\t');
+assert(b != NULL);
+ o = ((b > n && b[-1] == ')') ? strchr(n, '(') : NULL);
+ if (*n == '%') n++;
+ if (o != NULL && *o == '(') {
+ b[-1] = '\0';
+ o++;
+ }
+ b++;
+
+ /* Create a "name" dictionary, add "opts" and "body" items. */
+ no = PyString_FromString(n);
+ if (no == NULL)
+ break;
+
+ ndo = PyDict_New();
+ if (ndo == NULL) {
+ Py_DECREF(no);
+ break;
+ }
+ PyDict_SetItem(mdict, no, ndo);
+ Py_DECREF(ndo);
+
+ if (o) {
+ if ((vo = PyString_FromString(o)) != NULL)
+ PyDict_SetItem(ndo, oo, vo);
+ else
+ failed = 1;
+ Py_XDECREF(vo);
+ }
+
+ if (b) {
+ if ((vo = PyString_FromString(b)) != NULL)
+ PyDict_SetItem(ndo, bo, vo);
+ else
+ failed = 1;
+ Py_XDECREF(vo);
+ }
+
+ if (failed)
+ PyDict_DelItem(mdict, no);
+ Py_DECREF(no);
+ }
+
+ Py_XDECREF(oo);
+ Py_XDECREF(bo);
+
+ av = argvFree(av);
+ return mdict;
+}
+
+/*@}*/
@@ .
patch -p0 <<'@@ .'
Index: rpm/python/rpmmacro-py.h
============================================================================
$ cvs diff -u -r0 -r1.1 rpmmacro-py.h
--- /dev/null 2007-12-03 20:07:17 +0100
+++ rpmmacro-py.h 2007-12-03 20:09:28 +0100
@@ -0,0 +1,49 @@
+#ifndef H_RPMMACRO_PY
+#define H_RPMMACRO_PY
+
+/** \ingroup py_c
+ * \file python/rpmmacro-py.h
+ */
+
+/** \name Type: _rpm.macro */
+/*@{*/
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/** \ingroup py_c
+ */
+/*@null@*/
+PyObject * rpmmacro_AddMacro(PyObject * self, PyObject * args, PyObject * kwds)
+ /*@globals rpmGlobalMacroContext, _Py_NoneStruct @*/
+ /*@modifies rpmGlobalMacroContext, _Py_NoneStruct @*/;
+
+/** \ingroup py_c
+ */
+/*@null@*/
+PyObject * rpmmacro_DelMacro(PyObject * self, PyObject * args, PyObject * kwds)
+ /*@globals rpmGlobalMacroContext, _Py_NoneStruct @*/
+ /*@modifies rpmGlobalMacroContext, _Py_NoneStruct @*/;
+
+/** \ingroup py_c
+ */
+/*@null@*/
+PyObject * rpmmacro_ExpandMacro(PyObject * self, PyObject * args, PyObject * kwds)
+ /*@globals rpmGlobalMacroContext, _Py_NoneStruct @*/
+ /*@modifies rpmGlobalMacroContext, _Py_NoneStruct @*/;
+
+/** \ingroup py_c
+ */
+/*@null@*/
+PyObject * rpmmacro_GetMacros(PyObject * self, PyObject * args, PyObject * kwds)
+ /*@globals rpmGlobalMacroContext, _Py_NoneStruct @*/
+ /*@modifies rpmGlobalMacroContext, _Py_NoneStruct @*/;
+
+#ifdef __cplusplus
+}
+#endif
+
+/*@}*/
+
+#endif
@@ .
patch -p0 <<'@@ .'
Index: rpm/python/rpmmodule.c
============================================================================
$ cvs diff -u -r1.158 -r1.159 rpmmodule.c
--- rpm/python/rpmmodule.c 24 Nov 2007 21:01:44 -0000 1.158
+++ rpm/python/rpmmodule.c 3 Dec 2007 19:09:28 -0000 1.159
@@ -20,9 +20,9 @@
#include "rpmfd-py.h"
#include "rpmfts-py.h"
#include "rpmfi-py.h"
+#include "rpmmacro-py.h"
#include "rpmmi-py.h"
#include "rpmps-py.h"
-#include "rpmrc-py.h"
#include "rpmte-py.h"
#include "rpmts-py.h"
#include "spec-py.h"
@@ -170,17 +170,13 @@
"rpm.TransactionSet([rootDir, [db]]) -> ts\n\
- Create a transaction set.\n" },
-#if Py_TPFLAGS_HAVE_ITER /* XXX backport to python-1.5.2 */
- { "newrc", (PyCFunction) rpmrc_Create, METH_VARARGS|METH_KEYWORDS,
- NULL },
-#endif
- { "addMacro", (PyCFunction) rpmrc_AddMacro, METH_VARARGS|METH_KEYWORDS,
+ { "addMacro", (PyCFunction) rpmmacro_AddMacro, METH_VARARGS|METH_KEYWORDS,
NULL },
- { "delMacro", (PyCFunction) rpmrc_DelMacro, METH_VARARGS|METH_KEYWORDS,
+ { "delMacro", (PyCFunction) rpmmacro_DelMacro, METH_VARARGS|METH_KEYWORDS,
NULL },
- { "expandMacro", (PyCFunction)rpmrc_ExpandMacro, METH_VARARGS|METH_KEYWORDS,
+ { "expandMacro", (PyCFunction)rpmmacro_ExpandMacro, METH_VARARGS|METH_KEYWORDS,
NULL },
- { "getMacros", (PyCFunction) rpmrc_GetMacros, METH_VARARGS|METH_KEYWORDS,
+ { "getMacros", (PyCFunction) rpmmacro_GetMacros, METH_VARARGS|METH_KEYWORDS,
NULL },
{ "signalsCaught", (PyCFunction) signalsCaught, METH_O,
@@ -250,9 +246,6 @@
if (PyType_Ready(&rpmmi_Type) < 0) return;
if (PyType_Ready(&rpmps_Type) < 0) return;
- rpmrc_Type.tp_base = &PyDict_Type;
- if (PyType_Ready(&rpmrc_Type) < 0) return;
-
if (PyType_Ready(&rpmte_Type) < 0) return;
if (PyType_Ready(&rpmts_Type) < 0) return;
if (PyType_Ready(&spec_Type) < 0) return;
@@ -308,9 +301,6 @@
Py_INCREF(&rpmps_Type);
PyModule_AddObject(m, "ps", (PyObject *) &rpmps_Type);
- Py_INCREF(&rpmrc_Type);
- PyModule_AddObject(m, "rc", (PyObject *) &rpmrc_Type);
-
Py_INCREF(&rpmte_Type);
PyModule_AddObject(m, "te", (PyObject *) &rpmte_Type);
@@ .
rm -f rpm/python/rpmrc-py.c <<'@@ .'
Index: rpm/python/rpmrc-py.c
============================================================================
[NO CHANGE SUMMARY BECAUSE FILE AS A WHOLE IS JUST REMOVED]
@@ .
rm -f rpm/python/rpmrc-py.h <<'@@ .'
Index: rpm/python/rpmrc-py.h
============================================================================
[NO CHANGE SUMMARY BECAUSE FILE AS A WHOLE IS JUST REMOVED]
@@ .
Received on Mon Dec 3 20:09:29 2007