On 6 November 2016 at 00:45, Jeremy Stanley
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 improve.
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 unusable. (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. Cheers, Nick. -- Nick Coghlan | ncoghlan@gmail.com | Brisbane, Australia