On Thu, Jan 12, 2012 at 12:13 PM, Panu Matilainen <pmatilai@xxxxxxxxxxxxxxx> wrote:
On 01/12/2012 12:41 PM, Raphaël De GIUSTI wrote:If the software installs anything into python library paths, then it the resulting *package* is dependent on the python version used when building: eg python 2.6 will not look into python 2.7 library paths, so it will not work.
I have a python application, it can run on Python>= 2.6 and it's
architecture independant.
I need the rpm package of this application to be installed on Fedora 14
(python 2.7) and Centos 6.2 (python 2.6).
I currently use mock to build one rpm package for each "flavour" and it
works well.
Do I really have to use mock and build 2 rpms or is there another way to
create a single generic python 2.x rpm package ?
Because apparently I can't install the Centos compiled rpm on Fedora.
It gives me this error message :
**************************************************************
error: Failed dependencies:
python(abi) = 2.6 is needed by myapp-0.9.el6.noarch
**************************************************************
Here is the relevant part of my .spec file :
*******************************************************************************************************************************************************************
%{!?python_sitelib: %global python_sitelib %(%{__python} -c "from
distutils.sysconfig import get_python_lib; print(get_python_lib())")}
%{!?python_sitearch: %global python_sitearch %(%{__python} -c "from
distutils.sysconfig import get_python_lib; print(get_python_lib(1))")}
In addition there's the issue (which rpm dependencies dont currently enforce) with any of byte-compiled files (.pyc and .pyo) included in the package: they should be compiled with the version of python used to run them. IIRC python silently falls back to non-bytecompiled versions on version mismatch if it cannot replace the byte-compiled files, so it works but non-optimally. And if run as root, python will silently rewrite the byte-compiled versions which in turn causes rpm verify to light up like a x-mas tree.
So yes, you should really build separate packages for distros where the python version differs.
- Panu -
_______________________________________________
Rpm-list mailing list
Rpm-list@xxxxxxxxxxxxx
http://lists.rpm.org/mailman/listinfo/rpm-list
Thank you for your answer.
_______________________________________________ Rpm-list mailing list Rpm-list@xxxxxxxxxxxxx http://lists.rpm.org/mailman/listinfo/rpm-list