I’m liking the new Gentoo. I almost went with Slackware, Puppy, or Devuan. Why Gentoo? It’s something of an experiment. Perhaps, a permanent experiment. Here’s a quote from a Gentoo forum which struck some resonance with me. It’s not a particulartly important quote, it didn’t influence my decision, but it left me with a good feeling. By eyoung100 in November 2014.
Why We Should Feel Privileged as Gentoo Users
As users of a source-based distribution, we have the unique opportunity to shape the future behavior of a package because we compile it before we use it. As such, to prepare for that opportunity, I feel that the following commands should be run, when updating to the new compiler:
emerge -ev system
gcc-config *new compiler name*
emerge -1v libtool
emerge -ev system
The first pass through system builds the new compiler, and it’s dependencies, with the old compiler. The second pass through system rebuilds the new compiler and it’s dependencies with the new compiler. Specifically, we want to do this so that our Build Chain takes advantage of the new features of the new compiler, if the Build Chain packages have been updated also… Some people replace the 2nd pass through system with the world set, although I find this to be overkill, as we don’t know which packages already support the new standard, but we do want our build chain to behave sanely.
Doing this to at least the system set, prepares us to test every package that we compile against the new standard, because we use a rolling release. In this way, adding -std=c++11 to CXXFLAGS after updating the build chain allows us to test for breakage, and be able to submit bugs directly to either our bugzilla or upstream to the actual developers for the simple reason of:
Hey, your package blah blah breaks using the new C++ standard, and I’ve attached my build log.
I consider this a courtesy to the developers, as they now have time to prepare as the standard becomes more widely adopted, and the old standard is phased out. Imagine the commotion on the developer’s part if he received hundreds of bugs, because he or she waited until the standard was phased out…
No other distribution that I know of can use this method as the actual package maintainers exist as middlemen before a patch or update can be used by the respective user community. We do have maintainers, but we also have the ability to use a local portage tree.
The thing that annoys me the most about Richard Stallman is that in the end, he is always right.
While upgrading my Gentoo box to GCC 5.4.0, I recompiled my entire system on 4.9.3 then again on 5.4.0. I didn’t get any errors, it took a couple hours all together. The results? Linux Mint 18 gave me a UnixBench in the low 8700s. Gentoo? In the high 8700s. So performance is much less of a concern with distributions than I had thought.
I have no major usability concerns with Gentoo. It took a day to learn the package management system (read: 24 hours) but it was worth it. I like portage. Gentoo has many unique and interesting ideas as well.
Yet there never are really any conclusions. I’d still like to try Slackware and see how it’s evolved over all these years. Maybe try some of the interesting new GNU-sponsored distributions.
On second thought maybe there is a conclusion to Linux userland, and that is a scary thought. I am very upset at the current state of Linux development which is forcing me to go shopping for an init system. Don’t you people have anything better to work on? Honestly, dependencies are a known, solved problem space. We have initramfs and other suspend/resume from disk features. Booting should be like compiling. These are known, solved problems and the fact that it’s not standard on a system like UNIX/Linux already only shows you that there is still plenty left to do as a free software contributor.
Guys, come on. We were supposed to be smarter than this. We were told. Instead we fell into the trap of shiny icons and now it is already too late for some distributions to get out.