Building the python executable statically with libpython*.a for
better performance
by Miro Hrončok
Hello,
we've been recently approached by a colleague from Red Hat working on
performance (CCed).
According to their testing, Fedora Python performance could be improved by ~15%
by building /usr/bin/python* statically with libpython*.a. That sounds like a
worthy thing to do.
https://bugzilla.redhat.com/show_bug.cgi?id=1749479
Since Python 3.8 Python extension modules are no longer linked to libpython.so
and we can do the following:
* build /usr/bin/python3(.8) statically with libpython*.a
* build and ship libpython3.8.so.1.0 for packages that "embed" Python
The change in the python3 package is trivial:
https://src.fedoraproject.org/rpms/python3/pull-request/133
However it can have serious impact on Python extension modules that are linked
to libpython3.8.so.1.0 by various "nonstandard" build mechanisms or by compiling
code for Python extension module and code that embeds Python into one file.
We will likely propose a Fedora 32 Change for this, however I'm opening this
topic for discussion before we do so.
Testing the proposed Pull Request with your code is also helpful. Let me know
how can we make that easier (e.g. if you want a Copr or a Fedora 30/31 python38
package with this change).
WDYT?
--
Miro Hrončok
--
Phone: +420777974800
IRC: mhroncok
3 years, 10 months
case sensitive problems building packages (this case, PyVISA)
by Christopher Beck
Hi,
I am trying to build PyVISA (https://pyvisa.readthedocs.io/en/latest/)
using mock and the problem is, during the build it is looking for
"/builddir/build/BUILDROOT/python-pyvisa-1.10.0-1.fc30.x86_64/usr/lib/python3.7/site-packages/pyvisa-1.10.0-py?.?.egg-info".
But the real name if the directory
is"/builddir/build/BUILDROOT/python-pyvisa-1.10.0-1.fc30.x86_64/usr/lib/python3.7/site-packages/PyVISA-1.10.0-py?.?.egg-info".
So I think the developer was not aware of case sensitive systems.
I tried to modify the specfile but with no different result. So original
specfile was created using pyp2rpm.
Besides PyVISA, I had this problem on some other python packages, too,
so is there a way out of that except patching and rewriting stuff of the
original python package? It seems to me like a common problem. I found
[1] and pyvisa is mentioned there, but the problem seems to be the same
(regardless to say I wonder how that guy there built this RPM of PyVISA).
Best Regards
Christopher
[1]: https://github.com/fedora-python/pyp2rpm/issues/22
3 years, 11 months