The Linux Desktop Works Just Fine

Today I read this rant about how the Linux desktop is not free enough. I almost stopped at the first sentence but still read on. I have to comment on a few things, but of course I don't have a google+ account, it's not free enough.

Desktop Linux Owns Too Many Apps

Ingo Molnar says: Desktop Linux distributions are trying to "own" 20 thousand application packages consisting of over a billion lines of code and have created parallel, mostly closed ecosystems around them. Not really, distributions maintain packages and you are always free to join discussions with most package maintainers/distributions, it's often easier than you think (mailing, IRC, etc) and mostly doesn't require creating an account with google. If your distribution isn't open enough, change. The typical update latency for an app is weeks for security fixes (sometimes months) and months (sometimes years) for major features. They are centrally planned, hierarchical organizations instead of distributed, democratic free societies. It's like that when you depend on your distribution to kindly package everything for you and make your life so much easier and virtually headacheless, however there is nothing stopping you from getting the sources and compiling the latest version yourself.

You seem to not understand that the democracy part is within the distribution, the devs and maintainers (etc) are the demographics that get to vote and decide when and how to implement updates/upgrades and such to their distribution. The passive consumer gets to use the whole thing for free with no questions asked. The passive consumer can also switch to any other distribution, or even create their own distribution, etc. I'm not sure what your vision of a free society is.

The Future is App Stores

No way I would think that, but I then read: What did the (mostly closed source) competition do? It went into the exact opposite direction: Apple/iOS and Google/Android consist of around a hundred tightly integrated core packages only, managed as a single well-focused project. Now I see what Ingo Molnar means by "free society", a free market. ...most new packages are added with a few days of latency (at most a few weeks), app updates are pushed with hours of latency (at most a few days) - basically it goes as fast as the application project wishes to push it. This is exactly why some people are happy to have their once a year updates. My requirement is that the software I use today isn't changed, updated, edited or removed potentially every few hours. If I do need the latest for a specific program, I get the source and compile or even get the easy to use binaries (like for Icecat/Firefox...). And if I always need everything to be bleeding edge there's a distro for that.

On a side note, I am going to guess that there could be less malicious code in among a quality distribution's packages than in an Iphone or Android App store. (Random search result: 30+ New Malicious Apps Spotted In The Android Market).

And so

I'll finish with this last bit: Desktop Linux users are, naturally, voting with their feet: they prefer an open marketplace over (from their perspective) micro-managed, closed and low quality Linux desktop distributions. This would be true if most Linux distributions were closed and low quality, actually I can't speak for most but I can speak for Debian as I've been using that for my workstations since 2002. I can say that it has always worked, updates are fast enough for me and the quality is so high I get dizzy thinking about it.

I've heard many good things about other distributions as well, they each have their ways of doing things which seems to correspond to many different people's needs and such. This sounds more like "free society" to me, the possibility to maintain an entire operating system and all the programs you want however you want.

I don't ever want my desktop or system to be managed or controlled by an "app store". I'm not against paying someone for their code, but I am against giving up the control of my system to every developer whose program I've installed. Mostly I totally respect the work provided by my distribution in keeping everything clean, coherent, maintainable and secure.


David S

I think you misunderstand Ingo quite a bit. He mentions several things. But one thing which you also touch is applications.

Think about the Windows and OSX world. They surf the net, looking for a nice application to help them do something cool. You download a binary, install it ... and it Just Works(tm). "Everyone" can do that. Applications written for Windows2000 can mostly be used in WindowsXP, Vista or Windows 7.

The Linux world is really split up. You first need to find the application somewhere. If it is in the distro based application manager, you might be fine - but the version might be too old. So you end up surfing the net for something newer or better. And you find something, you download it - and it complains about that the package is not for your distribution version. Or it is not a binary package suitable for your distro. Or (thankfully!) the guy sharing the program have compiled binaries ready to be downloaded in a tar.bz2 file, but "F*ck! It's not compatible with the glibc library in my distro!" And you might end up compiling it yourself, or it needs to install 300MB of dependencies, beacuse you were using GNOME and this app required KDE libs which you didn't care about installing in the beginning. And the user thinks "Hey! This application is a 200kb download, this s**ks!" ... This simply doesn't work for Jane and Joe Average.

