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(a)redhat.com>
Software Engineer, Hosted & Shared Services
Red Hat, Inc.