The Aliens idea is really interesting and I was not aware of it previously.
I'm not sure how possible this is with Aliens (and the time available) but another example that might have a more wide ranging scope of interest for the audience could be Eclipse (Eclipse.org) as it incorporates it's own software installation system updating itself and it's own addons. I believe there is a recipe in the recipe database. Regards Rehan -----Original Message----- From: gobolinux-devel-boun...@lists.gobolinux.org [mailto:gobolinux-devel-boun...@lists.gobolinux.org] On Behalf Of Michael Homer Sent: 19 July 2009 06:16 To: gobolinux-devel@lists.gobolinux.org Subject: Re: [gobolinux-devel] Paper for linux.conf.au 2010 On Friday 03 July 2009 05:24:55 Hisham wrote: > On Thu, Jul 2, 2009 at 4:51 AM, Michael Homer<mich...@gobolinux.org> wrote: > > Hi all, > > Since linux.conf.au[1] falls on my doorstep next year I really don't have > > any excuse not to go, so I'm considering submitting a paper on GoboLinux. > > It'd be nice to drum up some exposure around here, and also to expand > > that "Academic Publications" section on the site. > > > > I've talked it over a little with Jonas already. I'm thinking the paper > > is best written as a collaboration, and then I will do the presentation > > in January. My concept at this point is a general overview of the system, > > how it works, and what it helps with, and I'd also like to cover > > /System/Aliens (which will hopefully be in a tools release by then) > > because it's just so very cool and unique. That could goose the odds of > > being accepted too. I'm open to other suggested content as well, but the > > presentation slot is only 45 minutes. > > > > The call for papers[2] closes 5pm July 24 my time[3]. We'd need to get > > together a title and abstract at least by then, though more always helps. > > Acceptances should come back some time in September, and the conference > > itself is 18-24 January next year. > > > > As well, anyone who's vaguely in the area and might be interested in > > making a trip I do encourage. The summer is great, and the conference > > ought to be interesting too. > > > > Let me know what you think. > > I think it's an excellent idea! > > A while ago I've talked to Lucas about trying to submit something > abroad (Freenix, perhaps) but we never got around to do it (first > because we were too involved doing actual work on Gobo, later because > we were too little involved, I guess...) but I think something like > this is a great way to get both exposure and some clear goals to the > project, as well (a number of GoboLinux releases were strongly > influenced by the FISL deadlines). Count on me to help any way I can. The abstract is due this coming Friday, though I intend to submit it a few days before. Here's a draft(-ish) for that, and also for the paper itself if it's accepted. It needs some cleaning up still. It will need a lot of fleshing out to be the paper, and a lot of trimming down to be the abstract (it's about twice as long as it should be for that now), but I'd like some feedback that, firstly, I'm on the right track in everything I describe there, and secondly on which parts you think should be kept or cut for the abstract. I've tried to include at least a mention of everything that would appear in the paper, but much of it is either too detailed for or probably doesn't belong at all in the abstract. So please do give that feedback. Include anything you think I've missed out too. There is a hacky proof-of-concept patch for LuaRocks integration in dependency resolution at http://mwh.geek.nz/files/gobo/aliens-poc.patch - against trunk, from a week ago but should still apply. Background ======== GoboLinux is a distribution using an alternative filesystem hierarchy intended to provide a more logical layout for programs and data. Each program is installed into its own separate, versioned directory, which also represents the package database - "the filesystem is the package manager". An automatically-maintained tree of symbolic links keeps the program contents accessible without overhead, while another set of fixed links maintains compatibility with the standard FHS. This set-up has three major implications: firstly, that the origin of any file in the system can be found simply by reading the link to discover its location - which mkpasswd will give /Programs/Whois/4.7.33/bin/mkpasswd, revealing it to be a part of Whois and the version thereof. In fact, any package management operation can be performed using only the standard POSIX tools. Secondly, multiple versions of a program may inherently be maintained in parallel. Where the files contained have distinct names, they may be fully active, as is the practical case for most libraries (so programs that link against specific versioned sonames may continue to do so). Where they do not - or at least some of them do not, as with many programs providing executables - it is possible both to switch between the versions with a single command and to call the executable of another version simply by providing its full path. Thirdly, it is possible to install programs that are not yet contained within the distribution packaging system manually, while still benefiting from all the advantages of the package management system. Unlike installing into other systems, this does not run the risk of interfering with the default package manager nor result in extra "orphan" files strewn across the system - the program tree can easily be removed later on in the usual fashion, avoiding the complications of maintaining extra programs in /usr/local. Aliens ====== While installing individual unpackaged programs is very simple in this system, installing from other independent systems of package management (such as LuaRocks, RubyGems, ...) remains as difficult as in other distributions. The individual components may all be packaged up and installed, but the packages will inevitably be out-of-date and many will remain unpackaged entirely. These third-party package managers are growing more widespread and more popular with authors with every passing day, often serving as the only form of publication for interpreted-language libraries. Because of this, users are tempted to install their own trees for these alien package systems - either built under /usr/local or worse, allowed to pollute the main tree, creating conflicts with the system package manager. Even when built in /usr/local integrating this often requires editing files installed by the distribution, making the installed package appear corrupt. In either case there is no integration between the alien system and that provided by the distribution - they are agnostic of each other's existence, and a distribution package requiring Ruby-GTK+ cannot have that dependency satisfied by a Ruby Gem. This leads users to be forced to choose between their distribution manager and the third-party system, to the detriment of both. The Aliens system was created to bridge this gap. A third-party ("alien") package management system can be incorporated in order to be fully integrated with the distribution's package management. This structure should be transferable to other distributions, and such transfer is encouraged. LuaRocks will be used as the example. It will be given full control of the tree under /System/Aliens/LuaRocks, to lay out and install software as it wishes. The user may manipulate this using the ordinary luarocks command, following instructions from the library author's website or elsewhere. The distribution's default Lua installation will be configured to include this in its ordinary library search (beyond the scope of this paper). This conveys all the advantages of a separate install in /usr/local, and does not restrict access to the underlying package manager at all - anything the user is accustomed to the luarocks command being able to do is still possible. However, a program within the system package manager may also depend on the presence of a Lua library available through LuaRocks. Previously this would require re-packaging the alien package for the system's native format, expressing the dependency in terms of that, and taking on the overhead of keeping the wrapping package up-to-date as new versions are released. Within the Aliens system, the program may instead express a dependency in the form of "LuaRocks:luajson >= 1.0", which instructs the system to have LuaRocks ensure that the dependency is met. >From the perspective of the distribution package manager, this requires only two hooks into the system: one at dependency resolution time, and one for installation. These hooks recognise the alien package by the colon in the dependency name (separating the name of the third-party system from the package within it), and know to dispatch further processing to the Aliens subsystem. The subsystem in turn uses a defined protocol to interface with wrappers for the third-party system. These wrappers may be either in the form of shell scripts wrapping the command-line tools or programs in the languages concerned accessing their databases directly. The entire Aliens subsystem is independent of the overlying distribution package manager and should be transferable into any other system, provided the hooks into dependency resolution and installation can be provided. It is hoped that this may be more widely applicable than just this distribution, and it does not depend on any of the filesystem or other changes included in it.
_______________________________________________ gobolinux-devel mailing list gobolinux-devel@lists.gobolinux.org http://lists.gobolinux.org/mailman/listinfo/gobolinux-devel