Automatically Update Programs And Libraries.
Power And Flexibility Through Decentralized Control

Introduction to Luau

(This is copied verbatim from the Luau Whitepaper)

1. Preface

One of the mantras of the Open Source community is "Release Early, Release Often." This is often considered one of the central convictions of the "bazaar style" of software development. To quote Eric S. Raymond:

In the bazaar view, on the other hand, you assume that bugs are generally shallow phenomena — or, at least, that they turn shallow pretty quickly when exposed to a thousand eager co-developers pounding on every single new release. Accordingly you release often in order to get more corrections, and as a beneficial side effect you have less to lose if an occasional botch gets out the door.

There is, however, a downside to this development model.

When you install your brand-new Linux distribution, you're on the cutting edge. You've got thousands of packages, fresh from the presses, ready to serve your every need. But as times wears on and you explore the inner recesses of each of these thousands of packages, a problem arises — in your exploration, you discover the ever-dreaded presence of bugs. After all, no software release is perfect — even the Big Guys have to release patches every once in a while for their employees' minor bungles.

So what do you do? There's a couple solutions available to you:

  1. Live with it
  2. Whine about it
  3. See if a new version has been released that fixes it

What we're most interested in is option three. Certainly if konqueror stalls and spits out strange characters in a foreign character set every time you try to visit (which is, of course, your homepage, right?), you're going to go see if the problem is recognized and has been fixed — and let's say it has. But now there's another problem.

Konqueror relies on a total of 35 external libraries. While for this issue it's likely the bug is in konqueror itself or libkonq, any small bug in any of the 34 other libraries could conceivably bring Konqueror to a grinding halt. And if you're not the type to go source code spelunking, then you have but one choice: find and install the newest version of all 35 libraries. Oh yeah, plus Konqueror itself.

Of course, it's just good system administration in general to keep on top of all the latest software updates — or at least the ones that can affect your system's performance, stability, and security. The problem with trying to keep up with all the updates for all those thousands of packages your distribution installed has certainly been tackled before. Debian has apt. FreeBSD has the ports tree. Gentoo has a ports look-alike. And RedHat has the Red Hat Network. And these all work rather well for their purposes — but what I'm here to provide is an alternate solution.

2. Overview

The problem with distributor's providing access to all those new software updates is that, truthfully, even they can't keep up with all the latest. If you're not big into the cutting-edge, then apt's system works pretty well, for example — but if you want the latest and greatest, you're simply going to have to go to the source and download it yourself. Luau isn't designed so much for production status servers (in fact, I would highly recommend against it) where everything needs to work together perfectly — rather, it's designed for the enthusiast who wants instantaneous updates, straight from the source. It's for those of us who want to keep up with the latest developments for all our favorite software packages — and maybe some of the more mundane ones as well. In the end, it's for the home user, not the corporate user.

So finally, you ask, what is Luau? Luau is a system for retrieving software updates and status messages from package maintainers individually — that is, it gets the information straight from the source as opposed to a third party, such as Red Hat. Of course, there's a caveat to this — in order to get information directly from the source, the source has to provide some information (all you developers out there — it's really easy! Go skip down to the Developer's Guide and read the overview). So if the maintainer for your favorite software package doesn't support Luau and you want to use it, go bug her — she most likely simply hasn't heard about it.

Luau works through the use of a simple "updates" file that's publicly available (published by the software maintainer) and describes all the currently available updates to all current software releases. In general, this will simply consist of a list of all the currently available releases, though more complicated scenarios (along with the possibility to send messages and other goodies to the user-base) are also available. For more information on this, skip on down to the Developer's Guide.

3. Why Luau?

At this point, you may be asking why all this trouble to implement a solution to a problem that's already been solved by the likes of apt, RHN, and so on. As mentioned before, Luau is not meant to replace these systems unilaterally, but rather to supplement them. Both ways of working have their pros and cons, which I've tried to enumerate without bias (as if that were possible) below:

Pros Cons
Apt, RHN, ports, etc.
  • Software updates more likely to work with one another
  • More packages available (for the moment...)
  • Usually more stable software
  • Updates not as current
  • In some cases (RHN) is not free
  • Sometimes hard to convince to support lesser known packages
  • No personal connection with actual software developers
  • Provides not only software updates but also status messages
  • Instant updates as soon as the maintainer posts them
  • Decentralized, so you don't have to rely on only one source
  • Only the packages you care about are monitored
  • If you can only convince the maintainer to support Luau, any package you like will be supported
  • Software may be unstable, or may not work well together with other packages
  • Does not provide automatic dependency tracking and downloading (possible in future?)
  • Only available for packages for which "updates" files are provided for by the maintainer


Hosting by: Logo