Some Python Packaging Questions

Ville Skyttä ville.skytta at iki.fi
Mon Aug 23 13:56:05 UTC 2004


On Mon, 2004-08-23 at 11:34, Jeff Pitman wrote:

> Can you elaborate on the python-forward-compat package a 
> little bit more?  And why would it be useful for < FC2 where python 2.2 
> never used python-abi = 2.2, etc.?

python-forward-compat provides python-abi = 2.2.  It is _only_ useful
for < FC2 where the python package does not provide any python-abi, and
it "binds" itself to the installed python version, IIRC currently by
requiring /usr/bin/python2.2.  The usefulness is that one can use the
same specfiles/SRPMS of python module packages regarding this bit for
many distro versions.  AFAIK, depending on python-abi seems to be the
"official" way of requiring a certain version of Python, or a compatible
one (my guess: in the sense that a "compatible" one would have eg. the
site-packages dir of the version it is compatible with in its default
load path).

> So, out of my ignorance, %{_libdir} = /usr/lib64 on 64-bit platforms

Yes.

> AND we have to worry about .so(64bit) for lib suffixes. I guess I should 
> get a 64-bit system to check this out, but from a surface-level it 
> seems to be an awful hack.  I guess the suffixes are needed for pkgs 
> that require /usr/lib/ or something...

I'm not sure I understand the above.  But see below.

> Anyway, the reason I think it's the same is because i386 == noarch under 
> this scheme.

i386 == noarch?  You mean that both i386 and noarch python packages
usually install into /usr/lib/python%{pyver}/... ?  The point is that if
one builds the same noarch package on i386 or x86_64 or whatever using
the default configurations of the same distro version, the results
should be the same, including the install locations (otherwise it's not
a noarch package).  This does not hold true for arch-dependent packages,
and this is nothing specific to Python extension packages.

> > As of now, one could fairly safely use /usr/lib*/python%{pyver}/...
> > everywhere, but I guess one beautiful day arch-independent Python
> > extensions will be installed in /usr/share/python%{pyver}/...  And as
> > noted above, one can redefine %__python to build for a custom Python
> > installation in which case we can't assume much at all.
> 
> Why would this be even useful?  Segregation of compiled extensions (.so) 
> and pure-python (.py) files?

Whatever the reasons, the decision has already been made.  AFAIK
upstream Python distutils has differentiated between the two already for
a long time, and it certainly does so nowadays.  It seems to be just a
coincidence that the two point to the same location for 32-bit archs in
Python packages distributed by Red Hat (and perhaps it's the default in
upstream Python sources too, haven't checked, but nevertheless these
locations are two different "entities").  There's no such coincidence
with Python stuff from Red Hat for 64-bit archs AFAIK (this info is from
reading the patches RH applies to the Python package for 64-bit archs, I
don't have such a box either).

>   sys.path would have to be modified anyway 
> and certainly the user really doesn't care.

No, the user should not care and nobody has to modify anything to take
this into account, things must Just Work.  The locations where distutils
installs extensions by default need to be in the default load paths of
that Python, otherwise I'd argue it's a bug in the Python package.

>   Zero gains, really, at a 
> high-level view.  But, what do we gain really at a low-level view?  I 
> don't do nefarious /usr NFS mounts and segregate based on architectures 
> in a disparate environment, so I don't know what the advantages are.

I don't have that experience either, so someone else will have to fill
in here.  Evil or not, if one does not do those mounts, I guess there's
not much to gain at all.  But the reality is that the distinction is
there already, and spec templates and "best practices"-like packaging
instructions should take that into account.

> Help me out with why would this be a "beautiful day"?

"beautiful" did not come through as intended, it was a direct
translation from a Finnish saying.  Think "One day you wake up and
notice that ...".





More information about the fedora-devel-list mailing list