I used to think that Linux is going to be a niche OS because of its open source nature. With software freedom, you can create an ecosystem of developers and niche users. That is going to happen in years to come but at least, distros are getting more user-friendly. Case in point: application installation. With a myriad of package management systems being adopted by distros, installing apps on Linux is no walk in a park. End users aren’t interested in libraries, dependencies, compatibility, and other technical details. Users only care about screenshots, basic descriptions, ratings, user reviews, and such (Karlitschek). For non-technical folks, this is going to be a major issue. And that is the side of users.
For developers, the scenario is this:
You want to create cool Free Software and get the result out to millions of users.
Unfortunately, to get the code to users you need to do more than just the fun stuff. After you have written your application, you have to compile and package it for all operating systems you want to support. There is a wide variety of Linux distributions, and, of course, Windows and Mac too.
Once you’ve built and packaged your software, you have to create a web site with information about the application, along with features such as commenting and bug reporting.
Promotion comes next with social networking and conferences. Then you try to get it into distributions.
Once the distributions ship your application, users turn up and start giving feedback, resulting in changes to the application. A new version is released, and you have to start all over again with the boring stuff.
The problem is a three-headed beast:
- Make it easy for developers to release an application.
- Make it easy for developers to market and for users to learn about that application.
- Make it easy for users to install the application.
Enter Project Bretzn.
Project Bretzn consists of three parts: building the package, publishing the application, marketing to users and providing feedback to the developer. The building part consists of plugins for IDEs and integration with Build Services and using Lubos Lunak’s OBS (openSUSE Build Service) Generator to generate cross-platform build files automatically. Publishing sends the app to a variety of App Stores, and markets it with announcements on Facebook, Status.net compatible services such as Identi.ca, Twitter, an RSS feed and the Social Desktop. Users provide feedback by rating the application and commenting on it, by writing bug reports and sending messages to mailing lists or forums. All with one click (well, maybe a few more).
But there’s one issue. How do you go about the differences in package management systems and approaches of different distros?
Frank Karlitschek may have the answer:
…people from all major Linux distributions on one table to discuss ways to work together to build a common application installer API and infrastructure. Developers from RedHat, Fedora, Debian, Ubuntu, openSUSE, Mandriva and Mageia met and discussed ways to make this happen. After 2 and a half days we all agreed on an architecture and we will work in the next few month to bring this to all majors distributions. I´m happy that OCS was chosen as the standard API to access App Store Servers.
OStatic summed it best:
The significant difference between FatELF and AppStream is that FatELF was to include all the files needed for a universal package while AppStream compiles only the metadata needed to populate a universal installer. This can then be the main or only graphical package manager of most distributions if desired replacing (or in addition to), for example, Synaptic or Mandriva’s RPMDrake.
The main goal would be to have a unified software experience for Linux as a whole, or in the words of the AppStream team, “to make installing and removing software on Linux suck less.”
Translation: In the future, if your favorite distro will support it, there’ll be one user interface that will take care of installing apps in Linux without the user knowing about the underlying package format, the CPU it will run under and other technical details. You just click, click and click. And the problems outlined above will be addressed in one seamless fashion. There’ll be one system for developers to build, publish and distribute their apps, and the same system for end-users to give their feedback. The circle is complete! Now, all we have to do is wait but contributions are more than welcome.