Most open source software runs on a wide variety of UNIX-like platforms. To make life much easier for software authors, and as a great incentive to write multi-platform software, the GNU Project created Autoconf, which makes it possible to easily compile and install software on a multitude of platforms -- or does it?
Well, it does a great job for compilation and also for installation if we install the software manually (eg., using make install). But considering that the majority of installations use comfortable package management tools, autoconf really covers only the first part of the needs. It does not address the problem of packaging the software for a wide variety of package management systems.
The number of package management systems is very large, and it is neither possible nor desirable to standardize on a single one. This means that a multi-platform program has to be packaged in many different package formats -- an enormous effort!
The similarity of compilation environments that autoconf relies on to address the multi-platform problem seems to be very similar to the similarity between various package formats: there are slightly different ways of achieving the same goal. (While it is true that different package management systems may differ in their functionality, the similarity is still there in all supported functional areas).
Let's look at the social cost of this. Assuming that packaging for different systems is really similar, an enormous amount of effort goes into doing highly similar tasks. This is a serious concern, since users are constantly faced with problems such as software that does not exist pre-packaged, or packages being out-of-date or lacking important security fixes.
I believe that a lot of valuable resources are wasted by this tremendous duplication of effort. Applying the open source philosophy of reusing and sharing to packaging could free resources that could be used to:
The solution to the problem seems to be to extend the autoconf approach to package systems. This requires providing the necessary tools, standards, and guidelines to software and/or package authors to enable a single source package to produce a wide variety of binary packages for the various platforms and packaging systems. Even for someone who wants to compile all software by hand, the consistency of a standardized source package makes this job much easier, faster, and less error-prone.
While there are some efforts in this direction, I believe they are too limited:
What should a potential project on universal source packages produce? The following list of components is not meant to be comprehensive or even thought through in detail; it is rather meant to give first ideas of what may be needed to achieve the goal:
While competition in the field of package management tools is unavoidable and perhaps even desirable, effort duplication during packaging seems undesirable and causes an unnecessary limitation of the availability of packaged open source software today. Just as autoconf addresses the multi-platform issue in the domain of the software author, source-level packaging seems to be best dealt with there.
It is the author's belief that the time is ripe to start working on a universal source package system. While the effort required for such a project is considerable, the enormous benefits it promises may make it well worth while.
Bud P. Bruegger (email@example.com) received a Ph.D. from the University of Maine in Geographic Information Systems in 1994. His company Sistema (www.sistema.it) develops information systems for customers such as FAO (www.fao.org). The idea of universal source packages grew out of a discussion about managing infrastructures (large clusters of computers of different UNIX flavors) on the mailing list of www.infrastructures.org.
We're eager to find people interested in writing editorials on software-related topics. We're flexible on length, style, and topic, so long as you know what you're talking about and back up your opinions with facts. Anyone who writes an editorial gets a freshmeat t-shirt from ThinkGeek in addition to 15 minutes of fame. If you think you'd like to try your hand at it, let firstname.lastname@example.org know what you'd like to write about.