<?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>Stéphane Graber&#039;s website &#187; Planet Ubuntu</title>
	<atom:link href="http://www.stgraber.org/category/planet-ubuntu/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.stgraber.org</link>
	<description></description>
	<lastBuildDate>Fri, 03 Feb 2012 18:28:53 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Ever wanted an armhf container on your x86 machine? It&#8217;s now possible with LXC in Ubuntu Precise</title>
		<link>http://www.stgraber.org/2012/02/03/ever-wanted-an-armel-or-armhf-container-on-an-x86-machine-its-now-possible-with-lxc-in-ubuntu-precise/</link>
		<comments>http://www.stgraber.org/2012/02/03/ever-wanted-an-armel-or-armhf-container-on-an-x86-machine-its-now-possible-with-lxc-in-ubuntu-precise/#comments</comments>
		<pubDate>Fri, 03 Feb 2012 18:26:30 +0000</pubDate>
		<dc:creator>Stéphane Graber</dc:creator>
				<category><![CDATA[Canonical voices]]></category>
		<category><![CDATA[LXC]]></category>
		<category><![CDATA[Planet Ubuntu]]></category>

		<guid isPermaLink="false">http://www.stgraber.org/?p=342</guid>
		<description><![CDATA[It took a while to get some apt resolver bugs fixed, a few packages marked for multi-arch and some changes in the Ubuntu LXC template, but since yesterday, you can now run (using up to date Precise): sudo apt-get install &#8230; <a class="more-link" href="http://www.stgraber.org/2012/02/03/ever-wanted-an-armel-or-armhf-container-on-an-x86-machine-its-now-possible-with-lxc-in-ubuntu-precise/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>It took a while to get some apt resolver bugs fixed, a few packages marked for multi-arch and some changes in the Ubuntu LXC template, but since yesterday, you can now run (using up to date Precise):</p>
<ul>
<li>sudo apt-get install lxc qemu-user-static</li>
<li>sudo lxc-create -n armhf01 -t ubuntu &#8212; -a armhf -r precise</li>
<li>sudo lxc-start -n armhf01</li>
<li>Then login with root as both login and password</li>
</ul>
<p>And enjoy an armhf system running on your good old x86 machine.</p>
<p>Now, obviously it&#8217;s pretty far from what you&#8217;d get on real ARM hardware.<br />
It&#8217;s using qemu&#8217;s user space CPU emulation (qemu-user-static), so won&#8217;t be particularly fast, will likely use a lot of CPU and may give results pretty different from what you&#8217;d expect on real hardware.</p>
<p>Also, because of limitations in qemu-user-static, a few packages from the &#8220;host&#8221; architecture are installed in the container. These are mostly anything that requires the use of ptrace (upstart) or the use of netlink (mountall, iproute and isc-dhcp-client).<br />
This is the bare minimum I needed to install to get the rest of the container to work using armhf binaries. I obviously didn&#8217;t test everything and I&#8217;m sure quite a few other packages will fail in such environment.</p>
<p>This feature should be used as an improvement on top of a regular armhf chroot using qemu-user-static and not as a replacement for actual ARM hardware (obviously), but it&#8217;s cool to have around and nice to show what LXC can do.</p>
<p>I confirmed it to work for armhf and armel, powerpc should also work, though it didn&#8217;t succeed to debootstrap when I tried it earlier today.</p>
<p>Enjoy!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.stgraber.org/2012/02/03/ever-wanted-an-armel-or-armhf-container-on-an-x86-machine-its-now-possible-with-lxc-in-ubuntu-precise/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Networking in Ubuntu 12.04 LTS</title>
		<link>http://www.stgraber.org/2012/01/04/networking-in-ubuntu-12-04-lts/</link>
		<comments>http://www.stgraber.org/2012/01/04/networking-in-ubuntu-12-04-lts/#comments</comments>
		<pubDate>Wed, 04 Jan 2012 12:40:07 +0000</pubDate>
		<dc:creator>Stéphane Graber</dc:creator>
				<category><![CDATA[Canonical voices]]></category>
		<category><![CDATA[IPv6]]></category>
		<category><![CDATA[LXC]]></category>
		<category><![CDATA[Planet Ubuntu]]></category>

		<guid isPermaLink="false">http://www.stgraber.org/?p=306</guid>
		<description><![CDATA[One of my focus for this cycle is to get Ubuntu&#8217;s support for complex networking working in a predictable way. The idea was to review exactly what&#8217;s happening at boot time, get a list of possible scenario that are used &#8230; <a class="more-link" href="http://www.stgraber.org/2012/01/04/networking-in-ubuntu-12-04-lts/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>One of my focus for this cycle is to get Ubuntu&#8217;s support for complex networking working in a predictable way. The idea was to review exactly what&#8217;s happening at boot time, get a list of possible scenario that are used on servers in corporate environment and make sure these always work.</p>
<h1>Bonding</h1>
<p>Bonding basically means aggregating multiple physical link into one virtual link for high availability and load balancing. There are <a title="Kernel bonding documentation" href="http://www.kernel.org/doc/Documentation/networking/bonding.txt" target="_blank">different ways</a> of setting up such a link though the industry standard is <a title="LACP on wikipedia" href="http://en.wikipedia.org/wiki/Link_aggregation" target="_blank">802.3ad (LACP &#8211; Link Aggregation Control Protocol)</a>. In that mode your server will negotiate with your switch to establish an aggregate link, then send monitoring packets to detect failure. LACP also does load balancing (MAC, IP and protocol based depending on hardware support).</p>
<p>One problem we had since at least Ubuntu 10.04 LTS is that Ubuntu&#8217;s boot sequence is event based, including bringing up network interfaces. The good old &#8220;ifup -a&#8221; is only done at the end of the boot sequence to try and fix anything that wasn&#8217;t brought up through events.</p>
<p>Unfortunately that meant that if your server takes a long time to detect the hardware, your bond would be initialised before the network cards have been detected, giving you a bond0 without a MAC address, making DHCP queries fail in pretty weird ways and making bridging or tagging fail with &#8220;Operation not permitted&#8221;.<br />
As that all depends on hardware detection timing, it was racy, giving you random results at boot time.</p>
<p>Thankfully that should now be all fixed in 12.04, the new ifenslave-2.6 I uploaded a few weeks ago now initialises the bond whenever the first slave appears. If no slave appeared by the time we get to the catch-all &#8220;ifup -a&#8221;, it&#8217;ll simply wait for up to an additional minute for a slave to appear before giving up and continuing the boot sequence.<br />
To avoid another common race condition where a bridge is brought up with a bond as one of its members before the bond is ready, ifenslave will now detect a bond is part of a bridge and add it only once ready.</p>
<h1>Tagging</h1>
<p>Another pretty common thing on corporate networks is the use of <a title="VLAN on wikipedia" href="http://en.wikipedia.org/wiki/Virtual_LAN" target="_blank">VLANs (802.1q)</a>, letting you create up to 4096 virtual networks on one link.<br />
In the past, Ubuntu would rely on the catch all &#8220;ifup -a&#8221; to create any required vlan interface, once again, that&#8217;s a problem when an interface that depends on that vlan interface is initialised before the vlan interface is created.</p>
<p>To fix that, Ubuntu 12.04&#8242;s vlan package now ships with a udev rule that triggers the creation of the vlan interface whenever its parent interface is created.</p>
<h1>Bridging</h1>
<p>Bridging on Linux can be seen as creating a virtual switch on your system (including STP support).</p>
<p>Bridges have been working pretty well for a while on Ubuntu as we&#8217;ve been shipping a udev rule similar to the one for vlans for a few releases already. Members are simply added to the bridge as they appear on the system. The changes to ifenslave and the vlan package make sure that even bond interfaces with VLANs get properly added to bridges.</p>
<h1>Complex network configuration example</h1>
<p>My current test setup for networking on Ubuntu 12.04 is actually something I&#8217;ve been using on my network for years.</p>
<p>As you may know, I&#8217;m also working on <a title="LXC on sourceforge" href="http://lxc.sourceforge.net/" target="_blank">LXC (Linux Containers)</a>, so my servers usually run somewhere between 15 and 80 containers, each of these container has a virtual ethernet interface that&#8217;s bridged.<br />
I have one bridge per network zone, each of these network zone being a separate VLAN. These VLANs are created on top of a two gigabit link bond.</p>
<p>At boot time, the following happens (roughly):</p>
<ol>
<li>One of the two network interfaces appear</li>
<li>The bond is initialised and the first interface is enslaved</li>
<li>This triggers the creation of all the VLAN interfaces</li>
<li>Creating the VLAN interfaces triggers the creation of all the bridges</li>
<li>All the VLAN interfaces are added to their respective bridge</li>
<li>The other network interface appear and gets added to the bond</li>
</ol>
<p>My /etc/network/interfaces can be found here:<br />
<a title="Complex /etc/network/interfaces" href="http://www.stgraber.org/download/complex-interfaces" target="_blank">http://www.stgraber.org/download/complex-interfaces</a></p>
<p>This contains the very strict minimum needed for LACP to work. One thing worth noting is that <strong>the two physical interfaces are listed before bond0</strong>, this is to ensure that even if the events don&#8217;t work and we have to rely on the fallback &#8220;ifup -a&#8221;, the interfaces will be initialised in the right order avoiding the 60s delay.</p>
<p>Please note that this example will only reliably work with Ubuntu Precise (to become 12.04 LTS). It&#8217;s still a correct configuration for previous releases but race conditions may give you a random result.</p>
<p>I&#8217;ll be trying to push these changes to Ubuntu 11.10 as they are pretty easy to backport there, however it&#8217;d be much harder and very likely dangerous to backport these to even older releases.<br />
For these, the only recommendation I can give is to add some &#8220;pre-up sleep 5&#8243; or similar to your bridges and vlan interfaces to make sure whatever interface they depend on exists and is ready by the time the &#8220;ifup -a&#8221; call is reached.</p>
<h1>IPv6</h1>
<p>Another interesting topic for 12.04 is <a title="IPv6 on wikipedia" href="http://en.wikipedia.org/wiki/IPv6" target="_blank">IPv6</a>, as a release that&#8217;ll be supported for 5 years on both servers and desktops, it&#8217;s important to get IPv6 right.</p>
<p>Ubuntu 12.04 LTS will be the first Ubuntu release shipping with IPv6 private extensions turned on by default. Ubuntu 11.10 <a title="Blog post on IPv6 in Ubuntu 11.10" href="http://www.stgraber.org/2011/07/26/state-of-ipv6-in-ubuntu-oneiric/">already brought most of what&#8217;s needed for IPv6 support </a>on the desktop and in the installer, supporting <a title="SLAAC on wikipedia" href="http://en.wikipedia.org/wiki/IPv6#Stateless_address_autoconfiguration" target="_blank">SLAAC (stateless autoconfiguration)</a>, stateless <a title="DHCPv6 on wikipedia" href="http://en.wikipedia.org/wiki/DHCPv6" target="_blank">DHCPv6</a> and stateful DHCPv6.</p>
<p>Once we get a new ifupdown in Ubuntu Precise, we&#8217;ll have full support for IPv6 also for people that aren&#8217;t using Network Manager (mostly servers) which should at this point give us support for any IPv6 setup you may find.</p>
<p>The userspace has been working pretty well with IPv6 for years. I recently made my whole network dual-stack and now have all my servers and services defaulting to IPv6 for a total of 40% of my network traffic (roughly 1.5TB a month of IPv6 traffic). The only user space related problem I noticed is the lack of IPv6 support in Nagios&#8217; nrpe plugin, meaning I can&#8217;t start converting servers to single stack IPv6 as I&#8217;d loose monitoring &#8230;</p>
<p>I also wrote a python script using pypcap to give me the percentage of ipv6 and ipv4 traffic going through a given interface, the script can be found here: <a title="IPv6 stats" href="http://www.stgraber.org/download/v6stats.py" target="_blank">http://www.stgraber.org/download/v6stats.py</a> (start with: python v6stats.py eth0)</p>
<h1>What now ?</h1>
<p>At this point, I think Ubuntu Precise is pretty much ready as far as networking is concerned. The only remaining change is the new ifupdown and the small installer change that comes with it for DHCPv6 support.</p>
<p>If you have a spare machine or VM, now is the time to grab a recent build of Ubuntu Precise and make sure whatever network configuration you use in production works reliably for you and that any hack you needed in the past can now be dropped.<br />
If your configuration doesn&#8217;t work at all or fails randomly, please file a bug so we can have a look at your configuration and fix any bug (or documentation).</p>
]]></content:encoded>
			<wfw:commentRss>http://www.stgraber.org/2012/01/04/networking-in-ubuntu-12-04-lts/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>Using Arkose for development and packaging</title>
		<link>http://www.stgraber.org/2011/09/25/using-arkose-for-development-and-packaging/</link>
		<comments>http://www.stgraber.org/2011/09/25/using-arkose-for-development-and-packaging/#comments</comments>
		<pubDate>Mon, 26 Sep 2011 00:28:37 +0000</pubDate>
		<dc:creator>Stéphane Graber</dc:creator>
				<category><![CDATA[Arkose]]></category>
		<category><![CDATA[Canonical voices]]></category>
		<category><![CDATA[LXC]]></category>
		<category><![CDATA[Planet Ubuntu]]></category>

		<guid isPermaLink="false">http://www.stgraber.org/?p=291</guid>
		<description><![CDATA[Since I last reinstalled my laptop, I try to keep my usually insanely long list of installed packages to a bare minimum. I&#8217;d usually have hundreds if not thousands of libraries and development packages as these are required by a &#8230; <a class="more-link" href="http://www.stgraber.org/2011/09/25/using-arkose-for-development-and-packaging/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Since I last reinstalled my laptop, I try to keep my usually insanely long list of installed packages to a bare minimum. I&#8217;d usually have hundreds if not thousands of libraries and development packages as these are required by a bunch of packages I maintain or code I work on.</p>
<p>To achieve this and still be as productive as before (if not more), I&#8217;m using <a title="Arkose on Launchpad" href="https://launchpad.net/arkose" target="_blank">arkose</a> quite a lot to generate temporary dev/build environment that are wiped as soon as I close the shell.<br />
This helps maintain the number of extra libraries to a minimum, avoiding situations where something mysteriously works fine on my laptop but not on another machine and avoids the maintenance needed when dealing with chroots.</p>
<p><a href="http://www.stgraber.org/download/images/arkose-terminal.png"><img src="/download/images/arkose-terminal.png" width="500" alt="Arkose used to install libdbus-1-dev" /></a></p>
<p>An example of this is when I&#8217;m working on ubiquity (the Ubuntu graphical installer).<br />
Ubiquity depends on quite a few libraries and development packages that are required even if you just want to build its source package.</p>
<p>So having arkose installed on my system, I usually start working on a bug with:</p>
<p><code>sudo arkose -n -h -c "cd $PWD; $SHELL"</code></p>
<p>You can make that an alias if you use it quite often. At this point, you&#8217;ll see your shell showing a different hostname, like &#8220;arkose-tmpaF9yqa&#8221;, that&#8217;s how you know you&#8217;re in a container.<br />
The command above creates a new container using copy-on-write for all the file system but your home directory and lets the container access the network without any restriction.</p>
<p>I then install all the packages I&#8217;ll need to work</p>
<p><code>sudo apt-get build-dep ubiquity</code></p>
<p>Then work as usual in that container, run debuild, dput, &#8230; everything should work as usual as it has direct access to my home directory.</p>
<p>Once I&#8217;m done and I don&#8217;t need all these packages anymore, I just exit that shell and all the changes done outside of /home will be lost.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.stgraber.org/2011/09/25/using-arkose-for-development-and-packaging/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Install multiple version of the same package and avoid filesystem conflicts</title>
		<link>http://www.stgraber.org/2011/09/08/install-multiple-version-of-the-same-package-and-avoid-filesystem-conflicts/</link>
		<comments>http://www.stgraber.org/2011/09/08/install-multiple-version-of-the-same-package-and-avoid-filesystem-conflicts/#comments</comments>
		<pubDate>Fri, 09 Sep 2011 01:44:21 +0000</pubDate>
		<dc:creator>Stéphane Graber</dc:creator>
				<category><![CDATA[Canonical voices]]></category>
		<category><![CDATA[Planet Ubuntu]]></category>

		<guid isPermaLink="false">http://www.stgraber.org/?p=279</guid>
		<description><![CDATA[One common problem with installing out-of-distro packages is that you can&#8217;t really be sure they won&#8217;t mess with your existing system. Most common problems include having them replace existing files or add plugins that you don&#8217;t really want or that &#8230; <a class="more-link" href="http://www.stgraber.org/2011/09/08/install-multiple-version-of-the-same-package-and-avoid-filesystem-conflicts/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>One common problem with installing out-of-distro packages is that you can&#8217;t really be sure they won&#8217;t mess with your existing system. Most common problems include having them replace existing files or add plugins that you don&#8217;t really want or that will end up crashing other applications.</p>
<p>There&#8217;s also the case where you may want to get the all new and shiny version of a software but still keep the old version around as some other users may prefer it or other software may depend on it. The current way of doing that is by spending quite a bit of time packaging the version to avoid any filesystem conflicts, this works but is usually quite painful to do.</p>
<p>So a few weeks ago I quickly hacked together a debhelper script called <strong>dh_ubuntuarb</strong> that runs at the end of the package build process and moves all the content to /opt/extras.ubuntu.com/&lt;package name&gt; except for .desktop entries that are renamed to be arb-&lt;package name&gt;-&lt;original name&gt; and altered to run using &#8220;arb-wrapper&#8221;.</p>
<p><strong>arb-wrapper</strong> uses an overlay fuse filesystem to create a view where the content of the package is stacked on top your root filesystem, it then uses fakechroot to make the app believe it&#8217;s running in /.</p>
<p>The software and the user shouldn&#8217;t notice any difference and doing that solves the whole file system conflicts and allows you to run as many version of the package as you want (it just needs to have a different name). This is particularly handy for automated packaging where you don&#8217;t want to spend too much time reviewing the packages and for cases where you want to run multiple version of the same package.</p>
<p>This code is very much proof of concept and might be extended and uploaded to the archive for Ubuntu 12.04. For now it can be tested in a PPA: <a title="stgraber's arb-testing PPA" href="https://launchpad.net/~stgraber/+archive/arb-testing" target="_blank">https://launchpad.net/~stgraber/+archive/arb-testing</a></p>
<p>Below is an example using &#8220;lightyears&#8221; from the arb-testing PPA:<br />
<code># Build lightyear with dh_ubuntuarb and installed it on my system<br />
# then created an empty /tmp/test directory<br />
stgraber@castiana:~$ ls /tmp/test<br />
stgraber@castiana:~$ which lightyears</code></p>
<p><code># Now starting the overlay of my / and /opt/extras.ubuntu.com/lightyears/<br />
stgraber@castiana:~$ arb-wrapper lightyears bash</code></p>
<p><code># Checking that lightyears is indeed accessible now<br />
stgraber@castiana:/$ which lightyears<br />
/usr/games/lightyears</code></p>
<p><code># Creating some data<br />
stgraber@castiana:/$ touch /tmp/test/me</code></p>
<p><code># Exiting the environment<br />
stgraber@castiana:/$ exit</code></p>
<p><code># And the file is still there<br />
stgraber@castiana:~$ ls /tmp/test/me<br />
/tmp/test/me</code></p>
<p>Installing the &#8220;lightyears&#8221; package from that PPA will add a desktop entry called arb-lightyears_lightyears.desktop in /usr/share/applications and that&#8217;s the only change that will happen outside of /opt/extras.ubuntu.com/lightyears. This software will appear in your menu as usual and when you click on it will use the arb-wrapper to start just as you&#8217;d expect it to.</p>
<p>I&#8217;m very much interested in hearing ideas of possible use cases for that kind of things in Ubuntu and hope to be able to discuss it more in Orlando at the next UDS.<br />
I think we should be able to get some pretty exciting things going using that kind of tools and containers like <a title="Arkose on Launchpad" href="https://launchpad.net/arkose" target="_blank">arkose</a> provides.</p>
<p><strong>UPDATE:</strong> The &#8220;arb&#8221; in the script names stands for the <a title="Ubuntu Application Review Board on the Ubuntu wiki" href="https://wiki.ubuntu.com/AppReviewBoard" target="_blank">Ubuntu App Review Board</a> which was the initial reason for doing that work as an easy way of getting a package to match our packaging requirements.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.stgraber.org/2011/09/08/install-multiple-version-of-the-same-package-and-avoid-filesystem-conflicts/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Help translate Edubuntu 11.10</title>
		<link>http://www.stgraber.org/2011/09/06/help-translate-edubuntu-11-10/</link>
		<comments>http://www.stgraber.org/2011/09/06/help-translate-edubuntu-11-10/#comments</comments>
		<pubDate>Tue, 06 Sep 2011 18:55:16 +0000</pubDate>
		<dc:creator>Stéphane Graber</dc:creator>
				<category><![CDATA[Canonical voices]]></category>
		<category><![CDATA[Edubuntu]]></category>
		<category><![CDATA[Planet Ubuntu]]></category>

		<guid isPermaLink="false">http://www.stgraber.org/?p=275</guid>
		<description><![CDATA[Now that the release of (Edu&#124;Ku&#124;Lu&#124;Myth&#124;Xu&#124;U)buntu is just a month or so away and all the UIs aren&#8217;t supposed to change till release, it&#8217;s time to help making sure everything is translated. One of my goals for Edubuntu 11.10 was &#8230; <a class="more-link" href="http://www.stgraber.org/2011/09/06/help-translate-edubuntu-11-10/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Now that the release of (Edu|Ku|Lu|Myth|Xu|U)buntu is just a month or so away and all the UIs aren&#8217;t supposed to change till release, it&#8217;s time to help making sure everything is translated.</p>
<p>One of my goals for Edubuntu 11.10 was to have all our custom components (installer steps, LTSP, Arkose, &#8230;) supporting translations as early as possible so people can just boot our DVD and get a fully translated environment right out of the box (yes, we ship all the langpacks).</p>
<p>While that goal has been relatively easily reached, <a title="The Edubuntu project" href="http://www.edubuntu.org" target="_blank">Edubuntu</a> still needs some help getting everything translated. Here are a few links to some parts of Edubuntu that need some love:</p>
<ul>
<li><a title="Edubuntu installer" href="https://translations.launchpad.net/ubuntu/oneiric/+source/edubuntu-live" target="_blank">Edubuntu installer</a></li>
<li><a title="Edubuntu installer slideshow" href="https://translations.launchpad.net/ubuntu/oneiric/+source/ubiquity-slideshow-ubuntu/+pots/ubiquity-slideshow-edubuntu" target="_blank">Edubuntu installer slideshow</a></li>
<li><a title="LTSP Live" href="https://translations.launchpad.net/ubuntu/oneiric/+source/ltsp/+pots/ltsp-live" target="_blank">LTSP Live</a></li>
<li><a title="Arkose" href="https://translations.launchpad.net/arkose" target="_blank">Arkose</a></li>
</ul>
<p>All of the above weren&#8217;t translated at all in Edubuntu 11.04 so they definitely need help to get as good as the rest of the distro.</p>
<p><a href="http://www.stgraber.org/download/images/edubuntu-chinese.png"><img class="aligncenter" title="Edubuntu 11.10 installing in Chinese" src="/download/images/edubuntu-chinese.mini.png" alt="" width="517" height="400" /></a></p>
<p>More information on helping translating Ubuntu (not only Edubuntu) can be found on the wiki: <a title="Translations on the Ubuntu wiki" href="https://wiki.ubuntu.com/Translations" target="_blank">https://wiki.ubuntu.com/Translations</a></p>
<p>Thanks!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.stgraber.org/2011/09/06/help-translate-edubuntu-11-10/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Arkose 1.3.1 released</title>
		<link>http://www.stgraber.org/2011/08/18/arkose-1-3-1-released/</link>
		<comments>http://www.stgraber.org/2011/08/18/arkose-1-3-1-released/#comments</comments>
		<pubDate>Thu, 18 Aug 2011 19:04:42 +0000</pubDate>
		<dc:creator>Stéphane Graber</dc:creator>
				<category><![CDATA[Arkose]]></category>
		<category><![CDATA[Canonical voices]]></category>
		<category><![CDATA[Conferences]]></category>
		<category><![CDATA[LXC]]></category>
		<category><![CDATA[Planet Ubuntu]]></category>

		<guid isPermaLink="false">http://www.stgraber.org/?p=269</guid>
		<description><![CDATA[Last week I was in Austin, TX where a bunch of people with interest in getting containers working on Linux were meeting for the Oneiric Container Sprint. We all had a very productive week with a lot of work being &#8230; <a class="more-link" href="http://www.stgraber.org/2011/08/18/arkose-1-3-1-released/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Last week I was in Austin, TX where a bunch of people with interest in getting containers working on Linux were meeting for the Oneiric Container Sprint.<br />
We all had a very productive week with a lot of work being done on <a title="Linux Containers" href="http://lxc.sf.net" target="_blank">LXC</a>, the kernel namespaces and Arkose.</p>
<p>Right before the Ubuntu Feature Freeze last Thursday, I released <a title="Arkose 1.3 release" href="https://launchpad.net/arkose/trunk/1.3" target="_blank">Arkose 1.3</a> brining most of the features I wanted for Ubuntu 11.10.</p>
<p>Here&#8217;s a brief list of the new stuff Arkose can do:</p>
<ul>
<li>All the UIs and CLIs now <a title="Arkose translations on Launchpad" href="https://translations.launchpad.net/arkose/trunk/+translations" target="_blank">support translation</a> with an initial (rough) french translation already available.</li>
<li>DBUS filtering is now included in Arkose and available through the wrapper. The gedit example profile is using it.</li>
<li>It&#8217;s now possible to temporarily modify a wrapper profile before starting it.</li>
<li>Device support has been changed to no longer be limited to /dev/video* devices.</li>
</ul>
<p><img class="aligncenter" title="Screenshot of gedit profile in the wrapper" src="/download/images/arkose-131-gedit.png" alt="" width="383" height="413" /></p>
<p>Some bugs have also been fixed, most of them in <a title="Arkose 1.3.1 release" href="https://launchpad.net/arkose/trunk/1.3.1" target="_blank">Arkose 1.3.1</a> (released yesterday):</p>
<ul>
<li>Make the Global Menu integration (dbusmenu) work with Ubuntu Oneiric</li>
<li>Update the test suite</li>
<li>Fix arkose-cli&#8217;s help to be a lot more accurate</li>
<li>Restrict LXC&#8217;s configuration to the bare minimal</li>
<li>Use point-to-point network configuration in filtered mode (rather than a /30 per container)</li>
<li>Make sure everything in the container gets properly killed on exit</li>
<li>Fix Arkose to handle command line parameters properly (instead of just ignoring them)</li>
</ul>
<p>That&#8217;s all available in current Ubuntu Oneiric as well as in the <a title="Stable Arkose PPA" href="https://launchpad.net/~arkose-devel/+archive/stable/" target="_blank">arkose stable PPA for Ubuntu 10.10 and Ubuntu 11.04</a>.</p>
<p>Sadly one feature didn&#8217;t make it in time for Feature Freeze, that&#8217;s the  advanced firewalling in filtered network mode. I&#8217;ll probably be working  on it on the side and push it to a 1.4 branch that&#8217;ll be used for  Oneiric+1.</p>
<p>I&#8217;ll now mostly be focusing on bugfixes for the remaining of the cycle and polishing some of the existing features. So please, test it and <a title="File bug against Arkose on Launchpad" href="https://launchpad.net/arkose/+filebug" target="_blank">file bugs</a>!</p>
<p>If you want to help with the translation effort, you can go <a title="Arkose translations on Arkose" href="https://translations.launchpad.net/arkose/trunk/+translations" target="_blank">translate Arkose on Launchpad</a> or just send me a .po and I&#8217;ll do it for you.</p>
<p>For these who want to run the current upstream code, get the bzr branch:<br />
bzr branch lp:arkose</p>
]]></content:encoded>
			<wfw:commentRss>http://www.stgraber.org/2011/08/18/arkose-1-3-1-released/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Introducing Arkose&#8217;s protocol aware DBUS filtering proxy</title>
		<link>http://www.stgraber.org/2011/08/02/introducing-arkoses-protocol-aware-dbus-filtering-proxy/</link>
		<comments>http://www.stgraber.org/2011/08/02/introducing-arkoses-protocol-aware-dbus-filtering-proxy/#comments</comments>
		<pubDate>Tue, 02 Aug 2011 15:28:55 +0000</pubDate>
		<dc:creator>Stéphane Graber</dc:creator>
				<category><![CDATA[Arkose]]></category>
		<category><![CDATA[Canonical voices]]></category>
		<category><![CDATA[Planet Ubuntu]]></category>
		<category><![CDATA[dbus]]></category>

		<guid isPermaLink="false">http://www.stgraber.org/?p=259</guid>
		<description><![CDATA[As part of my work on Arkose, trying to make desktop application containing easy, I&#8217;ve been working over the last month or so on a protocol aware DBUS proxy. I based my work on Alban&#8217;s DBUS proxy for N900, made &#8230; <a class="more-link" href="http://www.stgraber.org/2011/08/02/introducing-arkoses-protocol-aware-dbus-filtering-proxy/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>As part of my work on <a title="Arkose on Launchpad" href="https://launchpad.net/arkose" target="_blank">Arkose</a>, trying to make desktop application containing easy, I&#8217;ve been working over the last month or so on a protocol aware DBUS proxy.</p>
<p>I based my work on <a title="D-Bus debugging: how to use D-Feet on N900" href="http://alban.apinc.org/blog/2010/04/01/d-bus-debugging-how-to-use-d-feet-on-n900/" target="_blank">Alban&#8217;s DBUS proxy for N900</a>, made the proxy work with multiple connections and added support for logging and filtering of the connections.</p>
<p>The result is profiles like this one:<br />
<code>﻿outgoing;org.freedesktop.DBus.Properties;/com/canonical/menu/*;PropertiesChanged<br />
outgoing;com.canonical.AppMenu.Registrar;/com/canonical/AppMenu/Registrar;RegisterWindow<br />
outgoing;com.canonical.dbusmenu;/com/canonical/menu/*;LayoutUpdated<br />
outgoing;com.canonical.dbusmenu;/com/canonical/menu/*;ItemsPropertiesUpdated</code></p>
<p><code> </code></p>
<p><code>incoming;org.freedesktop.DBus.Properties;/com/canonical/menu/*;GetAll<br />
incoming;com.canonical.dbusmenu;/com/canonical/menu/*;GetLayout<br />
incoming;com.canonical.dbusmenu;/com/canonical/menu/*;Event<br />
incoming;com.canonical.dbusmenu;/com/canonical/menu/*;AboutToShow<br />
incoming;com.canonical.dbusmenu;/com/canonical/menu/*;GetGroupProperties</code></p>
<p>Which in this case will allow the applications using the proxy to access the global menu DBUS API and receive events from the Global menu, but not for example dump your gnome keyring.</p>
<p>Here&#8217;s the output you&#8217;d get when running gedit using the above profile:<br />
<a title="Log of gedit's DBUS calls" href="http://www.stgraber.org/download/gedit-dbus-arkose.log" target="_blank">http://www.stgraber.org/download/gedit-dbus-arkose.log</a></p>
<p>Now that the proxy works as expected, I&#8217;ll work on integrating it into Arkose itself and expose it in the wrapper GUI.</p>
<p>To try the proxy, you can grab Arkose&#8217;s trunk branch at:<br />
<strong>bzr branch <a title="Arkose trunk branch on Launchpad" href="https://code.launchpad.net/~arkose-devel/arkose/trunk" target="_blank">lp:~arkose-devel/arkose/trunk/</a></strong></p>
<p>Build the proxy (you&#8217;ll need glib and dbus) and then run it with:<br />
<strong>./proxy /tmp/arkose_dbus profiles/dbusmenu.conf</strong></p>
<p>Starting clients like this:<br />
<strong>DBUS_SESSION_BUS_ADDRESS=unix:path=/tmp/arkose_dbus gedit</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://www.stgraber.org/2011/08/02/introducing-arkoses-protocol-aware-dbus-filtering-proxy/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>State of IPv6 in Ubuntu Oneiric</title>
		<link>http://www.stgraber.org/2011/07/26/state-of-ipv6-in-ubuntu-oneiric/</link>
		<comments>http://www.stgraber.org/2011/07/26/state-of-ipv6-in-ubuntu-oneiric/#comments</comments>
		<pubDate>Tue, 26 Jul 2011 14:40:11 +0000</pubDate>
		<dc:creator>Stéphane Graber</dc:creator>
				<category><![CDATA[Canonical voices]]></category>
		<category><![CDATA[Conferences]]></category>
		<category><![CDATA[IPv6]]></category>
		<category><![CDATA[Planet Ubuntu]]></category>

		<guid isPermaLink="false">http://www.stgraber.org/?p=243</guid>
		<description><![CDATA[One of my focus for the Oneiric development cycle is to make sure we get proper support of IPv6 both at install time and during regular use of the system. To achieve this, I started working on the list of &#8230; <a class="more-link" href="http://www.stgraber.org/2011/07/26/state-of-ipv6-in-ubuntu-oneiric/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>One of my focus for the Oneiric development cycle is to make sure we get <a title="IPv6 health check blueprint on Launchpad" href="https://blueprints.launchpad.net/ubuntu/+spec/foundations-o-ipv6-healthcheck" target="_blank">proper support of IPv6</a> both at install time and during regular use of the system.</p>
<p>To achieve this, I started working on the list of all possible scenarios I could think of with all possible combinations of IPv4 and IPv6. Then checked how well these were supported on Ubuntu.</p>
<p>Since Ubuntu 11.04, we now have a DHCPv6 aware DHCP client but that&#8217;s not working as well as it should because Network Manager didn&#8217;t do IPv6 by default back then and because the DHCP client configuration for IPv6 wasn&#8217;t too clear (dhclient wasn&#8217;t requesting any attribute).</p>
<p>Most of these issues are now fixed in Oneiric with <a title="Mathieu Trudel-Lapierre's blog" href="http://blog.cyphermox.net/" target="_blank">Mathieu Trudel-Lapierre</a>&#8216;s great work on updating Network Manager in Oneiric to have IPv6 on by default and make sure people don&#8217;t have to wait for IPv6 to timeout to get their IPv4 connectivity.</p>
<p>The result is something like you can see below, on a network that has both DHCPv4 and stateless DHCPv6:</p>
<p><img class="aligncenter" title="Network Manager IPv6 connectivity" src="/download/images/nm-ipv6.png" alt="" width="528" height="585" /></p>
<p>The use cases that are currently tested are:</p>
<ul>
<li>Single stack: SLAAC IPv6-only network</li>
<li>Single stack: Stateful DHCPv6 IPv6-only network</li>
<li>Single stack: Stateless DHCPv6 IPv6-only network</li>
<li>Single stack: DHCPv4 IPv4-only network</li>
<li>Dual stack: SLAAC + DHCPv4 network</li>
<li>Dual stack: Stateful DHCPv6 + DHCPv4 network</li>
<li>Dual stack: Stateless DHCPv6 + DHCPv4 network</li>
</ul>
<p>For these interested, you can look at the following files to get some example DHCPv4, DHCPv6 and RADVD configuration:</p>
<ul>
<li><a title="DHCPv6 configuration" href="http://www.stgraber.org/download/ipv6/dhcpd.conf.ipv6" target="_blank">dhcpd.conf.ipv6</a></li>
<li><a title="DHCPv4 configuration" href="http://www.stgraber.org/download/ipv6/dhcpd.conf.ipv4" target="_blank">dhcpd.conf.ipv4</a></li>
<li><a title="RADVD configuration" href="http://www.stgraber.org/download/ipv6/radvd.conf" target="_blank">radvd.conf</a></li>
</ul>
<p>It&#8217;s worth noting that you have to start a separate dhcpd server for IPv6 (with the -6 flag) as dhcpd can&#8217;t answer both dhcpv4 and dhcpv6 at the same time. You need two separate daemons with two separate configuration files.</p>
<p>As you can see from the files above, I have a pretty complete IPv6 test setup, running on libvirt. I&#8217;m now working on automating all of this so we can get some easy regression testing of IPv6 support on Ubuntu.</p>
<p>During our sprint last month in Dublin, <a title="Colin Watson" href="http://www.chiark.greenend.org.uk/~cjwatson/" target="_blank">Colin Watson</a> also got netcfg to support IPv6 thereby making debian-installer working with IPv6. The missing piece now is ifupdown support of DHCPv6 (so you can configure DHCPv6 in /etc/network/interfaces) and we should then have Ubuntu install on IPv6 from the alternate/server disks.</p>
<p>IPv6 support is starting to look really good for Oneiric and should be awesome for the next LTS.<br />
If you&#8217;re already running Oneiric on an IPv6 capable network, please test the new Network Manager and if you encounter any problem, please file bugs or poke me so I can add some more tests to my list!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.stgraber.org/2011/07/26/state-of-ipv6-in-ubuntu-oneiric/feed/</wfw:commentRss>
		<slash:comments>15</slash:comments>
		</item>
		<item>
		<title>Busy week for Arkose</title>
		<link>http://www.stgraber.org/2011/07/05/busy-week-for-arkose/</link>
		<comments>http://www.stgraber.org/2011/07/05/busy-week-for-arkose/#comments</comments>
		<pubDate>Tue, 05 Jul 2011 12:51:05 +0000</pubDate>
		<dc:creator>Stéphane Graber</dc:creator>
				<category><![CDATA[Arkose]]></category>
		<category><![CDATA[Canonical voices]]></category>
		<category><![CDATA[Conferences]]></category>
		<category><![CDATA[LXC]]></category>
		<category><![CDATA[Planet Ubuntu]]></category>
		<category><![CDATA[python]]></category>

		<guid isPermaLink="false">http://www.stgraber.org/?p=238</guid>
		<description><![CDATA[So last week I was in Dublin with my colleagues hacking on Oneiric. Most of the week has been spent either testing/fixing Ubuntu&#8217;s IPv6 support (more about that soon) or working on Arkose. On Monday I released version 1.1 that &#8230; <a class="more-link" href="http://www.stgraber.org/2011/07/05/busy-week-for-arkose/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>So last week I was in Dublin with my colleagues hacking on Oneiric. Most of the week has been spent either testing/fixing Ubuntu&#8217;s IPv6 support (more about that soon) or working on <a title="Arkose on Launchpad" href="https://launchpad.net/arkose" target="_blank">Arkose</a>.</p>
<p>On Monday I released <a title="Arkose 1.1 on Launchpad" href="https://launchpad.net/arkose/trunk/1.1" target="_blank">version 1.1</a> that was mostly bugfixes and introduced a new profile for Skype. Then after that I started working on the interesting stuff to end up releasing <a title="Arkose 1.2.1 on Launchpad" href="https://launchpad.net/arkose/trunk/1.2.1" target="_blank">1.2.1</a> on Thursday evening.</p>
<p>The new features are:</p>
<ul>
<li>Filtered network support (one interface per container, routed/firewalled)</li>
<li>Video devices passthrough  (useful for Skype)</li>
<li>Support bind mount of files (thanks to Colin Watson)</li>
<li>Reworked UI for the wrapper</li>
</ul>
<p><img class="aligncenter" title="Skype profile for Arkose" src="/download/images/arkose-skype.png" alt="" width="400" height="333" /></p>
<p>A lot of bugfixes also went in during the week. Now when Arkose crashes or raises an exception, it should deal with it properly, unmount everything and exit rather than leaving you with a lot of entries in your mount table.</p>
<p>The new Skype profile now lets you start Skype in an environment where it&#8217;ll only be able to see its configuration file, run on a separate isolated X server, access pulseaudio on a separate socket and only access the few video devices Arkose detected.</p>
<p>During the week I also spent some time talking to the Ubuntu Security team who also happen to be upstreams for Apparmor. In the future Arkose should start using Apparmor in cases where we don&#8217;t need an actual <a title="Linux Containers project" href="http://lxc.sf.net" target="_blank">LXC container</a> (depending on the profiles).</p>
<p>I also started working on a protocol-aware DBUS proxy based on the work from ﻿﻿﻿<a title="Dbus proxy on Alban's blog" href="http://alban.apinc.org/blog/2010/04/01/d-bus-debugging-how-to-use-d-feet-on-n900/" target="_blank">Alban Crequy</a> so that Arkose should soon be able to filter what DBUS calls an app is allowed to do and prompt the user when accessing restricted information (keyring, contacts, &#8230;).<br />
I&#8217;m hoping to have this merged into Arkose&#8217;s trunk branch this week.</p>
<p>After that I plan on spending some time implementing the network restrictions on top of the new &#8220;filtered network&#8221; support I introduced last week. Initially that should cover restricting an app to non-private (rfc1918) networks and eventually support fine grained filtering (destination and port).</p>
<p>Version 1.2.1 is available as <a title="Arkose 1.2.1 on Launchpad" href="https://launchpad.net/arkose/trunk/1.2.1" target="_blank">tarballs on Launchpad</a> or from the <a title="Arkose trunk branch on Launchpad" href="https://code.launchpad.net/~arkose-devel/arkose/trunk" target="_blank">bzr branch</a> or in current <a title="Arkose in Ubuntu" href="https://launchpad.net/ubuntu/+source/arkose" target="_blank">Ubuntu Oneiric</a>. <a title="Arkose's stable PPA" href="https://launchpad.net/~arkose-devel/+archive/stable" target="_blank">PPA builds</a> are also available for Maverick and Natty.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.stgraber.org/2011/07/05/busy-week-for-arkose/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>&#8220;App&#8221; containing on the modern Linux desktop</title>
		<link>http://www.stgraber.org/2011/06/14/app-containing-on-the-modern-linux-desktop/</link>
		<comments>http://www.stgraber.org/2011/06/14/app-containing-on-the-modern-linux-desktop/#comments</comments>
		<pubDate>Tue, 14 Jun 2011 15:00:14 +0000</pubDate>
		<dc:creator>Stéphane Graber</dc:creator>
				<category><![CDATA[Arkose]]></category>
		<category><![CDATA[Canonical voices]]></category>
		<category><![CDATA[LXC]]></category>
		<category><![CDATA[Planet Ubuntu]]></category>
		<category><![CDATA[python]]></category>

		<guid isPermaLink="false">http://www.stgraber.org/?p=207</guid>
		<description><![CDATA[(Just released Arkose 1.0 that&#8217;s a full rewrite in python using LXC and introducing a nice GUI for fine grained app restriction. Read below for details.) Those of you who read my blog know that I&#8217;ve been working on a pet-project &#8230; <a class="more-link" href="http://www.stgraber.org/2011/06/14/app-containing-on-the-modern-linux-desktop/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>(Just released Arkose 1.0 that&#8217;s a full rewrite in python using <a title="Linux containers" target="_blank" href="http://lxc.sf.net">LXC</a> and introducing a nice GUI for fine grained app restriction. Read below for details.)</p>
<p>Those of you who read my blog know that I&#8217;ve been working on a pet-project of mine called <a title="Arkose category" href="http://www.stgraber.org/category/arkose/">Arkose</a>.<br />
This project is used as the base for <a title="WebLive category" href="http://www.stgraber.org/category/weblive/">WebLive</a>&#8216;s feature allowing users to easily test any package in the Ubuntu archive.</p>
<p>At the Ubuntu Developer Summit, last month in Hungary, I was leading a session on application containing and gathered ideas on how to improve the safety of our user&#8217;s desktop while still making it easy for app developers.</p>
<p>Today, I&#8217;d like to present you with the initial result, the new version of Arkose which I ended up releasing as 1.0 (as it&#8217;s a full rewrite).</p>
<p>The biggest new feature is the &#8220;wrapper&#8221; that can be used by packagers or upstreams to specify what the software will have access to, so Arkose will spawn a container that only has access to these resources.</p>
<p><img class="aligncenter" src="/download/images/arkose-gedit.png" alt="Arkose wrapper for gedit" /></p>
<p>Current access controls include:<br />
- Which user to run the software as (current user or root user)<br />
- Network access (currently, all or nothing)<br />
- X server access (either no access at all, an independent X server using xpra or direct X access)<br />
- DBUS access (any combination of session bus, system bus or no dbus access at all)<br />
- Pulseaudio access (enabled or not)</p>
<p>Then the app can specify a list of paths using one of these options:<br />
- Direct filesystem access with read/write depending on user permissions<br />
- Overlay filesystem access, similar to direct but all changes are dropped when the app exits<br />
- Temporary empty directory. created and available to the app and dropped when the app exits</p>
<p>As an example, here&#8217;s the definition file for a completely isolated &#8220;xeyes&#8221;:<br />
<code>[xeyes]<br />
cmd="xeyes"<br />
runas=user<br />
network=false<br />
xserver=isolated<br />
dbus=none<br />
pulseaudio=false<br />
mount_bind=<br />
mount_cow=<br />
mount_restrict=</code></p>
<p>In this case, xeyes will appear almost as it&#8217;d in a regular environment. The only difference you&#8217;ll notice is that it won&#8217;t follow your mouse unless it&#8217;s in xeyes&#8217; window. Also, if xeyes was to have some bug, it wouldn&#8217;t be able to eavesdrop on dbus, do any damage to the filesystem or even play a sound.</p>
<p>This 1.0 release is available for download at:<br />
<a title="1.0 release on Launchpad" href="https://launchpad.net/arkose/trunk/1.0" target="_blank">https://launchpad.net/arkose/trunk/1.0</a><br />
Development code is available on Launchpad at:<br />
<a title="Arkose development branch on Launchpad" href="https://code.launchpad.net/~arkose-devel/arkose/trunk" target="_blank">https://code.launchpad.net/~arkose-devel/arkose/trunk</a><br />
I have PPA builds for Maverick and Natty at:<br />
<a title="Arkose stable PPA" href="https://launchpad.net/~arkose-devel/+archive/stable" target="_blank">https://launchpad.net/~arkose-devel/+archive/stable</a><br />
The package also just got uploaded to Ubuntu Oneiric.</p>
<p>To start the gedit from the screenshot above, use:<br />
<code>arkose-wrapper-gui /usr/share/doc/arkose/examples/profiles/gedit.conf</code><br />
Some other example profiles are available in:<br />
<code>/usr/share/doc/arkose/examples/profiles/</code></p>
<p>Here&#8217;s an example of how to use the new python module:<br />
<code>import arkose<br />
container=arkose.ArkoseContainer(xserver="isolated",pulseaudio=True,network=True)<br />
container.run_command("su stgraber -c xterm")<br />
container.cleanup()</code></p>
<p>That will start an xterm as the user &#8220;stgraber&#8221; on an isolated X server and with pulseaudio and network support.</p>
<p>Next step for the project is to improve the GUI part, add all the new cool features to the old commands (arkose and arkose-gui), work on fine grained network access control and allow for translations. 1.1 should be released relatively soon with bug fixes and maybe some of these features.</p>
<p>I appreciate any comment or bug report. Comments can be left on this blog and bug reports on Launchpad: <a title="Arkose bugs on Launchpad" href="https://launchpad.net/arkose/+filebug" target="_blank">https://launchpad.net/arkose/+filebug</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.stgraber.org/2011/06/14/app-containing-on-the-modern-linux-desktop/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
	</channel>
</rss>

