RPM Package Manager, CVS Repository http://rpm5.org/cvs/ ____________________________________________________________________________
Server: rpm5.org Name: Per Øyvind Karlsen Root: /v/rpm/cvs Email: pkarl...@rpm5.org Module: rpm Date: 27-Jan-2011 19:26:55 Branch: rpm-5_3 Handle: 2011012718265400 Modified files: (Branch: rpm-5_3) rpm CHANGES rpm/python header-py.c header-py.h rpmmodule.c Log: python: export rpmEVRparse() & rpmEVRcompare() in evrSplit() & evrcompare() Summary: Revision Changes Path 1.3296.2.156+2 -0 rpm/CHANGES 1.110.2.3 +38 -0 rpm/python/header-py.c 1.18.4.1 +10 -0 rpm/python/header-py.h 1.177.4.4 +4 -0 rpm/python/rpmmodule.c ____________________________________________________________________________ patch -p0 <<'@@ .' Index: rpm/CHANGES ============================================================================ $ cvs diff -u -r1.3296.2.155 -r1.3296.2.156 CHANGES --- rpm/CHANGES 27 Jan 2011 17:30:05 -0000 1.3296.2.155 +++ rpm/CHANGES 27 Jan 2011 18:26:54 -0000 1.3296.2.156 @@ -1,4 +1,6 @@ 5.3.7 -> 5.3.8: + - proyvind: python: export rpmEVRparse() & rpmEVRcompare() in evrSplit() & + evrCompare(). - proyvind: fix return code for ignored signals breaking ie. rpmbuild with gnome-terminal (mdvbz#62262) - proyvind: add tools/dbconvert for rpmdb conversion to/from hash/btree & @@ . patch -p0 <<'@@ .' Index: rpm/python/header-py.c ============================================================================ $ cvs diff -u -r1.110.2.2 -r1.110.2.3 header-py.c --- rpm/python/header-py.c 27 Jan 2011 18:18:29 -0000 1.110.2.2 +++ rpm/python/header-py.c 27 Jan 2011 18:26:54 -0000 1.110.2.3 @@ -968,3 +968,41 @@ return Py_BuildValue("i", rc); } + +PyObject * evrCompare (PyObject * self, PyObject * args, + PyObject * kwds) +{ + EVR_t lEVR = rpmEVRnew(RPMSENSE_EQUAL, 0), + rEVR = rpmEVRnew(RPMSENSE_EQUAL, 0); + int rc; + char * evr1, * evr2; + char * kwlist[] = {"evr0", "evr1", NULL}; + + if (!PyArg_ParseTupleAndKeywords(args, kwds, "ss", kwlist, &evr1, &evr2)) + return NULL; + + rpmEVRparse(evr1, lEVR); + rpmEVRparse(evr2, rEVR); + rc = rpmEVRcompare(lEVR, rEVR); + lEVR = rpmEVRfree(lEVR); + rEVR = rpmEVRfree(rEVR); + + return PyLong_FromLong(rc); +} + +PyObject * evrSplit (PyObject * self, PyObject * args, PyObject * kwds) +{ + EVR_t EVR = rpmEVRnew(RPMSENSE_EQUAL, 0); + char * evr; + char * kwlist[] = {"evr", NULL}; + PyObject * tuple; + + if (!PyArg_ParseTupleAndKeywords(args, kwds, "s", kwlist, &evr)) + return NULL; + + rpmEVRparse(evr, EVR); + tuple = Py_BuildValue("(Isss)", EVR->F[RPMEVR_E] ? atoi(EVR->F[RPMEVR_E]) : 0, EVR->F[RPMEVR_V], EVR->F[RPMEVR_R], EVR->F[RPMEVR_D]); + EVR = rpmEVRfree(EVR); + + return tuple; +} @@ . patch -p0 <<'@@ .' Index: rpm/python/header-py.h ============================================================================ $ cvs diff -u -r1.18 -r1.18.4.1 header-py.h --- rpm/python/header-py.h 8 Dec 2008 01:20:02 -0000 1.18 +++ rpm/python/header-py.h 27 Jan 2011 18:26:54 -0000 1.18.4.1 @@ -42,6 +42,16 @@ /** \ingroup py_c */ +PyObject * evrSplit (PyObject * self, PyObject * args, PyObject * kwds) + /*@*/; + +/** \ingroup py_c + */ +PyObject * evrCompare (PyObject * self, PyObject * args, PyObject * kwds) + /*@*/; + +/** \ingroup py_c + */ PyObject * labelCompare (PyObject * self, PyObject * args) /*@*/; @@ . patch -p0 <<'@@ .' Index: rpm/python/rpmmodule.c ============================================================================ $ cvs diff -u -r1.177.4.3 -r1.177.4.4 rpmmodule.c --- rpm/python/rpmmodule.c 2 Dec 2010 16:43:47 -0000 1.177.4.3 +++ rpm/python/rpmmodule.c 27 Jan 2011 18:26:54 -0000 1.177.4.4 @@ -256,6 +256,10 @@ NULL }, { "labelCompare", (PyCFunction) labelCompare, METH_VARARGS|METH_KEYWORDS, NULL }, + { "evrCompare", (PyCFunction) evrCompare, METH_VARARGS|METH_KEYWORDS, + NULL }, + { "evrSplit", (PyCFunction) evrSplit, METH_VARARGS|METH_KEYWORDS, + NULL }, { "setVerbosity", (PyCFunction) setVerbosity, METH_VARARGS|METH_KEYWORDS, NULL }, { "setEpochPromote", (PyCFunction) setEpochPromote, METH_VARARGS|METH_KEYWORDS, @@ . ______________________________________________________________________ RPM Package Manager http://rpm5.org CVS Sources Repository rpm-cvs@rpm5.org