everything wrong with free software
"free as in speech"
*originally posted:* nov 2022
rms cant save free software from itself-- and no one else really wants to. this isnt to say that stallman doesnt have followers, he absolutely has people who admire, respect and want to be like him. i wish they were more like him.
its his followers that (think they) care about free software, and if they really were more like him i believe they could fix these things. if i sound dismissive at all, when i think of stallman followers i think of trisquel developers. im a former trisquel user-- i have nothing nice to say about it other than what it used to be.
so its a good thing that he has supporters-- they can help protect his legacy-- but it would be better if they were more like him, then they could continue his legacy. i really think the latter is a long shot. the line i draw between actual stallman supporters and ideal stallman supporters is the line i draw between parrots and clones-- a parrot repeats, but a clone would be like stallman while still thinking (as stallman himself does) for themselves.
stallman is totally different from his parrots, because he doesnt only repeat things hes said, hes also the author of those things. and of course there are plenty more authors that matter when it comes to software-- when it comes to advocacy, its difficult for me to imagine anyone stepping up.
part of the reason im sceptical is ive been waiting for 7 years for someone to step up, but no one has. there were people i once counted on to do this, none of whom have done so. a couple years ago, i even found some new people who were good, but they too have more or less retreated from any public defence of free software. they did at least give me a few more good ideas.
i say its hypothetical that stallman could reboot free software this way, but it would be silly to think he will. i think stallman is beaten, the movement is beaten, the gnu project is (even more than these other two) beaten and will collapse (as ive said for a year now) by 2029. with 2022 nearly done, 2029 is just over half a decade away now.
microsoft controls most free software-- if it cant even escape microsoft github, calling it free is cynical. ibm controls gcc, gdb and gnu libc. corporations control the linux kernel, as well as systemd. to say that gnu will ever again serve the purpose it was intended to seems highly unlikely, but id love to be wrong.
the fsf of course, is completely useless in this regard. compared to what it was, its the non-profit equivalent of a shell corporation now. theres no saving the fsf, but i dont care about saving the fsf, this is about how stallman could save the free software movement.
of course this isnt going to happen either, and i only bother to explain it out of fairness. i know that stallman isnt going to do anything like this. i know that the fsf cannot and will not do anything like this. and i know that stallman wont leave or "betray" the fsf he founded decades ago.
but even if he wont do it, if theres a way he could work with the present situation to fix the problems of both gnu and the fsf, we owe it to him (imo) to say so.
this starts with the premise that the fsf is uncooperative. of course theyre uncooperative, the fsf is worse than merely useless-- today it stands against its own mission, as a fraud and a betrayal of everyone.
i say this because for years, the fsf has let open source destroy the movement and it has remained silent, while asking for money to "fight for your freedom". the fsf doesnt fight for anything, its a useless pile of shit that lies to everyone (i feel very confident it lies to stallman too, but it absolutely lies to his followers).
stallman cannot save the gnu project from itself either-- gnu is just software, rules and developers. the rules are abandoned, the developers disobey stallman while betraying users, the software itself either suffers or its taken hostage and suffers. some (not all) of the gnu developers are traitors. the others simply (and clearly) cant save gnu.
it would be a good trick to explain how stallman is supposed to save gnu when he has no control over it. on paper, he is the leader of the project. in reality, the core of gnu is run by hostile takeover corporations and developers have betrayed the project first by disobeying and giving control to microsoft, and second by working to destroy the gnu trademark so that can be taken over by corporations too.
so saving the fsf is out of the question, saving gnu is (more or less) out of the question, and this is solely about saving the free software movement. but how could stallman (even theoretically) do that?
with his lack of real influence in the gnu project (which i may exaggerate just slightly, but the point isnt to be entirely accurate or fair so much as it is to be realistic about the threat, which does matter to me) he cant count on them, and no one (except perhaps corporations) can count on the fsf. all hes got are his followers and anyone else he could interest in rebooting the movement.
and he cant do it in a way that betrays the fsf or gnu, thats the tricky part. you or i may have no qualms about turning our backs on a defunct organisation or an operating system that used to be about freedom, but we must assume (based on what weve seen and also based on common sense) that stallman isnt free to do either of these things.
but what could he (at best) actually do?
stallman himself could fork the gnu project. he couldnt possibly fork the fsf, which is a pity, and he certainly couldnt say he was forking gnu, but he wouldnt have to-- he could simply say that he was heading a new project.
obviously stallman isnt going to be critical of the gnu project, nor is he going to be sneaky and two-faced, which also makes him very different from a lot of people in the tech industry. instead, it would be possible for him to put the problems of gnu and the fsf into an entirely new project with positive-sounding (and really, ultimately positive) goals, without dissing the fsf or gnu at all (even if they deserve it).
even in this article, which is happy to diss both of these things, the point of this idea is entirely about rebooting the free software movement and not about shitting on the fsf or gnu. if the idea were about shitting on anything, stallman couldnt do it.
so how could stallman fork gnu in a way that 1. he got away with it and 2. it rebooted the free software movement?
for one, you wouldnt call it a fork of gnu. you would call it a brand new operating system. for decades, gnu has been the flagship of the fsf. the fsf failed. gnu failed. even the babylon project failed-- but during the shadow war, it became our last, best hope for victory! and while the earth government betrayed its people, an interstallar alliance was formed, and so on.
i still think the free software movement will die, if it hasnt already. great if it doesnt, but i think people have to (and certainly should) bring back free software eventually. the sooner the better, however many years (or maybe decades) it takes to bring it back. thus it will be useful to point out what killed free software-- if people do it again, they should know what its vulnerable to (just like free security software).
free software was killed by corporate takeover, just like microsoft planned it in the late 1990s.
obviously, gnu isnt worth forking unless youre forking it to be more resistant to corporate takeover than gnu was.
dont suppose for a minute that i believe technical solutions are everything. if technical solutions were everything, the software and the license should be enough, and gnu should already be invincible. for free software to work, people have to use free software. for free software to be more free, people have to demand software that is more free (which is usually accomplished by writing better software AND, just as importantly, refusing software that is LESS free).
the fsf really failed to refuse software that is less free. it tiptoed carefully around github while stallman told gnu not to use it, stallman himself swore an oath to do nothing if fsf-approved distros were taken over (he did this in 2011, just as the world was first learning to fear systemd) and the fsf hid stallman away for two years while pretending to stand for anything-- but it stood for nothing, and fought for nothing. it just let us (along with stallman) suffer in exile. (thanks, arseholes). today, they continue to stand for nothing.
so its up to us to refuse software that is less free, as much as we can possibly do so. but stallman at least, could build that into a new project.
no, you couldnt recreate gnu from scratch at this point. they had enough trouble when free software started getting diluted by open source, and today even the free compilers (both gcc and clang) are corporate.
whatever you would do to make a project like gnu today, would have to be pretty modest. then again, there are plenty of bloated, overly complicated, ultimately sponsor-dependent distributions and free software projects.
this is one that would be designed to resist all of that.
think of it as the single-board computer to gnus enterprise server. a single-board computer os, and no, i dont mean some microsoft shit like raspberry spybian.
now you may be thinking, why create a free operating system at all, when there are enough parts to do that already? why not just do like hyperbola and create a fully free version of openbsd? i mean this is actually a different idea than that, with different goals and requirements, as youll see in a moment, but that doesnt mean hyperbola isnt the best fsf-approved distro ever created. i hope they manage it, really. it might not do what this project would-- in fact the way theyre struggling suggests entirely otherwise.
part of the point of rebooting free software and gnu is to make it easier. by "easier" i mean far too much trouble is needed to maintain gnu.
now if it were up to me, or if you were doing this instead of stallman, i would make the branding of it far more hostile to corporations. theres absolutely no reason not to, this is an operating system designed to resist corporate takeover, like what happened at the fsf and like what happened to gnu. users cant be both free and controlled by corporations! free software tried that already. its a fucking square circle.
but only because it is (hypothetically) doing this, we cant have a brand thats (openly) hostile to sponsors. it would have to emphasise in some positive way that doesnt sound like a diss to gnu, why its more free than gnu is-- i mean, why its more free than ever before.
the flagship of free software is dead, but flagships often become obsolete and people make new ones. i realise open source pushes planned obsolescence (by adhering to corporate bullshit about "new and improved" and conflating bloat with quality) but the kind of obsolete im referring to here is obsolete for fighting for freedom. gnu just cant-- it wont, and there are too many problems for it to ever (be allowed to) solve. this isnt just a technical problem-- it also isnt just a technical solution. but it is absolutely designed to LOOK LIKE just a technical solution. the other (non-technical) components are equally vital to it working.
i suppose the metaphor suffers a bit when we talk about a more "modest" flagship replacing an "obsolete" one. but ships aside, this is an age where we continue to make smaller computers (whether staying in pace with moores law or otherwise) and we put more cores in each chip (or fewer chips in each powerful machine, maybe) and olpc replaced its flagship netbook with a tablet, so maybe its possible. but thats just picking on the metaphor. this fleet needs an overhaul, one way or another. greater speed and mobility arent necessary to fit the illustration, but they are still necessary to win.
the first thing that absolutely must go is the linux kernel. the kernel will never be free, and tying a new operating system to it will doom this os as much as it helped destroy the gnu project. linux quickly became something that could be leveraged against the gnu project, and it undermined gnus goals directly.
gnu in turn, had their own kernel that (supposedly) suited gnus own goals, but it didnt do that very well. instead of making it easier to write a free operating system, hurd made it more impossible. whether it would have helped gnu or not, regnu or whatever you call it (i figure it wouldnt be called gnu anything, as people would think it was part of the gnu project when its a separate thing altogether) should have a very simple and straightforward kernel-- as much as sanely possible, it should have a very simple and straightforward everything, as a feature.
gnu started with another operating system, namely unix, and set out to replace it component by component until it had a working os. it had a compiler, a kernel (real soon now) an editor and utilities. eventually x11 was ported to it. you get the idea. starting with openbsd is possible at least, but the biggest problem with this is that openbsd is presently built around clang. absolutely you could start there, but you would need to address the clang issue very quickly. clang is a behemoth, and having it as a dependency is an idea that would probably kill the whole project.
even gcc is less of a beast than clang, though i suppose tcc would be an ideal target. im not the first person to have that idea, but the idea im putting here is not "do a distro with tcc" but rather "design a new operating system where the entire thing is suckless, or at least suckless compared to gnu". if i thought the people at suckless were up to making an os, id tell them to do it. i dont want people reading this to think i mean "it has to be as 'suckless' as suckless." i mean, suckless can be a bit over the top sometimes compared to what im proposing. nonetheless, theyre also a very good example of the sort of thing i want to encourage.
regnu (because i dont know what else to call it at the moment) should not be a distribution, like hyperbola or trisquel. rather it should consist of (and maintain) the things it needs, as much as possible (ideally, all of it). this means that each part of regnu is either a fork or a rewrite of something else-- if you want regnu less, you must find an appropriate (not-for-profit-- but presumably stallman would simply use fsf hosting, but self-hosted is best) place to host it (gnu made the mistake of trusting a for-profit corporation and regnu should never do this) place to work on the source code for regnu less, and hopefully you will get it at least as small and simple as openbsds fork of less.
i wonder what a suckless less would be like, or if they would simply prefer "more". ive recommend most, only because it isnt github-based and i didnt know that openbsd had their own fork of less-- but its too large for regnu.
obviously if stallman does this then he wont opt for permissive-licensed code, which makes this tricky. gnew (another gnu fork) chose agpl 3 for its license, but never really got to the point where it was writing software anyway, only documentation.
im not saying whether regnu should be copyleft or permissive, both have merits in different scenarios, but theres no point fooling ourselves into thinking stallman could approve of a new project that didnt use gpl3 or later. if gpl and especially gpl3 really turns off corporations thats definitely an advantage. for corporations taking over projects like the linux kernel, the workaround seems to be "just infiltrate the board or the foundation instead". but making it a strict rule for regnu means more code has to be written from scratch. and most of gnu is probably unsuitable-- not because of the license but because of the design goals.
the goals would be:
1. dont be controlled (managed, funded) by a corporation
2. dont accept project hosting from a for-profit, ever-- (free licenses cant stop them from mirroring or forking, thats not relevant) ...buying hosting then self-hosting is okay, but if you use a "forge" or "hub" it should be non-profit and the project shouldnt accept "donations" of hosting from for-profits
3. have a philosophy similar to the suckless philosophy about features
4. write software designed specifically to be maintained by smaller teams (preferably one or two people) or whenever possible, a single person-- smaller projects that are part of gnu often manage this by default, but then they dont necessarily design things with this as a goal
5. state that the goal of the project is for USERS to control their computing. no, a user cannot possibly maintain all the software on a computer; but the goal is for a sole and single user to have as much control of this system as possible-- ideally (for some projects this would be impossible) each project could be maintained by a single person
one of the things lacking in so-called free software today is a reasonable degree of reliability. you get an idea of what it used to be like with older languages like c. when they fuck with c, a million people sharpen their pitchforks so they can raise hell on earth if anyone mucks it up. it takes 20 years to kill even the most deprecated, derided and useless aspect of the language. c may get more and more impossible to write a compiler for, but the compilers are pretty reliable compared to... rust is the most extreme example. python is somewhere in between.
on the framework level, gnome abuses its power to go after other desktops that need gtk. free software should make this a non-issue-- if gnome is going to abuse gtk (they didnt even create it, theyve merely taken it over) to control other (even similar and competing) projects, those projects should have a fork of gtk. but gnome is tied together with dbus and all sorts of other crap, so "one does not simply fork gtk"-- at least in practice. in theory, they might.
the first time gnome developers tried to push a competing desktop around, gtk should have simply been forked. since thats not possible, we should be avoiding gtk as much as possible-- but ONLY IF WE WISH TO CONTROL OUR COMPUTING. if we are okay having gnome developers push us around just like microsoft would, then theres no need to worry about gtk.
needless to say, regnu should not fork gnome itself. but a fork of gtk (if mate has its own, based on that one) would be ideal. gtk itself is bloat, but if you do what i would prefer and use tk instead (its neither gnome nor github-based) youll find it doesnt fully support some human languages, which (this is painful) requires harfbuzz OR something like it. maybe harfbuzz is merely a wrapper around another thing, and thats great. harfbuzz was part of the coup against stallman, and its based on github, so i would ideally never need harfbuzz for anything and only use a suckless fork of it. but suckless isnt going to make an os. and neither is stallman.
but if stallman did create this regnu os, then he could use its project requirements as a way to promote certain things that go against corporate takeover and use it for example, to get more projects to either move away (yeah, wont happen) or get forked away (still difficult, but possible) from github.
and if we had an operating system that didnt need clang (github) or gcc (ibm) then it would be a little harder for microsoft or ibm to control our computing. to say the least, regnu COULD do far more about this than gnu itself could or will.
but stallman wont do this anyway, even if he could, because he doesnt care about being suckless, or the unix philosophy, or any of the other things that might save free software from corporate takeover-- stallman is completely done, and theres nobody better to take his place either.
the point of this idea was not to save free software-- if that were possible, people would be doing it right now! the point was to show that theres a way stallman COULD do it maybe, despite all the people standing against him and his mission, including the fsf and (too much of) gnu itself.
regnu (by another name of course) could be a vehicle for stallman to reboot free software with, if it had the goals needed to stand against corporate takeover.
and he could do it as the leader of a new project, just like he has input (i presume) into taler and some other things. im sure he even has input into the gnu project, but not at the level of authority he would need to save it. hes the chief gnuisance on paper, just like free software has a license that tells you youre free to do things that developers and sponsors work to make effectively impossible.
im sure youre absolutely free with gnome of course, to tell the developers to go fuck themselves (and they generally should). but they dont care about that-- they still enjoy mafia-like control over every application that needs gtk. isnt that what freedom is all about? i completely avoid installing new gtk-based applications. i dont want gtk, and those (very few) applications need it. its bad enough i need gtk for anything at all.
gnu once had a project incidentally, it didnt get very far, that was an abstraction over various toolkits. basically, if you used this toolkit first, it didnt matter if you had gtk or qt or whatever, it would make it possible to use any of those. and there are languages that target (output, compile to) more than one language, though this isnt necessarily a way to reduce bloat or complexity.
toolkits that are really about free software should be a gift to the world, and designed with that goal. openbsd for example, which sadly is not a movement (they dont care) and only software (but at least they care about that) doesnt care if you use openbsd or not. they dont bow to anybody. but they also resist anything and everything detrimental to what theyre doing-- and the core of the system (and its reliability) is extremely important to them.
gnu abandoned the core of its system. the entire thing depends on gcc, which they gave up to red hat, which was bought by ibm. openbsd is hardly better about compilers, since they use clang-- but they didnt write it. openbsd didnt need to make a free compiler, because gcc already existed (and now clang exists as well).
openbsd has a very special team, though their primary goal is not to liberate users. if the goal is for all users to control their computing, openbsd at best has a better start in that their codebase is more maintainable than the codebase of gnu. bsd is a forkable operating system-- gnu? not so much.
regnu at least, could be the most forkable operating system-- one that does more than anything else to promise youll have freedom 3 (plus freedoms 0, 1 and 2). stallman could do that, if he knew enough people that were interested. but i realise, it would have to be up to the rest of us anyway. i was simply looking for a way that stallman could do it, despite all the people keeping him exiled-in-place (just as i predicted, because i knew they would to this to stallman the same way they did it to torvalds).
to be fair, i did say how he could do this "theoretically", because of course we know better. but if he really wanted to, i think he probably could start a new operating system project. if ease of maintaining the codebase for as few people as possible was the priority. yes, it would lead to some overly simple applications. but looking at suckless, and what the alternatives depend on, this is probably the only way to avoid corporate takeover-- even theoretically.
probably nothing will improve until society finds a way to beat corporations altogether. thats a much more ambitious project, but defeating corporations completely would be the surest way to keep them from fucking up free software again. between now and then, designing an os intended to stop corporate meddling would be educational, at the very least.
gnu absolutely was revolutionary for its time-- there was nothing closer to freedom in its goals, not even bsd. design-wise, i think bsd did better (at delivering freedom 3) but part of that was simply choosing a kernel design that didnt take decades to get working just to have it sold out to monopolies. imagine doing that with the entire gnu project, better yet something like it, and see what you get.
license: 0-clause bsd
# 2018, 2019, 2020, 2021, 2022
# Permission to use, copy, modify, and/or distribute this software for any
# purpose with or without fee is hereby granted.
# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
# ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
# OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.