creating build order from rpm spec files

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



I'm using the yum python api for the first time, and would appreciate
Any comments or guidance.

I've created a small utility that takes a set of rpm spec files and one or
more live yum repos, determines if the spec files can be built, and if so,
what is the required build order according to their dependencies.

This requires an extremely recent rpm lib, so that the rpm.parseSpec
result will generate the 'implicit self-provides' packages.  (See
correspondence with Panu Matilainen here :
http://lists.rpm.org/pipermail/rpm-list/2011-October/001020.html )

The utility works by:
- instantiating a yumbase instance using the supplied repos
- uses rpm.ts().parseSpec to get the rpm headers of the source & built
packages from a .spec file
- uses yum.packages.YumHeaderPackage and yum.packages.FakeRepository to
create a yum package from the rpm headers

It then creates a build order tree:
- finds source packages whose 'requires' are met by calling
returnPackageByDep on their dependencies.
- if the source package can be built, creates a fake package sack to hold
the built packages, and adds them to the yumbase .pkgSack metasack.
- iterates until no more source packages are left, or can be built.

I'm using yum 3.2.29 (on fedora 15).  A couple of specific questions:

- it looks like yum.packageSack.PackageSack never calls the
PackageSackBase init.  This was causing a attribute errors (no attributed
'added').  Is that a buglet?

- is there a straight forward way to create a host-independent yumbase
instance?  Since I want to use existing yum repos as part of the
dependency check, I'm creating a yum.conf file on the fly that lists the
given repos, and disables plugins, etc.  This feels relatively heavy
weight.

Thanks for any advice!

-Alfred


_______________________________________________
Yum mailing list
Yum@xxxxxxxxxxxxxxxxx
http://lists.baseurl.org/mailman/listinfo/yum


[Index of Archives]     [Fedora Users]     [Fedora Legacy List]     [Fedora Maintainers]     [Fedora Desktop]     [Fedora SELinux]     [Big List of Linux Books]     [Yosemite News]     [KDE Users]

  Powered by Linux