If Linux distros could figure out a way to have a smaller set of stable ABI which the applications could be compiled against, you could distribute binaries outside a distro oriented package manager. And downloading a package from the Internet would Just Work(tm).

Each distribution wouldn't need to care about managing a package pool of thousands of thousands software packages. They would just need to care about the core OS functionality. The distributions wouldn't n eed to care about how each package are being updated, the software provider would easily provide one single binary for each supported CPU architecture, and that's it. The software provider wouldn't need to care about separate packagesfor each distribution in addition. And updates would be distributed by the software provider, according to how s/he would see it fit their own schedule. The software providers and software consumers would be completely free of the OS management.

This is the freedom Ingo is talking about. A freedom which does exist in the closed platforms. Because those OSes provide a much more limited ABI which is stable over time. The OS should be the faciliator for software, not the software being tied up to OS specific details.

But managing this, would require massive work on glibc and all shared objects which provides support for GTK, QT, GNOME/KDE apps, etc, etc


manu -

Hi David, thanks for your comment. Thanks for clarifying a few of Ingo's points.

I totally remember using windows and that when I'd want a program I'd have to go about the Internet to find it, download it, install it, etc it. This would take a long time and be such a pain. Updates ? Keeping everything updated was an actual task, not to mention keeping things clean when you had multiple programs that would use GTK or TCL or something, or multiple versions of those. For me, that's the olden days.

In modern day computing you can just tell Apt (or yum, emerge, etc) to install the program you want and it will do everything for you and keep it updated. Again, for me the "Apt" thing is extremely awesome, it's actually just like an app store except all the software is approved and updated/patched where needed and not just "approved".

It's simply not a good idea, ever, to trust thousands of various independent developers to provide binaries and accept their updates.

Again, in the case where your distro doesn't have it, that's fine, you go back to the Windows method (tm) of, finding, downloading, installing manually. For many programs there are binaries that just work without compiling, like Firefox, Skype, Flash plugin, Humble Bundle games, etc etc. Even compiling is easy, many software's websites give straightforward instructions that just work.

Some of these "out of your distro" programs have their own repository, so you can simply add their repo and your new software becomes easy to install and update/upgrade. A good example is Debian Multimedia or

I will grant that indeed, in some cases the software developer has to provide multiple versions, that could perhaps change with better source packaging, by making the standard that users download the source and compile, and focus on making that part easier.

BTW, complaining that a user that has Gnome but has to install kdelibs (or vice versa) is like saying "Why do I need to install Php to make this Php script run ?". I do however understand your frustration as many desktop applications seem to be written for either KDE or Gnome when indeed it could just be written... and then have some kde/gnome-addon thing.

Maybe the real good idea would be have a set of open desktop standards, so each desktop software could be written to run on any graphical interface and then send feedback to a "daemon" (the Free desktop daemon ?) which would then interface with Gnome/KDE/XFCE/Windowmaker/etc....

As for the Freedom aspect, I think that Ingo has mistaken the word "free" with "practical".


Hi, I want add some more aspects from Ingo's discussion because I think this is to important topic to be ignored or be belittled. This limitation of linux installation infrastructure is too often taken not important enough or is plainly denied. also, this structural problem should have been solved years ago, and are major hinderance (personally I think THE most important problem) for the progress of linux as desktop platform.

first, the common repository software installation infrastructure is not only a problem for desktop users but also but also for third party application providers or for software development in scientific context.

for example Philip Guo from CDE describes some scientific use cases which are poorly supported in the commonly existing distribution focused linux infrastructure (google techtalk 2011)
also, portable software (usb-sticks) is comapred to windows or Mac very hard (or impossible) to create

here is one example of the third party provider discussing software distribution problems

also, these problems were noted several times in the last years. 2006 by Benjamin smedberg or Mike Hearn from autopackage (2002)

2009 long ago by tony Mobily

a chance to change was some LSB initative of ian murdock (debian founder) in 2006 but sadly, this was ineffective.

in conclusion, it can be said that the core problem is that the linux ecosystem provides not an stable platform experience by strict differntiation between OS parts and applications, which would allow a open bazaar of applications instead of the distro cathedrals we have to suffer at the moment.


David V -

Everyone should use an iphone/ipad for a couple of weeks to understand why is so succesfull among users.

