Abandoning Ship

Posted on . Updated on .

Slackware has been my Linux distribution of choice for about 12 years. I started using it when Slackware 9.0 was released, but I think I’ll probably switch to a different distribution in the next few days.

I don’t think any other Slackware user cares much about which distribution I use because I’m a John Doe, but please note anyway that I don’t intend to cause any controversy with this post. What I express here is simply my opinion, and in matters of taste and predictions for the future, anybody is entitled to have their own view and only time will tell if those predictions are accurate or not.

Recent background

2014 was a very interesting year for Linux, in my opinion. The topic that dominated the headlines was Debian’s debate over systemd adoption, which was very well covered by LWN in several articles. Debian is a very open organization and all the discussions happen mostly on public mailing lists. Thus, long and flaming discussions turn up in news sites from time to time. The long debate also took some tolls and several people resigned from the Technical Committee. Among them, Russ Allbery. I don’t know Allbery much, but I’ve read several emails from him in the Debian mailing lists and I agree with others he’s very technically minded, focused and rational. He’s well respected in the Debian community. He analyzed systemd without prior knowledge and concluded it was the best option for Debian.

Following Debian’s adoption of systemd, Ubuntu took a rational decision too and will also adopt it. It’s obvious: systemd learned from upstart, fixed what some perceived could be its flaws and provides similar functionality. Adopting systemd saves a lot of work for Ubuntu as the maintenance work will be done by Debian upstream.

Meanwhile, these discussions were also observed from the Slackware camp. A thread about “The mass exodus if Slackware uses Systemd” was created back in October, among other threads about systemd, and is still active as of today.

For reference, there are two pieces of core Linux technology Slackware has avoided shipping for now: PAM, which is quite old now, and systemd, much newer. Most Slackware users are against adopting systemd, and while Slackware is maintained by Patrick Volkerding and he has the final (or only) word on any decision, there is a group of people that volunteer to help him. Among them, Eric Hameleers, who does a great amount of work on several areas. We partly owed having a 64-bit version of Slackware to him, even if he was inspired and learned a lot from the work of Fred Emmott, who had created Slamd64. Eric posts as “Alien Bob” on the Slackware forums and is a respected member of the Slackware community. He recently stated the following:

Personally, I will fight to keep systemd out of the core distro for as long as it is possible without seriously harming Slackware’s functionality

Many people in the Slackware camp feel that way. The opinion is not simply technical. It has moral and philosophical hints about the way systemd is pushed on some projects and how the Linux world is shaping up for the future.

Apart from that, recently there was a poll about Slackware’s inclusion of PAM, and it seems the userbase, from those who voted, is still split about this other technology too, and not everybody thinks it should be added.

It’s partly true that none of that matters. Ultimately, what gets included in Slackware is what Patrick Volkerding decides and, while many of us have a Slackware subscription that makes us “customers” as we pay for each Slackware release, the relationship between the entities is not a traditional one. A Slackware subscription is not a vote to decide on the future of Slackware, it’s more like a donation and a way to express that we like what Volkerding is doing and would like him to continue doing it. It’s very well known Volkerding doesn’t make a lot of money with Slackware, though. In the end, he’s in the hands of Slackware users. If what he does displeases the community people may stop using and paying for Slackware, forcing him to stop working on the project, but it’s also true the Slackware community, by far, trusts almost with devotion what Volkerding decides.

Note Volkerding has been doing his job for more than 20 years now. Slackware is the oldest distribution still being maintained, and Debian is the second oldest, both having started their trajectories in 1993.

My point of view

Many Slackware users like the distribution because it provides a very simple and stable building block to create their perfect environment. That simplicity manifests in ways like the basic package managing tools being shell scripts with no dependency checking and oblivious to the concept of “repository”, or the way software is distributed, without separate packages for runtime libraries and development files like when building the library from vanilla sources (a feature also present in other distributions, like Arch). In fact, most packages in Slackware ship without additional patches, so they are in fact built simply from vanilla sources. It could hardly get more simple and standard.

