[Distutils] Current Python packaging status (from my point of view)

Nick Coghlan ncoghlan at gmail.com
Sat Nov 5 12:19:22 EDT 2016

On 6 November 2016 at 00:45, Jeremy Stanley <fungi at yuggoth.org> wrote:
> On 2016-11-05 17:43:48 +1000 (+1000), Nick Coghlan wrote:
> [...]
>> Putting my work hat back on for a moment, I actually wish more people
>> *would* start saying that, as Red Hat actively want people to stop
>> running their own applications in the system Python, and start using
>> Software Collections (either directly or via the Docker images)
>> instead. Sharing a language runtime environment between operating
>> system components and end user applications creates all sorts of
>> maintainability problems (not least of which is the inability to
>> upgrade to new feature releases for fear of breaking end user
>> applications and vice-versa), to the point where Fedora is planning to
>> cede the "/usr/bin/python3" namespace to end users, and start
>> migrating system components out to "/usr/bin/system-python":
>> https://fedoraproject.org/wiki/Changes/System_Python
> [...]
> It's a grey area, complicated by the fact that many people are
> writing their software with the intent of also packaging it for/in
> common distros and so want to make sure it works with the "system
> Python" present within them.

There's a lot more folks starting to challenge the idea of the
monolithic all-inclusive distro as a sensible software management
technique, though. The most popular client distro (Android) maintains
a strict separation between the vendor provided platform and the
sandboxed applications running on top of it, and that turns out to
provide a lot of desirable characteristics so long as your build and
publication infrastructure can cope with respinning the world for
security updates. Go back 10 years and "rebuild the world on demand"
simply wasn't feasible, but it's becoming a lot more viable now,
especially as the mainstream Linux sandboxing capabilities continue to

> There it looks like Fedora is splitting
> their Python-using packages along some arbitrary line of "is it a
> system component?" vs. "is it a user-facing application?" which is
> probably tractable given the (relatively) limited number of packages
> in their distribution.

There's still more than five thousand Python using packages in the
Fedora repos, and most of them are likely to remain classified as
non-system optional addons. However, actual core system components
like dnf, the Anaconda installer, firewalld, SELinux policy
management, etc are likely to migrate - the idea being that "sudo dnf
uninstall python3" shouldn't render your system fundamentally

(Part of the motivation here is also simply size - Fedora hasn't
historically had the python/python-minimal split that Debian has,
which is becoming more of a problem as folks try to minimise base
image sizes)

> I can't fathom how to go about trying to
> introduce a similar restructuring in, say, Debian.

The problem isn't so much with the components that are in the distro,
as it is the end user applications and scripts that aren't published
online anywhere at all, let alone as distro packages.


Nick Coghlan   |   ncoghlan at gmail.com   |   Brisbane, Australia

More information about the Distutils-SIG mailing list