- I don't like Windows (pre 8) distribution scheme (or lack of). Searching for Windows software online is dangerous, scarry, expensive, very difficult to spot quality software, etc. Windows 8 will change that though.
- Linux is exclusively for IT people willing to spend extra time maintaining the OS
- IOS is the paradise for end users, and probably for their developers. Software is cheap but sells more quantity. Stupid Apple charges developers to be part of their exclusive club in different levels: susbcription fee and at least 2 overpriced apple devices, the one you need to code and the one you need to test the code.
- Andriod is like a vomit containing all of the above.

manu -

Hi badhabit, thanks for your input.

I read a bit and must ask the question, why do you consider "server software" to be different to "desktop software" in terms of how it's distributed, installed and updated/upgraded ? I've heard the argument many times that "for servers the system is fine, but for desktop systems it's broken". I see it as the same, regardless of if I am installing Apache, bc, Pidgin, less, Irssi, etc. They are "just programs".

If there is a "software on GNU/Linux" problem it should apply just as much to "desktop software" as to "server software" (and everything in between and both).

As for Nicholas Vining from Gaslampgames, I must admit to not really caring at all about distributing non-free software, I know it's not the case of every GNU/Linux user, so I can understand how people could have a very different opinion. But IMHO, closed software should not be considered at all in terms of "How GNU operating systems should evolve the software packaging systems".

Should it evolve ? Probably, there are some good points that have been made actually, and other points that I'm not so sure about, but in any case, closed software should be totally dismissed in the thought process. I don't care about it and I don't want to care about it. If closed software developers want to sell software to GNU/Linux users who don't care so much about Freedom, that is totally fine but we shouldn't ask GNU/Linux to adapt to them.

Actually, there are examples of non free software that works fine on GNU/Linux and a user can install them and run them without asking root for anything. It depends how the program is bundled. This is in reply to Tony Mobily from FSM (article you linked). Check out programs from Humble Bundle, or even Skype, you can get rpms, debs or even a static compiled version that the user can just untar and run.

Tony does make some good points, like how to have multiple versions of a same program ? Or reorganising the system a bit to make it easier for programs to contain their icons and other things, why not.

One thing I don't get is Tony's obsession with wanting to copy paste a program to be able to give it to someone else. I generally give a program to someone else just by giving them the package's name, then they just need to yum-install or apt-get it.

Again, as for Ian's remark with Java Studio Creator, that's like blaming Windows because Photoshop wont install. The GNU/Linux installer provided by Java Studio Creator seems to be the one to blame.

I'm sure there is something that can be done to make source packages more universal, be it a super standardised way of archiving source packages, the operating system could be fed that and all instructions it needs to do to make it compile and install should be included. It seems this already exists (spec file) but the implementations aren't there yet.

What we could need is an "apt-source" that can intake a source-package and know which dependencies are needed and then compile the program. We would need developers to use the spec and provide only source packages.

Thanks for all the comments, they have helped clarify what the actual issues are. Your arguments are much clearer than Ingo's. I guess the debate should carry on, but we shouldn't focus on closed source and we shouldn't become lax on security and OS coherence.


Hi Manu, thanks for feedback, I would like to take you invitation and continueing this discussion.

"One thing I don't get is Tony's obsession with wanting to copy paste a program to be able to give it to someone else. I generally give a program to someone else just by giving them the package's name, then they just need to yum-install or apt-get it."

More reasonable use cases for "copy-paste" program exchanges are give by CDEs Philip Guo in his Google Tech talk, really worth the time seeing the video (impressive technical approach!). Also this use case allows Stick-ware (portable software) which is hard to acchive or non existing in linux.

About the humble bundle linux packages... many of these packages were costly hand tuned by ex-loki ryan gordon (and even then, there were multiple complaints about stability, perfomance...) not something every programmer would be able to achieve. In general, no standardized way or support by the linux infrastrcuture is given for this case.

If you read here Mike hearns valuable analysis about numerous (binary) compatiblity problems in the linux ecosystem, it's understandable why even ryan's great work is still not perfect.

"why do you consider "server software" to be different to "desktop software" in terms of how it's distributed, installed and updated/upgraded ?"
Good question, this might bring us nearer to the core of the problem. from my understanding, server software shares many characteristics with operation system parts... api should be stable, development cycles are long. updates are soledom required, user (in this case better described as admin) is not tinkering around with versions, core quality is "how stable runs this server in this (OS-) environment?" ...therefor is the perfect solution, to test and distribute serversoftware always with the OS, exactly the nowadays common repository and distributon focussed infrastructure.

