The Great Distro - Developers Debate: an User's POV

Lately one of the hot topics in the FOSS community has been whether the distribution + repository model has become obsolete, and whether it scares away developers, killing the GNU/Linux platform.

Disclaimers :)

In this debate my position is that of an involved user: I have written a few small programs, either to scratch an itch of mine (released as FOSS) or for hire, and in the last few years I've tried to contribute back a bit to the various distributions I have used. I also have a few sysadmin friends, so I believe My opinion is probably not very representative of the average clueless user, but I feel I know enought on the subject to know what is best for me, as well as what is best for many kinds of different users.

I am also a beliver in Free Software: most of the software I use is free, with the only exception of a few games [1], and I am willing to use something a bit less refined or missing a few features if the alternative is not Free. I understand this is not for everybody, and that there are a few areas, such as 3D architectural CAD [2] where the price for using Free Software is not being able to work, but they are being slowly solved, and I'm hopeful for the future.

[1]For enterntainment software my absolute requirements are just no DRM and the technical ability to run it on my free system; I appreciate actual freedom, and as a second choice some pledge to release the game as FLOSS after some time / earnings, but e.g. for legacy games I realize it's just not an option.
[2]even this is getting better: it used to be every kind of CAD, except maybe for electronical CAD, and even there you had problems.

The Issue

Now that my position has been explained, I can start talkin about the issue at hand.

Basically, after the huge success of various app store based platforms, there are voices claiming that GNU/Linux systems won't ever conquer the desktop because its environment is hostile to developers, and thus it won't ever get enought applications.

The main complaint seems to be related to the fragmentation between different distributions, each one with its own package system and different versions of various libraries, with little binary compatibility between systems.

Another complaint is related to the fact that the distribution maintainers act as gatekeepers and prevent useful software from reaching their users.

Partial Solutions

Are these valid complaints? In some way they are, but I don't believe the situation is as bad as it seems.

For starters, it is true that there is a myriad of different distributions, but most of those can be ignored when targeting a specific market. This is what happens already in the server area: proprietary enterprise software is usually distributed for some version(s) of Red Hat Enterprise Linux [3], and everything else is unsupported. This does not mean that people don't run those packages on e.g. CentOS, which is compatible with RHEL, or even other incompatible distributions, but the seller won't have to do anything to help them.

For the desktop, one will probably want to target Ubuntu and possibly Fedora; many other distributions right now are Ubuntu derivatives and can run Ubuntu packages (with the big example being Mint), others such as Arch are quite different, but also run by people with the skill to get your program to run on their system on their own. This way, one only has to create one (or two, if you consider Fedora) source package, feed it to a couple of easily mainteinable build environments (provided by the distributions) and get packages for every supported version of Ubuntu [4] out there.

Another tool that I've never used, but I've heard recommending and would basically solve this problem is the Open Build Service, provided by openSUSE, where you write a single source package and automagically get lots of binary packages for every big distribution out there.

[3]Sometimes also for ubuntu server, or for SUSE, but that's it.
[4]While you are at it, I would recommend also building packages for Debian, because they usually come for free from the Ubuntu source one, and they would cover a bit of the market tail, including lots of debian derivatives.

Advantages of the distribution model

The big question, however, is: do I as an user want to install your program, rather than one provided by the distribution?

Excluding for a while games and generally interactive entertainment, on which I'll return later, in my opinion the answer is no.

The issues we're talking about are only a problem for small teams of independent developers: bigger companies can afford hiring somebody who already knows about Linux packaging; their obstacle to writing software for linux is more a matter of market size, and less interest in niches.

Unluckily for you, what is really missing from linux is the kind of software that can only be written with the aid of a big company: what could be done by a small team of indipendent developers, has already been done by a small team of FOSS developers, and is already available in the distribution repository.

What you are competing against not only is gratis, which is already hard to beat, but also offers advantages to the user that a small team isn't just able to provide.

Like in the app-store model, the user can get all his software from a single source which also provides updates. Contrary to most app-stores, every program in this source has been checked before upload by a human being that often is also an user of it.

While human beings can fail and sometimes bugs happen, this means that the software I can get from my distribution has been selected not on the basis of non-competition with the products of some company, but on the principle that its actions are advantageous to the user.

When I install software from a distribution repository I know that my disk space is not being filled with thinly disguised business brochures whose aim is to let me spend my money on somebody's product, nor by quicky written timewasters [5] whose aim is to sell my eyes to ad providers.

What I will find is stuff that somebody found useful (or entertaining) enought to spend some time on packaging and maintaining it, and thus is probably useful for other users with similar requirements.

This is gatekeeping, but it is gatekeeping based on users' needs, not on arbitrarily contraints, and thus a positive feature.

[5]Not that there are no timewasters in a linux distribution, there are, but they are honestly meant to let me waste my time and nothing else. :)

Games

Games are a different matter, mostly because competition in the entertainment area works in a different way. I only need one text editor, but I enjoy playing many RPG [6] games.

[6]or insert your favourite genre.

Even here, I've found that the few great Free Software games are technically better, more refined and offer more replayability than the good/great indie but proprietary games (which in turn beat the huge mass of bad FOSS games on the above points).

The different competition model in this area means that this is not really enought to ignore indie games at all, but also that I'd rather have FOSS developers continue improving FOSS gaming than spending their volunteer time helping the distribution of proprietary software.

These improvements may be technical, but may also include finding a business model that allows indie games to be released as Free Software, while at the same time paying their authors.

In the meanwhile, at least in certain genres, crossplatform solutions such as HTML5 may help indie authors reach linux users with little or no additional work on their part, and no need for explicit support from the distributions.

Improvements of the distribution model

Is the distribution model perfect? of course it is not, most involved people recognise that and in many areas there is actually work in progress to solve some of the problems.

One problem is that the distribution model requires lots of work. The good part is that it is easily split in small, manageable parts, and that FOSS is good at easily splittable work. The bad part is that there are still areas where packaging ends up being harder than it could be, which may prevent some volounteers from helping. This is something that is being slowly but constantly improved, expecially since many improvements also help streamleaning the job of existing packagers.

Another problem is the duplication of work caused by the proliferation of distributions. In my opinion some of it is a necessary price to pay to get plurality, and some could be prevented with inter-distribution collaboration, which is an area that used to be neglected, but has been receiving lots of interest and improvements in the last few years.

See also

Joey Hess wrote about his experience in building a distribution independent package, and while it is ugly it doesn't even seem to be that hard, and works mostly everywhere.

On 2016-06-15 Kyle Keen wrote a very good article on this topic: Maintainers Matter.

In early 2018 this debate resurfaced on the Debian mailing lists, leading Lars Wirzenius to write “ What is Debian all about, really? Or: friction, packaging complex applications“.

TL;DL

Q: Do the distributions hate me because I'm trying to make a living? Do they want to starve my children?

Q: If you want Linux to spread, you must support proprietary software!!1ONE!

A: The aim of at least some distributions is to provide users with a great Free Software based computing environment. Not to spread Linux whatever it takes, not to change things that work to help you make a living producing stuff that is unrelated to / actually agains their aim.

And I like them that way.

Send a comment: unless requested otherwise I may add it, or some extract, to this page.

Return to Top