[EPEL-devel] Python 3 discussion

Dan Callaghan dcallagh at redhat.com
Tue Mar 3 00:43:01 UTC 2015


Excerpts from Bohuslav Kabrda's message of 2015-03-02 22:17 +10:00:
> ----- Original Message -----
> > Excerpts from Bohuslav Kabrda's message of 2015-03-02 21:59 +10:00:
> > > ----- Original Message -----
> > > > Under the current proposal every package with Python 3 dependencies
> > > > would have to depend on a specific python3x-* package, so then it would
> > > > be up to the maintainers of all those packages to manually bump their
> > > > Requires from python34-* to python35-* at some point. Which, now that
> > > > I think about it, is not that great. Even worse, if any packages form
> > > > a transitive dependency chain then *all* packages in the chain have to
> > > > update their Requires at the same time to avoid having a mix of
> > > > python34-* and python35-* requirements.
> > > 
> > > Not really. The requires/buildrequires should be in form of
> > > Requires: python%{python3_pkgversion}-six
> > > so when we change %python3_pkgversion in the minimal buildroot,
> > > maintainer just rebuilds and gets updated requires.
> > 
> > Hmm okay. I didn't realise this.
> > 
> > So that means that:
> > * Fedora specfiles can't be used unchanged (they will require python3-*,
> >   needs to have %{python3_pkgversion} macro inserted)
> 
> True, but note that we'll make %python3_pkgversion macro available 
> also in Fedora (always defined to "3"), so once this change is done, 
> it'll be possible to have the same specfile both in Fedora and EPEL.

Okay that's good.

> > * applications will need to be rebuilt to pick up a change from
> >   python34-* to python35-*
> > which is a bit unfortunate.
> > 
> > Is there any reason why we shouldn't just upgrade applications to the
> > python35-* stack straight away, by providing python3-*?
> 
> Yeah. First of all, it may happen that there are some minor backwards 
> incompatibilities. Lots of packages run tests during buildtime, so 
> these will be caught.
> Another reason is that there are applications, which store files in 
> /usr/lib/python3.X/site-packages - these need to be rebuilt anyway, 
> since they have the Python minor version incorporated in path of 
> files.
> I really think that we should rebuild applications with new Python 
> 3.X.

Well, they should really be using pkg_resources instead of hardcoding 
the path... but yes I take your point. Rebuilding for the newer Python 
stack makes sense.

We will need to make sure that setuptools-generated entry points have 
a shebang of /usr/bin/python3.4 rather than just /usr/bin/python3 
though, so that the scripts are always invoked with the same Python 
stack they are built for. Currently on Fedora they have 
/usr/bin/python3. This might need a patch to 
setuptools/distutils/whatever it is?

-- 
Dan Callaghan <dcallagh at redhat.com>
Software Engineer, Hosted & Shared Services
Red Hat, Inc.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 473 bytes
Desc: not available
URL: <http://lists.fedoraproject.org/pipermail/epel-devel/attachments/20150303/4495e0d2/attachment.sig>


More information about the epel-devel mailing list