[arch-dev-public] [RFC] Python 3.3.0 and PEP 394

Sébastien Luttringer seblu at seblu.net
Thu Sep 13 14:18:10 EDT 2012

On Thu, Sep 13, 2012 at 7:03 PM, Stéphane Gaudreault
<stephane at archlinux.org> wrote:
> Le 2012-09-13 08:04, Allan McRae a écrit :
>> On 13/09/12 21:53, Stéphane Gaudreault wrote:
>>> Le 2012-09-13 00:18, Allan McRae a écrit :
>>>> On 13/09/12 10:00, Stéphane Gaudreault wrote:
>>>>> Python 3.3.0 should be released around September 22. I would like to
>>>>> take this opportunity to implement some of the recommendations of the
>>>>> PEP 394 [1]. This PEP was mostly done in reaction to what Arch did to
>>>>> the /usr/bin/python symlink (in summary, most python devs are against
>>>>> the move to python3 as a default at this time).
>>>>> In short:
>>>>> python2 should refer to some version of Python 2.x
>>>>> python3 should refer to some version of Python 3.x
>>>>> python should refer to the same target as python2 but may refer to
>>>>> python3 on some bleeding edge distributions
>>>>> This means that we should never have a reference to '#!/usr/bin/python'
>>>>> in any of our packages. All those reference should be changed to
>>>>> /usr/bin/python2 to refer to Python 2.x and /usr/bin/python3 for Python
>>>>> 3.x. The idea here is that a system without any python symlink should
>>>>> work without problem. Maybe namcap could be used to detect wrong
>>>>> shebang ?
>>>> This is necessary as far as I am concerned.
>>>>> Another possibility, suggested by Allan, would be to go even further
>>>>> and
>>>>> use /usr/bin/python3.3 and /usr/bin/python2.7 for all shebangs. Then
>>>>> /usr/bin/python can point to any version and /usr/bin/python2 and
>>>>> /usr/bin/python3 can point to any pyhton2.x and python3.x respectively.
>>>>> These numbers in the shebangs will be changed when python bump is
>>>>> version number as we need to rebuild almost everything anyway.
>>>> I'm leaning towards that being to much effort.  Just using
>>>> python2/python3 should be enough.
>>>> One thing not mentioned in this email is that we really need to sort out
>>>> the package naming in the repos.  Two options:
>>>> python-foo
>>>> python2-foo
>>>> or
>>>> python3-foo
>>>> python2-foo
>>>> I personally would go for the first option, under the assumption that
>>>> python4 will not exist for many years.
>>>> Allan
>>> I did not mentioned the packages name because I am fine with the statu
>>> quo on this.
>> What is the status quo?   Something called python-foo can be either
>> python2 or python3 at the moment.
> I mean that I don't really care if we use
> python-foo
> python2-foo
> or
> python3-foo
> python2-foo
> even if I have a preference for the latter (also used in many other distro).

We also have python libraries not prefixed by python- (e.g: pyalpm,
pycups, pygtk, etc), I think we should also update with
pkgname=(python-gtk python2-gtk)

> However, it would be nice if we could have consistent maning across all the
> packages at the end of the python 3.3.0 rebuild.

I prefer the first, we have the same case with lua and we should let
program name be the last upstream "stable" version.
Python is python 3, python 2 is dying (hardly) and I hope move from
python 3 to python 4 will be smooth.


Sébastien "Seblu" Luttringer

More information about the arch-dev-public mailing list