[CVS] RPM: rpm/ CHANGES rpm/python/ header-py.c header-py.h rpmmodule....

2011-01-27 Thread Per �yvind Karlsen
  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:24:42
  Branch: HEAD Handle: 2011012718244100

  Modified files:
rpm CHANGES
rpm/python  header-py.c header-py.h rpmmodule.c

  Log:
python: export rpmEVRparse() & rpmEVRcompare() in evrSplit() &
evrcompare()

  Summary:
RevisionChanges Path
1.3557  +2  -0  rpm/CHANGES
1.113   +38 -0  rpm/python/header-py.c
1.19+10 -0  rpm/python/header-py.h
1.181   +4  -0  rpm/python/rpmmodule.c
  

  patch -p0 <<'@@ .'
  Index: rpm/CHANGES
  
  $ cvs diff -u -r1.3556 -r1.3557 CHANGES
  --- rpm/CHANGES   27 Jan 2011 17:28:57 -  1.3556
  +++ rpm/CHANGES   27 Jan 2011 18:24:41 -  1.3557
  @@ -1,4 +1,6 @@
   5.4.0 -> 5.4.1:
  +- 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.112 -r1.113 header-py.c
  --- rpm/python/header-py.c27 Jan 2011 18:16:24 -  1.112
  +++ rpm/python/header-py.c27 Jan 2011 18:24:41 -  1.113
  @@ -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.19 header-py.h
  --- rpm/python/header-py.h8 Dec 2008 01:20:02 -   1.18
  +++ rpm/python/header-py.h27 Jan 2011 18:24:41 -  1.19
  @@ -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.180 -r1.181 rpmmodule.c
  --- rpm/python/rpmmodule.c1 Dec 2010 16:46:03 -   1.180
  +++ rpm/python/rpmmodule.c27 Jan 2011 18:24:41 -  1.181
  @@ -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 Managerhttp://rpm5.org
CVS Sources Repositoryrpm-cvs@rpm5.org


[CVS] RPM: rpm/ CHANGES rpm/python/ header-py.c header-py.h rpmmodule....

2008-12-06 Thread Per �yvind Karlsen
  RPM Package Manager, CVS Repository
  http://rpm5.org/cvs/
  

  Server: rpm5.org Name:   Per Øyvind Karlsen
  Root:   /v/rpm/cvs   Email:  [EMAIL PROTECTED]
  Module: rpm  Date:   06-Dec-2008 15:52:14
  Branch: HEAD Handle: 2008120614521400

  Modified files:
rpm CHANGES
rpm/python  header-py.c header-py.h rpmmodule.c

  Log:
python: add writeHeaderListToFD() & writeHeaderListToFile().
(improved version of TurboLinux patch)

  Summary:
