emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Version naming


From: Barry Warsaw
Subject: Re: Version naming
Date: Thu, 16 Oct 2014 17:31:54 -0400

On Oct 16, 2014, at 04:01 PM, Stefan Monnier wrote:

>But you only get to do that by lying to dpkg and pretending that python2
>and python3 are just different packages rather than different versions
>of the package.  So you need to know beforehand which sets of packages
>people may want to keep together.

I'm not sure what you mean here, or whether Python's case is relevant to
Emacs, so I'll just mention the following and then re-lurk. :)

Each major Python version that Debian supports is a separate binary package,
e.g. python2.6, python2.7, python3.3, python3.4, etc. and that makes sense,
since each is an entirely different upstream release.  I don't see that as
"lying to dpkg"; for Python, it's true.

However, they are all co-installable, so you can have any combination of
whatever still-supported versions are in the archive.  The previous comment
about only caring about Python 2.7 is because all older versions are retired
upstream, and thus removed from Debian Jessie.

(Anything Python 3 older than 3.4 is currently in the same boat, but when
Python 3.5 is available, it's likely that both 3.4 and 3.5 will be supported
at the same time for a while.  No infrastructure changes will be needed to
enable that.)

Of course, "python" (i.e /usr/bin/python) and "python3" (/usr/bin/python3)
give you just one of those, whichever is the default version for Debian.
However, you can always also just run "python3.4" or "python3.5" or whatever.
I guess that's the analogy to "emacs" currently giving me 24.3.1 but being
able to run emacs23 if I wanted to... which I can. :)

The real trick to co-installability is that third party modules need to be
installable for all supported Pythons, and actually installed for all
installed Pythons.  Meaning, if package foo is available for 3.4, and then you
install Python 3.5, foo will magically also be available for 3.5 too.  Where
upstream got involved was redesigning the import system to support
co-installability of modules for multiple versions of Python (PEPs 3147 and
3149 for the interested Pythonista).  When Pythons earlier than 2.7 were still
around, Debian had to go jump through hoops (spelled "symlink farm") to make
that work, and it was a fragile hack.  Yet another reason to love Python 3. :)

It's also true that Debian has two different Python "stacks", one for Python 2
and another for Python 3.  That means if foo supports both, then you will have
a python-foo and a python3-foo binary package, but you will generally not have
a python3.4-foo and a python3.5-foo.  And in fact both binary packages are
usually created from the same upstream and Debian source package.  This makes
sense for Python because we do hope to some day remove Python 2, and in Ubuntu
demote Python 2 to universe.  There's also no need to install the Python 2
stack if you're just using Python 3.

Anyway, I'm off-topic for Emacs, so I'll stop here, except to add that Emacs
24.3 works really great for me on Debuntu.  Kudos to the maintainers.

/me waves to Rob.

Cheers,
-Barry

Attachment: signature.asc
Description: PGP signature


reply via email to

[Prev in Thread] Current Thread [Next in Thread]