Red Hat Runs Deep 2020-04-11 00:37 by zlg I've been plugging away at steadily de-RedHatting my desktop system, and in doing so I've come across a few oddities: Steam, for example, 'needs PulseAudio' to deal with a microphone (even though I lack one to use...), and while apulse emulates the function calls, it does *not* emulate the dbus calls. So even using apulse to 'fake' PA support to get Steam to load, you still need dbus because it expects that IPC system to be present or it'll error before it even launches. D-Bus is the pivotal piece of software that makes it easy to leverage software that depends on it to get people to use their software over others'. Rather than standard IPC mechanisms, FreeDesktop, Red Hat, and friends all put forward dbus, then make their software depend on dbus so it gets onto the average person's system. Sure enough, you'll find dbus running on just about every current Linux-powered system, even ones like Gentoo and Slackware. CUPS depends on it, PulseAudio depends on it, GTK relies on it for accessibility purposes, BlueZ depends on it, etc. Many programs then in turn depend on these higher pieces, spreading their presence and influence over the ecosystem. Why does my system need a daemon running for processes to talk to each other when my OS already provides mechanisms for IPC? Sockets, pipes, FIFOs... In these short adventures of discovering how deep the tendrils of Red Hat-influenced dependencies go, I'm coming to a conclusion that a dbus-less Linux-powered system is impossible with current software. dbus is *the* piece of software to nix from your system if you want FD.o or Red Hat out of your userland. It's getting there and figuring out what's actually available to you that's the hard part. There's been a lot of coalescence around "One True Stack" to the point that it will be very painful to convert to whatever succeeds systemd, dbus, pulseaudio, etc. This means that much software will either need a complete rewrite to accomodate dbus-less systems, or substantial effort to add support and kiss upstream's ass to get optional behavior included. To make things worse, the FHS and LSB 'standards' are controlled by corporations and other typical Linux players. So they can get their software included in what the base system's definition is and suddenly everyone has their software via standards compliance. Since I have limited time and even more limited motivation, I'm calling my journey a failure for now. It's not necessarily bad. It's just realizing that I'm one person in an ocean of people who are happy with the status quo of the ecosystem and are happy to follow a corporation's example on how to do free software and happy to believe that money has nothing to do with what gets committed and what doesn't. I am decidedly *not* charismatic, so any effort I spend in this space is pointless because other people will not care or appreciate it. It kinda sucks because I thought I had what it takes to contribute to software and work with people, but it relies far too much on social skills and unwritten rules and process and bureaucracy, registering for mailing lists, bugtrackers, fora... you get the idea. People make for a very inconsistent user interface and the last thing I want to do after work is deal with more people. I just can't see the good in participating. What's in it for me? That's what I'm stuck on. Seriously, what do I get from it? It's easy to see what everyone *else* will get from my participation -- better software, docs, graphics; whatever I contributed -- but not so easy to list what's given in return. You know, something to make this transaction less one-sided? Other people have a bunch of reasons for why they contribute to free software, and they seem to get something out of it. I feel like I learned a few things about technical systems, but also learned about the dark side of meritocracy: you're only valued for your code. Someone else could write code as good as you and you wouldn't be missed. So if you're a novice or somewhere between novice and competent, you and your contributions are basically noise to them. Many projects do demand a certain skill level, but are poor at communicating what contributors *ought* to know before contributing, leading to hard, incorrect work done by novices being turned away by more experienced but resource-challenged projects. Nobody walks away from such a situation feeling positive; it's a bunch of wasted work all around. I've contributed to a group that didn't espouse meritocracy, and met much of the same social behavior, intellectual posturing, and argument that I've seen in other communities. They too are also happy to take your contributions and reject you socially. Maybe it's just me, or maybe people tend to create these problems when you get enough of them together, regardless of their views on what constitutes merit or whether it's important to begin with. What does participation in free software do for you? --- If you know of any non-Linux systems that you think I'd like, or distros that've managed to cut Red Hat out of their userland, shoot me an e-mail or something. So far I'm aware of Haiku, BSD, Plan9, and the toy OSes like TempleOS or Menuet. I would love suggestions on which BSD and why. I've read a ton of comparison pages and articles, but real testimony from people who embrace textlife from the BSD angle would be valuable to me. If I can get tmux, vim, ssh{,fs}, mpd, gnupg (or workalike), python, lua, and mutt, I'm pretty much set. Bonus points if I can do full disk encryption easily. -z