On 07. 04. 20 14:25, Petr Viktorin wrote:
On 2020-04-07 12:40, Miro Hrončok wrote:
> On 07. 04. 20 11:06, Petr Viktorin wrote:
>> On 2020-04-03 20:44, Miro Hrončok wrote:
>>> Hello Python packagers.
>>>
>>> I have just updated python-rpm-generators to python-rpm-generators-11-1.fc33
>>> in Rawhide. It uses some fresh stuff from RPM 4.16 and will not be
>>> backported to older releases.
>>>
>>>
>>> The python(abi) requirement is now added from a RPM Lua macro, instead of by
>>> executing a Shell script. This is a bit faster especially for packages with
>>> a lot of files. For 10 000 files in one package, the speedup is roughly from
>>> ~80 to ~2 seconds (time of the entire package build incl. creating the files
>>> from a Python script). That is a lot, but most of the real packages have
>>> much less files, so I am afraid you won't feel it.
>>
>> Hi,
>> One thing I'm wondering about is: why is python(abi) provided by a generator,
>> anyway?
>> It's provided by a very small set of packages (python2 and python3 in
>> Fedora). Couldn't it just be listed in those specfiles?
>
> Just to put this into more context: The time overhead is for the requires. The
> provides are filtered on a certain path and even if we are automating stuff
> for 2 packages which indeed might not be needed, it doesn't really hurt
anything.
>
> See also
>
https://lists.fedoraproject.org/archives/list/packaging@lists.fedoraproje...
> for me trying to figure out when this provides are useful -- depending on the
> answer there, we might want to keep the automated provides of python(abi) only
> and remove the manual ones.
The part I don't get is: why keep the automated provides over manual ones.
Compared to a line in the relevant spec files, the macro looks like it adds
complexity for no benefit.
I get the automatic *requires* on python(abi) -- that's used by thousands of
packages and easy to forget. But the provides will only ever be in CPython.
I see your point and I don't disagree necessarily. I was just trying to provide
more context.
One reason to keep this is robustness. Once the python(abi) generator is
enabled, it makes sure that both provides and requires are present.
--
Miro Hrončok
--
Phone: +420777974800
IRC: mhroncok