now to typical desktop user software... e.g. inkscape a well known (and from my point of fantastic) OS software. development is fast, update cycles are much more often. Also, users are REALLY intressted in specific version, most often the newest one. But also, the use case arises, he need a in specific cases a older version (e.g. inkscpae 0.46 to next version changed some EPS behavoure I personally sufferd from changed behaviour which was not an bug). So users want sometimes older, somestimes newer, somes version ins parallel... in complettly different update cycles than provided by the distribution itself. You argue, for this use case compiling is an acceptable solution... but, potential compilation problems, time overhead and required knowdledge to adapt things to support multiple versions in your systems make this way an no go for users... and also for developers see jon udells complaint here :

From my point of view, this is the very core of ingo's post, user should be able to make their own software decisions, in a simple Windows like way. Additionally, a simple software installation (and distribution) way should also attract software producers in the long run, so that potentially the long standing and correct complain "major applications are missing in the linux ecosystem" might be not true in some future.

"but we shouldn't focus on closed source and we shouldn't become lax on security and OS coherence." I can understand this point, even agree to some degree. But also have to remark that this should not go so far that the complete valid binary software use case is sabotaged over all, here I draw the line. The binary software distribution use case is complete valid use case inside the opensource and GNU philosophy. Opensource means source must be available, but not everything must be done the source way. Also, there are border cases e.g. the mentioned humble bundle. While first distributed commercially, their organizers and developers are sharing many philosopical aspects with the OSS people... portablity, caring about the community (charity), beeing not greedy, giving back to community (games sources are opned later on, tools are opend instantly).

best regards and good holidays

manu -

Badhabit, I have yet to watch the talk by Philip Guo, I trust you that it's good (so I will do that) : ]

I guess having "portable applications" can be useful, I haven't though about how it can be done in cases where the app needs a library that isn't install on the OS.

As for the "server software" and "desktop software", I'm glad you appreciated that. Indeed for some users (like me) it is used the same way, for example, I always want my workstation to be super stable and I don't need bleeding edge software. Just like with a server, I don't want to spend Monday morning adapting my life to some new layout in Firefox that has been pushed by software upgrades. Again, for that there are so many options (/testing, ubuntu, gentoo, etc) so it's not even an issue.

I just read part 2 of Ingo's... rant.. : ] He says this:

-> "Users want to be free to install and run untrusted code."

I don't know how to say anything "nice" about that. That is *exactly* what I don't want. That is exactly why I am often willing to wait for the software to go through various testing phases before landing on my workstation. That is exactly what seduced me in the first place with Debian.

Making it the default action for users to have to find/hunt for software and "install it themselves easily" is what helps their systems get infected. It's possible to have a virus free Windows desktop, but try to find one. And I can't blame the users really, how much time would you have left to work if you had to make sure each software you install is safe and wont cause system conflicts.

In any case, users are free to do what they want. They can still install non trusted and/or non free sources. Again, Ingo misuses the term free, what he probably suggests is that (some) users would like it to be practical to install and run untrusted code.

And again, for the sources + compiling, that is very true that most users are lost, which is why I suggested that work could be done in that area.

-> Normalizing source packages and then making it easy for users to "click install" those source packages. If you are on Debian the "OS" should take the source, resolve deps, compile a .deb and install it.

For me, this would be a great step indeed. For example a friend of mine develops a musical instrument called din, and some users have a hard time installing it. It's Free software but most din users are a bit lost, because they are more often musicians than developers. So again:

GNU/Linux desktop users are missing a tool that can take any source archive and magically (click click) turn it into a package and install it properly with their distribution.

VoilĂ  a Bazaar. : ]
You could download a program you "found on the Internet" and install it at your own risks.

I also think the "sandbox" idea is actually interesting, though not new at all. Having applications run totally isolated from each other can in some cases be interesting, and secure. But that's a whole other concern which isn't about user's "freedom", but more of a safety feature that can be useful.

P.S. I agree that software doesn't have to be distributed only sources, otherwise I would be using a different distribution.

Happy holidays to you as well. : ]
Leave a comment
You may use the following HTML tags: <p> <a> <strong> <b> <em> <i> <cite> <blockquote> <code> <pre>

Your comments WILL NOT be submitted to any third party (not even for anti spam verification).