Re: Fedora 31 System-Wide Change proposal (late): No i686 Repositories

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 7/15/19 8:08 AM, Tom Hughes wrote:
> On 15/07/2019 15:56, Zbigniew Jędrzejewski-Szmek wrote:
>> On Mon, Jul 15, 2019 at 11:52:50AM +0200, Mark Wielaard wrote:
>>> Could you explain a bit more how this (keeps) working? I think my
>>> mental model of how Fedora repositories work in the case of multilib
>>> devel packages is a bit flawed. At first I assumed that this suggestion
>>> would kill that. Because I was under the impression that it worked by
>>> having the i386 repository be part of the x86_64 package repository. So
>>> removing the i686 repositories would mean removing all 32bit packages
>>> from x86_64. But from your explanation above it seems that is not how
>>> it works. So if there are no i686 repositories, then where/how do the
>>> 32bit multilib packages come from?
>>>
>>> I think I am mixing up buildroots, koji targets, repositories in my
>>> mind.
>>
>> Let me second that request. It would be great if somebody could
>> summarize the steps that lead to 32bit packages being installable on
>> amd64 machines. I know how the beginning (compilation in the
>> appropriate chroot), and the end (dnf install foo.i686), but the
>> middle is hazy.
> 
> It definitely doesn't work as Mark thinks because only a subset
> of the i686 packages are present in the x86_64 repository.
> 
> I've never really been sure how it decides what packages to
> include but certainly the idea here that every 32 bit package
> that you might need on a 64 bit system is present is false
> because I actually have a list of additional packages that
> get copied over in my local mirror ;-)

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.

Pungi uses in turn the python-multilib package to do the actual
computations here, which you can see in:
https://pagure.io/releng/python-multilib/blob/master/f/multilib/multilib.py#_117

Basically it looks to see if a package has files in specific directories
(mostly runtime libraries) and returns a true or false if the package
should be multilibed. There is a bunch of cruft and corner cases in
there as well.

pungi then puts those i686 packages that are marked true into the x86_64
tree and creates the repo. x86_64 users can then install those i686
packages easily because they are in the x86_64 repos they already use.

None of the above needs a public, mirrored i686 repository tree. The
computation is done by pungi at compose time looking at all the i686
packages built in koji and tagged with the appropriate tag.

Did that help? Or make things worse... happy to try and expand or answer
any other questions about it.

kevin

Attachment: signature.asc
Description: OpenPGP digital signature

_______________________________________________
devel mailing list -- devel@xxxxxxxxxxxxxxxxxxxxxxx
To unsubscribe send an email to devel-leave@xxxxxxxxxxxxxxxxxxxxxxx
Fedora Code of Conduct: https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: https://lists.fedoraproject.org/archives/list/devel@xxxxxxxxxxxxxxxxxxxxxxx

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Fedora Announce]     [Fedora Users]     [Fedora Kernel]     [Fedora Testing]     [Fedora Formulas]     [Fedora PHP Devel]     [Kernel Development]     [Fedora Legacy]     [Fedora Maintainers]     [Fedora Desktop]     [PAM]     [Red Hat Development]     [Gimp]     [Yosemite News]

  Powered by Linux