[Yum-devel] rpm verify in YumInstalledPackages

seth vidal skvidal at fedoraproject.org
Mon Jan 28 15:32:44 UTC 2008


On Mon, 2008-01-28 at 11:22 +0200, Panu Matilainen wrote:

> The rpmfi tuple (and bunch of others, like in the depsolve callback) is 
> just #¤%#¤%¤# as tuples can't be extended or changed without breaking 
> every user... Note that you can access the rpmfi data via methods too, eg
> 
> fi = h.fiFromHeader()
> for x in fi:
>      print fi.FN(), fi.FMode(), fi.FFlags()

nod, it's like the odd hdr/matchiterator oddness though.


> If you think that's quirky and weird... well I don't disagree ;)
> The rpmfi and rpmds "objects" don't have separate iterators on C level 
> (unlike db, ts etc items) and in this case the brokenness is visible 
> directly to python too as rpmfi is very thinly wrapped for python.
> 
> Not to mention there are other issues like integer signedness conversion 
> bugs present in the numerical fields, at least FMode() suffers from it 
> and probably others too:
> 

That explains why I was having some issues getting FMode() to resemble
anything.

> Fixed in rpm.org HEAD already, for 4.4.x the only chance is to add casts 
> in the bindings (will do...)

cool.


> > Though, if you really want to make me happy by working on some of the
> > python bindings I have a hankering for rpmbuild. :)
> 
> What I've been thinking of, and actually already started at some point but 
> got side-tracked by variety of other issues is:
> 
> The python bindings should be split out of rpm sources to free up the 
> development. And rpmbuild should be a separate module from the "core" 
> bindings to avoid dragging librpmbuild.so into things like installer 
> images needlessly.
> 
> The current bindings are so tangled in ugly legacy issues which can't be 
> changed without breaking half the world, I'm thinking of opting to 
> developing a new set of bindings, designed from the ground up to be 
> extensible without breaking and only using public librpm APIs. And 
> parallel installable to the current ones to make the transition easier. 
> Take what's sane in the current bindings and scratch + redesign the rest 
> and once in usable state, mark the in-rpm bindings deprecated (but leave 
> around for, sigh, legacy support). Implemented in C where necessary and/or 
> makes sense, otherwise in Python.
> 
> Since build bindings don't exist ATM, there are no legacy holdups... so 
> all that's needed is a design and then just do it ;) yum-devel is not the 
> best place to discuss that though... :)

What about starting where we talked about before? Give us an python
binding that creates a package file-object and its attributes then we
can start working on what the interface, etc look like a bit at a time?

-sv





More information about the Yum-devel mailing list