When I asked for ideas on what I should write about more, all the comments were from autopackage people asking me to write more about that. OK then. So be it.
## where are we now?
|
The good. We have a quality product. It usually works as it was intended to work, we have a well defined target audience and these people are always happy with our work. We have a huge well of evangelical support from some of these users, and it’s good to see. Autopackage always gets great reviews from the media. When it came to controversial issues we were bold, and we justified our decisions with rational debate and argument. We mastered then documented binary compatibility. High profile projects like AbiWord, Gaim and Inkscape use what we made already, others like Mozilla want to. These things are a personal achievement for every one of us, we should rightly be proud of them.
|
![]() |
The bad. Autopackage has not gained widespread acceptance as we had hoped it would. Few packages exist, fewer still are of high quality and frequently updated. Whilst a few big, well known projects do use autopackage, in some cases this is not what it seems – Gaim developers except marv seem to dislike the project, and have been entirely obstructive. The Gimp package is not maintained by Gimp developers, who seem to believe that binary distribution is not their problem at all. Meanwhile, distribution acceptance sits at zero. Any mention of autopackage at all on mainstream distribution developer lists triggers instant flamewar, which further alienates developers who may not have had a strong opinion on the topic. CodeWeavers, my own employer, do not use it.
|
![]() |
The ugly. Some distribution people, notably Debian developers, outright hate us or insult us. This is part of a wider theme of upstream/downstream tension. Debian is by far the worst here and deserves to be singled out – their packagers routinely anger high profile developers, and the practice of subtly breaking software continues unabated. When autopackage 1.0 was released and we got a lot of media attention, one Debian developer implied that they would deliberately add autopackage runtimes modified against our wishes to their repositories. This behaviour is unacceptable, but is the status quo and as such is not seriously challenged.
|
## how did we get here?
The good. A strong vision of easy to use software installation, commitment to that vision, and a team with diverse skills.
The bad. Inability to change the prevailing Linux community culture in which binary packages are Not Our Problem. Refusal to make it easier for non-programmers to produce autopackages (my refusal, basically).
The ugly. Various things have been suggested, everything from the /usr vs /usr/local issue being called wrong to skipping native package manager integration, but my personal belief is that this problem was inevitable and nothing we could have done to the product itself would have changed it. At a fundamental level, distribution packagers today have huge power and nobody likes to lose power. Period.
## where do we go from here?
At heart, this is a personal question. Its answer will be different for each one of us. Faced with the following facts, what can we do?
- Autopackage works well when used correctly
- Yet it has low acceptance
- Ideas for tackling this problem are thin on the ground
For now, I think the most important thing the project needs to do is just get 1.2 out of the door. It’s dragged on for a long time …. within a month or so, it’ll have been nearly a year (!!). This is mostly my fault, I’ve been absent and uninvolved for a long time now, mostly due to coursework loads which have taken away my hacking time, and partly due to waning interest. And of course Hongli and Curtis have been busy with university and preparing for a child (congratulations Curtis!).

After 1.2 is out there are various issues to consider.
- What should developer focus be on? Adding features like before, or on trying to tackle the causes of low acceptance?
- Is hostility towards non-upstream packagers hurting more than it helps? I still believe that the highest quality packages will come from the people making the software themselves, but a few times now (like trying to install mplayer a week ago) I found myself wishing for an autopackage, any autopackage would have done as long as it basically worked. But our literature and workflow is entirely oriented around the idea that upstream makes the packages. Concrete idea: redesign binary relocability to be independent of code changes by using a low level trick.
- Should I still be the maintainer? As you can see, I don’t really have the time or energy to push the project forward in the way it needs anymore. The obvious conclusion is that somebody else should be the leader. One thing I am certain of though is that at all times there must be one leader who has the final say. Letting things drift with no clear successor is not an option.
…. and perhaps the most important one …
- Does it make sense to make a new distro?
## a new distro?
Yes. Perhaps even a new OS entirely.
At some point, you have to take a step back and look at the bigger picture. You must ask yourself “why am I doing this?” and “is this is the best way to achieve my goals?”. When I started autopackage, I had many goals but the primary one was simply to make Linux easier to use by making software installation easier to use. That was the goal. It was a bit narrow, because it accepted that “making Linux easier to use” was the be-all and end-all, but at the time I was enamoured of the free software movement and this goal seemed to make total sense.
There were actually many ways to achieve this ideal, for instance I could have become a Debian packager and joined the never-ending push for a complete repository. Or I could have developed some mad hackz to try and make Linux binaries run whatever the source, a kind of super alien. But I decided that the best way forward was to produce a new kind of package, one that would be like a binary version of the source tarball, and which had as its primary focus usability (then a new word in my vocabulary).
Looking back, it is now clear that as of Feb 2006 it has failed to achieve the original goal. As a toolkit it doesn’t make anything easier by itself, it only provides the tools for others to make things easier. And generally others aren’t interested in that.
But times have changed and making Linux easier to use is no longer the be all and end all that it once was. What does making Linux easier achieve? What is the purpose? Beating Windows was once enough, but Apple managed to do this pretty conclusively and the bar since moved – beating Windows is no longer enough, now you must beat Apple too.
Stopping spyware was once enough, and this is why my blog has often focussed on that. But developing an entirely new OS and entirely new set of apps to go along side them seems like an inefficient solution. Linux and MacOS are currently totally undefended against spyware, and platform designs that seem to hold up like J2ME are so radically different to existing desktop models that it’s hard to imagine retro-fitting them onto Linux or Windows.
And of course, there is the original motivation behind GNU, that of existing in a world of only free software. A laudable aim, but one not in practice very compatible with reality. Whilst I could use only free software, that would be terribly inconvenient. I use the proprietary nVidia driver, the proprietary Flash player, I play proprietary games, my computer is powered by a proprietary BIOS and the circuitry inside my CPU is likewise proprietary. Putting up with inconvenience to use more free software (given that being 100% free is impossible) doesn’t always seem like a good trade.
There are clearly some goals that would be best served by creating a new distro. For instance, it would solve the problem of not having any distros support autopackage. It could solve other problems too, like no distro offering an easy (Windows-based) installer/uninstaller for the OS itself. But it’s tough to see how it could solve the cultural issues with the Linux community or the problem of binary kernel drivers.
Other ideas – shaking up the way software is managed on Linux is one possibility. For instance, union mounts change fundamental assumptions about namespace design, which haven’t really been explored yet. You could have software installed to individual prefixes in /software yet still appear to be mounted in /usr, partly solving the binary relocatability issue. You could go for the J2ME approach of totally sandboxed applications.
There are lots of potential routes for the project to explore. But I would shy away from simply adding new features as the roadmap originally implied.
Most importantly the goals and solutions must be carefully considered. So what is the goal? the solution? Good question. One I’ll leave for another time, I think.