This feature is also usually praised by Slackware users. “When you learn Slackware, you learn Linux” is a well known motto.

By praising those qualities, some people seem reluctant to change anything in Slackware in what I perceive is fear that they’ll lose them. For example, reading the PAM thread was painfully hard for me. When I picture a Slackware with PAM, I don’t think it would be less stable or less vanilla. True, the authentication mechanism is more complex than the simple shadow system, but Debian stable is also known for being rock-solid for servers and they’ve been shipping PAM for years. Slackware with PAM would be no less vanilla, no less stable, a bit more complex I admit, but much more flexible for some scenarios.

I believe refusing to adopt some of the newer technologies will harm Slackware in the long run. As many people say today, using a modern desktop environment without systemd or PAM means that you’re simply using a less-tested and less-supported configuration. System stability could suffer for this reason. Also, what you learn by using Slackware becomes particular to Slackware instead of general, at least for part of the system. The convenience of using Slackware as a building block for your system could in part disappear if the software you want to add on top of it requires pieces that are missing.

Thinking five or ten years ahead, I don’t see any major distribution not shipping PAM or systemd, and I want to be part of that future and continue to use Linux. For the hardware support, for being based on Unix and surpassing it, and for being free software.

Should BSD have stopped shipping jails because they were beyond chroot in Unix? Should OpenBSD have stopped adding well-designed cryptography APIs and safer standard API variants like strlcat? Should Linux or BSD have refrained from adding APIs to improve performance for asynchronous events like epoll or kqueues? Should Linux stop shipping cgroups and namespace separation enabling containers as an alternative to virtualization?

For me, the answer to any of those questions is no. Even if I don’t particularly like the politics surrounding systemd, it’s a step forward for modern systems in boot time, process management and security features. And it also unifies the Linux landscape a bit, an aspect often criticized from the BSD camp. Every analysis on systemd I’ve read from people in positions of responsibility and focused on technical aspects has been positive. They agree it’s a net gain, and that’s why nowadays it sees contributions from many different people. Ubuntu, Debian, Arch, Suse, Fedora, etc.

Conclusion

In the past year the thought of a distribution change has crossed my mind several times. Considering I use Slackware-current, the rolling release and more bleeding-edge (while very stable in general) variant of Slackware, my first option had always been Debian Testing, and I followed Debian’s debate on systemd paying a lot of attention. But Debian has only recently committed itself to systemd.

This past week I had a second idea: Fedora. It’s not a rolling release but it ships very up-to-date software very frequently. It’s not going to disappear, being the testing ground of Red Hat, so I consider it to be as future-proof as Debian. I agree apt-get is more powerful than yum, but coming from the Slackware side of things I don’t think I’d find shortcomings in it. And it’s been shipping systemd and other modern technologies for years. If Torvalds is using it, it can’t be that bad, right?

I downloaded the network installation image and installed the “minimal” system in a virtual machine. From that, it’s very easy to build a simple desktop based on i3 like the one I have in Slackware, and my first impressions have been very positive.

If I decide to jump ship from Slackware, I’d leave some investments behind, like my SlackBuilds repository and slackroll, my own package manager for Slackware. I know it has a handful of users, and it’s one of my favorite projects. It has commits dating back to 2009. But at this point in time and with great sadness while looking back at some recent history, I already have one foot in Fedora’s boat. At the same time, and for the first time in years, I’m eager to learn new things and master a new distribution, and even excited to be a bit lost in the system and having to read manuals and Google some answers for the first time in years.

In any case, I think I may be putting too much drama into it. After all, it’s only a distribution. It’s probably because, like I said, it’s been my system for 12 years and that has created deep bonds in my brain. But I can always come back to it if it evolves in a direction I like. You never know. Where will Slackware be in five years? I’ll be sure to keep an eye on it, even if I’m about to be a rat abandoning ship.

comments powered by Disqus