Proposal: Python 3 in Fedora 13
David Malcolm
dmalcolm at redhat.com
Thu Oct 1 23:26:21 UTC 2009
On Thu, 2009-10-01 at 19:12 -0400, Ben Boeckel wrote:
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA256
>
> David Malcolm wrote:
> > "Naming convention" proposal:
> > How does this sound:
> > - an rpm with a "python-" prefix means a python 2 rpm, of
> the
> > "default" python 2 minor version (for Fedora this will be the
> most
> > recent stable upstream minor release, for EPEL it will be the
> minor
> > release of 2 that came with the distro, so 2.4 for EPEL5)
> >
> > - an rpm with a "python3-" prefix means a python 3 rpm, of
> the
> > "default" python 3 minor version (for Fedora this will be the
> most
> > recent stable upstream release)
> >
> > (we could extend this to have specific minor-releases (e.g.
> use
> > "python24-" for a python 2.4 stack, in case some brave soul
> wants to get
> > zope/plone running. But may be better to try to fix the
> zope/2.6
> > incompatibility at that point (caveat: haven't looked at the
> details of
> > the issue). I don't intend to work on such versions))
> >
> > What about packages without a "python-" prefix? Proposal: If
> upstream
> > has a naming convention for python2 vs python3, use it.
> Otherwise, add
> > a "python3-" prefix to make things clear. I'm not sure about
> the
> > details here. Examples?
> >
> > There have been various discussions upstream about what to
> call the
> > python 3 binary. My favorite quote on the subject is from
> Guido,
> > http://mail.python.org/pipermail/python-3000/2008-
> March/012421.html :
> >> During the next 3 years or so, installing Py3k as the default
> "python"
> >> will be a deed of utter irresponsibility and is likely to
> break your
> >> system in subtle ways (both OSX and Linux these days use
> Python for
> >> certain system tasks). If you *really* want to shoot yourself
> in the
> >> foot this way, go ahead and explicitly use "make altinstall
> >> bininstall" or link it yourself.
> >
> > I propose that for Fedora we have "/usr/bin/python3" for the
> > system/default version of python 3 and "/usr/bin/python" for
> the
> > system/default version of python 2. Both would be symlinks to
> a binary
> > with the minor-release embedded in the name
> ("/usr/bin/python3.1" and
> > "/usr/bin/python/2.6").
> >
> > As I understand things, this should make us broadly in
> agreement with
> > upstream; see e.g.:
> > http://mail.python.org/pipermail/python-dev/2009-
> April/088862.html
> > http://mail.python.org/pipermail/python-dev/2009-
> April/088884.html
>
> Could we do something similar to what qt and kdelibs packages
> have done? While qt3 was default, the 'qt' package points to qt3
> and qt4 is an entirely separate package. When qt4 became
> default, qt3 was the one with the explicit version on it (and
> qt4 still exists, but the default 'qt' is qt4 now). This would
> mean that python2 packages grow 'Provides: python2-foo =
> %{version}-%{release}'. When python3 is the default, then have
> python point to python3 (and we can drop the Provides/Obsoletes
> for python3- prefixed packages later if wanted).
>
> My thought process is that I would not like, after python3 is
> the default, to still have to put the explicit 3 on there
> because python is still python2. Just thinking ahead here.
Thanks! If I'm correctly reading your mail, this approach is one I did
think of, but I'm not fond of it.
I think that anyone dealing with Python is going to have to be thinking
"is this python 2 or python 3" for some years to come, so having an
explicit "python3-" prefix is probably not too painful.
What I think would be painful in your suggestion is the flag day where
we'd change the meaning of "python-" in RPM names. Currently in Fedora
and EPEL, "python-" implies the system-supplied minor release of python
2, be it in Fedora (2.6), or in EPEL (2.4). I worry that changing it to
imply the system-supplied minor release of Python 3 (3.1, or 3.2/3.3? by
that point) would be thoroughly confusing, since we'd have to update
everything all at once. It wouldn't fly within EPEL, since the
pre-existing Enterprise downstreams of Fedora aren't going to change
(far too disruptive).
One middle ground might be to start using "python2-" explicitly for
_new_ packages. That wouldn't break anything, but could easily be
confusing as well. I think I prefer keeping things consistent.
Perhaps at some point we could cut over "/usr/bin/python" from being
Python 2 to Python 3, but I refer you again to this quote from Guido:
http://mail.python.org/pipermail/python-3000/2008-March/012421.html
(The other fun thing to do might be to package Unladen Swallow. Not at
all sure what to call _that_ though!)
Dave
More information about the fedora-devel-list
mailing list