<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>mwh.geek.nz &#187; aliens</title>
	<atom:link href="http://mwh.geek.nz/tag/aliens/feed/" rel="self" type="application/rss+xml" />
	<link>http://mwh.geek.nz</link>
	<description></description>
	<lastBuildDate>Sat, 29 May 2010 05:39:04 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>First talk over at linux.conf.au</title>
		<link>http://mwh.geek.nz/2010/01/18/first-talk-over-at-linux-conf-au/</link>
		<comments>http://mwh.geek.nz/2010/01/18/first-talk-over-at-linux-conf-au/#comments</comments>
		<pubDate>Mon, 18 Jan 2010 05:53:28 +0000</pubDate>
		<dc:creator>Michael</dc:creator>
				<category><![CDATA[GoboLinux]]></category>
		<category><![CDATA[LCA2010]]></category>
		<category><![CDATA[aliens]]></category>
		<category><![CDATA[Distro Summit]]></category>

		<guid isPermaLink="false">http://mwh.geek.nz/?p=176</guid>
		<description><![CDATA[I made my first presentation at linux.conf.au today, in the Distro Summit miniconf. I talked about the Aliens system, and it wasn&#8217;t a disaster, which is a plus. It went reasonably well, though I missed out on a couple of points I was planning to hit since I went off-script a bit. All the important [...]]]></description>
			<content:encoded><![CDATA[<p>I made my first presentation at <a href="http://www.lca2010.org.nz">linux.conf.au</a> today, in the <a href="http://distrosummit.org">Distro Summit</a> miniconf. I talked about the <a href="http://mwh.geek.nz/2009/07/23/an-overview-of-systemaliens/">Aliens system</a>, and it wasn&#8217;t a disaster, which is a plus. It went reasonably well, though I missed out on a couple of points I was planning to hit since I went off-script a bit. All the important content made it in, and there were plenty of good questions afterwards (&amp; during). The speaker immediately after me had travel problems and didn&#8217;t make it, so there was an extended discussion jumping off from my talk that I think covered a lot of useful territory. It was a good miniconf to be at.</p>
<p>I appreciated the copious power points around to keep the battery charged, and the wireless network I managed to get working today (except in the Civic Suite where the miniconf was, annoyingly [edit: and <a href="http://twitter.com/linuxconfau/status/7889135536">they've fixed it</a>! Amazing.]). Kudos to the organisers. The tech people from the conference were also fantastic helping me get the projection up and running, even though it was completely my fault it wasn&#8217;t working. He was, in fact, a genius full of information, like he said, so people got to see my fairly information-free slides. Thankfully I&#8217;d turned up early to make sure it was going to work.</p>
<p>Those <a href="http://mwh.geek.nz/files/gobo/lca2010/aliens-slides.pdf">slides are available</a> now, as is <a href="http://mwh.geek.nz/files/gobo/lca2010/aliens.pdf">a written-up version</a> of it that has more content than I was able to fit into the talk. I had to go through it with a hatchet last night and today to make it fit in the twenty-minute slot and some good parts had to go. Honesty dictated that I couldn&#8217;t leave out any of the limitations and drawbacks so it was mostly the rest that got the chop. The <a href="https://conf.linux.org.au/programme/schedule/view_talk/50181?day=friday">main talk</a> is on Friday, and there were a few points that came out of the discussion today that I&#8217;ll work into it as well. It turns out everything is being <a href="https://conf.linux.org.au/programme/schedule/video">webcast live</a>, which I didn&#8217;t find out until after I spoke today, but you can watch Friday&#8217;s if you like (Renouf 1 feed, 1545L/0245Z). There&#8217;ll be recordings up too, apparently later in the week, which&#8217;d be an impressive feat, but at some point over the next few weeks or months anyway.</p>
<p>Now I have to try to plan out what I&#8217;m going to go to tomorrow. It&#8217;s not going to be easy.</p>
]]></content:encoded>
			<wfw:commentRss>http://mwh.geek.nz/2010/01/18/first-talk-over-at-linux-conf-au/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Scripts 2.10.0 and Compile 1.13.0 released</title>
		<link>http://mwh.geek.nz/2009/12/28/scripts-2-10-0-and-compile-1-13-0-released/</link>
		<comments>http://mwh.geek.nz/2009/12/28/scripts-2-10-0-and-compile-1-13-0-released/#comments</comments>
		<pubDate>Mon, 28 Dec 2009 07:10:11 +0000</pubDate>
		<dc:creator>Michael</dc:creator>
				<category><![CDATA[GoboLinux]]></category>
		<category><![CDATA[aliens]]></category>

		<guid isPermaLink="false">http://mwh.geek.nz/?p=163</guid>
		<description><![CDATA[Another release, and a minor version bump for both tools. The major update in these releases is the inclusion of the /System/Aliens feature in both. There has also been a change in the default mirror configuration that you will need to update your GetAvailable.conf for. The /System/Aliens system incorporates third-party packaging systems into the system, [...]]]></description>
			<content:encoded><![CDATA[<p><!-- p, li { white-space: pre-wrap; } --><!--StartFragment-->Another release, and a minor version bump for both tools. The major update in these releases is the inclusion of the /System/Aliens feature in both. There has also been a change in the default mirror configuration that you will need to update your GetAvailable.conf for.</p>
<p>The <a href="http://mwh.geek.nz/2009/07/23/an-overview-of-systemaliens/">/System/Aliens system incorporates third-party packaging systems</a> into the system, allowing both recipes and packages to depend on components from these alien systems (<a href="http://docs.rubygems.org/">RubyGems</a>, <a href="http://www.cpan.org">CPAN</a>, and <a href="http://luarocks.org/">LuaRocks</a> at this point). Using these features will require building the newest versions of Ruby, Perl, and LuaRocks — if you aren&#8217;t using them, you don&#8217;t need to do that, and they should be installed automatically when required. Dependencies of the form &#8220;LuaRocks:json&#8221; are handed off to the alien system to install.</p>
<p>With the final release, <strong>these dependencies are now available for use in recipes</strong> in the store. Remember to specify compile_version=1.13.0 in any recipe using them. Contributions of new wrappers for other systems are also welcome.</p>
<p>Another important change here is in the default mirror configuration: <strong>gobo.calica.com has disappeared, and a new mirror has been added to replace it</strong>. If you are using kundor.org you don&#8217;t need to make any change, but otherwise you should swap in the new mirror in /System/Settings/Scripts/GetAvailable.conf.</p>
<p>UpdateSettings will prompt you about this change when you install the Scripts package. While the gobolinux.org package mirror is now the master it is not included in the configuration by default. The recipe store remains on gobolinux.org and there is no need to change your settings.</p>
<p>Other than those two important notes, there are also the usual bugfixes and minor feature improvements. There is support for more archive types in Compile (xz and cpio), a bugfix for Cabal recipes, and a few variables should now be correctly set in some more corner cases.</p>
<p>Many of the changes relate to improving functioning with the /System/Index structure that will be in 015, but most work on that is occurring in the &#8220;015&#8243; SVN branch. There will be another tools release in the new year (probably another minor version bump) that will incorporate all of those changes and be used in 015. There may also be a 2.10.1/1.13.1 point update early next month to address any issues found in these releases, but not merging the 015 branch.</p>
<p>You will be able to install using `InstallPackage Scripts 2.10.0` when the mirrors sync (assuming you&#8217;re not using calica.com), but until then you can use:</p>
<pre>InstallPackage <a href="http://gobolinux.org/packages/official/Scripts--2.10.0--i686.tar.bz2">http://gobolinux.org/packages/official/Scripts--2.10.0--i686.tar.bz2</a></pre>
<p>and</p>
<pre>InstallPackage <a href="http://gobolinux.org/packages/official/Compile--1.13.0--i686.tar.bz2">http://gobolinux.org/packages/official/Compile--1.13.0--i686.tar.bz2</a></pre>
<p>to update. Be sure to merge the changes in GetAvailable.conf when installing Scripts. Please report any bugs you encounter on <a href="http://bugs.gobolinux.org/">the bug tracker</a> and ask for help on the lists or the <a href="http://forum.gobolinux.org/">forum</a>.</p>
<p>Thanks to everybody who contributed code, bug reports, and feedback during this release cycle.</p>
<p><!--EndFragment--></p>
]]></content:encoded>
			<wfw:commentRss>http://mwh.geek.nz/2009/12/28/scripts-2-10-0-and-compile-1-13-0-released/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>An overview of /System/Aliens</title>
		<link>http://mwh.geek.nz/2009/07/23/an-overview-of-systemaliens/</link>
		<comments>http://mwh.geek.nz/2009/07/23/an-overview-of-systemaliens/#comments</comments>
		<pubDate>Thu, 23 Jul 2009 01:51:22 +0000</pubDate>
		<dc:creator>Michael</dc:creator>
				<category><![CDATA[GoboLinux]]></category>
		<category><![CDATA[aliens]]></category>
		<category><![CDATA[compile]]></category>

		<guid isPermaLink="false">http://mwh.geek.nz/?p=115</guid>
		<description><![CDATA[/System/Aliens is a new feature that will debut in the 015 era, helping with the integration of the growing number of third-party package managers into the system as a whole. It&#8217;s prompted a few questions lately from those who weren&#8217;t around in the dev meetings where it was hashed out, particularly once we decided to [...]]]></description>
			<content:encoded><![CDATA[<p>/System/Aliens is a new feature that will debut in the 015 era, helping with the integration of the growing number of third-party package managers into the system as a whole. It&#8217;s prompted a few questions lately from those who weren&#8217;t around in the dev meetings where it was hashed out, particularly once we decided to submit a paper on it for <a href="http://conf.linux.org.au/">linux.conf.au next year</a>. It&#8217;s a really great feature that deserves explanation, so I&#8217;ll try to give an overview here with less technical detail than the paper and more GoboLinux-specific information. I have a working implementation locally, and it will go into trunk as soon as the feature slush for 015 is lifted (hopefully, soon). It should be in a Scripts release shortly after that, and possibly on a CD by January.</p>
<p>The goal of the Aliens system is to pull these various systems under the umbrella of our package manager, so everything within them is automatically available and there&#8217;s no need for repackaging. There are a lot of these systems nowadays &#8211; as well as the venerable <a href="http://www.cpan.org/">CPAN</a>, <a href="http://rubygems.org/">RubyGems</a>, <a href="http://www.luarocks.org/">LuaRocks</a>, <a href="http://hackage.haskell.org/trac/hackage/">Haskell&#8217;s Hackage</a>, and myriad others are in play and growing in popularity. Often those are the <em>only</em> way libraries in their respective languages are published now. I can&#8217;t think how many times installation instructions have been &#8220;use <strong>gem install foo-bar</strong>&#8220;. Ultimately these systems (mostly) use standardised build and installation systems underneath, so we&#8217;ve been able to find the underlying tarball URL and create recipes for them, usually just the standard couple of lines. There&#8217;s an overhead in doing that though, and they inevitably get out-of-date. There are ways of automatically importing the entire tree and repackaging them up for the distribution, but they have their own complications and force everything to go through the distribution&#8217;s package manager, which can mask useful functionality the alien system provides.</p>
<p>The other temptation for users has been to go entirely over to the third-party system for those libraries, setting up their own tree either in /usr/local (in other distributions), or slightly more cleanly inside a /Programs entry here. Sometimes even over the top of distribution-provided files in /usr, which causes no end of conflicts later on. While at least it&#8217;s reversible and mildly clean inside a dedicated /Programs entry, it&#8217;s untidy and breaks dependency tracking. If a program depends on Ruby-GTK+, that will have to be wrapped in a distribution package and installed &#8211; even if it&#8217;s already around via RubyGems, and potentially conflicting with it. Aliens aims to avoid that.</p>
<p>When Aliens is around, alien packages can be installed in their ordinary way, using the familiar <strong>gem </strong>or <strong>luarocks </strong>or <strong>cabal </strong><strong>install &#8230; </strong>command, and any of the functionality usually provided by those systems can be accessed. All the advantages of a separate tree remain, in this case the entire tree under <strong>/System/Aliens/{RubyGems,LuaRocks,Cabal,CPAN,&#8230;}</strong> being given over to the alien package manager to deal with as it likes, and our standard configurations for those languages being set up to look in there as well. Better though, a dependency from a program in the system package manager can be satisfied via the alien system. If a program depends on Ruby-GTK, it need only declare &#8211; within its ordinary dependencies &#8211; that it requires &#8220;<strong>RubyGems:ruby-gtk &gt;= 2.10</strong>&#8221; and that will be satisfied on installation.</p>
<p>That&#8217;s achieved through just a couple of hooks into CheckDependencies and the installation tools. A dependency of the form <strong>Foo:Bar</strong> is recognised as one on package bar within the alien package manager Foo, and CheckDependencies will hand over to the Aliens subsystem to check that. If the dependency is satisfied, nothing more needs to happen. If not, it will remain in the dependency list and will be installed as soon as it is reached, using the alien package manager.</p>
<p>Each alien system supported will have a simple wrapper layer, using a defined protocol for answering queries and receiving commands. This wrapper protocol is simple and extensible so that adding new supported systems in the future will be easy. Some systems may not support all of the functionality Aliens can make use of &#8211; they will simply miss that feature, rather than being fully incompatible. At the simplest, a system need only support checking whether something is installed, and installing it.</p>
<p>Dependencies in the other direction, as from Ruby-GTK+ to GTK+ itself, may be handled one of two ways. Firstly, by defining a mapping of such dependencies as part of the Aliens system: this is not an enormous bother, since it need only be done the once for those items actually depended upon, but it is some. Alternatively, the system dependency may simply be specified before the alien one. If other distributions implemented this system (as we&#8217;d hope they might), they might prefer one way or the other of those two. We will probably begin with the second and move towards the first as a simpler migration path.</p>
<p>While I&#8217;ve made it sound pretty simple, there are a few technical complexities under the rug that are wrapped up by the Aliens subsystem. From a user level though, they get to rely on the distribution not duplicating or conflicting with their installation, while still having the full range of packages available to them. Users who move between distributions, or to *BSD, Mac OS X, or Windows, may also prefer to have the familiar language-specific interface available to them. If they don&#8217;t want to know about it, they won&#8217;t ever have to see it or notice it exists. For recipe authors, it&#8217;s many fewer dependencies they&#8217;ll run across and have to wrap up just to get an application up and running. For the developers (who are also in the first two categories), it&#8217;s another world-class feature that makes our lives easier by removing the need for coding so many special cases. For the developers of the packaging systems themselves, Aliens aims to embrace rather than extinguish their works, putting their domain-specific knowledge to work in providing the best way to install software in that language. And for authors of libraries, it lets them publish their creations the way they want, with a functional and consistent installation experience for end-users.</p>
<p>If there&#8217;s something I missed or didn&#8217;t cover, or you have any questions, comments, suggestions, post a comment, mail the list, or grab me on #gobolinux on Freenode (mwh).</p>
]]></content:encoded>
			<wfw:commentRss>http://mwh.geek.nz/2009/07/23/an-overview-of-systemaliens/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>
