[CentOS-devel] Building python38-createrepo_c in CentOS 8 Stream

Wed Mar 2 13:10:11 UTC 2022
Miro Hrončok <mhroncok at redhat.com>

On 02. 03. 22 13:12, Ewoud Kohl van Wijngaarden wrote:
> On Wed, Mar 02, 2022 at 11:44:10AM +0100, Miro Hrončok wrote:
>> On 02. 03. 22 11:16, Ewoud Kohl van Wijngaarden wrote:
>>> Hello everyone,
>>
>> Hello.
>>
>>> I'm sending this on behalf of the packagers of the Pulp project.
>>>
>>> The Pulp project uses createrepo_c and in particular the Python bindings. 
>>> The appstream repository does contain python3-createrepo_c but Pulp needs 
>>> Python 3.8 so it uses the 3.8 module. There is no python38-createrepo_c so 
>>> for now we're building it ourselves. The problem shows up when createrepo_c 
>>> is bumped in CentOS Stream. From repoclosure:
>>>
>>> Depsolve Error occured:
>>>  Problem: package python38-createrepo_c-0.17.7-3.2.el8.x86_64 requires 
>>> createrepo_c-libs = 0.17.7-3.2.el8, but none of the providers can be installed
>>>   - cannot install both createrepo_c-libs-0.17.7-4.el8.x86_64 and 
>>> createrepo_c-libs-0.17.7-3.2.el8.x86_64
>>>   - cannot install both createrepo_c-libs-0.17.7-3.2.el8.x86_64 and 
>>> createrepo_c-libs-0.17.7-4.el8.x86_64
>>>   - cannot install the best update candidate for package 
>>> python38-createrepo_c-0.17.7-3.2.el8.x86_64
>>>   - cannot install the best update candidate for package 
>>> createrepo_c-libs-0.17.7-3.2.el8.x86_64
>>>
>>> It would be ideal if CentOS itself built python38-createrepo_c (and possibly 
>>> also for other Python modules). Is this something that could be done?
>>
>> Technically yes, but that depends on RHEL business decisions.
> 
> I had hoped I could get this resolved via upstream channels, but I'll see if I 
> can use my Red Hat and some internal channel.
> 
>> If you want to build your own, I think there are two fundamentally different 
>> ways to build python38-createrepo_c in c8s.
>>
>> The first way, that I would use for example in EPEL 8, is to create a 
>> python38-createrepo_c component, build the package in there, but not ship 
>> createrepo_c-libs at all, but depend on the official one. If you could share 
>> your spec file, I can send you an updated version that will do this and fix 
>> the dependency thing. You will however need to keep it more or less synced 
>> with the baseline createrepo_c package whenever it is updated in RHEL / c8s.
> 
> It is maintained here:
> 
> https://github.com/theforeman/pulpcore-packaging/tree/rpm/3.16/packages/createrepo_c 

Oh, this uses SCL? I don't really understand the SCL-ness of the spec, but 
something like this should do:

https://github.com/theforeman/pulpcore-packaging/pull/407

-- 
Miro Hrončok
-- 
Phone: +420777974800
IRC: mhroncok