[packages/python3] - use 'share' not 'lib' for platform independent files - rel 3
Jacek Konieczny
jajcus at jajcus.net
Tue Apr 26 09:37:57 CEST 2016
On 2016-04-26 09:14, Jan Rękorajski wrote:
>> You are probably breaking pypi and /usr/local installs again!
>>
>> Proper directories for RPM packages are set with setup.py options via
>> %py_build/%py_install macros. Packages not using distutils/setuptools may
>> need patching, but that is better than breaking Python for non-RPM usage.
>>
>
> It caused distutils.sysconfig.get_python_lib() to return /usr/lib for
> platform independent modules location which is not what we want and breaks
> automake's python.m4.
I am sure I have left this for purpose. Many python packages, including
'core' ones, like setuptools/pip/virtualenv assume that python_lib is
${prefix}/lib. Things were quite broken when we patched Python to do
things 'the right way'.
We only need to force platform independent modules installed in
/usr/share when building RPM packages and that is mostly solved by our
%py_build/%py_install macros. The few packages left can always be patched.
That said… I have tested the python3 package after your change to find
what has been broken… and failed to get the expected results. Either I
cannot recall the exact thing broken (I have tested various pip and
virtualenv usage, using upstream packages) or this one change doesn't
break anything (the 'lib' is hardcoded in a similar way in a few places,
IIRC).
So it is possible that nothing have been broken in this case, but we
should be very careful about this.
virtualenv and pip _must_ work properly with unpatched upstream code for
/usr/local and $HOME installs – that is how lots of Python packages is
expected to be installed and we are not able to package everything
ourselves.
Jacek
More information about the pld-devel-en
mailing list