[CentOS-devel] How to compile modular SRPMs for CentOS 8?

Wed Apr 13 10:28:25 UTC 2022
Johnny Hughes <johnny at centos.org>

On 4/13/22 05:13, Leon Fauster via CentOS-devel wrote:
> Am 13.04.22 um 05:08 schrieb Nico Kadel-Garcia:
>> I admit to disliking "modularity" for RPMs, especially because there
>> are various modularity RPMs I'd like to compile for python 3.9
>> compatibility. ansible-core requires at least python 3.8, but there
>> are a stack of dependencies for ansible-core which have never been
>> provided for python 3.9, such as python39-sphinx and python39-pytest..
>>
>> Can anyone offer me suggestions or guidance on how to build those? The
>> SRPMs for python3-pytest and others seem to support modularity, but
>> I'd like to use "mock" locally to test them out.
> 
> Correct me if I understand it wrongly. The requirement is not building a
> module but against a enabled module?
> 
> IIRC in mock config:
> 
> config_opts['module_enable'] = ['python39:3.9']
> 
> and then build the rpms normally.

That might work for a test, if you manually know everything that is 
required.  You can find this in the required yaml/modulemd.src.txt files 
for modules that we release.

The real issue is, most of the modules are interdependent.  The koji/MBS 
combo looks at the yaml files and creates a macros rpm that loads the 
correctitems into the buildroot.  So you get the proper python, the 
proper perl, the proper maven, etc, items included.  Here is an example 
perl module to build:

https://koji.mbox.centos.org/koji/rpminfo?rpmID=438360

Manually adding in each of those will be a huge PITA :)