So I have this Sparcstation LX running OpenBSD. We're talking seriously light OS footprint here, folks. The complete installation took 470MB of disk. The box is tasked as a PPP/NAT/firewall box and nothing else. However, though PPP is working fine on it complete with working dial-on-demand, I've been having trouble getting NAT working in PF. For sanity's sake, a friend suggested fwbuilder to generate a PF configuration just to make sure the configuration was valid. Sure, it sounded reasonable enough, so off I went, looked at fwbuilder, decided it was worth trying, downloaded the ports tarballs for fwbuilder, and started installing.
That was almost 24 hours ago. 250MB OF DEPENDENCIES LATER, a third of the total disk space used on the machine is dependencies for fwbuilder, and it's still installing dependencies and getting started on a full Gnome install. On a firewall box.
FUCK THIS SHIT, CHARLIE. Not on MY firewall machine, you don't.
How did this happen? How did we get here? Linux, *BSD, all the other "upstart" Unices, used to be light, fast, clean environments that would run -- and run usably -- on a 386. They grew, they gained functionality, they slowly acquired a heavier footprint. Then the bloat started. Enlightenment was the first symptom, and when Enlightenment was new, yeah, sure, it was pretty, but even many of its own users complained about how slow and bloated it was.
And then came Gnome.
Gnome makes Enlightenment look like a greyhound. Gnome has fucking metastasized. It is a cancer upon the face of *nix. It's the tail wagging the dog. It's bloat upon bloat upon bloat upon bloat, bottomless dependency trees, fifty libraries required for builds that used to need only two or three. It's applications that used to be tiny and fast that are now slow, unresponsive, and eat 100MB of RAM. It's getting to the point that anything that creates a window, no matter how trivial, requires a full Gnome install, and that Gnome install eats more disk space than all of Linux once used to. All that functionality gets dragged in whether or not the application is ever actually going to use it, and 90% of the time, the application won't ever use 90% of it. It's fast getting to the point where it won't be possible to compile /bin/ls without a full Gnome installation.
And it doesn't stop there. Not only can no-one countenance the thought of developing a GUI application that isn't Gnome any more, but most of the people out there developing Gnome applications can't resist even one new useless feature offered in the very latest version of libgnosepicker-2.8.9.17.34p6, so they install every bleeding-edge Gnome library that comes out, write their applications to the bleeding edge API, and thus force everyone else to live on the bleeding edge with them. Hello? What happened to using stable code for applications you're going to distribute, people?
Take Galeon, for example. Galeon started out as a fast, lightweight browser embedding Mozilla's Gecko HTML-rendering engine in a GTK+ interface, because the Galeon developers thought Mozilla's XUL interface was too slow and bloated. Now, you can't install the latest development versions of Galeon 1.3 without a full Gnome2 installation, and not only that, but you have to build it against a copy of Mozilla compiled locally against Gnome2 with the same compiler and optimization as well, or Galeon will crash on launch. Um, hello, excuse me, I thought Galeon was supposed to be avoiding Mozilla's bloat??? Now it's more bloated than Mozilla.
Unfortunately, if this trend continues, I foresee a time when it'll be impossible to have any usable user applications on a Linux box without having a full Gnome2 (or Gnome3, or Gnome5) installation on it. And when that happens, Linux will have lost at least two of its key advantages over Windows -- speed, and the ability to run on old legacy hardware that won't usefully run Windows any more. (I've heard convincing arguments that anything based on a CORBA is inherently insecure, too.) Linux will have ceded the hardware low-end to the *BSDs, and will quite possibly have lost the initiative altogether, taken over by creeping featuritis.
I hear all kinds of Gnome apologists saying, "Well, yeah, it's bloated, but it's providing drag-and-drop, and internationalization, and an interface to the coffeemaker, and...." The official party line is, Gnome extends Linux. Fuck that shit. Gnome is not extending Linux. Gnome is subverting Linux.
Nietzche said, "Battle not with monsters, lest ye become a monster." Gnome is Linux becoming Windows.
Re: Get a grip
Think about this for a moment: Can you, on any modern Linux distribution, avoid using glibc? No. Because every modern Linux distribution is built on glibc.
Now, glibc isn't a problem. It's a better C library than libc, and doesn't consume any more resources. But suppose you want to run a headless box as an application server, or perhaps a streaming-audio server.... only ALL of the applications you want to run on it require Gnome, and there are no non-Gnome alternatives any more, and Gnome requires gconf,and gconf requires X .... Gotcha. You can't have your headless box any more.
Sure, you can roll a distribution that doesn't include Gnome. But what use is it going to be if no applications will run on it? You'd be able to log into it and type ls all day, but that won't get you far. What are you gonna do if every mail client requires Gnome? Every web browser, every IRC client, every Xterm implementation? If every MTA has a Gnome configuration tool and no other way to configure it? If you can't configure DNS without Gnome? If you can't configure your resolver or reconfigure your kernel without Gnome? Can't add or remove accounts without Gnome? Can't run your compiler without a Gnome front-end?
Sure, we're not there yet. We're a long way from being in that bad shape. But I'm already seeing the diversity of desktop applications shrinking down to just two camps: applications that require Gnome, and applications that require KDE. And of the two, Gnome is winning.
ANY monoculture is bad, mm'kay?
Re: Get a grip
I don't see how we could possibly get there. If I want a headless box I'll be expecting a box without an X server, with no applications that use require graphics. Nothing that ever uses DISPLAY or has any idea what a canvas is. Things like iptables, screen, ssh, vi or emacs, lynx, ncftp, tcpdump, nmap, ...
You haven't convinced me that there is any real likelihood that any of those will ever require gnome.
If I decide to use ethereal instead of tcpdump, or fwbuilder instead of a text editor, I have to pay the price.
All you've done is show that you want one graphic application on a box that doesn't otherwise require one, and you're irritable for having to pay such a high price to get all the things that go into making a graphical environment.
Maybe we've got different ideas of what constitutes a "usable user application", but I don't see any danger at all.
I've got boxes with usable user applications that do exactly what I want, and they don't have X, gnome, KDE or any of those other graphics libraries like libpng. I don't see any reason I'll ever be required to put such libraries on a box.
I may well choose to do so (as you have done) in order to get an application I particularly want, but that's a matter of choice, not the lack of choice you predict.
Re: Get a grip
Actually, no, I chose not to complete the installation and to uninstall all those dependencies. And if you want a real-world example, I refer you to TheWW1FlyingAce, who wanted to install an audio streaming application on a headless box and found he couldn't do so without installing Gnome, ORBit, X... so he, too, scratched the idea.
No, I don't expect that iptables, screen, ssh, vi or emacs, lynx, ncftp, tcpdump, or nmap will ever require Gnome. These don't, IMHO, fall into the class of user applications. These are administration tools. But I think we're arguing at cross-purposes here because we don't agree on definitions, and doing so serves little purpose.
Re: Get a grip
I figured I'd check, to see how many copies of the Gnome and KDE libraries I'm using....
`egrep "(gnome|kde)" /proc/*/maps` turned up zero results.
I'm using fvwm because I find it has features I can't get in more popular window managers, so I know this is atypical, but I figured I'd mention it because I know it is possible to avoid Gnome if you want to.
Re: Get a grip
It is indeed still possible to avoid Gnome at present. I wasn't trying to say that it isn't. Just that: (a) the choices for doing so seem to me to be steadily shrinking, (b) far too many Gnome applications seem to be written to require the latest bleeding edge of Gnome, rather than to be usable on something resembling a stable version, and (c) the Gnome dependency tree has become insanely huge and you CANNOT install just the parts of it you're actually going to use -- it's all or nothing.
[1] I use a system meter called procmeter3 which, if started from my .fvwm2rc or from a fvwm2 menu, fails to read any system stats, but works fine if started from an xterm started from fvwm2. Meanwhile, functions in my icb and irc clients which launch any process that directly or indirectly creates a window all fail if the Perl script that starts the clients was started from an xterm, but work perfectly if the same script was started from an fvwm2 menu. I've dumped environments for both operations and gone over the two with a fine-toothed comb, and can find absolutely no differences that shed the slightest clue as to why procmeter3 works only if started from an xterm, while the icb/irc client functions work only if started from a menu. Go figure.