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.
