On Tue, 2007-05-29 at 17:46 -0500, Jason L Tibbitts III wrote:
>>>>> "JLT" == Jason L Tibbitts
JLT> OK, cool, let's hack on Makefile.common a bit....
OK, here's a nasty first-pass hack. Apply this to Makefile.common,
then do "make chain-queue" in each CVS branch directory where you
would normally do "make build". (As with building, the directories
must be tagged and such.) Then after your last chain-queue, run "make
chain-go". In fact, you probably have to apply this to all of your
Makefile.common files, unless you have them all linked together or
something. And you'll have to patch after tagging and such, else the
tagging will fail and screw all sorts of nice things up. It doesn't
seem very easy to have local Makefile.common changes.
"make chain-restart" will clear out the queue.
I did a basic test by chain-building two of my packages, but they
don't really depend on each other so it's not a complete test.
I just checked in an alternate chain-build implementation to
Makefile.common, based on a target we were using internally (and have
tested rather extensively). Update your common/ directories and run
"make help" to see the chain-build usage.
You specify the packages that the current package depends on using the
CHAIN= parameter to "make chain-build". The packages specified in the
CHAIN= parameter will be checked out into a temp directory and "make
cvsurl" will be called to get their CVS URL (this will reference the
latest tag that was applied to the package on the current branch, and
that tag must not have been built in Koji already). The CVS URLs from
each CHAIN= package and the current package will be used to generate the
appropriate koji command-line to build each package in order (the
current package will be built last, and should not appear in the CHAIN=
If you want the Koji client to exit immediately after launching the
task, you can also pass BUILD_FLAGS="--nowait" to make, as with a normal
Please give it a try, and let me know if you run into any issues.