On Thu, 2007-05-31 at 15:32 -0400, Mike Bonnet wrote:
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=
parameter).
What do you do if you have several packages that have a common
dependency?
For instance:
bzrtools Requires: bzr >= %{majorver} bzr < %{nextver}
bzr-gtk Requires: bzr >= %{majorver} bzr < %{nextver}
Does cd bzr-gtk/devel ; make chain-build CHAIN='bzr bzrtools'
build bzr, then bzrtools when bzr is ready, then bzr-gtk when bzrtools
is ready? Or does it attempt to make bzr and bzr-gtk independently
followed by bzr-gtk?
Related to this is specifying more than one package.
foo Requires: bar, bar Requires: baz.
An update of baz requires an update of bar which requires an update of
foo. Does cd foo/devel ; make chain-build CHAIN='baz bar' do the right
thing?
Thanks,
-Toshio