mockchain.py

Seth Vidal skvidal at fedoraproject.org
Fri Apr 20 16:43:22 UTC 2012


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=mock

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



More information about the buildsys mailing list