seth vidal wrote:
Items for thoughts:
1. build system using comps.xml for chroot install definitions (base,
build, minimal) - it would make sense and we could leverage the
groupinstall/update/remove mechanism in yum.
I have no objection to yum groupinstall, but in my opinion none of the
current defined groups are suitable for a minimal buildroot. There have
been objections in the past to this with the opinion that the
"Development" tools group and -devel packages should be assumed to be
installed in this minimum buildroot. However this is a bad assumption
because the set of -devel packages has been arbitrary, and dependencies
don't make sure that particular tools exist in the buildroot.
For this reason none of the existing groups are suitable for the most
important goal of the minimum buildroot: reproducible binary payloads.
I believe the following requirements describe a minimal buildroot:
* Absolute minimum needed for rpmbuild to function.
* BuildRequires should describe explicitly what is needed beyond the
minimum buildroot to build a reproducible binary payload.
* Must NOT include autoconf*, automake*, gettext* or libtool. While
this seems counter-productive at first, it makes sense because sources
theoretically shouldn't need it to build. And in cases where patches
require them during rpmbuild, they often require an explicit version of
auto*.
* EXCEPTIONS: Stuff like gcc or g++ are included because it would be
silly to list them explicitly in every package. These exceptions should
be VERY rare.
bash
bzip2
coreutils
cpio
diffutils
fedora-release
gcc
gcc-c++
gzip
make
patch
perl
python
rpm-build
redhat-rpm-config
sed
tar
unzip
Something like the list describes a very well tested minimum buildroot.
The dependencies pulled in by these packages form the minimum set
necessary for rpmbuild to function.
We may also want to consider providing a "fake-build-provides" package
in a buildroot repository that provides something like "kernel = 999",
since stuff in the buildroot Requires kernel but it isn't actually
needed to build stuff.
Warren Togami
wtogami(a)redhat.com