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