Using mock to build a chain of packages
Richard W.M. Jones
rjones at redhat.com
Sat Mar 22 18:49:58 UTC 2008
I'm sure this must be a common question, but I can't work it out from
the man page and various online mock resources.
I want to build a 'chain' of packages in mock -- packages A, B and C
where after A is built it must be installed because it is a
BuildRequires for B, and similarly B must be installed before C is
built. None of these packages is in the Fedora verison (8) that I'm
using.
I can build and install package A fine:
$ mock -r fedora-8-i386 rpmbuild/SRPMS/ocaml-fileutils-0.3.0-3.fc8.src.rpm
# rpm --root /var/lib/mock/fedora-8-i386/root -Uvh /var/lib/mock/fedora-8-i386/result/ocaml-fileutils-*.i386.rpm
Preparing... ########################################### [100%]
1:ocaml-fileutils ########################################### [ 50%]
2:ocaml-fileutils-devel ########################################### [100%]
Now package B, but the build fails:
$ mock -r fedora-8-i386 --no-clean /home/rjones/rpmbuild/SRPMS/ocaml-gettext-0.2.0-1rwmj20080321.fc8.src.rpm
INFO: mock.py version 0.9.7 starting...
State Changed: init plugins
State Changed: start
INFO: Start(/home/rjones/rpmbuild/SRPMS/ocaml-gettext-0.2.0-1rwmj20080321.fc8.src.rpm) Config(fedora-8-i386)
State Changed: init
State Changed: lock buildroot
INFO: enabled root cache
INFO: enabled yum cache
State Changed: cleaning yum metadata
INFO: enabled ccache
State Changed: running yum
State Changed: setup
ERROR: Exception(/home/rjones/rpmbuild/SRPMS/ocaml-gettext-0.2.0-1rwmj20080321.fc8.src.rpm) Config(fedora-8-i386) 0 minutes 6 seconds
INFO: Results and/or logs in: /var/lib/mock//fedora-8-i386/result
ERROR: Bad build req: No Package Found for ocaml-fileutils-devel. Exiting.
But ocaml-fileutils-devel (the A package) _is_ installed in the
buildroot:
$ rpm --root /var/lib/mock/fedora-8-i386/root -qa | grep fileutils
ocaml-fileutils-devel-0.3.0-3.fc8
ocaml-fileutils-0.3.0-3.fc8
What am I doing wrong!?
Also: Is there a way to make this all easier? What I _really_ want to
do is to pass a lengthy list of SRPMS to mock and have it just work
out the dependencies (including install dependencies) and have it
build & install them.
Rich.
--
Richard Jones, Emerging Technologies, Red Hat http://et.redhat.com/~rjones
virt-p2v converts physical machines to virtual machines. Boot with a
live CD or over the network (PXE) and turn machines into Xen guests.
http://et.redhat.com/~rjones/virt-p2v
More information about the fedora-devel-list
mailing list