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.fedoraproject.... 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.