Re: Single generic package for python 2.x

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 01/12/2012 12:41 PM, Raphaël De GIUSTI wrote:
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))")}

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.

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



[Index of Archives]     [RPM Ecosystem]     [Linux Kernel]     [Red Hat Install]     [PAM]     [Red Hat Watch]     [Red Hat Development]     [Red Hat]     [Gimp]     [Yosemite News]     [IETF Discussion]

  Powered by Linux