- python: the death of rpmdb-py.[ch], use ts.fooDB() methods instead.
- python: the death of rpm.headerFromPackage(), use ts.hdrFromFdno(). - python: permit direct ts.dbMatch() python iterations. - python: the death of rpm.checksig(), use ts.hdrFromFdno() instead. CVS patchset: 5603 CVS date: 2002/08/05 21:46:50
This commit is contained in:
parent
bd5ee7affa
commit
5211039a20
6
CHANGES
6
CHANGES
|
@ -217,9 +217,13 @@
|
|||
- python: bare bones rollback bindings.
|
||||
- python: enable threads on callbacks and longish rpmlib calls.
|
||||
- python: expose RPMTAG_SOURCEPACKAGE to identify source headers.
|
||||
- python: eliminate headerFromPackage() tuple return, deprecated.
|
||||
- python: eliminate rpm.headerFromPackage() tuple return, deprecated.
|
||||
- python: add ts.hdrFromFdno(fdno) method.
|
||||
- fix: check for lead magic, better error message on failure (#69751).
|
||||
- python: the death of rpmdb-py.[ch], use ts.fooDB() methods instead.
|
||||
- python: the death of rpm.headerFromPackage(), use ts.hdrFromFdno().
|
||||
- python: permit direct ts.dbMatch() python iterations.
|
||||
- python: the death of rpm.checksig(), use ts.hdrFromFdno() instead.
|
||||
|
||||
4.0.3 -> 4.0.4:
|
||||
- solaris: translate i86pc to i386 (#57182).
|
||||
|
|
|
@ -66,7 +66,7 @@ poptmodule.so$(EXEEXT): $(poptmodule_so_OBJECTS)
|
|||
# rpmrc-py.c rpmte-py.c rpmts-py.c
|
||||
# rpmmodule.c header-py.c
|
||||
splint_srcs = hash.c upgrade.c \
|
||||
rpmal-py.c rpmds-py.c rpmdb-py.c rpmfd-py.c rpmfi-py.c rpmmi-py.c \
|
||||
rpmal-py.c rpmds-py.c rpmfd-py.c rpmfi-py.c rpmmi-py.c \
|
||||
rpmrc-py.c rpmte-py.c rpmts-py.c
|
||||
|
||||
.PHONY: lclint
|
||||
|
|
|
@ -33,16 +33,21 @@
|
|||
* Header objects can be returned by database queries or loaded from a
|
||||
* binary package on disk.
|
||||
*
|
||||
* The headerFromPackage function returns the package header from a
|
||||
* package on disk.
|
||||
* The ts.hdrFromFdno() function returns the package header from a
|
||||
* package on disk, verifying package signatures and digests of the
|
||||
* package while reading.
|
||||
*
|
||||
* Note: The older method rpm.headerFromPackage() which has been replaced
|
||||
* by ts.hdrFromFdno() used to return a (hdr, isSource) tuple.
|
||||
*
|
||||
* Note: rpm.headerFromPackage() used to return a (hdr, isSource) tuple.
|
||||
* If you need to distinguish source/binary headers, do:
|
||||
* \code
|
||||
* import os, rpm
|
||||
*
|
||||
* fd = os.open("/tmp/foo-1.0-1.i386.rpm", os.O_RDONLY)
|
||||
* hdr = rpm.headerFromPackage(fd)
|
||||
* ts = rpm.TranssactionSet()
|
||||
* fdno = os.open("/tmp/foo-1.0-1.i386.rpm", os.O_RDONLY)
|
||||
* hdr = ts.hdrFromFdno(fdno)
|
||||
* os.close(fdno)
|
||||
* if hdr[rpm.RPMTAG_SOURCEPACKAGE]:
|
||||
* print "header is from a source package"
|
||||
* else:
|
||||
|
@ -72,7 +77,7 @@
|
|||
* print hdr['release']
|
||||
* \endcode
|
||||
*
|
||||
* This method of access is a bit slower because the name must be
|
||||
* This method of access is a teensy bit slower because the name must be
|
||||
* translated into the tag number dynamically. You also must make sure
|
||||
* the strings in header lookups don't get translated, or the lookups
|
||||
* will fail.
|
||||
|
@ -865,49 +870,6 @@ Header hdrGetHeader(hdrObject * s)
|
|||
return s->h;
|
||||
}
|
||||
|
||||
/**
|
||||
* @deprecated Use ts.hdrFromFdno() instead.
|
||||
*/
|
||||
PyObject * rpmHeaderFromPackage(PyObject * self, PyObject * args)
|
||||
{
|
||||
hdrObject * hdr;
|
||||
Header h;
|
||||
FD_t fd;
|
||||
int rawFd;
|
||||
rpmRC rc;
|
||||
|
||||
if (!PyArg_ParseTuple(args, "i", &rawFd)) return NULL;
|
||||
|
||||
fd = fdDup(rawFd);
|
||||
{ rpmts ts;
|
||||
ts = rpmtsCreate();
|
||||
rc = rpmReadPackageFile(ts, fd, "rpmHeaderFromPackage", &h);
|
||||
rpmtsFree(ts);
|
||||
}
|
||||
Fclose(fd);
|
||||
|
||||
switch (rc) {
|
||||
case RPMRC_BADSIZE:
|
||||
case RPMRC_OK:
|
||||
hdr = hdr_Wrap(h);
|
||||
h = headerFree(h); /* XXX ref held by hdr */
|
||||
break;
|
||||
|
||||
case RPMRC_NOTFOUND:
|
||||
Py_INCREF(Py_None);
|
||||
hdr = (hdrObject *) Py_None;
|
||||
break;
|
||||
|
||||
case RPMRC_FAIL:
|
||||
case RPMRC_SHORTREAD:
|
||||
default:
|
||||
PyErr_SetString(pyrpmError, "error reading package");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
return Py_BuildValue("N", hdr);
|
||||
}
|
||||
|
||||
/**
|
||||
*/
|
||||
PyObject * hdrLoad(PyObject * self, PyObject * args)
|
||||
|
|
|
@ -43,7 +43,5 @@ PyObject * rhnLoad(PyObject * self, PyObject * args)
|
|||
/*@*/;
|
||||
PyObject * hdrLoad(PyObject * self, PyObject * args)
|
||||
/*@*/;
|
||||
PyObject * rpmHeaderFromPackage(PyObject * self, PyObject * args)
|
||||
/*@*/;
|
||||
|
||||
#endif
|
||||
|
|
|
@ -11,8 +11,8 @@
|
|||
#endif
|
||||
|
||||
#include <rpmlib.h>
|
||||
#include <rpmdb.h>
|
||||
|
||||
#include "rpmdb-py.h"
|
||||
#include "rpmmi-py.h"
|
||||
#include "header-py.h"
|
||||
|
||||
|
@ -40,11 +40,7 @@
|
|||
* \code
|
||||
* import rpm
|
||||
* ts = rpm.TransactionSet()
|
||||
* mi = ts.dbMatch()
|
||||
* while mi:
|
||||
* h = mi.next()
|
||||
* if not h:
|
||||
* break
|
||||
* for h in ts.dbMatch():
|
||||
* print h['name']
|
||||
* \endcode
|
||||
*
|
||||
|
@ -54,10 +50,7 @@
|
|||
* import rpm
|
||||
* ts = rpm.TransactionSet()
|
||||
* mi = ts.dbMatch('name', "kernel")
|
||||
* while mi:
|
||||
* h = mi.next()
|
||||
* if not h:
|
||||
* break;
|
||||
* for h in mi:
|
||||
* print "%s-%s-%s" % (h['name'], h['version'], h['release'])
|
||||
* \endcode
|
||||
*
|
||||
|
@ -68,10 +61,7 @@
|
|||
* ts = rpm.TransactionSet()
|
||||
* mi = ts.dbMatch()
|
||||
* mi.pattern('name', rpm.RPMMIRE_GLOB, "XFree*")
|
||||
* while mi:
|
||||
* h = mi.next{}
|
||||
* if not h:
|
||||
* break;
|
||||
* for h in mi:
|
||||
* print "%s-%s-%s" % (h['name'], h['version'], h['release'])
|
||||
* \endcode
|
||||
*
|
||||
|
@ -82,27 +72,6 @@
|
|||
*/
|
||||
/*@{*/
|
||||
|
||||
/**
|
||||
*/
|
||||
static PyObject *
|
||||
rpmmi_Next(rpmmiObject * s, PyObject *args)
|
||||
/*@globals _Py_NoneStruct @*/
|
||||
/*@modifies s, _Py_NoneStruct @*/
|
||||
{
|
||||
Header h;
|
||||
|
||||
if (!PyArg_ParseTuple(args, ":Next"))
|
||||
return NULL;
|
||||
|
||||
if (s->mi == NULL || (h = rpmdbNextIterator(s->mi)) == NULL) {
|
||||
if (s->mi) s->mi = rpmdbFreeIterator(s->mi);
|
||||
Py_INCREF(Py_None);
|
||||
return Py_None;
|
||||
}
|
||||
return (PyObject *) hdr_Wrap(h);
|
||||
}
|
||||
|
||||
#if Py_TPFLAGS_HAVE_ITER
|
||||
/**
|
||||
*/
|
||||
static PyObject *
|
||||
|
@ -128,7 +97,27 @@ rpmmi_iternext(rpmmiObject * s)
|
|||
}
|
||||
return (PyObject *) hdr_Wrap(h);
|
||||
}
|
||||
#endif
|
||||
|
||||
/**
|
||||
*/
|
||||
static PyObject *
|
||||
rpmmi_Next(rpmmiObject * s, PyObject *args)
|
||||
/*@globals _Py_NoneStruct @*/
|
||||
/*@modifies s, _Py_NoneStruct @*/
|
||||
{
|
||||
PyObject * result;
|
||||
|
||||
if (!PyArg_ParseTuple(args, ":Next"))
|
||||
return NULL;
|
||||
|
||||
result = rpmmi_iternext(s);
|
||||
|
||||
if (result == NULL) {
|
||||
Py_INCREF(Py_None);
|
||||
return Py_None;
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
/**
|
||||
*/
|
||||
|
@ -164,7 +153,7 @@ rpmmi_Pattern(rpmmiObject * s, PyObject * args)
|
|||
static struct PyMethodDef rpmmi_methods[] = {
|
||||
{"next", (PyCFunction) rpmmi_Next, METH_VARARGS,
|
||||
"mi.next() -> hdr\n\
|
||||
- Retrieve next header that matches.\n" },
|
||||
- Retrieve next header that matches. Iterate directly in python if possible.\n" },
|
||||
{"pattern", (PyCFunction) rpmmi_Pattern, METH_VARARGS,
|
||||
"mi.pattern(TagN, mire_type, pattern)\n\
|
||||
- Set a secondary match pattern on tags from retrieved header.\n" },
|
||||
|
@ -185,7 +174,7 @@ static void rpmmi_dealloc(/*@only@*/ /*@null@*/ rpmmiObject * s)
|
|||
|
||||
/** \ingroup python
|
||||
*/
|
||||
static PyObject * rpmmi_getattr (rpmdbObject *s, char *name)
|
||||
static PyObject * rpmmi_getattr (rpmmiObject *s, char *name)
|
||||
/*@*/
|
||||
{
|
||||
return Py_FindMethod (rpmmi_methods, (PyObject *) s, name);
|
||||
|
@ -249,13 +238,8 @@ PyTypeObject rpmmi_Type = {
|
|||
|
||||
rpmmiObject * rpmmi_Wrap(rpmdbMatchIterator mi)
|
||||
{
|
||||
rpmmiObject * mio;
|
||||
rpmmiObject * mio = (rpmmiObject *) PyObject_NEW(rpmmiObject, &rpmmi_Type);
|
||||
|
||||
if (mi == NULL) {
|
||||
Py_INCREF(Py_None);
|
||||
return (rpmmiObject *) Py_None;
|
||||
}
|
||||
mio = (rpmmiObject *) PyObject_NEW(rpmmiObject, &rpmmi_Type);
|
||||
if (mio == NULL) {
|
||||
PyErr_SetString(pyrpmError, "out of memory creating rpmmiObject");
|
||||
return NULL;
|
||||
|
|
|
@ -10,7 +10,8 @@
|
|||
#define PyObject_HEAD int _PyObjectHead;
|
||||
#endif
|
||||
|
||||
#include "rpmcli.h" /* XXX for rpmCheckSig */
|
||||
#include <rpmcli.h> /* XXX for rpmCheckSig */
|
||||
#include <rpmdb.h>
|
||||
|
||||
#include "legacy.h"
|
||||
#include "misc.h"
|
||||
|
@ -19,7 +20,6 @@
|
|||
|
||||
#include "header-py.h"
|
||||
#include "rpmal-py.h"
|
||||
#include "rpmdb-py.h"
|
||||
#include "rpmds-py.h"
|
||||
#include "rpmfd-py.h"
|
||||
#include "rpmfi-py.h"
|
||||
|
@ -178,33 +178,6 @@ static PyObject * findUpgradeSet(PyObject * self, PyObject * args)
|
|||
return result;
|
||||
}
|
||||
|
||||
#ifdef _LEGACY_BINDINGS_TOO
|
||||
/**
|
||||
*/
|
||||
static PyObject * rpmInitDB(PyObject * self, PyObject * args)
|
||||
{
|
||||
char *root;
|
||||
int forWrite = 0;
|
||||
|
||||
if (!PyArg_ParseTuple(args, "i|s", &forWrite, &root)) return NULL;
|
||||
|
||||
if (rpmdbInit(root, forWrite ? O_RDWR | O_CREAT: O_RDONLY)) {
|
||||
char * errmsg = "cannot initialize database in %s";
|
||||
char * errstr = NULL;
|
||||
int errsize;
|
||||
|
||||
errsize = strlen(errmsg) + strlen(root);
|
||||
errstr = alloca(errsize);
|
||||
snprintf(errstr, errsize, errmsg, root);
|
||||
PyErr_SetString(pyrpmError, errstr);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
Py_INCREF(Py_None);
|
||||
return(Py_None);
|
||||
}
|
||||
#endif
|
||||
|
||||
/**
|
||||
*/
|
||||
static PyObject * errorCB = NULL;
|
||||
|
@ -277,32 +250,6 @@ static PyObject * errorString (PyObject * self, PyObject * args)
|
|||
return PyString_FromString(rpmErrorString ());
|
||||
}
|
||||
|
||||
/**
|
||||
*/
|
||||
static PyObject * checkSig (PyObject * self, PyObject * args)
|
||||
{
|
||||
char * filename;
|
||||
int flags;
|
||||
int rc = 255;
|
||||
|
||||
if (PyArg_ParseTuple(args, "si", &filename, &flags)) {
|
||||
rpmts ts;
|
||||
const char * av[2];
|
||||
QVA_t ka = memset(alloca(sizeof(*ka)), 0, sizeof(*ka));
|
||||
|
||||
av[0] = filename;
|
||||
av[1] = NULL;
|
||||
ka->qva_mode = 'K';
|
||||
ka->qva_flags = (VERIFY_DIGEST|VERIFY_SIGNATURE);
|
||||
ka->sign = 0;
|
||||
ka->passPhrase = NULL;
|
||||
ts = rpmtsCreate();
|
||||
rc = rpmcliSign(ts, ka, av);
|
||||
rpmtsFree(ts);
|
||||
}
|
||||
return Py_BuildValue("i", rc);
|
||||
}
|
||||
|
||||
/**
|
||||
*/
|
||||
static PyObject * setVerbosity (PyObject * self, PyObject * args)
|
||||
|
@ -348,20 +295,10 @@ static PyMethodDef rpmModuleMethods[] = {
|
|||
NULL },
|
||||
{ "findUpgradeSet", (PyCFunction) findUpgradeSet, METH_VARARGS,
|
||||
NULL },
|
||||
{ "headerFromPackage", (PyCFunction) rpmHeaderFromPackage, METH_VARARGS,
|
||||
NULL },
|
||||
{ "headerLoad", (PyCFunction) hdrLoad, METH_VARARGS,
|
||||
NULL },
|
||||
{ "rhnLoad", (PyCFunction) rhnLoad, METH_VARARGS,
|
||||
NULL },
|
||||
#ifdef _LEGACY_BINDINGS_TOO
|
||||
{ "initdb", (PyCFunction) rpmInitDB, METH_VARARGS,
|
||||
NULL },
|
||||
{ "opendb", (PyCFunction) rpmOpenDB, METH_VARARGS,
|
||||
NULL },
|
||||
{ "rebuilddb", (PyCFunction) rebuildDB, METH_VARARGS,
|
||||
NULL },
|
||||
#endif
|
||||
{ "mergeHeaderListFromFD", (PyCFunction) rpmMergeHeadersFromFD, METH_VARARGS,
|
||||
NULL },
|
||||
{ "readHeaderListFromFD", (PyCFunction) rpmHeaderFromFD, METH_VARARGS,
|
||||
|
@ -376,8 +313,6 @@ static PyMethodDef rpmModuleMethods[] = {
|
|||
NULL },
|
||||
{ "labelCompare", (PyCFunction) labelCompare, METH_VARARGS,
|
||||
NULL },
|
||||
{ "checksig", (PyCFunction) checkSig, METH_VARARGS,
|
||||
NULL },
|
||||
{ "setVerbosity", (PyCFunction) setVerbosity, METH_VARARGS,
|
||||
NULL },
|
||||
{ "setEpochPromote", (PyCFunction) setEpochPromote, METH_VARARGS,
|
||||
|
@ -407,7 +342,6 @@ void initrpm(void)
|
|||
#if Py_TPFLAGS_HAVE_ITER /* XXX backport to python-1.5.2 */
|
||||
if (PyType_Ready(&hdr_Type) < 0) return;
|
||||
if (PyType_Ready(&rpmal_Type) < 0) return;
|
||||
if (PyType_Ready(&rpmdb_Type) < 0) return;
|
||||
if (PyType_Ready(&rpmds_Type) < 0) return;
|
||||
if (PyType_Ready(&rpmfd_Type) < 0) return;
|
||||
if (PyType_Ready(&rpmfi_Type) < 0) return;
|
||||
|
@ -445,9 +379,6 @@ void initrpm(void)
|
|||
Py_INCREF(&rpmal_Type);
|
||||
PyModule_AddObject(m, "al", (PyObject *) &rpmal_Type);
|
||||
|
||||
Py_INCREF(&rpmdb_Type);
|
||||
PyModule_AddObject(m, "db", (PyObject *) &rpmdb_Type);
|
||||
|
||||
Py_INCREF(&rpmds_Type);
|
||||
PyModule_AddObject(m, "ds", (PyObject *) &rpmds_Type);
|
||||
|
||||
|
@ -471,7 +402,6 @@ void initrpm(void)
|
|||
#else
|
||||
hdr_Type.ob_type = &PyType_Type;
|
||||
rpmal_Type.ob_type = &PyType_Type;
|
||||
rpmdb_Type.ob_type = &PyType_Type;
|
||||
rpmds_Type.ob_type = &PyType_Type;
|
||||
rpmfd_Type.ob_type = &PyType_Type;
|
||||
rpmfi_Type.ob_type = &PyType_Type;
|
||||
|
|
|
@ -22,7 +22,6 @@ extern PyTypeObject PyDictIter_Type;
|
|||
#if Py_TPFLAGS_HAVE_ITER /* XXX backport to python-1.5.2 */
|
||||
#include "header-py.h" /* XXX debug only */
|
||||
#include "rpmal-py.h" /* XXX debug only */
|
||||
#include "rpmdb-py.h" /* XXX debug only */
|
||||
#include "rpmds-py.h" /* XXX debug only */
|
||||
#include "rpmfd-py.h" /* XXX debug only */
|
||||
#include "rpmfi-py.h" /* XXX debug only */
|
||||
|
@ -110,7 +109,6 @@ static const char * lbl(void * s)
|
|||
|
||||
if (o->ob_type == &hdr_Type) return "hdr";
|
||||
if (o->ob_type == &rpmal_Type) return "rpmal";
|
||||
if (o->ob_type == &rpmdb_Type) return "rpmdb";
|
||||
if (o->ob_type == &rpmds_Type) return "rpmds";
|
||||
if (o->ob_type == &rpmfd_Type) return "rpmfd";
|
||||
if (o->ob_type == &rpmfi_Type) return "rpmfi";
|
||||
|
|
|
@ -1008,22 +1008,10 @@ static struct PyMethodDef rpmts_methods[] = {
|
|||
|
||||
{"addInstall", (PyCFunction) rpmts_AddInstall, METH_VARARGS,
|
||||
NULL },
|
||||
#ifdef _LEGACY_BINDINGS_TOO
|
||||
{"add", (PyCFunction) rpmts_AddInstall, METH_VARARGS,
|
||||
NULL },
|
||||
#endif
|
||||
{"addErase", (PyCFunction) rpmts_AddErase, METH_VARARGS,
|
||||
NULL },
|
||||
#ifdef _LEGACY_BINDINGS_TOO
|
||||
{"remove", (PyCFunction) rpmts_AddErase, METH_VARARGS,
|
||||
NULL },
|
||||
#endif
|
||||
{"check", (PyCFunction) rpmts_Check, METH_VARARGS,
|
||||
NULL },
|
||||
#ifdef _LEGACY_BINDINGS_TOO
|
||||
{"depcheck", (PyCFunction) rpmts_Check, METH_VARARGS,
|
||||
NULL },
|
||||
#endif
|
||||
{"order", (PyCFunction) rpmts_Order, METH_VARARGS,
|
||||
NULL },
|
||||
{"run", (PyCFunction) rpmts_Run, METH_VARARGS,
|
||||
|
|
|
@ -521,9 +521,13 @@ fi
|
|||
- python: bare bones rollback bindings.
|
||||
- python: enable threads on callbacks and longish rpmlib calls.
|
||||
- python: expose RPMTAG_SOURCEPACKAGE to identify source headers.
|
||||
- python: eliminate headerFromPackage() tuple return, deprecated.
|
||||
- python: eliminate rpm.headerFromPackage() tuple return, deprecated.
|
||||
- python: add ts.hdrFromFdno(fdno) method.
|
||||
- fix: check for lead magic, better error message on failure (#69751).
|
||||
- python: the death of rpmdb-py.[ch], use ts.fooDB() methods instead.
|
||||
- python: the death of rpm.headerFromPackage(), use ts.hdrFromFdno().
|
||||
- python: permit direct ts.dbMatch() python iterations.
|
||||
- python: the death of rpm.checksig(), use ts.hdrFromFdno() instead.
|
||||
|
||||
* Sun Aug 4 2002 Jeff Johnson <jbj@redhat.com> 4.1-0.68
|
||||
- resurrect --rollback.
|
||||
|
|
Loading…
Reference in New Issue