MOAMCACM Github   Software   Music

Linux Wants To Be Free

Why that's a problem, and who's doing what to solve it

by Nathan Krantz-Fire

Sunday, June 28, 2015

Note: This post assumes that the user wants to run proprietary software on Linux, as many, although definitely not all, Linux users do. The merit of the idea in the first place is the subject for a different blog post.

      In my last post, I wrote about problems with consumer open source software. However, regardless of the quality of their open source programs, one would still expect Linux-based systems to be usable with proprietary components, if only the companies that made said components ported them to Linux. Increasingly, we see them doing this, but they, and we, run into problems due to the open and gratis-oriented design of Linux and its counterparts.

      If you run any Linux distribution not related to Ubuntu, and try to run proprietary and/or paid software on it, you have probably experienced some frustration. Developers, when they first port to Linux-based systems, build their software to run on Ubuntu and other Debian-based distributions. On good days, they will sometimes port to RPM distros. The Linux user base, on the other hand, wants to use more than just Ubuntu and Red Hat.

      The Linux “distro” model has no problem with distributing gratis, open source software. In this case, users eventually port the software to other distributions, since the license permits it, and they do not have to worry about collecting money. This works when people only use software that uses an open license and has no cost.

      Problems occur when proprietary developers try to offer software for the platform. Closed source software, for the most part, does not permit customers to re-package it, and the company at the center of it does not have time to distribute the software to less-popular distributions, causing it to stay in the Red Hat-Ubuntu zone, with sometimes some questionably-legal ports to other distros.

      The standard package managers do not make it any easier. Users want, and expect, to be able to install software by typing packagemanager install package, but since most package managers work primarily with unauthenticated file transfers, this standard assumes that the developer has made the software available publically, and therefore free of charge. Other platforms do not have this problem. Some, like iOS, have an official app store that accepts both free and paid apps. Others, like many J2ME-based platforms, have no serious app store, but use an easily-executable app file format. Some, like Mac OS X and Windows, do both. Linux, on the other hand, does neither*, and instead relies on an internally-sourced package management system meant for free-of-charge, freely distributable tools. This makes Linux Package Managers a big roadblock for a proprietary and/or paid cross-platform software developer.

      So, what can we do to solve this? So far, SUSE, Valve, and Canonical have taken the largest steps in the area, via the Open Build Service, Steam on Linux, and the Ubuntu Software Center, respectively.

      Valve and Canonical have both created integrated stores for Linux software, and both stores accept paid apps, making the payment issue less of a hindrance. However, these stores often have specialized purposes. Valve built Steam primarily for games (although they have since extended it to cover other types of software), and the Ubuntu Software Center only runs on Ubuntu and a few derivative distributions. If we want to make progress with proprietary software on Linux, then we need to de-specialize stores like these, making them available for (and welcoming to) all types of software and distributions.

      SUSE, on the other hand, has tackled the problem of distro fragmentation. They built the Open Build Service, which allows developers to build and package their software for various different distributions. Despite the intention of this service’s use for open source software, SUSE has released the source code for the underlying platform itself. This means that developers can set up their own instances, modifying the platform as necessary, to distribute proprietary software.

      That said, in order to fully embrace proprietary software, Linux users have to realize one more thing: It will not always be beautifully packaged. Developers that have experience coding for other operating systems want to keep the freedom of setting up their own, ugly, proprietary installers, and not sticking to packaging guidelines. If Linux users want proprietary software, they have to take the whole package: non-standardized installers and uninstallers, separate help systems, a lack of complete system integration into every possible custom configuration, etc. This understanding from the users, more than anything else, allows software developers to distribute their software effectively.

* Some Linux distributions, such as Ubuntu, have software stores. However, these lack standardization and wide acceptance, and work exclusively on one distribution (plus derivatives). Others have somewhat-convenient formats, such as .deb and .rpm, but these, again, lack standardization, and also tend to cause more hiccups than the .app files from Mac OS or the .exe files from Windows.

Edited July 29, 2015 to add notice at the top.