On 11 March 2016 at 14:50, Michael Orlitzky <[email protected]> wrote:

> Start over with "let's figure out how to do cross-platform source-based
> package management." Why isn't it a fair comparison? Gentoo prefix, Nix,
> and Conda all do the same thing.
>

I have been a Gentoo user for more than 12 years now, and I wholeheartedly
agree that - at least on paper - Gentoo prefix seems like a very good fit
for what the Sage distribution aims to be. Gentoo devs have been dealing
for a long time with all sorts of issues related to compilation from
source, including dependency management, library versioning, ABI breakages,
major version updates (Python 2 vs 3, Perl, etc.), and so on. IMO, they
have done a fantastic job at it.

As a piece of anecdotal evidence, my main workstation at home was built in
2009, and the Gentoo system on it has been updated in a continuous
(rolling) fashion ever since. Among others, it has survived:

- various GCC upgrades (from 4.5 -> 5.3, including various libstdc++ ABI
changes),
- various breaking Python/Perl/Ruby/etc. updates, including my current
setup in which Python 2 and 3 are installed at the same time (all python
packages are installed automatically in their Python 2 and 3 versions),
- continuous kernel upgrades,
- various major switches of low-level system components, including ALSA ->
pulseaudio, systemV -> openrc-> systemd, and more,
- simultaneous multilib installation of 32-bit and 64-bit packages (in my
current setup, most packages are compiled both in 32-bit and 64-bit mode,
in order to provide dependencies for binary-only 32-bit packages such as
Skype).

A fantastic feature is that whenever an ABI-breaking changes happens in a
library, the package manager keeps around the previous version's .so files
until all packages depending on it have been updated (then the old files
get automatically removed). Reverse dependency checking provides a way to
eliminate cruft once the dependencies of a software change. And so on and
on. To me, the portage package system is an amazing piece of engineering.
Even if the Sage project decides not to use it, I think it would be really
beneficial to study how things are done in portage. All other package
manager I have used after portage (pip, yum, hashstack, even apt-get) have
frankly felt like a child's toy in comparison.

With that said, my experiences with the prefix version of gentoo on OSX
have been a bit of a mixed bag. It felt to me like it was very close to be
generally viable, but a lot of manual tweaking was still needed. I have no
experiences with it on Windows platforms, but I think it does have some
support for cygwin.

Cheers,

  Francesco.

-- 
You received this message because you are subscribed to the Google Groups 
"sage-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/sage-devel.
For more options, visit https://groups.google.com/d/optout.

Reply via email to