Issue 1. The kernel, because my build host is defined as arch i386,
x86_64 when I pass a kernel build in, it passes "--target i386" which
leads to the usual train wreck of no i386 config
how do I pass in i686 specifically for the kernel?
The arches of your host are not directly passed to mock as you suggest.
The build task will trigger builds for the arches in the archlist for
the tag that the buildroot is based on (the build tag of the target).
This list is modified in various ways.
First any extra arches for package are added. You can control extra
arches on a per-tag basis with the 'koji set-pkg-arches' command. This
is probably the solution you are looking for.
Secondly, the buildarchs, exclusivearch, and excludearch macros of the
srpm are factored in. Note that the buildarchs macro is allowed to
override the archlist, including expanding it.
Thirdly, for scratch builds, the --arch-override option to the build
command can override the arch list.
For each arch in the resulting list, a buildArch subtask is created.
This is where the arch list of a host comes into play. Note that the
arch of the task is the canonicalized, so an i686 build is an i386 task.
Hence your host with an archlist of 'i386 x86_64' will accept an i686
Issue 2. One of the fun items in xen is that when you're building
64bit version there is an odd dependency on pulling in a 32bit
glibc-devel by adding /usr/include/gnu/stubs-32.h to the dependency
list, when building in x86_64 that dependancy cannot get satisfied. How
can I beat the tag into realizing it can pull from the i386 repo to
fulfill that requirement?
Koji does not support multilib buildroots. Doing so /sanely/ is not
nearly as simple as some would suggest.
The way this is currently handled is to include a 64bit rpm that
contains this needed 32bit content. This package may need to be added to
the base install so that packages do not need to explicity require it.
$ koji latest-pkg --quiet dist-f9-build glibc32
glibc32-2.4.90-13 dist-fc6-build jkeating