RevisionChanges Path
1.2668  +2  -0  rpm/CHANGES
1.98+75 -0  rpm/python/header-py.c
1.17+10 -0  rpm/python/header-py.h
1.175   +4  -0  rpm/python/rpmmodule.c
  

  patch -p0 <<'@@ .'
  Index: rpm/CHANGES
  
  $ cvs diff -u -r1.2667 -r1.2668 CHANGES
  --- rpm/CHANGES   6 Dec 2008 13:57:11 -   1.2667
  +++ rpm/CHANGES   6 Dec 2008 14:52:14 -   1.2668
  @@ -1,5 +1,7 @@
   
   5.2a2 -> 5.2a3:
  +- proyvind: python: add writeHeaderListToFD() & writeHeaderListToFile().
  + (improved version of TurboLinux patch)
   - proyvind: rpm4compat: disable warnings about unused variables.
   - proyvind: Mandriva: Always treat file conflicts during install (rpm -i)
 as errors. (dont-filter-install-file-conflicts)
  @@ .
  patch -p0 <<'@@ .'
  Index: rpm/python/header-py.c
  
  $ cvs diff -u -r1.97 -r1.98 header-py.c
  --- rpm/python/header-py.c10 Oct 2008 21:51:35 -  1.97
  +++ rpm/python/header-py.c6 Dec 2008 14:52:14 -   1.98
  @@ -670,6 +670,7 @@
   PyObject * rpmReadHeaders (FD_t fd)
   {
   PyObject * list;
  +PyObject * ret = NULL;
   Header h;
   hdrObject * hdr;
   
  @@ -828,6 +829,80 @@
   
   /**
*/
  +PyObject * rpmWriteHeaders (PyObject * list, FD_t fd)
  +{
  +int count;
  +
  +if (!fd) {
  + PyErr_SetFromErrno(pyrpmError);
  + return NULL;
  +}
  +
  +for(count = 0; count < PyList_Size(list); count++){
  + Py_BEGIN_ALLOW_THREADS
  + const char item[] = "Header";
  + const char * msg = NULL;
  + hdrObject * hdr = (hdrObject *)PyList_GetItem(list, count);
  + rpmRC rc = rpmpkgWrite(item, fd, hdr->h, &msg);
  + if (rc != RPMRC_OK)
  + rpmlog(RPMLOG_ERR, "%s: %s: %s : error code: %d\n", "rpmpkgWrite", 
item, msg, rc);
  + msg = _free(msg);
  + Py_END_ALLOW_THREADS
  +}
  +
  +Py_RETURN_TRUE;
  +}
  +
  +/**
  + */
  +PyObject * rpmHeaderToFD(PyObject * self, PyObject * args,
  + PyObject * kwds)
  +{
  +FD_t fd;
  +int fileno;
  +PyObject * list;
  +PyObject * ret;
  +char * kwlist[] = {"headers", "fd", NULL};
  +
  +if (!PyArg_ParseTupleAndKeywords(args, kwds, "Oi", kwlist, &list, 
&fileno))
  + return NULL;
  +
  +fd = fdDup(fileno);
  +
  +ret = rpmWriteHeaders (list, fd);
  +Fclose(fd);
  +
  +return list;
  +}
  +
  +/**
  + */
  +PyObject * rpmHeaderToFile(PyObject * self, PyObject * args,
  + PyObject *kwds)
  +{
  +char * filespec;
  +FD_t fd;
  +PyObject * list;
  +PyObject * ret;
  +char * kwlist[] = {"headers", "file", NULL};
  +
  +if (!PyArg_ParseTupleAndKeywords(args, kwds, "Os", kwlist, &list, 
&filespec))
  + return NULL;
  +
  +fd = Fopen(filespec, "w.fdio");
  +if (!fd) {
  + PyErr_SetFromErrno(pyrpmError);
  + return NULL;
  +}
  +
  +ret = rpmWriteHeaders (list, fd);
  +Fclose(fd);
  +
  +return ret; 
  +} 
  +
  +/**
  + */
   PyObject * versionCompare (PyObject * self, PyObject * args,
PyObject * kwds)
   {
  @@ .
  patch -p0 <<'@@ .'
  Index: rpm/python/header-py.h
  
  $ cvs diff -u -r1.16 -r1.17 header-py.h
  --- rpm/python/header-py.h9 Feb 2008 16:35:49 -   1.16
  +++ rpm/python/header-py.h6 Dec 2008 14:52:14 -   1.17
  @@ -67,6 +67,16 @@
   
   /** \ingroup py_c
*/
  +PyObject * rpmHeaderToFile(PyObject * self, PyObject * args, PyObject * kwds)
  + /[EMAIL PROTECTED]/;
  +
  +/** \ingroup py_c
  + */
  +PyObject * rpmHeaderToFD(PyObject * self, PyObject * args, PyObject * kwds)
  + /[EMAIL PROTECTED]/;
  +
  +/** \ingroup py_c
  + */
   PyObject * rpmReadHeaders (FD_t fd)
/[EMAIL PROTECTED]/;
   
  @@ .
  patch -p0 <<'@@ .'
  Index: rpm/python/rpmmodule.c
  
  $ cvs diff -u -r1.174 -r1.175 rpmmodule.c
  --- rpm/python/rpmmodule.c17 Aug 200

[CVS] RPM: rpm/ CHANGES rpm/python/ header-py.c header-py.h rpmmodule....

2007-12-04 Thread Jeff Johnson
  RPM Package Manager, CVS Repository
  http://rpm5.org/cvs/
  

  Server: rpm5.org Name:   Jeff Johnson
  Root:   /v/rpm/cvs   Email:  [EMAIL PROTECTED]
  Module: rpm  Date:   04-Dec-2007 23:41:54
  Branch: HEAD Handle: 2007120422415301

  Modified files:
rpm CHANGES
rpm/python  header-py.c header-py.h rpmmodule.c
rpm/rpmdb   librpmdb.vers
rpm/rpmio   rpmnss.h rpmpgp.c

  Log:
- jbj: resurrect rpmMergeHeadersFromFD goop. Yah, mon, DEAD code ...
- jbj: re-add symbols needed for rpm-python import to loader map.
- jbj: stub in WITH_NSS define to try rpmnss. Yep, borked, but now tested.

  Summary:
RevisionChanges Path
1.1936  +3  -0  rpm/CHANGES
1.88+101 -0 rpm/python/header-py.c
1.14+4  -2  rpm/python/header-py.h
1.160   +2  -0  rpm/python/rpmmodule.c
1.39+1  -0  rpm/rpmdb/librpmdb.vers
1.3 +2  -0  rpm/rpmio/rpmnss.h
2.77+9  -1  rpm/rpmio/rpmpgp.c
  

  patch -p0 <<'@@ .'
  Index: rpm/CHANGES
  
  $ cvs diff -u -r1.1935 -r1.1936 CHANGES
  --- rpm/CHANGES   4 Dec 2007 19:45:58 -   1.1935
  +++ rpm/CHANGES   4 Dec 2007 22:41:53 -   1.1936
  @@ -1,4 +1,7 @@
   5.0a4 -> 5.0b1:
  +- jbj: resurrect rpmMergeHeadersFromFD goop. Yah, mon, DEAD code ...
  +- jbj: re-add symbols needed for rpm-python import to loader map.
  +- jbj: stub in WITH_NSS define to try rpmnss. Yep, borked, but now 
tested.
   - jbj: complete rpmnss.[ch] implementation (untested).
   - jbj: stub in the rpmnss.[ch] implementation.
   - jbj: pluggable RSA/DSA signature verification framework.
  @@ .
  patch -p0 <<'@@ .'
  Index: rpm/python/header-py.c
  
  $ cvs diff -u -r1.87 -r1.88 header-py.c
  --- rpm/python/header-py.c1 Dec 2007 17:58:47 -   1.87
  +++ rpm/python/header-py.c4 Dec 2007 22:41:53 -   1.88
  @@ -756,6 +756,107 @@
   return list;
   }
   
  +#if defined(DEAD)
  +/**
  + * This assumes the order of list matches the order of the new headers, and
  + * throws an exception if that isn't true.
  + */
  +int rpmMergeHeaders(PyObject * list, FD_t fd, rpmTag matchTag)
  +{
  +HE_t he = memset(alloca(sizeof(*he)), 0, sizeof(*he));
  +Header h;
  +HeaderIterator hi;
  +rpmTagData newMatch;
  +rpmTagData oldMatch;
  +hdrObject * hdr;
  +rpmTagCount count = 0;
  +const char item[] = "Header";
  +rpmRC rc;
  +int xx;
  +
  +Py_BEGIN_ALLOW_THREADS
  +h = NULL;
  +rc = rpmpkgRead(item, fd, &h, NULL);
  +Py_END_ALLOW_THREADS
  +
  +while (h) {
  + he->tag = matchTag;
  + xx = headerGet(h, he, 0);
  + newMatch.ui32p = he->p.ui32p;
  + if (!xx) {
  + PyErr_SetString(pyrpmError, "match tag missing in new header");
  + return 1;
  + }
  +
  + hdr = (hdrObject *) PyList_GetItem(list, count++);
  + if (!hdr) return 1;
  +
  + he->tag = matchTag;
  + xx = headerGet(h, he, 0);
  + oldMatch.ui32p = he->p.ui32p;
  + if (!xx) {
  + PyErr_SetString(pyrpmError, "match tag missing in new header");
  + return 1;
  + }
  +
  + if (*newMatch.ui32p != *oldMatch.ui32p) {
  + PyErr_SetString(pyrpmError, "match tag mismatch");
  + return 1;
  + }
  +
  + for (hi = headerInit(h);
  + headerNext(hi, he, 0);
  + he->p.ptr = _free(he->p.ptr))
  + {
  + /* could be dupes */
  + headerDel(hdr->h, he, 0);
  + headerPut(hdr->h, he, 0);
  + }
  + hi = headerFini(hi);
  + h = headerFree(h);
  +
  + Py_BEGIN_ALLOW_THREADS
  + h = NULL;
  + rc = rpmpkgRead(item, fd, &h, NULL);
  + Py_END_ALLOW_THREADS
  +}
  +
  +return 0;
  +}
  +
  +PyObject *
  +rpmMergeHeadersFromFD(PyObject * self, PyObject * args, PyObject * kwds)
  +{
  +FD_t fd;
  +int fileno;
  +PyObject * list;
  +int rc;
  +rpmTag matchTag;
  +char * kwlist[] = {"list", "fd", "matchTag", NULL};
  +
  +if (!PyArg_ParseTupleAndKeywords(args, kwds, "Oii", kwlist, &list,
  + &fileno, &matchTag))
  + return NULL;
  +
  +if (!PyList_Check(list)) {
  + PyErr_SetString(PyExc_TypeError, "first parameter must be a list");
  + return NULL;
  +}
  +
  +fd = fdDup(fileno);
  +
  +rc = rpmMergeHeaders (list, fd, matchTag);
  +Fclose(fd);
  +
  +if (rc) {
  + return NULL;
  +}
  +
  +Py_INCREF(Py_None);
  +return Py_None;
  +}
  +#en