Comment: Don't develop just for your favourite distribution
by Thorsten Leemhuis
Developing configuration programs and desktops for just one distribution creates lone wolves, limits users and slows down progress.
The Cinnamon desktop has yet to be updated in such a way that it can be installed on a system together with GNOME 3.8, released in late March. That makes Cinnamon, developed as part of the Linux Mint project, yet another example of software built by short-sighted developers – who are only hurting themselves, since this behaviour hinders growth and deprioritises users.
The case of Cinnarch, a Linux distribution based on Arch Linux that used Cinnamon as a standard desktop, demonstrates this situation clearly. Arch Linux updates to new program versions fairly quickly, and every time GNOME was updated, the Cinnarch developers were faced with problems; in the end, they had to choose compatibility with Arch Linux or with Cinnamon. In April, Cinnamon lost; shortly thereafter, Cinnarch, one of the feathers in Cinnamon's cap aside from Linux Mint, changed its name to Antergos.
In fact, Cinnamon is still available on the distribution, now that resourceful developers have tended to its code and fixed the problems with patches – which the Cinnamon programmers have yet to integrate. The fixes mostly came from the Arch Linux and Fedora communities; indeed, the Fedora developers had the same issues as Cinnarch when they were working on Fedora 19. Still, the desktop's image has been tarnished, and the established "Cinnarch" name has been lost. In addition, some users found out too late that GNOME 3.8 and Cinnamon could, in fact, co-exist, after they had already been disappointed enough to switch to other desktops.
Cinnamon is just one of many examples of how an excessively exclusive relationship between a distribution and software can cause problems. The programmers of Unity, the Ubuntu desktop backed by Canonical, do not seem particularly interested in ensuring compatibility with the rest of the open source software world, either. As a result, the desktop is only haphazardly integrated with or even completely unavailable on many other distributions, and users who would like to see Unity on an RPM distribution or a rolling release Linux distribution like Arch are just out of luck.
Two more examples, system initialisation and configuration tools, show just how much this issue can limit progress. Since the early days of Linux, the major distribution families – Debian/Ubuntu, Fedora/Red Hat, Mandriva, SUSE – have all been lone wolves, choosing not to co-operate with others and design their configuration tools in such a way that they could also be useful for other distributions. When new Linux users asked where to go to configure the system language, keyboard layout, time zone, network interfaces and other system parameters, they often heard: "That depends on which distribution you're using."
Things are slowly improving – systemd, for example, neutralises several differences between distributions so that a number of configuration tasks can now be completed in the same way on Arch Linux, Fedora, Mageia, openSUSE and other distributions. The influence of systemd has even seeped in to Ubuntu a little, although that distribution uses a different init system, Upstart. NetworkManager has also improved things quite a bit over the last few years, taking care of LAN settings in addition to standard WLAN configuration on many Linux distributions. The tool has replaced many distribution-specific ones and has led to a standardisation that has been sorely needed for some time now – Linux distributions are now better and simpler, which benefits new users in particular.
These advances are thanks to developers who realise that their software is part of a larger whole and make sure that their programs run well everywhere, even beyond the application area or distribution that the individual developer is interested in. That understanding is exactly what has made Linux what it is today. PC Unix systems have, on several occasions, conquered fields that the developers originally never dreamed of. Just think of the Linux kernel: the embedded and supercomputing worlds would almost certainly look very different today if Linus Torvalds had not bothered with architectures beyond the x86 machines he originally developed Linux for.