I’m excited to start a new chapter of my life tomorrow. I will be starting a new job working at an excellent company with excellent benefits and a comfortable wage.
It also has nothing to do with Linux distributions.
I have asked, and been granted, clearance to work on open source software during my off time. And I do plan on writing libre software. However, I really no longer believe in the dream of the Linux desktop that I set out to create in 2015. And I feel it might be beneficial for everyone if I describe why.
My goal for the Linux desktop started with stability. Adélie is still dedicated to shipping only LTS releases, and I still feel that is useful. However, it has made more difficult because Qt has removed LTS from the open source community, plainly admitting they want us to be their beta testers and that paid commercial users are the only ones who deserve stability. This is obviously an antithesis to having a stable libre desktop environment.
Mozilla keeps pushing release cycles narrower together, in a desperate attempt to compete with evil G (more on this in the next section). This means that the yearly ESR releases, which Adélie depends on for some modicum of stability, are unfortunately being left behind by whiz bang web developers that don’t understand not everyone wants to run Fx Nightly.
I think that stability may be the point that is the easiest to argue it could still be fixed. You might be able to sway me on that. There are some upstreams finally dedicating themselves to better release engineering. And I’ve been happy to find that even most power users don’t care about running the bleeding edge as long as their computer works correctly.
My overall hope for the future: more libre devs understand the value of stable cycles and release engineering.
My fear for the future: everything is running off Git main forever.
It’s been harder and harder for me to convince upstreams to support PowerPC, ARM, and other architectures. This even as Microsoft and Apple introduce flagship laptop models based on ARM, and Raptor continues to sell out of their Talos and Blackbird PPC systems.
A significant portion of issues with portability come from Google code. The Go runtime does not support many non-x86 architectures. And the ones it does, it does poorly. PPC support in Golang is 64-bit only and requires a Power8, which is equivalent to an x86 program requiring a Skylake or newer. You could probably get away with it for an end-user application, but no one would, or should, accept that in a systems programming language.
Additionally, the Chromium codebase is not amenable to porting to other architectures. Even when the Talos user community offered a PowerPC port, they rejected it outright. This is in addition to their close ties to glibc which means musl support requires thick patches with thousands and thousands of lines. They won’t accept patches for Skia or WebP for big endian support. They, in general, do not believe in the quality of portability as something desireable.
This would be fine and good since GCC Go works, and we do have Firefox, Otter (which can still use Qt WebKit), and Epiphany for browsers. However, increasingly, important software like KMail is depending on WebEngine, which is a Chromium embedded engine. This means KDE’s email client will not run on anything other than x86_64 and ARMv8, even though the mail client itself is portable.
This also has ramifications of user security and privacy. The Chromium engine regularly has large, high-risk security holes, which means even if you do have a downstream patch set to run on musl or PowerPC, you need to ensure you forward-port as they release. And their release models are insanely paced. They rewrite large portions of the engine with significant, distressing regularity. This makes it unsuitable for tracking in a desktop that requires stability and security, in addition to portability.
And with more and more Qt and KDE apps (IMO, mistakenly) depending on WebEngine, this means more and more other apps are unsuitable for tracking.
My overall hope for the future: more libre devs care about accepting patches for running on non-x86 architectures. The US breaks up Google and kills Chromium for violating antitrust and RICO laws.
My fear for the future: everything is Chrome in the future.
3. The graphics stack.
I’ve made no secret of the fact that my personal opinion is that it would still, even today, be easier to fix X11 than to make Wayland generally acceptable for widespread use. But, let’s put that aside for now. Let’s also put aside the fact that they don’t want to work on making it work on nvidia GPUs, which represent half of the GPU market.
At the behest of one of my friends, who shall remain nameless, I spent part of my December break trying to bring up Wayland on my PowerBook G4. This computer runs KDE Plasma 5.18 (the current LTS release) under X11 with no issues or frameskip. It has a Radeon 9600XT with hardware OpenGL 2.1 support.
It took days to bring up anything on it because wlroots was being excessively difficult with handling the r300 for some reason. Once that was solved, it turned out it was drawing colours wrong. Days of hacking at it revealed that there are likely some issues in Mesa causing this, and that this is likely why Qt Quick requires the Software backend on BE machines.
When I asked the Wayland community for a few pointers at what to look at, since Mesa is far outside of my typical purview of code (graphics code is still intimidating to me, even at 30), I was met with nothing but scorn and criticism.
In addition, I was still unable to find a Wayland compositor that supports framebuffers and/or software mode, which would have removed the need to fix Mesa yet. Framebuffer support would also allow it to run on computers that run LXQt fine, like my Pentium III and iBook G3, both of which having Rage 128 cards that don’t have hardware GL2. This was also met with scorn and criticism.
Why should I bother improving the Wayland ecosystem to support the hardware I care about if they actively work against me, then blame the fact that cards like the S3 Trio64 and Rage128 don’t have DRM2 drivers?
My overall hope for the future: either Wayland compositors supporting more varied kinds of hardware, or X11 being improved and obviating the need for Wayland.
My fear for the future: you need an RX 480 to use a GUI on Linux.
This is more of an objective point than a subjective one, but the usability of desktop Linux seems to be eternally stuck just below that of other environments. ElementaryOS is closest to fixing this, but there is still much to be desired from my point of view before they’re ready for prime time.
I still plan to run Linux – likely Adélie – on all servers I use. (My fallback would be Gentoo, even after all these years and disagreements, if you were wondering.)
However, I have been slowly migrating my daily personal life from my Adélie laptop to a Mac running Catalina. And, sad as it is to say, I’ve found myself happier and with more time to do what I want to do.
It is my genuine hope that maybe in a few years, if the Linux ecosystem seems to be learning any of these lessons, maybe I can come back to it and contribute in earnest once again. Until then, it’s system/kernel level work and hacking POSIX conformance in to musl for me. The Linux desktop has simply diverged too far from what I need.
9 thoughts on “Really leaving the Linux desktop behind”
I very much enjoyed what you had to say on this subject. I have on occasion looked at jumping into systems programming but I unfortunately lack the technical experience to get traction.
I’m a mostly self-taught system administrator with 1-2 years of programming and most of a compiler class via a mooc under my belt.
I’ve found that a large majority of the loudest people in the linux community have the same unproductive attitude you mentioned but they aren’t necessarily in the majority. There are of course some pivotal figures that unfortunately have ego complexes and try to stimmy their projects so they only go in the direction they want but the code can be forked.
Something you don’t really touch on, but is an idea I’ve been looking at is linux really is being strangled/engulfed by market forces to be as unsuable as possible. Hardware is very difficult to support, and it seems like this is being done intentionally by design (built-in obsolescence).
Also as a side note, I’ve personally noticed a growing number of bots on various platforms which pose as new or untechnical users asking for help. The goal of these bots and their posts seems to be to draw as much time out of the contributors as possible (time is finite) and this seems like a plausible explanation for why people don’t provide much help.
Feel free to reach out anytime if you’d like to discuss this further.
That’s really interesting that you think there are bots trolling for open-source contributors’ help
I got to this article via 4chan’s /g/. Other people have been concerned about bots posting on 4chan
If you could document these bots and where they might be coming from in a longer article I know lots of people would like to read it
Your departure is a definite loss for the Linux desktop community. It’s funny, I came across your blog as I was searching for help implementing gcompat on Void-musl, having just become enamored with it in the desktop sphere, only to find the designer had lost faith in what I had recently just become extremely enthusiastic. I wish you much satisfaction and joy in your new endeavors and not so secretly hope that you will find renewed interest in the older ones.
I really appreciate your comment. I do still have a passion for open source work, especially gcompat. Life has been very busy for me the past few months, but I am looking forward to pursuing some of my hobby projects with renewed vigour in the coming months. Thank you!
While I agree with your complaint on the direction of Qt, a number of claims you make are strange.
Wayland development has been slow, hence X is still around and usable, but there are very good reasons for moving on. Am I completely satisfied? Of course not, but Nvidia’s incompatibility is deliberate, and taking time to work around.
Architecture support? Show me Mac OS that can be installed on a Raspberry Pi, the drivers simply will not be available. Note that while this *can* be done with Windows… the experience is anything but good and many things are missing, let alone software. Apple will definitely do better than Microsoft’s attempt to push UWP. “Mainstream” Linux distributions for ARM have existed for decades and a huge amount of software is available, it helps that portable devices running ARM Linux have also been around for decades.
Golang for G3-G5 era PPC? This likely hasn’t occurred to any of the engineers involved as access to working hardware is dwindling.
Is it possible to install Catalina on a G3, or even G5 PPC Mac? Of course not, the same goes for Installing Windows 10 on a Pentium 3. Accelerated GPU support for an S3 or Rage 128 or any OpenGL 2.x card? also not supported in these operating systems.
I ran Linux on G3,4,5 systems for a long time with few issues but dwindling support for them is to be expected. Support for old hardware is depreciated at an incredibly slow rate in Linux, but it does happen for both the reason the other commenter mentioned (planned obsolescence), and industry standards, which are as much a mix of politics as technological change.
Finally, Your conclusions do not come from your statements, suddenly switching to usability. It is one thing to say you prefer Mac OS, which is fine, (I like OS 9 better myself), but quite another to say various incompatibilities are a problem and then conclude usability is poor due to that. That the example of Elementary is very superficial as in practice it does not introduce usability improvements, rather just looks like MacOS.
These statements of mine are based on fairly extensive use and testing of the environments, hardware and user engagement. I wonder if if you may have been too badly poisoned by the anti x86 rhetoric of the 90s. I wanted Alpha to succeed myself, but don’t worry RISC-V is nearly here.
Sad but true summary of the state of parts of the community. The willful ignorance of non-mainstream or non-current hardware makes me wonder where this will lead to.