I worked on this a bit last week. I thought I'd mention it here:
http://fedorapeople.org/gitweb?p=skvidal/public_git/scripts.git;a=tree;f=...
mockchain.py
mockchain.py [options] chrootname file.src.rpm [file1.src.rpm]
[file2.src.rpm] ...
Builds a series of srpms in mock one at a time. After each successful
build
of a package it adds the resulting packages to a local repo which
are available to the next package to satisfy buildreqs.
options:
-c - continue on package build failure - by default it will exit if
a package fails to build. set this if you wish it to try and
continue
for the rest of the packages.
-l path - set the path to put the results/repo in. This path needs to be
somewhere accessible to users other than you for reading as the
mock process doesn't run as you.
-a url - add this repo url to the yumconfig for the buildroot. This can
be specified multiple times. Let's you point to multiple
paths beyond the default to pull build deps from.
--recurse - build all pkgs, record the failures and try to rebuild them
again and again until everything gets built (or until the
set of pkgs failing to build are the same over)
This does not try to sort the packages by build order b/c that is too much
effort and not obviously doable with the buildreq information we have.
The build process when you use -l is idempotent so a package which has
already been successfully built will not be built again.
If you want to force the rebuild of a package which has been built
successfully simply remove the 'success' file from the dir with the
package
results in it. Package results are written out into
a dir named:
chrootname/pkgname-ver-rel/
for example:
fedora-16-x86_64/yum-3.2.29-0/
-sv