So, this is how it works (as far as I recall off the top of my head):
You build a archfull package in koji. It's built for x86_64 and i686
(and the other arches).
pungi runs to compose things. It has a config (in pungi-fedora or bodhi
config) that tells it what to do for multilib. It has also config that
tells it what tag(s) to use for the compose, so it talks to koji and
asks about/gathers packages based on that tag.
Currently for rawhide that is:
multilib = [
('^Everything$', {
'x86_64': ['devel', 'runtime'],
})
]
# format: {arch|*: [packages]}
multilib_blacklist = {
'*': ['kernel', 'kernel-PAE*', 'kernel*debug*',
'dmraid-devel', 'kdeutils-devel', 'mkinitrd-devel',
'php-devel', 'java-*',
'httpd-devel', 'tomcat-native', 'php*', 'httpd',
'krb5-server', 'krb5-server-ldap', 'mod_*', 'ghc-*'
],
}
# format: {arch|*: [packages]}
multilib_whitelist = {
'*': ['libgnat', 'wine', 'lmms-vst', 'nspluginwrapper',
'libflashsupport', 'valgrind', 'perl-libs', 'redhat-lsb',
'yaboot', 'syslinux-extlinux-nonlinux', 'syslinux-nonlinux',
'syslinux-tftpboot', 'nosync', '*-static', 'apitrace-libs',
'fakeroot-libs', 'postgresql-odbc', 'mysql-connector-odbc',
'fakechroot-libs','mesa-vdpau-drivers', 'p11-kit-trust',
'mariadb-connector-odbc', 'compiler-rt',
'nvidia-query-resource-opengl-lib',
'ibus-libs', 'ibus-gtk2', 'ibus-gtk3',
'glib-networking'
],
}
So, that says to use the 'runtime' method of multilib, and then
explicitly add some packages and explicitly remove some. The orig idea
of 'runtime' was to allow runtime for i686 binaries on x86_64 platforms.