rpm-software-management / mock

Mock is a tool for a reproducible build of RPM packages.
GNU General Public License v2.0
381 stars 227 forks source link

Enable all default modules in EL8+ and all modules in CRB by default #910

Open praiskup opened 2 years ago

praiskup commented 2 years ago

I'm not 100% sure, we need to experiment a bit, but per IRC discussion:

<bgstack15> How is it possible that my custom package is excluded by modular filtering?!
<bgstack15>   - package libssh2-freefilesync-1.9.0-5.el8.x86_64 is filtered out by modular filtering
...
<praiskup> so should we disable this module by default in mock-core-configs?
<smooge> I think that would probably break other builds
...
<bgstack15> I am trying now with the virt:rhel module enabled.
<bgstack15> Wow, it was able to install libssh2-freefilesync from my copr, when I had virt:rhel enabled on the copr epel8 repo.
<smooge> bgstack15, yeah sorry virt:rhel or virt-devel:rhel was what I should have typed
<praiskup> hm, so I should have asked differently -- should we explicitly enable virt:rhel in epel-8 chroots in mock-core-configs?
<praiskup> this modular mess never stops surprising me
<smooge> praiskup, so to have a 'similar' buildroot with 8, you would enable all the default modules and then all the modules in crb. We flatten them using grobisplitter to get rid of the filters which can cause problems
<praiskup> noted.
nkadel commented 2 years ago

It's difficult to outguess which modules might be available in order to enable them all. Also, I'm reasonably sure no one has tested this with all modules enabled, which on RHEL 8 include more than 70 channels for modules, such as python38, python38-devel, squid, subverson, mariadb, and mysql. Mariadb and mysql in particular are likely to overlap and result in confusion if all are enabled.

Enabling modules could be more clear. The current notes on enabling modules mention only Fedora, and don't include examples for RHEL or its rebuilds.

nkadel commented 1 year ago

I've submitted a pull request to enhance the documentation in the RHEL based templates. This has become less important as EPEL has completely discarded modularity, and I hope that Red Hat will continue to deprecate the unwelcome and confusing feature. But in the meantime, listing the options can be useful to people customizing mock.

nkadel commented 1 year ago

There is now documentation in docs/Feature-modularity.md. The unused listings in individual config files, always commented out, should be discarded and the doucmentation relied on instead.