<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xmlns:planet="http://planet.intertwingly.net/" xmlns:indexing="urn:atom-extension:indexing" indexing:index="no"><access:restriction xmlns:access="http://www.bloglines.com/about/specs/fac-1.0" relationship="deny"/>
  <title>Planet Gentoo</title>
  <updated>2013-05-24T10:03:17Z</updated>
  <generator uri="http://intertwingly.net/code/venus/">Venus</generator>
  <author>
    <name>Welcome to &lt;b&gt;Planet Gentoo&lt;/b&gt;, an aggregation of Gentoo-related weblog articles written by Gentoo developers. For a broader range of topics, you might be interested in &lt;a href="http://planet.gentoo.org/universe/"&gt;Gentoo Universe&lt;/a&gt;.</name>
    <email>planet@gentoo.org</email>
  </author>
  <id>http://planet.gentoo.org/atom.xml</id>
  <link href="http://planet.gentoo.org/atom.xml" rel="self" type="application/atom+xml"/>
  <link href="http://planet.gentoo.org/" rel="alternate"/>

  <entry xml:lang="en-US">
    <id>http://www.ultrabug.fr/?p=793</id>
    <link href="http://www.ultrabug.fr/rabbitmq-v3-1-0-released/" rel="alternate" type="text/html"/>
    <title>rabbitMQ : v3.1.1 released</title>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml">EDIT: okay, they just released v3.1.1 so here it goes on portage as well ! highlights relax validation of x-match binding to headers exchange for compatibility with brokers &lt; 3.1.0 fix bug in ack handling for transactional channels that could cause queues to crash fix race condition in cluster autoheal that could lead to nodes… <a href="http://www.ultrabug.fr/rabbitmq-v3-1-0-released/">Continue reading <span class="meta-nav">→</span></a></div>
    </summary>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p><img alt="" height="76" src="http://www.rabbitmq.com/img/rabbitmq_logo_strap.png" title="RabbitMQ Logo" width="361"/></p>
<p><em>EDIT: okay, they just released v3.1.1 so here it goes on portage as well !</em></p>
<h2><em>highlights</em></h2>
<ul>
<li><em>relax validation of x-match binding to headers exchange for compatibility with brokers &lt; 3.1.0</em></li>
<li><em>fix bug in ack handling for transactional channels that could cause queues to crash</em></li>
<li><em>fix race condition in cluster autoheal that could lead to nodes failing to re-join the cluster</em></li>
</ul>
<p><em>3.1.1 changelog is <a href="http://www.rabbitmq.com/release-notes/README-3.1.1.txt" target="_blank">here</a>.</em></p>
<p>I’ve bumped the rabbitMQ message queuing server on portage. This new version comes with quite a nice bunch of bugfixes and features.</p>
<h2>highlights</h2>
<ul>
<li>eager synchronisation of slaves by policy (manual &amp; automatic)</li>
<li><strong>cluster “autoheal” mode</strong> to automatically choose nodes to restart when a partition has occurred</li>
<li>cluster “pause minority” mode to prefer partition tolerance over availability</li>
<li>improved statistics (including charts) in the management plugin</li>
<li>quite a bunch of performance improvements</li>
<li>some nice memory leaks fixes</li>
</ul>
<p>Read the full <a href="http://www.rabbitmq.com/release-notes/README-3.1.0.txt" target="_blank">changelog</a>.</p></div>
    </content>
    <updated>2013-05-21T13:04:13Z</updated>
    <category term="Linux"/>
    <category term="gentoo"/>
    <category term="portage"/>
    <category term="rabbitmq"/>
    <category term="release"/>
    <author>
      <name>ultrabug</name>
    </author>
    <source>
      <id>http://www.ultrabug.fr</id>
      <link href="http://www.ultrabug.fr/tag/gentoo-2/feed/" rel="self" type="application/rss+xml"/>
      <link href="http://www.ultrabug.fr" rel="alternate" type="text/html"/>
      <subtitle>a Gentoo Linux developer's blog</subtitle>
      <title>Ultrabug » gentoo</title>
      <updated>2013-05-21T15:03:28Z</updated>
    </source>
  </entry>

  <entry>
    <id>tag:blogger.com,1999:blog-7849507270164967036.post-4662758851184806106</id>
    <link href="http://dilfridge.blogspot.com/feeds/4662758851184806106/comments/default" rel="replies" title="Post Comments" type="application/atom+xml"/>
    <link href="http://dilfridge.blogspot.com/2013/05/personal-experience-and-opinion-kmail2.html#comment-form" rel="replies" title="26 Comments" type="text/html"/>
    <link href="http://www.blogger.com/feeds/7849507270164967036/posts/default/4662758851184806106" rel="edit" type="application/atom+xml"/>
    <link href="http://www.blogger.com/feeds/7849507270164967036/posts/default/4662758851184806106" rel="self" type="application/atom+xml"/>
    <link href="http://dilfridge.blogspot.com/2013/05/personal-experience-and-opinion-kmail2.html" rel="alternate" title="personal experience and opinion - kmail2 still not suitable for on-the-road use :(" type="text/html"/>
    <title>personal experience and opinion - kmail2 still not suitable for on-the-road use :(</title>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml">I was very sceptic for a long time. Then, I slowly started to trust the kmail2/akonadi combination. I've been using it on my office desktop for a long time, and it works well and is very stable and fast there. (Might be related to the fact that the IMAP server is just across the lawn.) Some time ago, when I deemed things solid enough I even <a href="http://dilfridge.blogspot.de/2012/12/my-personal-kdepim-upgrade-again-laptop.html">upgraded my laptop again</a>, despite <a href="http://dilfridge.blogspot.de/2012/01/my-personal-kdepim-upgrade-status.html">earlier problems</a>. In Gentoo, we've been keeping kdepim-4.4 around all the time, and as you may have read, internal discussions led indeed to the decision <a href="http://dilfridge.blogspot.de/2013/04/kdepim-44-kmail1-in-gentoo-unsupported.html">to finally drop it</a> some time ago.<br/>What happened in the meantime?<br/>1) <a href="https://bugs.gentoo.org/show_bug.cgi?id=464956">One</a> of the more annoying bugs mentioned in my last blog post was fixed with some help from Kevin Kofler. Seems like Debian stumbled into the same issue long ago. <br/>2) I was on vacation. Which was fun, but mostly unrelated to the issue at hand. None of my Gentoo colleagues went ahead with the removal in the meantime. A lot of e-mails accumulated in my account. <br/>3) Coming back, I was on the train with my laptop, sorting the mail. The train was full, the onboard WLAN slightly overstressed, the 4G network just about more reliable. Network comes and goes sometime with a tunnel, no problem. Or so I thought.<br/>4) Half an hour before arriving back home I realized that silently a large part of the e-mails that I had (I though) moved (using kmail2-4.10.3 / akonadi-1.9.2) from one folder to another over ~3 hours had disappeared on one side, and not re-appeared on the other. Restarting kmail2 and akonadi did not help. A quick check of the webmail interface of my provider confirmed that also on the IMAP server the mails were gone in both folders. &amp;%(/&amp;%(&amp;/$/&amp;%$§&amp;/<br/>I wasn't happy. Luckily there were daily server backup snapshots, and after a few days delay I had all the documents back. Nevertheless... Now, I am considering what to do next. (Needless to say, in my opinion we should forget dropping kmail1 in Gentoo for now.) Options...<br/>a) migrate the laptop back to kmail1, which is way more resistant to dropped connections and flaky internet connection - <a href="http://wiki.gentoo.org/wiki/KDEPIM-4.7_upgrade#Downgrading_to_4.4_again">doable but takes a bit of time</a><br/>b) install <a href="http://offlineimap.org/">OfflineIMAP</a> and <a href="http://www.dovecot.org/">Dovecot</a> on the laptop, and let kmail2/akonadi access the localhost Dovecot server - probably the most elegant solution but for the fact that OfflineIMAP seems to have trouble mirroring our Novell Groupwise IMAP server<br/>c) other e-mail client? I've heard good things about <a href="http://trojita.flaska.net/">trojita</a>...<br/>Summarizing... no idea still how to go ahead, no good solution available. And I actually like the kdepim integration idea, so I'll never be the first one to completely migrate away from it! I am sincerely sorry for the sure fact that this post is disheartening to all the people who put a lot of effort into improving kmail2 and akonadi. It has become a huge lot better. However, I am just getting more and more convinced that the complexity of this combined system is too much to handle and that kmail should never have gone the akonadi way.<br/><br/></div>
    </content>
    <updated>2013-05-19T20:23:38Z</updated>
    <published>2013-05-19T16:24:00Z</published>
    <category scheme="http://www.blogger.com/atom/ns#" term="gentoo"/>
    <category scheme="http://www.blogger.com/atom/ns#" term="kde"/>
    <author>
      <name>Andreas</name>
      <email>noreply@blogger.com</email>
      <uri>http://www.blogger.com/profile/12314847423280010909</uri>
    </author>
    <source>
      <id>tag:blogger.com,1999:blog-7849507270164967036</id>
      <category term="arm"/>
      <category term="lab-measurement"/>
      <category term="graphene"/>
      <category term="astronomy"/>
      <category term="gpib"/>
      <category term="sysadmin"/>
      <category term="books"/>
      <category term="gentoo"/>
      <category term="ostpforte"/>
      <category term="maths"/>
      <category term="scifi"/>
      <category term="humour"/>
      <category term="france"/>
      <category term="art"/>
      <category term="digikam"/>
      <category term="cups"/>
      <category term="photos"/>
      <category term="spain"/>
      <category term="romanesque"/>
      <category term="nobelprize"/>
      <category term="stupidity"/>
      <category term="kde"/>
      <category term="err-what?"/>
      <category term="meta"/>
      <category term="archaeology"/>
      <category term="phdcomics"/>
      <category term="italy"/>
      <category term="food"/>
      <category term="comp-sci"/>
      <category term="regensburg"/>
      <category term="physics"/>
      <category term="architecture"/>
      <category term="nanotubes"/>
      <category term="work"/>
      <category term="travelling"/>
      <category term="research-group"/>
      <category term="hardened"/>
      <author>
        <name>Andreas</name>
        <email>noreply@blogger.com</email>
        <uri>http://www.blogger.com/profile/12314847423280010909</uri>
      </author>
      <link href="http://dilfridge.blogspot.com/feeds/posts/default" rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml"/>
      <link href="http://www.blogger.com/feeds/7849507270164967036/posts/default/-/gentoo" rel="self" type="application/atom+xml"/>
      <link href="http://dilfridge.blogspot.com/search/label/gentoo" rel="alternate" type="text/html"/>
      <link href="http://pubsubhubbub.appspot.com/" rel="hub" type="text/html"/>
      <link href="http://www.blogger.com/feeds/7849507270164967036/posts/default/-/gentoo/-/gentoo?start-index=26&amp;max-results=25" rel="next" type="application/atom+xml"/>
      <title>the dilfridge blog</title>
      <updated>2013-05-23T19:23:30Z</updated>
    </source>
  </entry>

  <entry>
    <id>tag:blogger.com,1999:blog-7849507270164967036.post-8176046274960473949</id>
    <link href="http://dilfridge.blogspot.com/feeds/8176046274960473949/comments/default" rel="replies" title="Post Comments" type="application/atom+xml"/>
    <link href="http://dilfridge.blogspot.com/2013/05/gentoo-cups-16-status.html#comment-form" rel="replies" title="0 Comments" type="text/html"/>
    <link href="http://www.blogger.com/feeds/7849507270164967036/posts/default/8176046274960473949" rel="edit" type="application/atom+xml"/>
    <link href="http://www.blogger.com/feeds/7849507270164967036/posts/default/8176046274960473949" rel="self" type="application/atom+xml"/>
    <link href="http://dilfridge.blogspot.com/2013/05/gentoo-cups-16-status.html" rel="alternate" title="Gentoo CUPS-1.6 status" type="text/html"/>
    <title>Gentoo CUPS-1.6 status</title>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml">We've had CUPS 1.6 in the Gentoo portage tree for a while now already. It has even been keyworded by most of the arches (hooray!), and from the bug reports quite some people use it. Sometime in the intermediate future we'll stabilize it, however until then <a href="https://bugs.gentoo.org/buglist.cgi?f1=blocked&amp;o1=substring&amp;resolution=---&amp;query_format=advanced&amp;v1=463014" target="_blank">quite some bugs</a> still have to be resolved.<br/>CUPS 1.6 brings changes. The move to Apple has messed up the project priorities, and backward compatibility was kicked out of the window with a bang. As I've already detailed in a short <a href="http://dilfridge.blogspot.de/2012/05/cups-16-will-be-loads-of-fun.html" target="_blank">previous blog post</a>, per se, CUPS 1.6 does not "talk" the printer browsing protocol of previous versions anymore but solely relies on <a href="http://en.wikipedia.org/wiki/Zero-configuration_networking" target="_blank">zeroconf</a> (which is implemented in Gentoo by <a href="http://packages.gentoo.org/package/net-dns/avahi" target="_blank">net-dns/avahi</a>). Some other features were dropped as well...<br/>Luckily, CUPS was and is open source, and that the people at Apple removed the code from the main CUPS distribution did not mean that it was actually gone. In the end, all these feature just made their way from the main CUPS package to a new package <a href="http://packages.gentoo.org/package/net-print/cups-filters" target="_blank">net-print/cups-filters</a> maintained at <a href="http://www.linuxfoundation.org/collaborate/workgroups/openprinting" target="_blank">The Linux Foundation</a>. There, the code is evolving fast, bugs are fixed and features are introduced. Even network browsing with the CUPS-1.5 protocol has been restored by now; cups-filters includes a daemon called cups-browsed which can generate print queues on the fly and accepts configuration directives similar to CUPS-1.5. As far as we in Gentoo (and any other Linux distribution) are concerned, we can get along without zeroconf just fine.<br/>The main thing that is hindering CUPS-1.6 stabilization a the moment is that the <a href="http://www.cups.org/" target="_blank">CUPS website</a> is down, kind of. Their server had a hardware failure, and since nearly a month (!!!) only minimal, static pages are up. In particular, what's missing is the <a href="http://www.cups.org/roadmap.php" target="_blank">CUPS bugtracker</a> (no I won't sign up for an Apple ID to submit CUPS bugs) and access to the <a href="http://www.cups.org/software.php#SVN" target="_blank">Subversion repository</a> of the source. (Remind me to git-svn clone the code history as soon as it's back and push it to gitorious.)<br/>So... feel free to try out CUPS-1.6, testing and submitting bugs for sure helps. However, it may take some time to get these fixed...</div>
    </content>
    <updated>2013-05-18T21:02:53Z</updated>
    <published>2013-05-18T21:01:00Z</published>
    <category scheme="http://www.blogger.com/atom/ns#" term="gentoo"/>
    <category scheme="http://www.blogger.com/atom/ns#" term="cups"/>
    <author>
      <name>Andreas</name>
      <email>noreply@blogger.com</email>
      <uri>http://www.blogger.com/profile/12314847423280010909</uri>
    </author>
    <source>
      <id>tag:blogger.com,1999:blog-7849507270164967036</id>
      <category term="arm"/>
      <category term="lab-measurement"/>
      <category term="graphene"/>
      <category term="astronomy"/>
      <category term="gpib"/>
      <category term="sysadmin"/>
      <category term="books"/>
      <category term="gentoo"/>
      <category term="ostpforte"/>
      <category term="maths"/>
      <category term="scifi"/>
      <category term="humour"/>
      <category term="france"/>
      <category term="art"/>
      <category term="digikam"/>
      <category term="cups"/>
      <category term="photos"/>
      <category term="spain"/>
      <category term="romanesque"/>
      <category term="nobelprize"/>
      <category term="stupidity"/>
      <category term="kde"/>
      <category term="err-what?"/>
      <category term="meta"/>
      <category term="archaeology"/>
      <category term="phdcomics"/>
      <category term="italy"/>
      <category term="food"/>
      <category term="comp-sci"/>
      <category term="regensburg"/>
      <category term="physics"/>
      <category term="architecture"/>
      <category term="nanotubes"/>
      <category term="work"/>
      <category term="travelling"/>
      <category term="research-group"/>
      <category term="hardened"/>
      <author>
        <name>Andreas</name>
        <email>noreply@blogger.com</email>
        <uri>http://www.blogger.com/profile/12314847423280010909</uri>
      </author>
      <link href="http://dilfridge.blogspot.com/feeds/posts/default" rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml"/>
      <link href="http://www.blogger.com/feeds/7849507270164967036/posts/default/-/gentoo" rel="self" type="application/atom+xml"/>
      <link href="http://dilfridge.blogspot.com/search/label/gentoo" rel="alternate" type="text/html"/>
      <link href="http://pubsubhubbub.appspot.com/" rel="hub" type="text/html"/>
      <link href="http://www.blogger.com/feeds/7849507270164967036/posts/default/-/gentoo/-/gentoo?start-index=26&amp;max-results=25" rel="next" type="application/atom+xml"/>
      <title>the dilfridge blog</title>
      <updated>2013-05-23T19:23:30Z</updated>
    </source>
  </entry>

  <entry xml:lang="en-US">
    <id>http://blog.siphos.be/?p=1147</id>
    <link href="http://blog.siphos.be/2013/05/commandline-selinux-policy-helper-functions/" rel="alternate" type="text/html"/>
    <title>Commandline SELinux policy helper functions</title>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml">To work on SELinux policies, I use a couple of functions that I can call on the shell (command line): seshowif, sefindif, seshowdef and sefinddef. The idea behind the methods is that I want to search (find) for an interface … <a href="http://blog.siphos.be/2013/05/commandline-selinux-policy-helper-functions/">Continue reading <span class="meta-nav">→</span></a></div>
    </summary>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>
To work on SELinux policies, I use a couple of functions that I can call on the shell (command line): <b>seshowif</b>, <b>sefindif</b>, <b>seshowdef</b> and <b>sefinddef</b>. The idea behind the methods is that I want to search (<em>find</em>) for an interface (<em>if</em>) or definition (<em>def</em>) that contains a particular method or call. Or, if I know what the interface or definition is, I want to see it (<em>show</em>).
</p>
<p>
For instance, to find the name of the interface that allows us to define file transitions from the <tt>postfix_etc_t</tt> label:
</p>
<pre>$ sefindif filetrans.*postfix_etc
contrib/postfix.if: interface(`postfix_config_filetrans',`
contrib/postfix.if:     filetrans_pattern($1, postfix_etc_t, $2, $3, $4)
</pre>
<p>
Or to show the content of the <em>corenet_tcp_bind_http_port</em> interface:
</p>
<pre>$ seshowif corenet_tcp_bind_http_port
interface(`corenet_tcp_bind_http_port',`
        gen_require(`
                type http_port_t;
        ')

        allow $1 http_port_t:tcp_socket name_bind;
        allow $1 self:capability net_bind_service;
')
</pre>
<p>
For the definitions, this is quite similar:
</p>
<pre>$ sefinddef socket.*create
obj_perm_sets.spt:define(`create_socket_perms', `{ create rw_socket_perms }')
obj_perm_sets.spt:define(`create_stream_socket_perms', `{ create_socket_perms listen accept }')
obj_perm_sets.spt:define(`connected_socket_perms', `{ create ioctl read getattr write setattr append bind getopt setopt shutdown }')
obj_perm_sets.spt:define(`create_netlink_socket_perms', `{ create_socket_perms nlmsg_read nlmsg_write }')
obj_perm_sets.spt:define(`rw_netlink_socket_perms', `{ create_socket_perms nlmsg_read nlmsg_write }')
obj_perm_sets.spt:define(`r_netlink_socket_perms', `{ create_socket_perms nlmsg_read }')
obj_perm_sets.spt:define(`client_stream_socket_perms', `{ create ioctl read getattr write setattr append bind getopt setopt shutdown }')

$ seshowdef manage_files_pattern
define(`manage_files_pattern',`
        allow $1 $2:dir rw_dir_perms;
        allow $1 $3:file manage_file_perms;
')
</pre>
<p>
I have these defined in my <tt>~/.bashrc</tt> (they are simple <a href="http://dev.gentoo.org/~swift/blog/01/selinux-funcs.txt">functions</a>) and are used on a daily basis here ;-) If you want to learn a bit more on developing SELinux policies for Gentoo, make sure you read the <a href="http://www.gentoo.org/proj/en/hardened/selinux-development.xml">Gentoo Hardened SELinux Development</a> guide.</p></div>
    </content>
    <updated>2013-05-18T01:50:39Z</updated>
    <category term="Hardened"/>
    <category term="SELinux"/>
    <category term="bash"/>
    <category term="definition"/>
    <category term="functions"/>
    <category term="interface"/>
    <category term="policy"/>
    <category term="selinux"/>
    <category term="support"/>
    <author>
      <name>swift</name>
    </author>
    <source>
      <id>http://blog.siphos.be</id>
      <link href="http://blog.siphos.be/category/gentoo/feed/" rel="self" type="application/rss+xml"/>
      <link href="http://blog.siphos.be" rel="alternate" type="text/html"/>
      <subtitle>Sven Vermeulen's web log</subtitle>
      <title>Simplicity is a form of art... » Gentoo</title>
      <updated>2013-05-24T02:03:11Z</updated>
    </source>
  </entry>

  <entry xml:lang="en-US">
    <id>http://www.ultrabug.fr/?p=773</id>
    <link href="http://www.ultrabug.fr/squid-proxy-blocking-download-of-some-file-extensions/" rel="alternate" type="text/html"/>
    <title>Squid proxy : blocking download of some file extensions</title>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml">It is a common request in squid to have it block downloading certain files based on their extension in the url path. A quick look at google’s results on the subject apparently gives us the solution to get this done easily by squid. The common solution is to create an ACL file listing regular expressions… <a href="http://www.ultrabug.fr/squid-proxy-blocking-download-of-some-file-extensions/">Continue reading <span class="meta-nav">→</span></a></div>
    </summary>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>It is a common request in squid to have it <strong>block downloading certain files based on their extension</strong> in the url path. A quick look at google’s results on the subject <strong>apparently</strong> gives us the solution to get this done easily by squid.</p>
<p>The common solution is to create an ACL file listing regular expressions of the extensions you want to block and then apply this to your <strong>http_access</strong> rules.</p>
<h2>blockExtensions.acl</h2>
<pre class="brush:shell">\.exe$</pre>
<h2>squid.conf</h2>
<pre class="brush:shell">acl blockExtensions urlpath_regex -i "/etc/squid/blockExtensions.acl"

[...]

http_access allow localnet !blockExtensions</pre>
<p>Unfortunately <strong>this is not enough to prevent users from downloading .exe files.</strong> The mistake here is that we assume that the URL will strictly finish by the extension we want to block, consider the two examples below :</p>
<pre class="brush:shell">http://download.com/badass.exe     // will be DENIED as expected

http://download.com/badass.exe?    // WON'T be denied as it does not match the regex !</pre>
<p>Squid uses the <em>extended regex</em> processor which is the same as egrep. So we need to change our blockExtensions.acl file to handle the possible <em>?whatever</em> string which may be trailing our <strong>url_path</strong>. Here’s the solution to handle all the cases :</p>
<h2>blockExtensions.acl</h2>
<pre class="brush:shell">\.exe(\?.*)?$
\.msi(\?.*)?$
\.msu(\?.*)?$
\.torrent(\?.*)?$</pre>
<p>You will still be hated for limiting people’s need to download and install shit on their Windows but you implemented it the right way and no script kiddie can brag about bypassing you <img alt=";)" class="wp-smiley" src="http://www.ultrabug.fr/wordpress/wp-includes/images/smilies/icon_wink.gif"/> </p></div>
    </content>
    <updated>2013-05-17T22:22:05Z</updated>
    <category term="Linux"/>
    <category term="gentoo"/>
    <category term="proxy"/>
    <category term="squid"/>
    <author>
      <name>ultrabug</name>
    </author>
    <source>
      <id>http://www.ultrabug.fr</id>
      <link href="http://www.ultrabug.fr/tag/gentoo-2/feed/" rel="self" type="application/rss+xml"/>
      <link href="http://www.ultrabug.fr" rel="alternate" type="text/html"/>
      <subtitle>a Gentoo Linux developer's blog</subtitle>
      <title>Ultrabug » gentoo</title>
      <updated>2013-05-21T15:03:28Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://www.kroah.com/log/linux/stable-history-update.html</id>
    <link href="http://www.kroah.com/log/linux/stable-history-update.html" rel="alternate" type="text/html"/>
    <title>Updated history of the 2.6.16-stable kernel</title>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>A few years ago, I gave a <a href="http://www.kroah.com/log/linux/2.6.32-stable.html">history of the 2.6.32 stable kernel</a>, and
mentioned the previous stable kernels as well.  I'd like to apologize for not
acknowledging the work of Adrian Bunk in maintaining the 2.6.16 stable kernel
for 2 years after I gave up on it, allowing it to be used by many people for a
very long time.</p>

<p>I've updated the previous post with this information in it at the bottom, for
the archives.  Again, many apologies, I never meant to ignore the work of this
developer.</p></div>
    </summary>
    <updated>2013-05-17T16:34:00Z</updated>
    <source>
      <id>http://www.kroah.com/log</id>
      <author>
        <name>Greg KH</name>
      </author>
      <link href="http://www.kroah.com/log" rel="alternate" type="text/html"/>
      <link href="http://www.kroah.com/log/index.rss" rel="self" type="application/rss+xml"/>
      <subtitle>Greg K-H's stuff.</subtitle>
      <title>linux kernel monkey log</title>
      <updated>2013-05-17T17:02:26Z</updated>
    </source>
  </entry>

  <entry xml:lang="en-US">
    <id>http://blog.siphos.be/?p=1169</id>
    <link href="http://blog.siphos.be/2013/05/looking-at-the-local-linux-kernel-privilege-escalation/" rel="alternate" type="text/html"/>
    <title>Looking at the local Linux kernel privilege escalation</title>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml">There has been a few posts already on the local Linux kernel privilege escalation, which has received the CVE-2013-2094 ID. arstechnica has a write-up with links to good resources on the Internet, but I definitely want to point readers to … <a href="http://blog.siphos.be/2013/05/looking-at-the-local-linux-kernel-privilege-escalation/">Continue reading <span class="meta-nav">→</span></a></div>
    </summary>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>
There has been a few posts already on the local Linux kernel privilege escalation, which has received the <a href="https://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2013-2094">CVE-2013-2094</a> ID. <a href="http://arstechnica.com/security/2013/05/critical-linux-vulnerability-imperils-users-even-after-silent-fix/">arstechnica</a> has a write-up with links to good resources on the Internet, but I definitely want to point readers to the <a href="http://www.reddit.com/r/netsec/comments/1eb9iw/sdfucksheeporgs_semtexc_local_linux_root_exploit/c9ykrck">explanation</a> that Brad Spengler made on the vulnerability.
</p>
<p>
In short, the vulnerability is an <em>out-of-bound</em> access to an array within the Linux perf code (which is a performance measuring subsystem enabled when <tt>CONFIG_PERF_EVENTS</tt> is enabled). This subsystem is often enabled as it offers a wide range of performance measurement techniques (see <a href="https://perf.wiki.kernel.org/index.php/Main_Page">its wiki</a> for more information). You can check on your own system through the kernel configuration (<b>zgrep CONFIG_PERF_EVENTS /proc/config.gz</b> if you have the latter pseudo-file available – it is made available through <tt>CONFIG_IKCONFIG_PROC</tt>).
</p>
<p>
The public exploit maps memory in userland, fills it with known data, then triggers an out-of-bound decrement that tricks the kernel into decrementing this data (mapped in userland). By looking at where the decrement occurred, the exploit now knows the base address of the array. Next, it targets (through the same vulnerability) the IDT base (Interrupt Descriptor Table) and targets the overflow interrupt vector. It increments the top part of the address that the vector points to (which is 0xffffffff, becoming 0×00000000 thus pointing to the userland), maps this memory region itself with shellcode, and then triggers the overflow. The shell code used in the public exploit modifies the credentials of the current task, sets uid/gid with root and gives full capabilities, and then executes a shell.
</p>
<p>
As Brad mentions, <a href="https://grsecurity.net/~spender/uderef.txt">UDEREF</a> (an option in a grSecurity enabled kernel) should mitigate the attempt to get to the userland. On my system, the exploit fails with the following (start of) oops (without affecting the system further) when it tries to close the file descriptor returned from the syscall that invokes the decrement:
</p>
<pre>[ 1926.226678] PAX: please report this to pageexec@freemail.hu
[ 1926.227019] BUG: unable to handle kernel paging request at 0000000381f5815c
[ 1926.227019] IP: [] sw_perf_event_destroy+0x1a/0xa0
[ 1926.227019] PGD 58a7c000 
[ 1926.227019] Thread overran stack, or stack corrupted
[ 1926.227019] Oops: 0002 [#4] PREEMPT SMP 
[ 1926.227019] Modules linked in: libcrc32c
[ 1926.227019] CPU 0 
[ 1926.227019] Pid: 4267, comm: test Tainted: G      D      3.8.7-hardened #1 Bochs Bochs
[ 1926.227019] RIP: 0010:[]  [] sw_perf_event_destroy+0x1a/0xa0
[ 1926.227019] RSP: 0018:ffff880058a03e08  EFLAGS: 00010246
...
</pre>
<p>
The exploit also finds that the decrement didn’t succeed:
</p>
<pre>test: semtex.c:76: main: Assertion 'i&lt;0x0100000000/4' failed.
</pre>
<p>
A second mitigation is that <a href="http://pax.grsecurity.net/docs/PaXTeam-H2HC12-PaX-kernel-self-protection.pdf">KERNEXEC</a> (also offered through grSecurity) which prevents the kernel from executing data that is writable (including userland data). So modifying the IDT would be mitigated as well.
</p>
<p>
Another important mitigation is TPE – <em>Trusted Path Execution</em>. This feature prevents the execution of binaries that are not located in a root-owned directory and owned by a trusted group (which on my system is 10 = wheel). So users attempting to execute such code will fail with a <em>Permission denied</em> error, and the following is shown in the logs:
</p>
<pre>[ 3152.165780] grsec: denied untrusted exec (due to not being in trusted group and file in non-root-owned directory) of /home/user/test by /home/user/test[bash:4382] uid/euid:1000/1000 gid/egid:100/100, parent /bin/bash[bash:4352] uid/euid:1000/1000 gid/egid:100/100
</pre>
<p>
However, even though a nicely hardened system should be fairly immune against the currently circling public exploit, it should be noted that it is not immune against the vulnerability itself. The methods above mentioned make it so that that particular way of gaining root access is not possible, but it still allows an attacker to decrement and increment memory in specific locations so other exploits might be found to modify the system.
</p>
<p>
Now out-of-bound vulnerabilities are not new. Recently (february this year), a <a href="http://www.phoronix.com/scan.php?page=news_item&amp;px=MTMxMTg">vulnerability</a> in the networking code also provided an attack vector to get a local privilege escalation. A mandatory access control system like SELinux has little impact on such vulnerabilities if you allow users to execute their own code. Even confined users can modify the exploit to disable SELinux (since the shell code is ran with ring0 privileges it can access and modify the SELinux state information in the kernel).
</p>
<p>
Many thanks to Brad for the excellent write-up, and to the <a href="http://www.gentoo.org/proj/en/hardened">Gentoo Hardened</a> team for providing the grSecurity PaX/TPE protections in its <tt>hardened-sources</tt> kernel.</p></div>
    </content>
    <updated>2013-05-17T01:50:12Z</updated>
    <category term="Hardened"/>
    <category term="Linux"/>
    <category term="Security"/>
    <category term="event"/>
    <category term="grsecurity"/>
    <category term="kernexec"/>
    <category term="linux"/>
    <category term="pax"/>
    <category term="perf"/>
    <category term="selinux"/>
    <category term="uderef"/>
    <category term="vulnerability"/>
    <author>
      <name>swift</name>
    </author>
    <source>
      <id>http://blog.siphos.be</id>
      <link href="http://blog.siphos.be/category/gentoo/feed/" rel="self" type="application/rss+xml"/>
      <link href="http://blog.siphos.be" rel="alternate" type="text/html"/>
      <subtitle>Sven Vermeulen's web log</subtitle>
      <title>Simplicity is a form of art... » Gentoo</title>
      <updated>2013-05-24T02:03:11Z</updated>
    </source>
  </entry>

  <entry xml:lang="en-US">
    <id>http://blog.siphos.be/?p=1220</id>
    <link href="http://blog.siphos.be/2013/05/gentoo-hardened-spring-notes/" rel="alternate" type="text/html"/>
    <title>Gentoo Hardened spring notes</title>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml">We got back together on the #gentoo-hardened chat channel to discuss the progress of Gentoo Hardened, so it’s time for another write-up of what was said. Toolchain GCC 4.8.1 will be out soon, although nothing major has occurred with it … <a href="http://blog.siphos.be/2013/05/gentoo-hardened-spring-notes/">Continue reading <span class="meta-nav">→</span></a></div>
    </summary>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>
We got back together on the <tt>#gentoo-hardened</tt> chat channel to discuss the progress of <a href="http://www.gentoo.org/proj/en/hardened">Gentoo Hardened</a>, so it’s time for another write-up of what was said.
</p>
<p><em>Toolchain</em></p>
<p>
GCC 4.8.1 will be out soon, although nothing major has occurred with it since the last meeting. There is a plugin header install problem in 4.8 and its not certain that the (trivial) fix is in 4.8.1, but it certainly is inside Gentoo’s release.
</p>
<p>
Blueness is also (still, and hopefully for a long time ;-) maintaining the uclibc hardened related toolchain aspects.
</p>
<p><em>Kernel and grSecurity/PaX</em></p>
<p>
The further progress on the XATTR_PAX migration was put on a lower level the past few weeks due to busy, busy… very busy weeks (but this was announced and known in advance). We still need to do XATTR copying in <em>install</em> for packages that do pax markings before <em>src_install()</em> and include the <tt>user.pax</tt> XATTR patch in the gentoo-sources kernel. This will silence the errors for non-hardened users and fix the loss of XATTR markings for those packages that do pax-mark before install.
</p>
<p>
The set then needs to be documented further and tested on vanilla and hardened systems.
</p>
<p>
Zorry asked if a separate script can be provided for those ebuilds that directly call <b>paxctl</b>. These ebuilds might want to switch to the eclass, but if they need to call <b>paxctl</b> or similar directly (for instance because the result is immediately used for further building), a separate script or tool should be made available. Blueness will look into this.
</p>
<p>
On <tt>hardened-sources</tt>, we are now with stable  2.6.32-r160, 3.2.42-r1 and 3.8.6 due to some vulnerabilities in earlier versions (in networking code). There is still some bug (nfs-related) that is fixed in 3.2.44 so that part might need a bump as well soon.
</p>
<p><em>SELinux</em></p>
<p>
The <a href="http://blog.siphos.be/2013/04/introducing-selocal-for-small-selinux-policy-enhancements/">selocal</a> command is now available for Gentoo SELinux users, allowing them to easily enhance the policy without having to maintain their own SELinux policy modules (the script is a wrapper that does all that).
</p>
<p>
The setools package now also uses the <a href="http://blog.siphos.be/2013/04/sloting-the-old-swig-1/">SLOT’ed swig</a>, so no more dependency breakage.
</p>
<p>
On SELinux userspace and policy, both have seen a new release last month, and both are already in the Gentoo portage tree.
</p>
<p>
Finally, the SELinux policy ebuilds now also call <a href="http://blog.siphos.be/2013/05/overriding-the-default-selinux-policies/">epatch_user</a> so users can customize the policies even further without having to copy ebuilds to their overlay.
</p>
<p>
Now that <b>tar</b> supports XATTR well, we might want to look into SELinux stages again. Jmbsvicetto did some work on that, but the builds failed during stage1. We’ll look into that later.
</p>
<p><em>Integrity</em></p>
<p>
Nothing much to say, we’re waiting a bit until the patches proposed by the IMA team are merged in the main kernel.
</p>
<p><em>Profiles</em></p>
<p>
Two no-multilib fixes have been applied to the <tt>hardened/amd64/no-multilib</tt> profiles. One was a QA issue and quickly resolved, the other is due to the profile stacking within Gentoo profiles, where we missed a profile and thus were missing a few masks defined in that (missed) profile. But including the profile creates a lot of duplicates again, so we are going to copy the masks across until the duplicates are resolved in the other profiles.
</p>
<p>
Blueness will also clean up the experimental <tt>13.0</tt> directory since all hardened profiles now follow 13.0.
</p>
<p><em>Docs</em></p>
<p>
The latest changes on SELinux have been added to the Gentoo SELinux handbook. Also, I’ve been slowly (but surely) adding topics to the <a href="https://wiki.gentoo.org/wiki/SELinux/Tutorials">SELinux tutorials listing</a> on the Gentoo wiki.
</p>
<p>
The grSecurity 2 document is very much out of date, blueness hopes to put some time in fixing that soon.
</p>
<p>
So that’s about it for the short write-up. Zorry will surely post the log later on the appropriate channels. Good work done (again) by all team members!</p></div>
    </content>
    <updated>2013-05-16T20:54:08Z</updated>
    <category term="Hardened"/>
    <category term="Gentoo"/>
    <category term="hardened"/>
    <category term="irc"/>
    <category term="meeting"/>
    <category term="monthly"/>
    <category term="online"/>
    <author>
      <name>swift</name>
    </author>
    <source>
      <id>http://blog.siphos.be</id>
      <link href="http://blog.siphos.be/category/gentoo/feed/" rel="self" type="application/rss+xml"/>
      <link href="http://blog.siphos.be" rel="alternate" type="text/html"/>
      <subtitle>Sven Vermeulen's web log</subtitle>
      <title>Simplicity is a form of art... » Gentoo</title>
      <updated>2013-05-24T02:03:11Z</updated>
    </source>
  </entry>

  <entry xml:lang="en-US">
    <id>http://blog.siphos.be/?p=1134</id>
    <link href="http://blog.siphos.be/2013/05/overriding-the-default-selinux-policies/" rel="alternate" type="text/html"/>
    <title>Overriding the default SELinux policies</title>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml">Extending SELinux policies with additional rules is easy. As SELinux uses a deny by default approach, all you need to do is to create a policy module that contains the additional (allow) rules, load that and you’re all set. But … <a href="http://blog.siphos.be/2013/05/overriding-the-default-selinux-policies/">Continue reading <span class="meta-nav">→</span></a></div>
    </summary>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>
Extending SELinux policies with additional rules is easy. As SELinux uses a <em>deny by default</em> approach, all you need to do is to <a href="https://wiki.gentoo.org/wiki/SELinux/Tutorials/Creating_your_own_policy_module_file">create a policy module</a> that contains the additional (allow) rules, load that and you’re all set. But what if you want to remove some rules?
</p>
<p>
Well, sadly, SELinux does not support deny rules. Once an allow rule is loaded in memory, it cannot be overturned anymore. Yes, you can disable the module itself that provides the rules, but you cannot selectively disable rules. So what to do?
</p>
<p>
Generally, you can disable the module that contains the rules you want to disable, and load a custom module that defines everything the original module did, except for those rules you don’t like. For instance, if you do not want the <tt>skype_t</tt> domain to be able to read/write to the video device, create your own skype-providing module (<em>myskype</em>) with the exact same content (except for the module name at the first line) as the original skype module, except for the video device:
</p>
<pre>dev_read_sound(skype_t)
# dev_read_video_dev(skype_t)
dev_write_sound(skype_t)
# dev_write_video_dev(skype_t)
</pre>
<p>
Load in this policy, and you now have the <tt>skype_t</tt> domain without the video access. You will get post-install failures when Gentoo pushes out an update to the policy though, since it will attempt to reload the <tt>skype.pp</tt> file (through the <tt>selinux-skype</tt> package) and fail because it declares types and attributes already provided (by <em>myskype</em>). You can <a href="http://www.gentoo.org/doc/en/handbook/handbook-x86.xml?part=3&amp;chap=5#doc_chap1">exclude the package</a> from being updated, which works as long as no packages depend on it. Or live with the post-install failure ;-) But there might be a simpler approach: <em>epatch_user</em>.
</p>
<p>
Recently, I added in support for <em>epatch_user</em> in the policy ebuilds. This allows users to create patches against the policy source code that we use and put them in <tt>/etc/portage/patches</tt> in the directory of the right category/package. For module patches, the working directory used is within the <tt>policy/modules</tt> directory of the policy checkout. For base, it is below the policy checkout (in other words, the patch will need to use the <tt>refpolicy/</tt> directory base). But because of how <em>epatch_user</em> works, any patch taken from the base will work as it will start stripping directories up to the fourth one.
</p>
<p>
This approach is also needed if you want to exclude rules from interfaces rather than from the <tt>.te</tt> file: create a small patch and put it in <tt>/etc/portage/patches</tt> for the <tt>sec-policy/selinux-base</tt> package (as this provides the interfaces).</p></div>
    </content>
    <updated>2013-05-15T01:50:42Z</updated>
    <category term="Hardened"/>
    <category term="SELinux"/>
    <category term="ebuild"/>
    <category term="epatch_user"/>
    <category term="Gentoo"/>
    <category term="override"/>
    <category term="patch"/>
    <category term="policy"/>
    <category term="selinux"/>
    <author>
      <name>swift</name>
    </author>
    <source>
      <id>http://blog.siphos.be</id>
      <link href="http://blog.siphos.be/category/gentoo/feed/" rel="self" type="application/rss+xml"/>
      <link href="http://blog.siphos.be" rel="alternate" type="text/html"/>
      <subtitle>Sven Vermeulen's web log</subtitle>
      <title>Simplicity is a form of art... » Gentoo</title>
      <updated>2013-05-24T02:03:11Z</updated>
    </source>
  </entry>

  <entry xml:lang="en-US">
    <id>http://blogs.gentoo.org/ago/?p=193</id>
    <link href="http://blogs.gentoo.org/ago/2013/05/14/avoid-the-spam-on-the-gentoo-org-mail-with-procmail/#utm_source=feed&amp;utm_medium=feed&amp;utm_campaign=feed" rel="alternate" type="text/html"/>
    <title>Avoid the spam on the gentoo.org mail with procmail</title>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml">I use it since a long time, so since it works pretty good for me, I want to share how to handle the spam for your @gentoo.org address with procmail. First, you need to say that procmail will filter your … <a href="http://blogs.gentoo.org/ago/2013/05/14/avoid-the-spam-on-the-gentoo-org-mail-with-procmail/">Continue reading <span class="meta-nav">→</span></a></div>
    </summary>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>I use it since a long time, so since it works pretty good for me, I want to share how to handle the spam for your @gentoo.org address with procmail.</p>
<p>First, you need to say that procmail will filter your email(s):<br/>
<code>echo "| /usr/bin/procmail" &gt; /home/${USER}/.forward</code></p>
<p>Then create a simple /home/${USER}/.procmailrc with this content:<br/>
<code>:0:<br/>
* ^X-Spam-Status: Yes<br/>
/dev/null</code></p><code>
<p>:0:<br/>
* ^X-Spam-Level: \*\*\*<br/>
/dev/null/</p>
<p>:0:<br/>
* ! ^List-Id<br/>
* ^X-Spam-Level: \*\*<br/>
/dev/null/</p>
<p>:0:<br/>
* ^Subject:.*viagra*<br/>
/dev/null</p>
<p>:0:<br/>
* ^Subject:.*cialis*<br/>
/dev/null</p>
<p>:0:<br/>
* ^Subject:.*money*<br/>
/dev/null</p>
<p>:0:<br/>
* ^Subject:.*rolex*<br/>
/dev/null</p>
<p>:0:<br/>
* ^Subject:.*scount*<br/>
/dev/null</p>
<p>:0:<br/>
* ^Subject:.*Viagra*<br/>
/dev/null</p>
<p>:0:<br/>
* ^Subject:.*Cialis*<br/>
/dev/null</p>
<p>:0:<br/>
* ^Subject:.*Marketing*<br/>
/dev/null</p>
<p>:0:<br/>
* ^Subject:.*marketing*<br/>
/dev/null</p>
<p>:0:<br/>
* ^Subject:.*Money*<br/>
/dev/null</p>
<p>:0:<br/>
* ^Subject:.*Rolex*<br/>
/dev/null</p>
<p>:0:<br/>
* ^Subject:.*Scount*<br/>
/dev/null</p>
<p>:0:<br/>
* ^Subject:.*glxgug*<br/>
/dev/null</p>
<p>:0:<br/>
* ^Subject:.*offizielle sieger*<br/>
/dev/null</p>
<p>:0:<br/>
* ^Subject:.*educational*<br/>
/dev/null</p>
<p>:0 B:<br/>
* $ content-[^:]+:${WS}*.+(\&lt;)*(file)?name${WS}*=${WS}*\/.+\.(pif|scr|com|cpl|vbs|mim|hqx|bhx|uue|uu|b64)\"?$<br/>
/dev/null</p>
<p>:0 B:<br/>
* ^Content-Type: .*;$[  ]*(file)?name=\"?.*\.(pif|scr|com|cpl|vbs)\"?$<br/>
/dev/null</p>
</code><p><code>:0 B:<br/>
* ^Content-Type: .*; [  ]*(file)?name=\"?.*\.(pif|scr|com|cpl|vbs)\"?$<br/>
/dev/null</code></p>
<p>With the filter for <em>X-Spam-Status</em> and <em>X-Spam-Level</em> you will avoid the majority of the incoming spam.<br/>
Some mails that does not have any Spam flag, contains subject like viagra, cialis ( which I absolutely don’t need <img alt=":D" class="wp-smiley" src="http://blogs.gentoo.org/ago/wp-includes/images/smilies/icon_biggrin.gif"/>  ), rolex and scount.<br/>
Yes, I could you the <em>(c|C)ase</em> syntax, but I had problems, so I prefer to write twice the rules instead of have any sort of troubles.<br/>
Note: with this email address I’m not subscribed to any newsletter or any sort of offers/catalogs so I filtered <em>scount, markerting, money</em>.</p>
<p>Sometimes I receive mails from people that are not spammer, with the X-Spam-Level flag with one star, so I decided to move these email into a folder, they will be double-checked with naked eye:</p>
<p><code>:0:<br/>
* ^X-Spam-Level: \*<br/>
/home/ago/.maildir/.INBOX.pspam/</code></p>
<p>To avoid confusion I always prefer to use a complete path here.</p>
<p>After a stabilization you will always see the annoying mail from the bugzilla which contains ${arch} stable, so if you want to drop them:</p>
<p><code>:0 B<br/>
* ^*(alpha|amd64|arm|hppa|ia64|m68k|ppc|ppc64|s390|sh|sparc|x86) stable*<br/>
/dev/null</code></p>
<p>Now, if you are using more email clients, on more computers, you may need to set the filters here instead of on all clients you are using, so for example:</p>
<p><code>:0<br/>
* ^From.*bugzilla-daemon@gentoo.org<br/>
* ^TO.*amd64@gentoo.org<br/>
/home/ago/.maildir/.INBOX.amd64/</code></p>
<p>And so on….<br/>
These, hints obviously are valid on all postfix-based mailserver; if you are using e.g. qmail, you need to move the .procmailrc, but this is still valid.<br/>
I hope this will help <img alt=":)" class="wp-smiley" src="http://blogs.gentoo.org/ago/wp-includes/images/smilies/icon_smile.gif"/> </p>
<p>EDIT:<br/>
If you need a particular set of rules, you can write it if you take a look at the source/header of the message, so If for example I don’t like to see the mails from bugzilla of the bugs that I reported:</p>
<p>the header says: <code>X-Bugzilla-Reporter: ago@gentoo.org</code><br/>
so:</p>
<p><code>:0<br/>
* ^From.*bugzilla-daemon@gentoo.org<br/>
* ^X-Bugzilla-Reporter.*ago@gentoo.org<br/>
/dev/null</code></p></div>
    </content>
    <updated>2013-05-14T12:37:18Z</updated>
    <category term="gentoo"/>
    <author>
      <name>ago</name>
    </author>
    <source>
      <id>http://blogs.gentoo.org/ago</id>
      <link href="http://blogs.gentoo.org/ago/category/gentoo/feed/" rel="self" type="application/rss+xml"/>
      <link href="http://blogs.gentoo.org/ago" rel="alternate" type="text/html"/>
      <subtitle>Awesome experience from arch testing and not only</subtitle>
      <title>Agostino's blog » gentoo</title>
      <updated>2013-05-19T15:02:09Z</updated>
    </source>
  </entry>

  <entry xml:lang="en-US">
    <id>http://blog.siphos.be/?p=1152</id>
    <link href="http://blog.siphos.be/2013/05/highlevel-assessment-of-cdorked-and-gentoo-hardenedselinux/" rel="alternate" type="text/html"/>
    <title>Highlevel assessment of Cdorked and Gentoo Hardened/SELinux</title>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml">With all the reports surrounding Cdorked, I took a look at if SELinux and/or other Gentoo Hardened technologies could reduce the likelihood that this infection occurs on your system. First of all, we don’t know yet how the malware gets … <a href="http://blog.siphos.be/2013/05/highlevel-assessment-of-cdorked-and-gentoo-hardenedselinux/">Continue reading <span class="meta-nav">→</span></a></div>
    </summary>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>
With all the <a href="http://www.welivesecurity.com/2013/05/07/linuxcdorked-malware-lighttpd-and-nginx-web-servers-also-affected/">reports</a> surrounding <a href="https://threatpost.com/attack-using-backdoored-apache-binaries-to-lead-to-blackhole-kit/">Cdorked</a>, I took a look at if SELinux and/or other Gentoo Hardened technologies could reduce the likelihood that this infection occurs on your system.
</p>
<p>
First of all, we don’t know yet how the malware gets installed on the server. We do know that the Apache binaries themselves are modified, so the first thing to look at is to see if this risk can be reduced. Of course, using an intrusion detection system like <a href="https://wiki.gentoo.org/wiki/AIDE">AIDE</a> helps, but even with Gentoo’s <b>qcheck</b> command you can test the integrity of the files:
</p>
<pre># qcheck www-servers/apache
Checking www-servers/apache-2.2.24 ...
  * 424 out of 424 files are good
</pre>
<p>
If the binary is modified, this would result in something equivalent to:
</p>
<pre>Checking www-servers/apache-2.2.24 ...
 MD5-DIGEST: /usr/sbin/apache2
  * 423 out of 424 files are good
</pre>
<p>
I don’t know if the modified binary would otherwise work just fine, I have not been able to find exact details on the infected binary to (in a sandbox environment of course) analyze this further. Also, because we don’t know how they are installed, it is not easy to know if binaries that you built yourself are equally likely to be modified/substituted or if the attack checks checksums of the binaries against a known list.
</p>
<p>
Assuming that it would run, then the infecting malware would need to set the proper SELinux context on the file (if it overwrites the existing binary, then the context is retained, otherwise it gets the default context of <tt>bin_t</tt>). If the context is wrong, then starting Apache results in:
</p>
<pre>apache2: Syntax error on line 61 of /etc/apache2/httpd.conf: Cannot load /usr/lib64/apache2/modules/mod_actions.so into server: /usr/lib64/apache2/modules/mod_actions.so: cannot open shared object file: Permission denied
</pre>
<p>
This is because the modified binary stays in the calling domain context (<tt>initrc_t</tt>). If you use a targeted policy, then this will not present itself as <tt>initrc_t</tt> is an unconfined domain. But with strict policies, <tt>initrc_t</tt> is not allowed to read <tt>httpd_modules_t</tt>. Even worse, the remainder of SELinux protections don’t apply anymore, since with unconfined domains, all bets are off. That is why Gentoo focuses this hard on using a strict policy.
</p>
<p>
So, what if the binary runs in the proper domain? Well then, from the articles I read, the malware can do a reverse connect. That means that the domain will attempt to connect to an IP address provided by the attacker (in a specifically crafted URL). For SELinux, this means that the <em>name_connect</em> permission is checked:
</p>
<pre># sesearch -s httpd_t -c tcp_socket -p name_connect -ACTS
Found 20 semantic av rules:
   allow nsswitch_domain dns_port_t : tcp_socket { name_connect } ; 
DT allow httpd_t port_type : tcp_socket { name_connect } ; [ httpd_can_network_connect ]
DT allow httpd_t ftp_port_t : tcp_socket { name_connect } ; [ httpd_can_network_relay ]
DT allow httpd_t smtp_port_t : tcp_socket { name_connect } ; [ httpd_can_sendmail ]
DT allow httpd_t postgresql_port_t : tcp_socket { name_connect } ; [ httpd_can_network_connect_db ]
DT allow httpd_t oracledb_port_t : tcp_socket { name_connect } ; [ httpd_can_network_connect_db ]
DT allow httpd_t squid_port_t : tcp_socket { name_connect } ; [ httpd_can_network_relay ]
DT allow httpd_t mssql_port_t : tcp_socket { name_connect } ; [ httpd_can_network_connect_db ]
DT allow httpd_t kerberos_port_t : tcp_socket { name_connect } ; [ allow_kerberos ]
DT allow nsswitch_domain ldap_port_t : tcp_socket { name_connect } ; [ authlogin_nsswitch_use_ldap ]
DT allow httpd_t http_cache_port_t : tcp_socket { name_connect } ; [ httpd_can_network_relay ]
DT allow httpd_t http_port_t : tcp_socket { name_connect } ; [ httpd_can_network_relay ]
DT allow httpd_t http_port_t : tcp_socket { name_connect } ; [ httpd_graceful_shutdown ]
DT allow httpd_t mysqld_port_t : tcp_socket { name_connect } ; [ httpd_can_network_connect_db ]
DT allow httpd_t ocsp_port_t : tcp_socket { name_connect } ; [ allow_kerberos ]
DT allow nsswitch_domain kerberos_port_t : tcp_socket { name_connect } ; [ allow_kerberos ]
DT allow httpd_t pop_port_t : tcp_socket { name_connect } ; [ httpd_can_sendmail ]
DT allow nsswitch_domain ocsp_port_t : tcp_socket { name_connect } ; [ allow_kerberos ]
DT allow httpd_t gds_db_port_t : tcp_socket { name_connect } ; [ httpd_can_network_connect_db ]
DT allow httpd_t gopher_port_t : tcp_socket { name_connect } ; [ httpd_can_network_relay ]
</pre>
<p>
So by default, the Apache (<tt>httpd_t</tt>) domain is allowed to connect to DNS port (to resolve hostnames). All other <em>name_connect</em> calls depend on SELinux booleans (mentioned after it) that are by default disabled (at least on Gentoo). Disabling hostname resolving is not really feasible, so if the attacker uses a DNS port as port that the malware needs to connect to, SELinux will not deny it (unless you use additional networking constraints).
</p>
<p>
Now, the reverse connect is an interesting feature of the malware, but not the main one. The main focus of the malware is to redirect customers to particular sites that can trick the user in downloading additional (client) malware. Because this is done internally within Apache, SELinux cannot deal with this. As a user, make sure you configure your browser not to trust non-local iframes and such (always do this, not just because there is a possible threat right now). The configuration of Cdorked is a shared memory segment of Apache itself. Of course, since Apache uses shared memory, the malware embedded within will also have access to the shared memory. However, if this shared memory would need to be accessed by third party applications (the malware seems to grant read/write rights on everybody to this segment) SELinux will prevent this:
</p>
<pre># sesearch -t httpd_t -c shm -ACTS
Found 2 semantic av rules:
   allow unconfined_domain_type domain : shm { create destroy getattr setattr read write associate unix_read unix_write lock } ; 
   allow httpd_t httpd_t : shm { create destroy getattr setattr read write associate unix_read unix_write lock } ; 
</pre>
<p>
Only unconfined domains and the <tt>httpd_t</tt> domain itself have access to <tt>httpd_t</tt> labeled shared memory.
</p>
<p>
So what about IMA/EVM? Well, those will not help here since IMA checks for integrity of files that were modified <em>offline</em>. As the modification of the Apache binaries is most likely done online, IMA would just accept this.
</p>
<p>
For now, it seems that a good system integrity approach is the most effective until we know more about how the malware-infected binary is written to the system in the first place (as this is better protected by MAC controls like SELinux).</p></div>
    </content>
    <updated>2013-05-14T01:50:01Z</updated>
    <category term="Hardened"/>
    <category term="SELinux"/>
    <category term="apache"/>
    <category term="cdorked"/>
    <category term="Gentoo"/>
    <category term="hardened"/>
    <category term="ima"/>
    <category term="selinux"/>
    <author>
      <name>swift</name>
    </author>
    <source>
      <id>http://blog.siphos.be</id>
      <link href="http://blog.siphos.be/category/gentoo/feed/" rel="self" type="application/rss+xml"/>
      <link href="http://blog.siphos.be" rel="alternate" type="text/html"/>
      <subtitle>Sven Vermeulen's web log</subtitle>
      <title>Simplicity is a form of art... » Gentoo</title>
      <updated>2013-05-24T02:03:11Z</updated>
    </source>
  </entry>

  <entry xml:lang="en-US">
    <id>http://blog.hartwork.org/?p=1928</id>
    <link href="http://blog.hartwork.org/?p=1928" rel="alternate" type="text/html"/>
    <link href="http://creativecommons.org/licenses/by-sa/3.0/" rel="license"/>
    <title>svneverever 1.2.2 released + UTF-8 bug in svn2git 1.0.8</title>
    <summary>When working on (the still on-going) migration of the Gentoo java project repositories from SVN to Git I ran into bugs with svn2git 1.0.8 and my own svneverever 1.2.1. The bug with svn2git 1.0.8 was a regression that broke support for (non-ASCII) UTF-8 author names in identity maps. That’s fixed in dev-vcs/svn2git-1.0.8-r1 in Gentoo. I [...]</summary>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>When working on (the still on-going) <a href="https://bugs.gentoo.org/show_bug.cgi?id=457818">migration of the Gentoo java project repositories from SVN to Git</a> I ran into bugs with <a href="https://www.gitorious.org/svn2git/svn2git/">svn2git</a> 1.0.8 and my own <a href="http://git.goodpoint.de/?p=svneverever.git;a=summary">svneverever</a> 1.2.1.</p>
<p>The bug with svn2git 1.0.8 was a regression that broke support for (non-ASCII) UTF-8 author names in identity maps. That’s <a href="http://sources.gentoo.org/cgi-bin/viewvc.cgi/gentoo-x86/dev-vcs/svn2git/files/svn2git-1.0.8-utf8-author-names.patch?view=markup">fixed</a> in <tt>dev-vcs/svn2git-1.0.8-r1</tt> in Gentoo. I sent the patch upstream and to the Debian package maintainer, too.</p>
<p>For svneverever, a directory that re-appeared after deletion was reported to only live once, e.g. the output was</p>
<pre>(2488; 9253)  /projects
(2490; 9253)      /java-config-2
(2490; 2586)          /trunk</pre>
<p>if directory <tt>/projects/java-config-2/trunk/</tt> got deleted at revision 2586, no matter if was re-created later. With 9253 revisions in total, the correct output (with svneverever 1.2.2) is:</p>
<pre>(2488; 9253)  /projects
(2490; 9253)      /java-config-2
(2490; <em>9253</em>)          /trunk</pre>
<p>That’s fixed in <a href="http://hartwork.org/public/svneverever-1.2.2.tar.gz">svneverever 1.2.2</a>.</p>
<p>If <a href="http://git.goodpoint.de/?p=svneverever.git;a=summary">svneverever</a> is of help to you, please <a href="https://flattr.com/thing/45617/svneverever">support me on Flattr</a>. Thanks!</p>
<p/></div>
    </content>
    <updated>2013-05-11T01:15:41Z</updated>
    <category term="Gentoo"/>
    <category term="Planet Freitagsrunde"/>
    <category term="Planet Gentoo"/>
    <category term="Planet Gentoo Universe"/>
    <author>
      <name>sping</name>
    </author>
    <source>
      <id>http://blog.hartwork.org</id>
      <link href="http://blog.hartwork.org/?feed=rss2&amp;cat=39" rel="self" type="application/rss+xml"/>
      <link href="http://blog.hartwork.org" rel="alternate" type="text/html"/>
      <link href="http://creativecommons.org/licenses/by-sa/3.0/" rel="license"/>
      <subtitle>Free Software and Music</subtitle>
      <title>Hartwork Blog » Planet Gentoo</title>
      <updated>2013-05-23T22:03:10Z</updated>
    </source>
  </entry>

  <entry xml:lang="en-US">
    <id>http://www.gentoo.org/news/20130522-linuxtag.xml</id>
    <link href="http://www.gentoo.org/news/20130522-linuxtag.xml" rel="alternate" type="text/html"/>
    <title>Gentoo at LinuxTag 2013 in Berlin</title>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p><a href="http://www.linuxtag.org/2013/"><img alt="" src="http://www.gentoo.org/images/pr/Thumbnail_LinuxTag-Logo-plain-yellow_03.jpg"/></a></p><p><b>LinuxTag 2013 </b>runs from May 22nd to May 25th in Berlin, Germany. With more
    than 10,000 visitors last year, it is one of the biggest Linux and open
    source events in Europe. 
</p><p>
You will find the Gentoo booth at <b>Hall 7.1c, Booth 179</b>. Come and visit
us! You will meet many of our developers and users, talk with us, plus get some
of the Gentoo merchandise you have always wanted.
</p></div>
    </summary>
    <updated>2013-05-10T03:02:26Z</updated>
    <category term="gentoo"/>
    <author>
      <name>David Abbott</name>
    </author>
    <source>
      <id>http://www.gentoo.org/</id>
      <author>
        <name/>
        <email>www@gentoo.org</email>
      </author>
      <link href="http://www.gentoo.org/" rel="alternate" type="text/html"/>
      <link href="http://www.gentoo.org/rdf/en/gentoo-news.rdf" rel="self" type="application/rdf+xml"/>
      <subtitle>Gentoo Linux News</subtitle>
      <title>Gentoo Linux News</title>
      <updated>2013-05-10T03:02:26Z</updated>
    </source>
  </entry>

  <entry xml:lang="en-US">
    <id>http://blog.siphos.be/?p=1126</id>
    <link href="http://blog.siphos.be/2013/05/gentoo-metadata-support-for-cpe/" rel="alternate" type="text/html"/>
    <title>Gentoo metadata support for CPE</title>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml">Recently, the metadata.xml file syntax definition (the DTD for those that know a bit of XML) has been updated to support CPE definitions. A CPE (Common Platform Enumeration) is an identifier that describes an application, operating system or hardware device … <a href="http://blog.siphos.be/2013/05/gentoo-metadata-support-for-cpe/">Continue reading <span class="meta-nav">→</span></a></div>
    </summary>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>
Recently, the <tt>metadata.xml</tt> file syntax definition (the DTD for those that know a bit of XML) has been updated to support CPE definitions. A <a href="https://nvd.nist.gov/cpe.cfm">CPE</a> (Common Platform Enumeration) is an identifier that <a href="http://cpe.mitre.org/specification/index.html">describes</a> an application, operating system or hardware device using its vendor, product name, version, update, edition and language. This CPE information is used in the CVE releases (Common Vulnerabilities and Exposures) – announcements about vulnerabilities in applications, operating systems or hardware. Not all security vulnerabilities are assigned a CVE number, but this is as close as you get towards a (public) elaborate dictionary of vulnerabilities.
</p>
<p>
By allowing Gentoo package maintainers to enter (part of) the CPE information in the <tt>metadata.xml</tt> file, applications that parse the CVE information can now more easily match if software installed on Gentoo is related to a CVE. I had a <a href="http://blog.siphos.be/2013/04/matching-packages-with-cves/">related post</a> to this not that long ago on my blog and I’m glad this change has been made. With this information at hand, we can start feeding CPE information to the packages and then easily match this with CVEs.
</p>
<p>
I had a request to “provide” the scripts I used for the previous post. Mind you, these are taking too many assumptions (and probably wrong ones) for now (and I’m not really planning on updating them as I have different methods for getting information related to CVEs), but I’m planning on integrating CPE data in Gentoo’s packages more and then create a small script that generates a “watchlist” that I can feed to <a href="http://cvechecker.sourceforge.net">cvechecker</a>. But anyway, here are the scripts.
</p>
<p>
<a href="http://dev.gentoo.org/~swift/blog/01/0_createcve.txt">First</a>, I took all CVE information and put it in a simple CSV file. The CSV is the same one used by cvechecker, so check out the application to see where it fetches the data from (there is a CVE RSS feed and a simple XSL transformation). <a href="http://dev.gentoo.org/~swift/blog/01/1_createhitlist.txt">Second</a>, I create a “hitlist” which generates the CPEs. With the recent change to <tt>metadata.xml</tt> this step can be simplified a lot. <a href="http://dev.gentoo.org/~swift/blog/01/2_matchcve.txt">Third</a>, I try to match the CPE data with the CVE data, depending on a given time delay of commits. In other words, you can ask possible CVE fixes for commits made in the last few XXX days.</p></div>
    </content>
    <updated>2013-05-10T01:50:51Z</updated>
    <category term="Gentoo"/>
    <category term="Security"/>
    <category term="cpe"/>
    <category term="cve"/>
    <category term="metadata"/>
    <category term="security"/>
    <author>
      <name>swift</name>
    </author>
    <source>
      <id>http://blog.siphos.be</id>
      <link href="http://blog.siphos.be/category/gentoo/feed/" rel="self" type="application/rss+xml"/>
      <link href="http://blog.siphos.be" rel="alternate" type="text/html"/>
      <subtitle>Sven Vermeulen's web log</subtitle>
      <title>Simplicity is a form of art... » Gentoo</title>
      <updated>2013-05-24T02:03:11Z</updated>
    </source>
  </entry>

  <entry>
    <id>http://jkt.flaska.net/blog/On_Innovation__NIH__Trojita_and_KDE_PIM.html</id>
    <link href="http://jkt.flaska.net/blog/On_Innovation__NIH__Trojita_and_KDE_PIM.html" rel="alternate" type="text/html"/>
    <title>On Innovation, NIH, Trojita and KDE PIM</title>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>Jos wrote a <a href="http://blog.jospoortvliet.com/2013/05/on-innovation-free-software-nih-geary.html">blog
post</a> yesterday commenting on the complexity of the PIM problem. He <a href="http://www.phdcomics.com/comics/archive.php?comicid=581">raises an
interesting concern</a> about whether we would be all better if there was no <a href="http://trojita.flaska.net/">Trojitá</a> and I just improved KMail instead.
As usual, the matter is more complicated than it might seem on a first sight.</p>

<p><b>Executive Summary:</b> I tried working with KDEPIM. The KDEPIM IMAP stack
required a total rewrite in order to be useful. At the time I started, Akonadi
did not exist. The rewrite has been done, and Trojitá is the result. It is up
to the Akonadi developers to use Trojitá's IMAP implementation if they are
interested; it is modular enough.</p>

<p>People might wonder why Trojitá exists at all. I started working on it
because I wasn't happy with how the mail clients performed back in 2006. The
supported features were severely limited, the speed was horrible.  After
studying the IMAP protocol, it became obvious that the reason for this slowness
is the rather stupid way in which the contemporary clients treated the remote
mail store. Yes, it's really a very dumb idea to load <em>tens of thousands</em>
of messages when opening a mailbox for the first time. Nope, it does not make
sense to block the GUI until you fetch that 15MB mail over a slow and capped
cell phone connection.  Yes, you can do better with IMAP, and the possibility
has been there for <em>years</em>. The problem is that the clients were not
using the IMAP protocol in an efficient manner.</p>

<p>It is not easy to retrofit a decent IMAP support into an existing client.
There could be numerous code paths which just assume that everything happens
synchronously and block the GUI when the data are stuck on the wire for some
reason. Doing this properly, fetching just the required data and doing all
that in an asynchronous manner is not easy -- but it's doable nonetheless. It
requires huge changes to the overall architecture of the legacy applications,
however.</p>

<p><a href="http://trojita.flaska.net/download.html">Give Trojitá a try</a> now
and see how fast it is. I'm serious here -- Trojitá opens a mailbox with tens of
thousands of messages in a fraction of second. Try to open a big e-mail with
vacation pictures from your relatives over a slow link -- you will see the
important textual part pop up immediately with the images being loaded in the
background, not disturbing your work. Now try to do the same in your favorite
e-mail client -- if it's as fast as Trojitá, congratulations. If not, perhaps
you should switch.</p>

<p>Right now, the IMAP support in Trojitá is way more advanced than what is
shipped in Geary or KDE PIM -- and it is this solid foundation which leads to
Trojitá's performance. What needs work now is polishing the GUI and making it
play well with the rest of a users' system. <b>I don't care whether this
polishing means improving Trojitá's GUI iteratively or whether its IMAP
support gets used as a library in, say, KMail -- both would be very succesfull
outcomes.</b> It would be terrific to somehow combine the nice, polished UI of
the more established e-mail clients with the IMAP engine from Trojitá. There
is a GSoC proposal for integrating Trojitá into KDE's Kontact -- but for it to
succeed, people from other projects must get involved as well. I have put
seven years of my time into making the IMAP support rock; I would not be able
to achieve the same if I was improving KMail instead. I don't <em>need</em> a
fast KMail, I need a <em>great e-mail client</em>.  Trojitá works well enough
for me.</p>

<p>Oh, and there's also a currently running <a href="https://www.catincan.com/proposal/trojita/integrate-address-book-trojit%C3%A1-fast-imap-e-mail-client">fundraiser
for better address book integration in Trojitá</a>. We are not asking for
$ 100k, we are asking for $ 199. Let's see how many people are willing
to put the money where their mouth is and actually <em>do</em> something to help
the PIM on a free desktop. Patches and donations are both equally welcome.
Actually, not really -- great patches are much more appreciated. Because Jos
is right -- it takes a lot of work to produce great software, and things get
better when there are more poeple working towards their common goal
together.</p>

<p><em>Update:</em> it looks like my choice of kickstarter platform was rather
poor, catincan apparently doesn't accept PayPal :(. There's the possiblity of
<a href="http://sourceforge.net/donate/index.php?group_id=339456">direct donations over
SourceForge/PayPal</a> -- please keep in mind that these will be charged even
if less donors pledge to the idea.</p></div>
    </summary>
    <updated>2013-05-07T08:02:35Z</updated>
    <source>
      <id>http://jkt.flaska.net/blog/</id>
      <author>
        <name>Jan Kundrát</name>
      </author>
      <link href="http://jkt.flaska.net/blog/" rel="alternate" type="text/html"/>
      <link href="http://jkt.flaska.net/blog/tags/gentoo/gentoo.rss" rel="self" type="application/rss+xml"/>
      <subtitle>Entries tagged gentoo</subtitle>
      <title>jkt's blog - Entries tagged gentoo</title>
      <updated>2013-05-07T12:02:36Z</updated>
    </source>
  </entry>

  <entry xml:lang="en-US">
    <id>http://blog.siphos.be/?p=1118</id>
    <link href="http://blog.siphos.be/2013/05/added-predictable-network-interface-info-into-the-handbook/" rel="alternate" type="text/html"/>
    <title>Added “predictable network interface” info into the handbook</title>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml">Being long overdue – like many of our documentation-reported bugs :-( I worked on bug 466262 to update the Gentoo Handbook with information about Network Interface Naming. Of course, the installation instructions have also seen the necessary updates to refer … <a href="http://blog.siphos.be/2013/05/added-predictable-network-interface-info-into-the-handbook/">Continue reading <span class="meta-nav">→</span></a></div>
    </summary>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>
Being long overdue – like many of our documentation-reported bugs :-( I worked on <a href="https://bugs.gentoo.org/show_bug.cgi?id=466262">bug 466262</a> to update the <a href="http://www.gentoo.org/doc/en/handbook/">Gentoo Handbook</a> with information about <a href="http://www.gentoo.org/doc/en/handbook/handbook-amd64.xml?part=4&amp;chap=2#doc_chap4">Network Interface Naming</a>. Of course, the installation instructions have also seen the necessary updates to refer to this change.
</p>
<p>
With some luck (read: time) I might be able to fix various other documentation-related ones soon. I had some problems with the new SELinux userspace that I wanted to get fixed before, and then I worked on the new SELinux policies as well as trying to figure out how SELinux deals with network related aspects. Hence I saw time fly by at the speed of a neutrino…
</p>
<p>
BTW, the 20130424 policies are in the tree.</p></div>
    </content>
    <updated>2013-05-07T01:50:22Z</updated>
    <category term="Documentation"/>
    <category term="documentation"/>
    <category term="gdp"/>
    <category term="Gentoo"/>
    <category term="udev"/>
    <author>
      <name>swift</name>
    </author>
    <source>
      <id>http://blog.siphos.be</id>
      <link href="http://blog.siphos.be/category/gentoo/feed/" rel="self" type="application/rss+xml"/>
      <link href="http://blog.siphos.be" rel="alternate" type="text/html"/>
      <subtitle>Sven Vermeulen's web log</subtitle>
      <title>Simplicity is a form of art... » Gentoo</title>
      <updated>2013-05-24T02:03:11Z</updated>
    </source>
  </entry>

  <entry xml:lang="en-US">
    <id>http://blogs.gentoo.org/ago/?p=184</id>
    <link href="http://blogs.gentoo.org/ago/2013/05/05/new-repoman-option-include-arches-the-benefit-for-an-arch-team-member/#utm_source=feed&amp;utm_medium=feed&amp;utm_campaign=feed" rel="alternate" type="text/html"/>
    <title>New repoman option “–include-arches”: the benefit for an arch team member</title>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml">Since a long time I realized that is a pita every time that I keyword, receive a repoman failure for dependency.bad(mostly) that does not regard the arch that I’m changing. So, checking in the repoman manual, I realized that –ignore-arches … <a href="http://blogs.gentoo.org/ago/2013/05/05/new-repoman-option-include-arches-the-benefit-for-an-arch-team-member/">Continue reading <span class="meta-nav">→</span></a></div>
    </summary>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>Since a long time I realized that is a pita every time that I keyword, receive a repoman failure for dependency.bad(mostly) that does not regard the arch that I’m changing.<br/>
So, checking in the repoman manual, I realized that –ignore-arches looks bad for my case and I decided to request a new <a href="https://bugs.gentoo.org/show_bug.cgi?id=466116">feature</a>: –include-arches.<br/>
This feature, as explained in the bug, checks only for the arches that you write as argument and should be used only when you are keywording/stabilizing.</p>
<p>Some examples/usage:</p>
<p>First, it saves time, the following example will try to run repoman full in the kdelibs directory:<br/>
<code>$ time repoman full &gt; /dev/null 2&gt;&amp;1<br/>
real    0m12.434s</code></p><code>
</code><p><code>$ time repoman full --include-arches "amd64" &gt; /dev/null 2&gt;&amp;1<br/>
real    0m3.880s</code></p>
<p>Second, kdelibs suffers for a dependency.bad on amd64-fbsd, so:<br/>
<code>$ repoman full<br/>
RepoMan scours the neighborhood...<br/>
&gt;&gt;&gt; Creating Manifest for /home/ago/gentoo-x86/kde-base/kdelibs<br/>
  dependency.bad                2<br/>
   kde-base/kdelibs/kdelibs-4.10.2.ebuild: PDEPEND: ~amd64-fbsd(default/bsd/fbsd/amd64/9.0) ['&gt;=kde-base/nepomuk-widgets-4.10.2:4[aqua=]']</code></p><code>
</code><p><code>$ repoman full --include-arches "amd64"<br/>
RepoMan scours the neighborhood...<br/>
&gt;&gt;&gt; Creating Manifest for /home/ago/gentoo-x86/kde-base/kdelibs</code></p>
<p>Now when I will keyword the packages I can check for specific arches and skip the unuseful checks since they causes, in this case, only a waste of time.<br/>
Thanks to Zac for the work on it.</p></div>
    </content>
    <updated>2013-05-05T14:43:48Z</updated>
    <category term="gentoo"/>
    <author>
      <name>ago</name>
    </author>
    <source>
      <id>http://blogs.gentoo.org/ago</id>
      <link href="http://blogs.gentoo.org/ago/category/gentoo/feed/" rel="self" type="application/rss+xml"/>
      <link href="http://blogs.gentoo.org/ago" rel="alternate" type="text/html"/>
      <subtitle>Awesome experience from arch testing and not only</subtitle>
      <title>Agostino's blog » gentoo</title>
      <updated>2013-05-19T15:02:09Z</updated>
    </source>
  </entry>

  <entry xml:lang="en-US">
    <id>http://blog.hartwork.org/?p=1923</id>
    <link href="http://blog.hartwork.org/?p=1923" rel="alternate" type="text/html"/>
    <link href="http://creativecommons.org/licenses/by-sa/3.0/" rel="license"/>
    <title>May 3rd = Day Against DRM</title>
    <summary>Learn more at dayagainstdrm.org (and drm.info).</summary>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>Learn more at <a href="http://dayagainstdrm.org/">dayagainstdrm.org</a> (and <a href="http://drm.info/">drm.info</a>).</p></div>
    </content>
    <updated>2013-05-03T14:23:13Z</updated>
    <category term="Frustration"/>
    <category term="Planet Freitagsrunde"/>
    <category term="Planet Gentoo"/>
    <category term="Planet Gentoo Universe"/>
    <author>
      <name>sping</name>
    </author>
    <source>
      <id>http://blog.hartwork.org</id>
      <link href="http://blog.hartwork.org/?feed=rss2&amp;cat=39" rel="self" type="application/rss+xml"/>
      <link href="http://blog.hartwork.org" rel="alternate" type="text/html"/>
      <link href="http://creativecommons.org/licenses/by-sa/3.0/" rel="license"/>
      <subtitle>Free Software and Music</subtitle>
      <title>Hartwork Blog » Planet Gentoo</title>
      <updated>2013-05-23T22:03:10Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://dberkholz.com/?p=834</id>
    <link href="http://dberkholz.com/2013/05/01/get-paid-to-write-open-source-software-this-summer/" rel="alternate" type="text/html"/>
    <link href="http://dberkholz.com/2013/05/01/get-paid-to-write-open-source-software-this-summer/#comments" rel="replies" type="text/html"/>
    <link href="http://dberkholz.com/2013/05/01/get-paid-to-write-open-source-software-this-summer/feed/atom/" rel="replies" type="application/atom+xml"/>
    <title xml:lang="en">Get paid to write open-source software this summer</title>
    <summary type="xhtml" xml:lang="en"><div xmlns="http://www.w3.org/1999/xhtml">If you’re a university student, time is running out! You could get paid to hack on Gentoo or other open-source software this summer, but you’ve gotta act now. The deadline to apply for the Google Summer of Code is this Friday. If this sounds like your dream come true, you can find some Gentoo project [...]<img alt="" border="0" height="1" src="http://stats.wordpress.com/b.gif?host=dberkholz.com&amp;blog=2962469&amp;post=834&amp;subd=dberkholz&amp;ref=&amp;feed=1" width="1"/></div>
    </summary>
    <content type="xhtml" xml:lang="en"><div xmlns="http://www.w3.org/1999/xhtml"><p>If you’re a university student, time is running out! You could get paid to hack on Gentoo or other open-source software this summer, but you’ve gotta act now. The deadline to apply for the <a href="http://www.google-melange.com/gsoc/events/google/gsoc2013">Google Summer of Code</a> is this Friday.</p>
<p>If this sounds like your dream come true, you can find some Gentoo project ideas <a href="http://wiki.gentoo.org/wiki/Google_Summer_of_Code/2013/Ideas">here</a> and Gentoo’s GSoC homepage <a href="http://www.google-melange.com/gsoc/org/google/gsoc2013/gentoo">here</a>. For non-Gentoo projects, you can scan through the GSoC <a href="http://www.google-melange.com/gsoc/homepage/google/gsoc2013">website</a> to find the details.</p>
<br/> Tagged: <a href="http://dberkholz.com/tag/gentoo/">gentoo</a>, <a href="http://dberkholz.com/tag/gsoc/">gsoc</a> <a href="http://feeds.wordpress.com/1.0/gocomments/dberkholz.wordpress.com/834/" rel="nofollow"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/dberkholz.wordpress.com/834/"/></a> <img alt="" border="0" height="1" src="http://stats.wordpress.com/b.gif?host=dberkholz.com&amp;blog=2962469&amp;post=834&amp;subd=dberkholz&amp;ref=&amp;feed=1" width="1"/></div>
    </content>
    <updated>2013-05-01T07:20:56Z</updated>
    <published>2013-05-01T07:20:56Z</published>
    <category scheme="http://dberkholz.com" term="Blog"/>
    <category scheme="http://dberkholz.com" term="gentoo"/>
    <category scheme="http://dberkholz.com" term="gsoc"/>
    <author>
      <name>Donnie Berkholz</name>
      <uri>http://dberkholz.wordpress.com/</uri>
    </author>
    <source>
      <id>http://dberkholz.com/feed/atom/</id>
      <link href="http://dberkholz.com" rel="alternate" type="text/html"/>
      <link href="http://dberkholz.com/tag/gentoo/feed/atom/" rel="self" type="application/atom+xml"/>
      <link href="http://dberkholz.com/osd.xml" rel="search" title="Striving for greatness" type="application/opensearchdescription+xml"/>
      <link href="http://wordpress.com/opensearch.xml" rel="search" title="WordPress.com" type="application/opensearchdescription+xml"/>
      <link href="http://dberkholz.com/?pushpress=hub" rel="hub" type="text/html"/>
      <subtitle xml:lang="en">The life and times of a Gentoo developer and leader</subtitle>
      <title xml:lang="en">Striving for greatness » gentoo</title>
      <updated>2013-05-01T07:21:00Z</updated>
    </source>
  </entry>

  <entry xml:lang="en-US">
    <id>http://blog.siphos.be/?p=1015</id>
    <link href="http://blog.siphos.be/2013/05/selinux-mount-options/" rel="alternate" type="text/html"/>
    <title>SELinux mount options</title>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml">When you read through the Gentoo Hardened SELinux handbook, you’ll notice that we sometimes update /etc/fstab with some SELinux-specific settings. So, what are these settings about and are there more of them? First of all, let’s look at a particular … <a href="http://blog.siphos.be/2013/05/selinux-mount-options/">Continue reading <span class="meta-nav">→</span></a></div>
    </summary>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>
When you read through the <a href="http://www.gentoo.org/proj/en/hardened/selinux/selinux-handbook.xml">Gentoo Hardened SELinux handbook</a>, you’ll notice that we sometimes update <tt>/etc/fstab</tt> with some SELinux-specific settings. So, what are these settings about and are there more of them?
</p>
<p>
First of all, let’s look at a particular example from the installation instructions so you see what I am talking about:
</p>
<pre>tmpfs  /tmp  tmpfs  defaults,noexec,nosuid,rootcontext=system_u:object_r:tmp_t  0 0
</pre>
<p>
What the <em>rootcontext=</em> option does here is to set the context of the “root” of that file system (meaning, the context of <tt>/tmp</tt> in the example) to the specified context <em>before</em> the file system is made visible to the userspace. Because we do it soon, the file system is known as <tt>tmp_t</tt> throughout its life cycle (not just after the mount or so).
</p>
<p>
Another option that you’ll frequently see on the Internet is the <em>context=</em> option. This option is most frequently used for file systems that do not support extended attributes, and as such cannot store the context of files on the file system. With the <em>context=</em> mount option set, all files on that file system get the specified context. For instance, <em>context=system_u:object_r:removable_t</em>.
</p>
<p>
If the file system does support extended attributes, you might find some benefit in using the <em>defcontext=</em> option. When set, the context of files and directories (and other resources on that file system) that do not have a SELinux context set yet will use this default context. However, once a context is set, it will use that context instead.
</p>
<p>
The last context-related mount option is <em>fscontext=</em>. With this option, you set the context of the “filesystem” class object of the file system rather than the mount itself (or the files). Within SELinux, “filesystem” is one of the resource classes that can get a context. Remember the <tt>/tmp</tt> mount example from before? Well, even though the files are labeled <tt>tmp_t</tt>, the file system context itself is still <tt>tmpfs_t</tt>.
</p>
<p>
It is important to know that, if you use one of these mount options, <em>context=</em> is mutually exclusive to the other options as it “forces” the context on all resources (including the filesystem class).</p></div>
    </content>
    <updated>2013-05-01T01:50:07Z</updated>
    <category term="Hardened"/>
    <category term="SELinux"/>
    <category term="mount"/>
    <category term="selinux"/>
    <author>
      <name>swift</name>
    </author>
    <source>
      <id>http://blog.siphos.be</id>
      <link href="http://blog.siphos.be/category/gentoo/feed/" rel="self" type="application/rss+xml"/>
      <link href="http://blog.siphos.be" rel="alternate" type="text/html"/>
      <subtitle>Sven Vermeulen's web log</subtitle>
      <title>Simplicity is a form of art... » Gentoo</title>
      <updated>2013-05-24T02:03:11Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://armin762.wordpress.com/?p=232</id>
    <link href="http://armin762.wordpress.com/2013/04/28/the-new-beaglebone-black-and-gentoo/" rel="alternate" type="text/html"/>
    <title>The new BeagleBone Black and Gentoo</title>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml">Hi all, long time no see. Some weeks ago I got an early version of the BeagleBone Black from the people at Beagleboard.org to create the documentation I always create with every device I get. Like always i’d like to announce the guide for installing Gentoo in the BeagleBone Black. Have a look at: http://dev.gentoo.org/~armin76/arm/beagleboneblack/install.xml […]<img alt="" border="0" height="1" src="http://stats.wordpress.com/b.gif?host=armin762.wordpress.com&amp;blog=10640460&amp;post=232&amp;subd=armin762&amp;ref=&amp;feed=1" width="1"/></div>
    </summary>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>Hi all, long time no see.</p>
<p>Some weeks ago I got an early version of the <a href="http://beagleboard.org/Products/BeagleBone%20Black" title="BeagleBone Black">BeagleBone Black</a> from the people at <a href="http://beagleboard.org">Beagleboard.org</a> to create the documentation I always create with every device I get.</p>
<p>Like always i’d like to announce the guide for installing Gentoo in the BeagleBone Black. Have a look at: <a href="http://dev.gentoo.org/~armin76/arm/beagleboneblack/install.xml">http://dev.gentoo.org/~armin76/arm/beagleboneblack/install.xml</a> . Feel free to send any corrections my way.</p>
<p>This board is a new version of the original BeagleBone, known in the community as BeagleBone white, for which I wrote a post for it: <a href="http://armin762.wordpress.com/2012/01/01/beaglebone-and-gentoo/" title="BeagleBone and Gentoo">http://armin762.wordpress.com/2012/01/01/beaglebone-and-gentoo/</a></p>
<p>This new version differs in some aspects with the previous version:</p>
<ul>
<li>Cheaper: 45$ vs 89$ of the BeagleBone white</li>
<li>512MB DDR3L RAM vs 256MB DDR2 RAM of the BeagleBone white</li>
<li>1GHz of processor speed vs 720MHz of the BeagleBone white, both when using an external PSU for power</li>
</ul>
<p>Also it has more features which the old BeagleBone didn’t had</p>
<ul>
<li>miniHDMI output</li>
<li>2GB eMMC</li>
</ul>
<p>However the new version has missing:</p>
<ul>
<li>Serial port and JTAG through the miniUSB interface</li>
</ul>
<p>The reason for missing this feature is cost cutting measures, as can be read in the Reference manual.</p>
<p>The full specs of the BeagleBone Black are:<br/>
# ARMv7-A 1GHz TI AM3358/9 ARM Cortex-A8 processor<br/>
# 512MB DDR3L RAM<br/>
# SMSC LAN8710 Ethernet card<br/>
#<br/>
# 1x microSDHC slot<br/>
# 1x USB 2.0 Type-A port<br/>
# 1x mini-USB 2.0 OTG port<br/>
# 1x RJ45<br/>
# 1x 6 pin 3.3V TTL Header for serial<br/>
#<br/>
# Reset, power and user-defined button</p>
<p>More info about the specs in BeagleBone Black’s webpage.</p>
<p>For those curious as me, here’s the <a href="http://dev.gentoo.org/~armin76/arm/beagleboneblack/boot.log">bootlog</a> and the <a href="http://dev.gentoo.org/~armin76/arm/beagleboneblack/cpuinfo.txt">cpuinfo</a>.</p>
<p>I’ve found two issues while working on it:</p>
<ol>
<li>The USB port doesn’t have a working hotplug detection. That means that if you plug an USB device in the USB port, it will be only detected once, if you remove the USB device, the USB port will stop working. I’ve been told that they are working on it. I haven’t been able to find a workaround for it.</li>
<li>The BeagleBone Black doesn’t detect an microSD card when plugged in when its been booted from the eMMC. If you want to use a microSD card for additional storage, it must be inserted before it boots.</li>
</ol>
<p>I’d like to thank the people at Beagleboard.org for providing me a Beaglebone Black to document this.</p>
<p>Have fun!</p>
<br/>  <a href="http://feeds.wordpress.com/1.0/gocomments/armin762.wordpress.com/232/" rel="nofollow"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/armin762.wordpress.com/232/"/></a> <img alt="" border="0" height="1" src="http://stats.wordpress.com/b.gif?host=armin762.wordpress.com&amp;blog=10640460&amp;post=232&amp;subd=armin762&amp;ref=&amp;feed=1" width="1"/></div>
    </content>
    <updated>2013-04-28T18:02:31Z</updated>
    <category term="Uncategorized"/>
    <author>
      <name>Raúl Porcel</name>
    </author>
    <source>
      <id>http://armin762.wordpress.com</id>
      <logo>http://s2.wp.com/i/buttonw-com.png</logo>
      <link href="http://armin762.wordpress.com/feed/" rel="self" type="application/rss+xml"/>
      <link href="http://armin762.wordpress.com" rel="alternate" type="text/html"/>
      <link href="http://armin762.wordpress.com/osd.xml" rel="search" title="Armin76's Blog" type="application/opensearchdescription+xml"/>
      <link href="http://armin762.wordpress.com/?pushpress=hub" rel="hub" type="text/html"/>
      <subtitle>Gentoo</subtitle>
      <title>Armin76's Blog</title>
      <updated>2013-05-18T12:02:11Z</updated>
    </source>
  </entry>

  <entry xml:lang="en-US">
    <id>http://blog.siphos.be/?p=1004</id>
    <link href="http://blog.siphos.be/2013/04/securely-handling-libffi/" rel="alternate" type="text/html"/>
    <title>Securely handling libffi</title>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml">I’ve recently came across libffi again. No, not because it was mentioned during the Gentoo Hardened online meeting, but because my /var/tmp wasn’t mounted correctly, and emerge (actually python) uses libffi. Most users won’t notice this, because libffi works behind … <a href="http://blog.siphos.be/2013/04/securely-handling-libffi/">Continue reading <span class="meta-nav">→</span></a></div>
    </summary>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>
I’ve recently came across <a href="http://sourceware.org/libffi/">libffi</a> again. No, not because it was mentioned during the <a href="http://www.gentoo.org/proj/en/hardened">Gentoo Hardened</a> online meeting, but because my <tt>/var/tmp</tt> wasn’t mounted correctly, and <b>emerge</b> (actually python) uses libffi. Most users won’t notice this, because libffi works behind the scenes. But when it fails, it fails bad. And SELinux actually helped me quickly identify what the problem is.
</p>
<pre>$ emerge --info
segmentation fault
</pre>
<p>
The abbreviation “libffi” comes from <em>Foreign Function Interface</em>, and is a library that allows developers to dynamically call code from another application or library. But the method how it approaches this concerns me a bit. Let’s look at some <b>strace</b> output:
</p>
<pre>8560  open("/var/tmp/ffiZ8gKPd", O_RDWR|O_CREAT|O_EXCL, 0600) = 11
8560  unlink("/var/tmp/ffiZ8gKPd")      = 0
8560  ftruncate(11, 4096)               = 0
8560  mmap(NULL, 4096, PROT_READ|PROT_EXEC, MAP_SHARED, 11, 0) = -1 EACCES (Permission denied)
</pre>
<p>
Generally, what libffi does, is to create a file somewhere where it can write files (it checks the various mounts on a system to get a list of possible target file systems), adds the necessary data (that it wants to execute) to it, unlinks the file from the file system (but keep the file descriptor open, so that the file cannot (easily) be modified on the system anymore) and then maps it to memory for executable access. <em>If</em> executing is allowed by the system (for instance because the mount point does not have <tt>noexec</tt>), then SELinux will trap it because the domain (in our case now, <tt>portage_t</tt>) is trying to execute an (unlinked) file for which it holds no execute rights on:
</p>
<pre>type=AVC msg=audit(1366656205.201:2221): avc:  denied  { execute } for  
pid=8560 comm="emerge" path=2F7661722F66666962713154465A202864656C6574656429 
dev="dm-3" ino=6912 scontext=staff_u:sysadm_r:portage_t tcontext=staff_u:object_r:var_t
tclass=file
</pre>
<p>
When you notice something like this (an execute on an unnamed file), then this is because the file descriptor points to a file already unlinked from the system. Finding out what it was about might be hard (but with <b>strace</b> it is easy as … well, whatever is easy for you).
</p>
<p>
Now what happened was that, because <tt>/var/tmp</tt> wasn’t mounted, files created inside it got the standard type (<tt>var_t</tt>) which the Portage domain isn’t allowed to execute. It is allowed to execute a lot of types, but not that one ;-) When <tt>/var/tmp</tt> is properly mounted, the file gets the <tt>portage_tmp_t</tt> type where it does hold execute rights for.
</p>
<p>
Now generally, I don’t like having world-writeable locations without <tt>noexec</tt>. For <tt>/tmp</tt>, <tt>noexec</tt> is enabled, but for <tt>/var/tmp</tt> I have (well, had ;-) to allow execution from the file system, mainly because some (many?) Gentoo package builds require it. So how about this dual requirement, of allowing Portage to write (and execute) its own files, and allow libffi to do its magic? Certainly, from a security point of view, I might want to restrict this further…
</p>
<p>
Well, we need to make sure that the location where Portage works with (the location pointed to by <tt>$PORTAGE_TMPDIR</tt>) is specifically made available for Portage: have the directory only writable by the Portage user. I keep it labeled as <tt>tmp_t</tt> so that the existing policies apply, but it might work with <tt>portage_tmp_t</tt> immediately set as well. Perhaps I’ll try that one later. With that set, we can have this mount-point set with exec rights (so that libffi can place its file there) in a somewhat more secure manner than allowing exec on world-writeable locations.
</p>
<p>
So now my <tt>/tmp</tt> and <tt>/var/tmp</tt> (and <tt>/run</tt> and <tt>/dev/shm</tt> and <tt>/lib64/rc/init.d</tt>) are tmpfs-mounts with the <tt>noexec</tt> (as well as <tt>nodev</tt> and <tt>nosuid</tt>) bits set, with the location pointed towards by <tt>$PORTAGE_TMPDIR</tt> being only really usable by the Portage user:
</p>
<pre>$ ls -ldZ /var/portage
drwxr-x---. 4 portage root system_u:object_r:tmp_t 4096 Apr 22 21:45 /var/portage/
</pre>
<p>
And libffi? Well, allowing applications to create their own executables and executing it is something that should be carefully governed. I’m not aware of any existing or past vulnerabilities, but I can imagine that opening the <tt>ffi*</tt> file(s) the moment they come up (to make sure you have a file descriptor) allows you to overwrite the content after libffi has created it but before the application actually executes it. By limiting the locations where applications can write files to (important step one) and the types they can execute (important step two) we can already manage this a bit more. Using regular DAC, this is quite difficult to achieve, but with SELinux, we can actually control this a bit more.
</p>
<p>
Let’s first see how many domains are allowed to create, write and execute files:
</p>
<pre>$ sesearch -c file -p write,create,execute -A | grep write | grep create \
  | grep execute | awk '{print $1}' | sort | uniq | wc -l
32
</pre>
<p>
Okay, 32 target domains. Not that bad, and certainly doable to verify manually (hell, even in a scripted manner). You can now check which of those domains have rights to execute generic binaries (<tt>bin_t</tt>), possibly needed for command execution vulnerabilities or privilege escalation. Or that have specific capabilities. And if you want to know which of those domains use libffi, you can use <b>revdep-rebuild</b> to find out which files are linked to the libffi libraries.
</p>
<p>
It goes to show that trying to keep your box secure is a never-ending story (please, companies, allow your system administrators to do their job by giving them the ability to continuously increase security rather than have them ask for budget to investigate potential security mitigation directives based on the paradigm of business case and return on investment using pareto-analytics blaaaahhhh….), and that SELinux can certainly be an important method to help achieve it.</p></div>
    </content>
    <updated>2013-04-28T01:50:46Z</updated>
    <category term="Hardened"/>
    <category term="Security"/>
    <category term="SELinux"/>
    <category term="libffi"/>
    <category term="selinux"/>
    <category term="strace"/>
    <author>
      <name>swift</name>
    </author>
    <source>
      <id>http://blog.siphos.be</id>
      <link href="http://blog.siphos.be/category/gentoo/feed/" rel="self" type="application/rss+xml"/>
      <link href="http://blog.siphos.be" rel="alternate" type="text/html"/>
      <subtitle>Sven Vermeulen's web log</subtitle>
      <title>Simplicity is a form of art... » Gentoo</title>
      <updated>2013-05-24T02:03:11Z</updated>
    </source>
  </entry>

  <entry xml:lang="en-US">
    <id>http://www.ultrabug.fr/?p=730</id>
    <link href="http://www.ultrabug.fr/mongodb-and-pacemaker-recent-bumps/" rel="alternate" type="text/html"/>
    <title>mongoDB and Pacemaker recent bumps</title>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml">mongoDB 2.4.3 Yet another bugfix release, this new stable branch is surely one of the most quickly iterated I’ve ever seen. I guess we’ll wait a bit longer at work before migrating to 2.4.x. pacemaker 1.1.10_rc1 This is the release of pacemaker we’ve been waiting for, fixing among other things, the ACL problem which was introduced… <a href="http://www.ultrabug.fr/mongodb-and-pacemaker-recent-bumps/">Continue reading <span class="meta-nav">→</span></a></div>
    </summary>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><h2>mongoDB 2.4.3</h2>
<p>Yet another <a href="https://jira.mongodb.org/browse/SERVER/fixforversion/12426" target="_blank">bugfix release</a>, this new stable branch is surely one of the most quickly iterated I’ve ever seen. I guess we’ll wait a bit longer at work before migrating to 2.4.x.</p>
<h2>pacemaker 1.1.10_rc1</h2>
<p>This is the release of pacemaker we’ve been waiting for, fixing among other things, the ACL problem which <a href="http://www.ultrabug.fr/follow-up-on-pacemaker-v1-1-9-and-updated-pacemaker-gui/" target="_blank">was introduced in 1.1.9</a>. Andrew and others are working hard to get a proper 1.1.10 out soon, thanks guys.</p>
<p>Meanwhile, we (gentoo cluster herd) have been contacted by <strong>@Psi-Jack</strong> who has offered his help to follow and keep some of our precious clustering packages up to date, I wish our work together will benefit everyone !</p>
<p>All of this is live on portage, enjoy.</p>
<h3/></div>
    </content>
    <updated>2013-04-26T14:23:55Z</updated>
    <category term="Linux"/>
    <category term="cluster"/>
    <category term="gentoo"/>
    <category term="mongodb"/>
    <category term="nosql"/>
    <category term="pacemaker"/>
    <category term="portage"/>
    <category term="release"/>
    <author>
      <name>ultrabug</name>
    </author>
    <source>
      <id>http://www.ultrabug.fr</id>
      <link href="http://www.ultrabug.fr/tag/gentoo-2/feed/" rel="self" type="application/rss+xml"/>
      <link href="http://www.ultrabug.fr" rel="alternate" type="text/html"/>
      <subtitle>a Gentoo Linux developer's blog</subtitle>
      <title>Ultrabug » gentoo</title>
      <updated>2013-05-21T15:03:28Z</updated>
    </source>
  </entry>

  <entry xml:lang="en-US">
    <id>http://blog.siphos.be/?p=1022</id>
    <link href="http://blog.siphos.be/2013/04/new-selinux-userspace-release/" rel="alternate" type="text/html"/>
    <title>New SELinux userspace release</title>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml">A new release of the SELinux userspace utilities was recently announced. I have made the packages for Gentoo available and they should now be in the main tree (~arch of course). During the testing of the packages however, I made … <a href="http://blog.siphos.be/2013/04/new-selinux-userspace-release/">Continue reading <span class="meta-nav">→</span></a></div>
    </summary>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>
A new <a href="http://userspace.selinuxproject.org/trac/wiki/Releases">release</a> of the SELinux userspace utilities was recently announced. I have made the packages for Gentoo available and they should now be in the main tree (~arch of course). During the testing of the packages however, I made a stupid mistake of running the tests on the wrong VM, one that didn’t contain the new packages. Result: no regressions (of course). My fault for not using in-ebuild tests properly, as I <a href="https://bugs.gentoo.org/show_bug.cgi?id=465846">should</a>. So you’ll probably see me blogging about the in-ebuild testing soon ;-)
</p>
<p>
In any case, the regressions I did find out (quite fast after I updated my main laptop with them as well) where a <a href="https://bugs.gentoo.org/show_bug.cgi?id=467258">missing function in libselinux</a>, a <a href="https://bugs.gentoo.org/show_bug.cgi?id=467264">referral to a non-existing makefile when using “semanage permissive”</a> and the new <b>sepolicy</b> application <a href="https://bugs.gentoo.org/show_bug.cgi?id=467268">requiring yum python bindings</a>. At least, with the missing function (hopefully correctly) resolved, all tests I usually do (except for the permissive domains) are now running well again.
</p>
<p>
This only goes to show how important testing is. Of course, I <a href="http://marc.info/?l=selinux&amp;m=136692033821285&amp;w=2">reported</a> the bugs on the mailinglist of the userspace utilities as well. Hopefully they can look at them while I’m asleep so I can integrate fixes tomorrow more easily ;-)</p></div>
    </content>
    <updated>2013-04-26T01:50:28Z</updated>
    <category term="Hardened"/>
    <category term="SELinux"/>
    <category term="automation"/>
    <category term="regression"/>
    <category term="release"/>
    <category term="selinux"/>
    <category term="test"/>
    <category term="testing"/>
    <category term="userspace"/>
    <author>
      <name>swift</name>
    </author>
    <source>
      <id>http://blog.siphos.be</id>
      <link href="http://blog.siphos.be/category/gentoo/feed/" rel="self" type="application/rss+xml"/>
      <link href="http://blog.siphos.be" rel="alternate" type="text/html"/>
      <subtitle>Sven Vermeulen's web log</subtitle>
      <title>Simplicity is a form of art... » Gentoo</title>
      <updated>2013-05-24T02:03:11Z</updated>
    </source>
  </entry>

  <entry xml:lang="en-US">
    <id>http://www.ultrabug.fr/?p=724</id>
    <link href="http://www.ultrabug.fr/hello-gentoo-planet/" rel="alternate" type="text/html"/>
    <title>Hello Gentoo Planet</title>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml">Hey Gentoo folks ! I finally followed a friend’s advice and stepped into the Gentoo Planet and Universe feeds. I hope my modest contributions will help and be of interest to some of you readers. As you’ll see, I don’t talk only about Gentoo but also about photography and technology more generally. I also often… <a href="http://www.ultrabug.fr/hello-gentoo-planet/">Continue reading <span class="meta-nav">→</span></a></div>
    </summary>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>Hey <strong>Gentoo</strong> folks !</p>
<p>I finally followed a friend’s advice and stepped into the <a href="http://www.gentoo.org/proj/en/userrel/planet/" target="_blank">Gentoo Planet and Universe</a> feeds. I hope my modest contributions will help and be of interest to some of you readers.</p>
<p>As you’ll see, I don’t talk only about Gentoo but also about photography and technology more generally. I also often post about the packages I maintain or I have an interest in to highlight their key features or bug fixes.</p></div>
    </content>
    <updated>2013-04-24T08:51:07Z</updated>
    <category term="Linux"/>
    <category term="gentoo"/>
    <author>
      <name>ultrabug</name>
    </author>
    <source>
      <id>http://www.ultrabug.fr</id>
      <link href="http://www.ultrabug.fr/tag/gentoo-2/feed/" rel="self" type="application/rss+xml"/>
      <link href="http://www.ultrabug.fr" rel="alternate" type="text/html"/>
      <subtitle>a Gentoo Linux developer's blog</subtitle>
      <title>Ultrabug » gentoo</title>
      <updated>2013-05-21T15:03:28Z</updated>
    </source>
  </entry>

  <entry>
    <id>tag:blogger.com,1999:blog-6948343.post-3819516978852101109</id>
    <link href="http://chithanh.blogspot.com/feeds/3819516978852101109/comments/default" rel="replies" title="Post Comments" type="application/atom+xml"/>
    <link href="http://www.blogger.com/comment.g?blogID=6948343&amp;postID=3819516978852101109" rel="replies" title="23 Comments" type="text/html"/>
    <link href="http://www.blogger.com/feeds/6948343/posts/default/3819516978852101109" rel="edit" type="application/atom+xml"/>
    <link href="http://www.blogger.com/feeds/6948343/posts/default/3819516978852101109" rel="self" type="application/atom+xml"/>
    <link href="http://chithanh.blogspot.com/2013/04/new-mesa-features-for-adventurous.html" rel="alternate" title="New mesa features for the adventurous: Radeon UVD and Gallium3D HUD" type="text/html"/>
    <title>New mesa features for the adventurous: Radeon UVD and Gallium3D HUD</title>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><div dir="ltr" style="text-align: left;">Those of you who don't live under a rock will have learned by now that AMD has published VDPAU code to use the Radeon UVD engine for accelerated video decode with the free/open source drivers.<br/><br/>In case you want to give it a try, mesa-9.2_pre20130404 has been added (under package.mask) to the portage tree for your convenience. Additionally you will need a patched kernel and new firmware.<br/><br/><h3 style="text-align: left;">Kernel</h3>For kernel 3.9, <strike>grab the 10 patches from the <a href="http://lists.freedesktop.org/archives/dri-devel/2013-April/036766.html">dri-devel mailing list thread</a> (recommended)</strike> <b>[UPDATE]</b>I put the patches into a tarball and attached to Gentoo <a href="https://bugs.gentoo.org/show_bug.cgi?id=466042">bug 466042</a><b>[/UPDATE]</b>. For kernel 3.8 I have collected the necessary patches <a href="http://dev.gentoo.org/~chithanh/radeon-uvd/">here</a>, but be warned that kernel 3.8 is not officially supported. It works on my Radeon 6870, YMMV.<br/><br/><h3 style="text-align: left;">Firmware</h3>The firmware is part of radeon-ucode-20130402, but has not yet reached the linux-firmware tree. If you require other firmware from the linux-firmware package, remove the radeon files from the savedconfig file and build the package with USE="savedconfig" to allow installation together with radeon-ucode. <b>[UPDATE]</b>linux-firmware-20130421 now contains the UVD firmware, too.<b>[/UPDATE]</b><br/><br/>The new firmware files are<br/>radeon/RV710_uvd.bin: Radeon 4350-4670, 4770.<br/>radeon/RV770_uvd.bin: <a href="http://lists.freedesktop.org/archives/dri-devel/2013-April/036875.html">Not useful</a> at this time. Maybe later for 4200, 4730, 4830-4890.<br/>radeon/CYPRESS_uvd.bin: Evergreen cards.<br/>radeon/SUMO_uvd.bin: Northern Islands cards and Zacate/Llano APUs.<br/>radeon/TAHITI_uvd.bin: Southern Islands cards and Trinity APUs.<br/><br/><h3 style="text-align: left;">Testing it</h3><div style="text-align: left;">If your kernel is properly patched and finds the correct firmware, you will see this message at boot:</div><pre>[drm] UVD initialized successfully.</pre>If mesa was correctly built with VDPAU support, vdpauinfo will list the following codecs:<br/><div style="text-align: left;"><pre>Decoder capabilities:<br/><br/>name               level macbs width height<br/>-------------------------------------------<br/>MPEG1                16 1048576 16384 16384<br/>MPEG2_SIMPLE         16 1048576 16384 16384<br/>MPEG2_MAIN           16 1048576 16384 16384<br/>H264_BASELINE        16  9216  2048  1152<br/>H264_MAIN            16  9216  2048  1152<br/>H264_HIGH            16  9216  2048  1152<br/>VC1_SIMPLE           16  9216  2048  1152<br/>VC1_MAIN             16  9216  2048  1152<br/>VC1_ADVANCED         16  9216  2048  1152<br/>MPEG4_PART2_SP       16  9216  2048  1152<br/>MPEG4_PART2_ASP      16  9216  2048  1152<br/></pre>If mplayer and its dependencies were correctly built with VDPAU support, running it with "-vc ffh264vdpau," parameter will output something like the following when playing back a H.264 file:<br/><pre>VO: [vdpau] 1280x720 =&gt; 1280x720 H.264 VDPAU acceleration</pre>To make mplayer use acceleration by default, uncomment the [vo.vdpau] section in /etc/mplayer/mplayer.conf<br/><br/><h3 style="text-align: left;">Gallium3D Head-up display</h3>Another cool new feature is the <a href="http://lists.freedesktop.org/archives/mesa-dev/2013-March/036586.html">Gallium3D HUD</a> (link via <a href="http://www.phoronix.com/scan.php?page=news_item&amp;px=MTMzNTI">Phoronix</a>), which can be enabled with the GALLIUM_HUD environment variable. This supposedly works with all the Gallium drivers (i915g, radeon, nouveau, llvmpipe).<br/><br/><table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: left; margin-right: 1em; text-align: left;"><tbody><tr><td style="text-align: center;"><a href="http://3.bp.blogspot.com/-M0UeK7QYXwA/UV-N6NOATMI/AAAAAAAABEw/pENVlx07sko/s1600/supertuxkart+olivermath+2013.03.06+04.44.02.png" style="clear: left; margin-bottom: 1em; margin-left: auto; margin-right: auto;"><img border="0" height="250" src="http://3.bp.blogspot.com/-M0UeK7QYXwA/UV-N6NOATMI/AAAAAAAABEw/pENVlx07sko/s400/supertuxkart+olivermath+2013.03.06+04.44.02.png" width="400"/></a></td></tr><tr><td class="tr-caption" style="text-align: center;">An example screenshot of Supertuxkart using GALLIUM_HUD="cpu0+cpu1+cpu2:100,cpu:100,fps;draw-calls,requested-VRAM+requested-GTT,pixels-rendered"</td></tr></tbody></table><br/>If you have any questions or problems setting up UVD on Gentoo, stop by #gentoo-desktop on freenode IRC.</div></div></div>
    </content>
    <updated>2013-04-21T23:57:02Z</updated>
    <published>2013-04-06T03:12:00Z</published>
    <category scheme="http://www.blogger.com/atom/ns#" term="radeon"/>
    <category scheme="http://www.blogger.com/atom/ns#" term="gentoo"/>
    <category scheme="http://www.blogger.com/atom/ns#" term="x11"/>
    <category scheme="http://www.blogger.com/atom/ns#" term="vdpau"/>
    <category scheme="http://www.blogger.com/atom/ns#" term="linux"/>
    <author>
      <name>Chí-Thanh Christopher Nguyễn</name>
      <email>noreply@blogger.com</email>
      <uri>https://plus.google.com/104336905202184545443</uri>
    </author>
    <source>
      <id>tag:blogger.com,1999:blog-6948343</id>
      <category term="linux"/>
      <category term="arm"/>
      <category term="gpt"/>
      <category term="screen"/>
      <category term="router"/>
      <category term="dvtm"/>
      <category term="portage"/>
      <category term="olpc"/>
      <category term="dtach"/>
      <category term="syslinux"/>
      <category term="mandriva"/>
      <category term="x11"/>
      <category term="gentoo"/>
      <category term="udf"/>
      <category term="tmux"/>
      <category term="password recovery"/>
      <category term="vdpau"/>
      <category term="extlinux"/>
      <category term="zacate"/>
      <category term="interoperability"/>
      <category term="nouveau"/>
      <category term="file system"/>
      <category term="OpenMoko"/>
      <category term="radeon"/>
      <category term="opinion"/>
      <category term="windows"/>
      <category term="amd"/>
      <category term="classmate pc"/>
      <category term="mini-itx"/>
      <category term="xf86-video-dove"/>
      <author>
        <name>Chí-Thanh Christopher Nguyễn</name>
        <email>noreply@blogger.com</email>
      </author>
      <link href="http://chithanh.blogspot.com/feeds/posts/default" rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml"/>
      <link href="http://www.blogger.com/feeds/6948343/posts/default/-/linux" rel="self" type="application/atom+xml"/>
      <link href="http://chithanh.blogspot.com/search/label/linux" rel="alternate" type="text/html"/>
      <link href="http://pubsubhubbub.appspot.com/" rel="hub" type="text/html"/>
      <title>Blog: Nguyễn Chí Thanh Christopher</title>
      <updated>2013-05-12T19:02:07Z</updated>
    </source>
  </entry>

  <entry>
    <id>tag:blogger.com,1999:blog-7849507270164967036.post-4369824407840615709</id>
    <link href="http://dilfridge.blogspot.com/feeds/4369824407840615709/comments/default" rel="replies" title="Post Comments" type="application/atom+xml"/>
    <link href="http://dilfridge.blogspot.com/2013/04/kdepim-44-kmail1-in-gentoo-unsupported.html#comment-form" rel="replies" title="6 Comments" type="text/html"/>
    <link href="http://www.blogger.com/feeds/7849507270164967036/posts/default/4369824407840615709" rel="edit" type="application/atom+xml"/>
    <link href="http://www.blogger.com/feeds/7849507270164967036/posts/default/4369824407840615709" rel="self" type="application/atom+xml"/>
    <link href="http://dilfridge.blogspot.com/2013/04/kdepim-44-kmail1-in-gentoo-unsupported.html" rel="alternate" title="kdepim-4.4 (kmail1) in Gentoo - unsupported, dying, dead" type="text/html"/>
    <title>kdepim-4.4 (kmail1) in Gentoo - unsupported, dying, dead</title>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml">Bitrot is accumulating, and while we've tried to keep kdpim-4.4 running in Gentoo as long as possible, the time is slowly coming to say goodbye. In effect this is triggered by annoying problems like these:<br/><ul><li><a href="https://bugs.gentoo.org/show_bug.cgi?id=464956" target="_blank">kleopatra-4.4 segfaults immediately on start</a></li><li><a href="https://forums.gentoo.org/viewtopic-t-950322.html" target="_blank">kmail-4.4 does not respect "Sent mail" folder of identity</a> </li><li>session restore always complains that another kontact-4.4 instance is running</li><li>on each login, a dialog box about (unfounded) problems with gnupg pops up</li></ul>There are probably many more such bugs around, where incompatibilities between kdepim-4.4 and kdepimlibs of more recent releases occur or other software updates have led to problems. Slowly it's getting painful, and definitely more painful than running a recent kdepim-4.10 (which has in my opinion improved quite a lot over the last major releases).<br/>Please be prepared for the following steps:<br/><ul><li>end of april 2013, all kdepim-4.4 packages in the Gentoo portage tree will be package.masked </li><li>end of may 2013, all kdepim-4.4 packages in the Gentoo portage tree will be removed</li><li>afterwards, we will finally be able to simplify the eclasses a lot by removing the special handling</li></ul>We still have the <a href="http://wiki.gentoo.org/wiki/KDE/KDEPIM-4.7_upgrade" target="_blank">kdepim-4.7 upgrade guide</a> around, and it also applies to the upgrade from kdepim-4.4 to any later version. Feel free to improve it or suggest improvements.<br/><br/>R.I.P. kmail1.</div>
    </content>
    <updated>2013-04-18T19:40:30Z</updated>
    <published>2013-04-18T19:39:00Z</published>
    <category scheme="http://www.blogger.com/atom/ns#" term="gentoo"/>
    <category scheme="http://www.blogger.com/atom/ns#" term="kde"/>
    <author>
      <name>Andreas</name>
      <email>noreply@blogger.com</email>
      <uri>http://www.blogger.com/profile/12314847423280010909</uri>
    </author>
    <source>
      <id>tag:blogger.com,1999:blog-7849507270164967036</id>
      <category term="arm"/>
      <category term="lab-measurement"/>
      <category term="graphene"/>
      <category term="astronomy"/>
      <category term="gpib"/>
      <category term="sysadmin"/>
      <category term="books"/>
      <category term="gentoo"/>
      <category term="ostpforte"/>
      <category term="maths"/>
      <category term="scifi"/>
      <category term="humour"/>
      <category term="france"/>
      <category term="art"/>
      <category term="digikam"/>
      <category term="cups"/>
      <category term="photos"/>
      <category term="spain"/>
      <category term="romanesque"/>
      <category term="nobelprize"/>
      <category term="stupidity"/>
      <category term="kde"/>
      <category term="err-what?"/>
      <category term="meta"/>
      <category term="archaeology"/>
      <category term="phdcomics"/>
      <category term="italy"/>
      <category term="food"/>
      <category term="comp-sci"/>
      <category term="regensburg"/>
      <category term="physics"/>
      <category term="architecture"/>
      <category term="nanotubes"/>
      <category term="work"/>
      <category term="travelling"/>
      <category term="research-group"/>
      <category term="hardened"/>
      <author>
        <name>Andreas</name>
        <email>noreply@blogger.com</email>
        <uri>http://www.blogger.com/profile/12314847423280010909</uri>
      </author>
      <link href="http://dilfridge.blogspot.com/feeds/posts/default" rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml"/>
      <link href="http://www.blogger.com/feeds/7849507270164967036/posts/default/-/gentoo" rel="self" type="application/atom+xml"/>
      <link href="http://dilfridge.blogspot.com/search/label/gentoo" rel="alternate" type="text/html"/>
      <link href="http://pubsubhubbub.appspot.com/" rel="hub" type="text/html"/>
      <link href="http://www.blogger.com/feeds/7849507270164967036/posts/default/-/gentoo/-/gentoo?start-index=26&amp;max-results=25" rel="next" type="application/atom+xml"/>
      <title>the dilfridge blog</title>
      <updated>2013-05-23T19:23:30Z</updated>
    </source>
  </entry>

  <entry xml:lang="en-US">
    <id>http://www.ultrabug.fr/?p=716</id>
    <link href="http://www.ultrabug.fr/mongodb-v2-4-2-released/" rel="alternate" type="text/html"/>
    <title>mongoDB v2.4.2 released</title>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml">After the security issue related bumps of the previous releases which happened last weeks it was about time 10gen released a 2.4.x fixing the following issues: Fix for upgrading sharded clusters TTL assertion on replica set secondaries Several V8 memory leak and performance fixes High volume connection crash I guess everything listed above would have… <a href="http://www.ultrabug.fr/mongodb-v2-4-2-released/">Continue reading <span class="meta-nav">→</span></a></div>
    </summary>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>After the security issue related bumps of the previous releases which happened last weeks it was about time 10gen released a 2.4.x fixing the following issues:</p>
<ul>
<li>Fix for upgrading sharded clusters</li>
<li>TTL assertion on replica set secondaries</li>
<li>Several V8 memory leak and performance fixes</li>
<li>High volume connection crash</li>
</ul>
<p>I guess everything listed above would have affected our cluster at work so I’m glad we’ve been patient on following-up this release <img alt=":)" class="wp-smiley" src="http://www.ultrabug.fr/wordpress/wp-includes/images/smilies/icon_smile.gif"/>  See the <a href="https://jira.mongodb.org/browse/SERVER/fixforversion/12405" target="_blank">changelog</a> for details.</p></div>
    </content>
    <updated>2013-04-18T10:53:40Z</updated>
    <category term="Linux"/>
    <category term="gentoo"/>
    <category term="mongodb"/>
    <category term="nosql"/>
    <category term="portage"/>
    <category term="release"/>
    <author>
      <name>ultrabug</name>
    </author>
    <source>
      <id>http://www.ultrabug.fr</id>
      <link href="http://www.ultrabug.fr/tag/gentoo-2/feed/" rel="self" type="application/rss+xml"/>
      <link href="http://www.ultrabug.fr" rel="alternate" type="text/html"/>
      <subtitle>a Gentoo Linux developer's blog</subtitle>
      <title>Ultrabug » gentoo</title>
      <updated>2013-05-21T15:03:28Z</updated>
    </source>
  </entry>

  <entry xml:lang="en-US">
    <id>http://www.gentoo.org/news/20130414-FOSSCOMM-2013.xml</id>
    <link href="http://www.gentoo.org/news/20130414-FOSSCOMM-2013.xml" rel="alternate" type="text/html"/>
    <title>Gentoo at FOSSCOMM 2013</title>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p><b>What?</b> FOSSCOMM 2013
</p><p><span>Free and Open Source Software COMmunities Meeting(FOSSCOMM) 2013</span></p><p><b>When?</b> 20th, April 2013 - 21st, April 2013</p><p><b>Where?</b> Harokopio University, Athens, Greece 
</p><p><b>Website?</b><a href="http://hua.fosscomm.gr">http://hua.fosscomm.gr</a></p><p>
FOSSCOMM 2013 is almost here, and Gentoo will be there!
</p><p>
We will have a booth with Gentoo promo stuff, stickers, flyers, badges, live
DVD's and much more! Whether you're a developer, user, or simply curious, be
sure and stop by. We are also going to represent Gentoo in a round table with
other foss communities. See you there!
</p><p><span><a href="mailto:dastergon@gentoo.org">Pavlos Ratis</a> contributed the draft for this announcement.</span></p></div>
    </summary>
    <updated>2013-04-15T18:02:27Z</updated>
    <category term="gentoo"/>
    <author>
      <name>David Abbott</name>
    </author>
    <source>
      <id>http://www.gentoo.org/</id>
      <author>
        <name/>
        <email>www@gentoo.org</email>
      </author>
      <link href="http://www.gentoo.org/" rel="alternate" type="text/html"/>
      <link href="http://www.gentoo.org/rdf/en/gentoo-news.rdf" rel="self" type="application/rdf+xml"/>
      <subtitle>Gentoo Linux News</subtitle>
      <title>Gentoo Linux News</title>
      <updated>2013-05-10T03:02:26Z</updated>
    </source>
  </entry>

  <entry>
    <id>tag:blogger.com,1999:blog-7849507270164967036.post-5562740186873464873</id>
    <link href="http://dilfridge.blogspot.com/feeds/5562740186873464873/comments/default" rel="replies" title="Post Comments" type="application/atom+xml"/>
    <link href="http://dilfridge.blogspot.com/2013/04/nvidia-300-series-linux-drivers-worst.html#comment-form" rel="replies" title="5 Comments" type="text/html"/>
    <link href="http://www.blogger.com/feeds/7849507270164967036/posts/default/5562740186873464873" rel="edit" type="application/atom+xml"/>
    <link href="http://www.blogger.com/feeds/7849507270164967036/posts/default/5562740186873464873" rel="self" type="application/atom+xml"/>
    <link href="http://dilfridge.blogspot.com/2013/04/nvidia-300-series-linux-drivers-worst.html" rel="alternate" title="NVIDIA 300 series Linux drivers - worst functionality regression ever" type="text/html"/>
    <title>NVIDIA 300 series Linux drivers - worst functionality regression ever</title>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml">For a long time, I've been extraordinarily happy with both NVIDIA graphics hardware and the vendor-supplied binary drivers. Functionality, stability, speed. However, things are changing and I'm frustrated. Let me tell you why.<br/><br/>Part of my job is to do teaching and presentations. I have a trusty thinkpad with a VGA output which can in principle supply about every projector with a decent signal. Most of these projectors do not display the native 1920x1200 resolution of the built-in display. This means, if you configure the second display to clone the first, you will end up seeing only part of the screen. In the past, I solved this by using nvidia-settings and setting the display to a lower resolution supported by the projector (nvidia-settings told me which ones I could use) and then let it clone things. Not so elegant, but everything worked fine- and this amount of fiddling is still something that can be done in the front of a seminar room while someone is introducing you and the audience gets impatient.<br/><br/>Now consider my surprise when suddenly after a driver upgrade the built-in display was completely glued to the native resolution. Only setting possible - 1920x1200. The first time I saw that I was completely clueless what to do; starting the talk took a bit longer than expected. A simple, but completely crazy solution exists; disable the built-in display and only enable the projector output. Then your X session is displayed there and resized accordingly. You'll have to look at the silver screen while talking, but that's not such a problem. A bigger pain actually is that you may have to leave the podium in a hurry and then have no video output at all...<br/><br/>Now, googling. Obviously a lot of other people have the same problem as well. Hacks <a href="http://brainwreckedtech.wordpress.com/2012/08/19/howto-get-nvidia-on-linux-to-use-custom-resolutions-over-dvi/" target="_blank">like this one</a> just don't work, I've ended up with nice random screen distortions. Here's a <a href="https://devtalk.nvidia.com/default/topic/525287/linux/non-native-resolutions-not-available-in-3xx-drivers-on-8700m-gt/" target="_blank">thread on the nvidia devtalk forum</a> from where I can quote, "The way it works now is more "correct" than the old behavior, but what  the user sees is that the old way worked and the new does not." It seems like now nVidia expects that each application handles any mode switching internally. My usecase does not even exist from their point of view. <a href="https://devtalk.nvidia.com/default/topic/528822/linux/i-have-one-resolution-only/" target="_blank">Here's another thread</a>, and in general users are not happy about it. <br/><br/>Finally, I found <a href="https://devtalk.nvidia.com/default/topic/533968/support-of-non-native-resolutions/" target="_blank">this link</a> where the following reply is given: "The driver supports all of the scaling features that older drivers did,  it's just that nvidia-settings hasn't yet been updated to make it easy  to configure those scaling modes from the GUI." Just great.<br/><br/>Gentlemen, this is a serious annoyance. Please fix it. Soon. Not everyone is willing to read up on xrandr command line options and fiddle with ViewPortIn, ViewPortOut, MetaModes and other technical stuff. Especially while the audience is waiting.</div>
    </content>
    <updated>2013-04-14T20:19:09Z</updated>
    <published>2013-04-14T20:19:00Z</published>
    <category scheme="http://www.blogger.com/atom/ns#" term="gentoo"/>
    <category scheme="http://www.blogger.com/atom/ns#" term="work"/>
    <author>
      <name>Andreas</name>
      <email>noreply@blogger.com</email>
      <uri>http://www.blogger.com/profile/12314847423280010909</uri>
    </author>
    <source>
      <id>tag:blogger.com,1999:blog-7849507270164967036</id>
      <category term="arm"/>
      <category term="lab-measurement"/>
      <category term="graphene"/>
      <category term="astronomy"/>
      <category term="gpib"/>
      <category term="sysadmin"/>
      <category term="books"/>
      <category term="gentoo"/>
      <category term="ostpforte"/>
      <category term="maths"/>
      <category term="scifi"/>
      <category term="humour"/>
      <category term="france"/>
      <category term="art"/>
      <category term="digikam"/>
      <category term="cups"/>
      <category term="photos"/>
      <category term="spain"/>
      <category term="romanesque"/>
      <category term="nobelprize"/>
      <category term="stupidity"/>
      <category term="kde"/>
      <category term="err-what?"/>
      <category term="meta"/>
      <category term="archaeology"/>
      <category term="phdcomics"/>
      <category term="italy"/>
      <category term="food"/>
      <category term="comp-sci"/>
      <category term="regensburg"/>
      <category term="physics"/>
      <category term="architecture"/>
      <category term="nanotubes"/>
      <category term="work"/>
      <category term="travelling"/>
      <category term="research-group"/>
      <category term="hardened"/>
      <author>
        <name>Andreas</name>
        <email>noreply@blogger.com</email>
        <uri>http://www.blogger.com/profile/12314847423280010909</uri>
      </author>
      <link href="http://dilfridge.blogspot.com/feeds/posts/default" rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml"/>
      <link href="http://www.blogger.com/feeds/7849507270164967036/posts/default/-/gentoo" rel="self" type="application/atom+xml"/>
      <link href="http://dilfridge.blogspot.com/search/label/gentoo" rel="alternate" type="text/html"/>
      <link href="http://pubsubhubbub.appspot.com/" rel="hub" type="text/html"/>
      <link href="http://www.blogger.com/feeds/7849507270164967036/posts/default/-/gentoo/-/gentoo?start-index=26&amp;max-results=25" rel="next" type="application/atom+xml"/>
      <title>the dilfridge blog</title>
      <updated>2013-05-23T19:23:30Z</updated>
    </source>
  </entry>

  <entry>
    <id>tag:blogger.com,1999:blog-7849507270164967036.post-1957162676650655052</id>
    <link href="http://dilfridge.blogspot.com/feeds/1957162676650655052/comments/default" rel="replies" title="Post Comments" type="application/atom+xml"/>
    <link href="http://dilfridge.blogspot.com/2013/04/openpgp-smartcards-and-gentoo-part-1.html#comment-form" rel="replies" title="3 Comments" type="text/html"/>
    <link href="http://www.blogger.com/feeds/7849507270164967036/posts/default/1957162676650655052" rel="edit" type="application/atom+xml"/>
    <link href="http://www.blogger.com/feeds/7849507270164967036/posts/default/1957162676650655052" rel="self" type="application/atom+xml"/>
    <link href="http://dilfridge.blogspot.com/2013/04/openpgp-smartcards-and-gentoo-part-1.html" rel="alternate" title="OpenPGP smartcards and Gentoo - part 1: hardware" type="text/html"/>
    <title>OpenPGP smartcards and Gentoo - part 1: hardware</title>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml">Gnupg is an excellent tool for encryption and signing, however, while breaking encryption or forging signatures of large key size is likely somewhere between painful and impossible even for agencies on significant budget, all this is always only as safe as your private key. Let's insert the <a href="http://xkcd.com/538/" target="_blank">obvious semi-relevant xkcd reference</a> here, but someone hacking your computer, installing a keylogger and grabbing the key file is more likely. While there are no preventive measures that work for all conceivable attacks, you can at least make things as hard as possible. Be smart, use a smartcard. You'll get a number of additional bonuses on the way. I'm writing up here my personal experiences, as a kind of guide. <i>Also, I am picking a compromise between ultra-security and convenience. Please do not complain if you find guides on the web on how to do things "better".</i><br/><br/><h4>The smart cards</h4>Obviously, you will need one or more OpenPGP-compatible smart cards and a reader device. I ordered my cards from <a href="http://shop.kernelconcepts.de/product_info.php?cPath=1_26&amp;products_id=42&amp;language=en" target="_blank">kernel concepts</a> since that shop is referred in the GnuPG smartcard howto. These are the cards developed by <a href="http://www.g10code.de/p-card.html" target="_blank">g10code</a>, which is Werner Koch's company (he is the principal author of GnuPG). The website says "2048bit RSA capable", the text printed on the card says "3072bit RSA capable", but at least the currently sold cards <a href="http://marc.info/?l=gnupg-users&amp;m=131477338132206" target="_blank">support 4096bit RSA keys</a> just fine. (You will need at least app-crypt/gnupg-2.0.19-r2 for encryption keys bigger than 3072bit, see <a href="http://gnupg.10057.n7.nabble.com/Re-Card-fails-to-decrypt-using-4096-bit-key-td15173.html" target="_blank">this link</a> and <a href="http://sources.gentoo.org/cgi-bin/viewvc.cgi/gentoo-x86/app-crypt/gnupg/ChangeLog?r1=1.458&amp;r2=1.459" target="_blank">this portage commit</a>.)<br/><br/><h4>The readers</h4>While the <a href="http://www.gnupg.org/howtos/card-howto/en/smartcard-howto.html" target="_blank">GnuPG smartcard howto</a> provides a <a href="http://www.gnupg.org/howtos/card-howto/en/ch02s02.html" target="_blank">list of supported reader devices</a>, that list (and indeed the whole document) is a bit stale. The best source of information that I found was the <a href="http://wiki.debian.org/Smartcards" target="_blank">page on the Debian Wiki</a>; <a href="http://wiki.debian.org/YutakaNiibe" target="_blank">Yutaka Niibe</a>, who edits that page regularly, is also one of the code contributors to the smartcard part of GnuPG. In general there are two types of readers, those with a stand-alone pinpad and those without. The extra pinpad takes care that for normal operations like signing and encryption the pin for unlocking the keys is never entering the computer itself- so without tampering with the reader hardware it is <strike>impossible</strike> pretty hard to sniff it. I bought a <a href="http://www.scm-pc-card.de/index.php?lang=en&amp;page=product&amp;function=show_product&amp;product_id=221" target="_blank">SCM SPG532 reader</a>, one of the devices supported ever first by GnuPG, however it's not produced anymore and you may have to resort to newer models soon.<br/><br/><h4>Drivers and software</h4>Now, you'll want to activate the USE flag "smartcard" and maybe "pkcs11", and rebuild app-crypt/gnupg. Afterwards, you may want to log out and back in again, since you may need the gpg-agent from the new emerge.<br/>Several different standards for card reader access exist. One particular is the USB standard for integrated circuit card interface devices, short CCID; the driver for that one is directly built into GnuPG, and the SCM SPG532 is such a device. Another set of drivers is provided by sys-apps/pcsc-lite; that will be used by GnuPG if the built-in stuff fails, but requires a daemon to be running (pcscd, just add it to the default runlevel and start it). The <a href="http://wiki.debian.org/Smartcards" target="_blank">page on the Debian Wiki</a> also lists the required drivers.<br/>These drivers do not need much (or any) configuration, but should work in principle out of the box. Testing is easy, plug in the reader, insert a card, and issue the command<br/><blockquote class="tr_bq"><span>gpg --card-status</span></blockquote>If it works, you should see a message about (among other things) manufacturer and serial number of your card. Otherwise, you'll just get an uninformative error. The first thing to check is then (especially for CCID) if the device permissions are OK; just repeat above test as root. If you can now see your card, you know you have permission trouble.<br/>Fiddling with the device file permissions was a serious pain, since all online docs are hopelessly outdated. <i>Please forget about the files linked in the GnuPG smartcard howto. </i>(One cannot be found anymore, the other does not work alone and tries to do things in unnecessarily complicated ways.) At some point in time I just gave up on things like user groups and told udev to hardwire the device to my user account: I created the following file into /etc/udev/rules.d/gnupg-ccid.rules:<br/><blockquote class="tr_bq"><span>ACTION=="add", SUBSYSTEM=="usb", ENV{PRODUCT}=="4e6/e003/*", OWNER:="huettel", MODE:="600"<br/>ACTION=="add", SUBSYSTEM=="usb", ENV{PRODUCT}=="4e6/5115/*", OWNER:="huettel", MODE:="600"</span></blockquote>With similar settings it should in principle be possible to solve all the permission problems. (You may want to change the USB id's and the OWNER for your needs.) Then, a quick <br/><blockquote class="tr_bq"><span>udevadm control --reload-rules</span></blockquote>followed by unplugging and re-plugging the reader. Now you should be able to check the contents of your card.<br/>If you still have problems, check the following: for accessing the cards, GnuPG starts a background process, the smart card daemon (scdaemon). scdaemon tends to hang every now and then after removing a card. Just kill it (you need SIGKILL)<br/><blockquote class="tr_bq"><span>killall -9 scdaemon</span></blockquote>and try again accessing the card afterwards; the daemon is re-started by gnupg. A lot of improvements in smart card handling are scheduled for gnupg-2.0.20; I hope this will be fixed as well.<br/>Here's how a successful card status command looks like on a blank card: <br/><blockquote class="tr_bq"><span>huettel@pinacolada ~ $ gpg --card-status<br/>Application ID ...: D276000124010200000500000AFA0000<br/>Version ..........: 2.0<br/>Manufacturer .....: ZeitControl<br/>Serial number ....: 00000AFA<br/>Name of cardholder: [not set]<br/>Language prefs ...: de<br/>Sex ..............: unspecified<br/>URL of public key : [not set]<br/>Login data .......: [not set]<br/>Signature PIN ....: forced<br/>Key attributes ...: 2048R 2048R 2048R<br/>Max. PIN lengths .: 32 32 32<br/>PIN retry counter : 3 0 3<br/>Signature counter : 0<br/>Signature key ....: [none]<br/>Encryption key....: [none]<br/>Authentication key: [none]<br/>General key info..: [none]<br/>huettel@pinacolada ~ $ </span></blockquote><br/>That's it for now, part 2 will be about setting up the basic card data and gnupg functions, then we'll eventually proceed to ssh and pam...<br/><br/><br/><br/></div>
    </content>
    <updated>2013-04-13T18:22:16Z</updated>
    <published>2013-04-13T18:22:00Z</published>
    <category scheme="http://www.blogger.com/atom/ns#" term="gentoo"/>
    <author>
      <name>Andreas</name>
      <email>noreply@blogger.com</email>
      <uri>http://www.blogger.com/profile/12314847423280010909</uri>
    </author>
    <source>
      <id>tag:blogger.com,1999:blog-7849507270164967036</id>
      <category term="arm"/>
      <category term="lab-measurement"/>
      <category term="graphene"/>
      <category term="astronomy"/>
      <category term="gpib"/>
      <category term="sysadmin"/>
      <category term="books"/>
      <category term="gentoo"/>
      <category term="ostpforte"/>
      <category term="maths"/>
      <category term="scifi"/>
      <category term="humour"/>
      <category term="france"/>
      <category term="art"/>
      <category term="digikam"/>
      <category term="cups"/>
      <category term="photos"/>
      <category term="spain"/>
      <category term="romanesque"/>
      <category term="nobelprize"/>
      <category term="stupidity"/>
      <category term="kde"/>
      <category term="err-what?"/>
      <category term="meta"/>
      <category term="archaeology"/>
      <category term="phdcomics"/>
      <category term="italy"/>
      <category term="food"/>
      <category term="comp-sci"/>
      <category term="regensburg"/>
      <category term="physics"/>
      <category term="architecture"/>
      <category term="nanotubes"/>
      <category term="work"/>
      <category term="travelling"/>
      <category term="research-group"/>
      <category term="hardened"/>
      <author>
        <name>Andreas</name>
        <email>noreply@blogger.com</email>
        <uri>http://www.blogger.com/profile/12314847423280010909</uri>
      </author>
      <link href="http://dilfridge.blogspot.com/feeds/posts/default" rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml"/>
      <link href="http://www.blogger.com/feeds/7849507270164967036/posts/default/-/gentoo" rel="self" type="application/atom+xml"/>
      <link href="http://dilfridge.blogspot.com/search/label/gentoo" rel="alternate" type="text/html"/>
      <link href="http://pubsubhubbub.appspot.com/" rel="hub" type="text/html"/>
      <link href="http://www.blogger.com/feeds/7849507270164967036/posts/default/-/gentoo/-/gentoo?start-index=26&amp;max-results=25" rel="next" type="application/atom+xml"/>
      <title>the dilfridge blog</title>
      <updated>2013-05-23T19:23:30Z</updated>
    </source>
  </entry>

  <entry xml:lang="en-US">
    <id>http://blogs.gentoo.org/calchan/?p=126</id>
    <link href="http://blogs.gentoo.org/calchan/2013/04/09/forking-ebuilds/#utm_source=feed&amp;utm_medium=feed&amp;utm_campaign=feed" rel="alternate" type="text/html"/>
    <title>Forking ebuilds</title>
    <summary>Here’s a response to an email thread I sent recently. This was on a private alias but I’m not exposing the context or quoting anybody, so I’m not leaking anything but my own opinion which has no reason to be secret. GLEP39 explicitly states that projects can be competing. I don’t see how you can [...]</summary>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>Here’s a response to an email thread I sent recently. This was on a private alias but I’m not exposing the context or quoting anybody, so I’m not leaking anything but my own opinion which has no reason to be secret. </p>
<blockquote><p>
GLEP39 explicitly states that projects can be competing. I don’t see how you can exclude competing ebuilds from that since nothing prevents anybody from starting a project dedicated to maintaining an ebuild.</p>
<p>So, if you want to prevent devs from pushing competing ebuilds to the tree you have to change GLEP 39 first. No arguing or “hey all, hear my opinion” emails on whatever list will be able to change that.</p>
<p>Some are against forking ebuilds and object duplicating effort and lack of manpower. I will bluntly declare those people shortsighted. Territoriality is exactly what prevents us from getting more manpower. I’m interested in improving package X but developer A who maintains it is an ass and won’t yield on anything. At best I’ll just fork it in an overlay (with all the issues that having a package in an overlay entail, i.e. no QA, it’ll die pretty quickly, etc…), at worst I’m moving to Arch, or Exherbo, or else… What have we gained by not duplicating effort? We have gained negative manpower.</p>
<p>As long as forked ebuilds can cohabit peacefully in the tree using say a virtual (note: not talking about the devs here but about the packages) we should see them as progress. Gentoo is about choice. Let consumers, i.e. users and devs depending on the ebuild in various ways, have that choice. They’ll quickly make it known which one is best, at which point the failing ebuild will just die by itself. Let me say it again: Gentoo is about choice.</p>
<p>If it ever happened that devs of forked ebuilds could not cohabit peacefully on our lists or channels, then I would consider that a deliberate intention of not cooperating. As with any deliberate transgression of our rules if I were devrel lead right now I would simply retire all involved developers on the spot without warning. Note the use of the word “deliberate” here. It is important we allow devs to make mistakes, even encourage it. But we are adults. If one of us knowingly chooses to not play by the rules he or she should not be allowed to play. “Do not be an ass” is one of those rules. We’ve been there before with great success and it looks like we are going to have to go there again soon.
</p></blockquote>
<p>There you have it. You can start sending me your hate mail in 3… 2… 1…</p></div>
    </content>
    <updated>2013-04-10T00:14:47Z</updated>
    <category term="Gentoo"/>
    <author>
      <name>calchan</name>
    </author>
    <source>
      <id>http://blogs.gentoo.org/calchan</id>
      <link href="http://blogs.gentoo.org/calchan/category/gentoo/feed/" rel="self" type="application/rss+xml"/>
      <link href="http://blogs.gentoo.org/calchan" rel="alternate" type="text/html"/>
      <subtitle>Feel free to disagree</subtitle>
      <title>Denis Dupeyron » Gentoo</title>
      <updated>2013-04-10T02:02:15Z</updated>
    </source>
  </entry>

  <entry xml:lang="en-US">
    <id>urn:uuid:076742c4-b5c4-4cb1-b340-0d1f28d68a43</id>
    <link href="http://blog.flameeyes.eu/2013/04/so-there-i-m-in-ireland" rel="alternate" type="text/html"/>
    <title xml:lang="en-US">So there, I'm in Ireland</title>
    <content type="xhtml" xml:lang="en-US"><div xmlns="http://www.w3.org/1999/xhtml"><p>Just wanted to let everybody know that I’m in Ireland, as I landed at Dublin Airport on Saturday, and been roaming around the city for a few days now. Time looks like it’s running faster than usual, so I haven’t had much time to work on Gentoo stuff.</p>
<p>My current plan is to work, by the end of the week, on a testing VM as there’s an LVM2 bug that I owe Enrico to fix, and possibly work on the Autotools Mythbuster guide as well, there’s work to do there.</p>
<p>But today, I’m a bit too tired to keep going, it’s 11pm… I’ll doze off!</p></div>
    </content>
    <updated>2013-04-09T21:50:37Z</updated>
    <published>2013-04-09T21:50:37Z</published>
    <category label="English" scheme="http://blog.flameeyes.eu/category/english" term="english"/>
    <category label="Personal" scheme="http://blog.flameeyes.eu/category/personal" term="personal"/>
    <category scheme="http://blog.flameeyes.eu/tag/ireland" term="Ireland"/>
    <category scheme="http://blog.flameeyes.eu/tag/dublin" term="Dublin"/>
    <category scheme="http://blog.flameeyes.eu/tag/gentoo" term="Gentoo"/>
    <author>
      <name>Flameeyes</name>
      <email>flameeyes@flameeyes.eu</email>
    </author>
    <source>
      <id>tag:blog.flameeyes.eu,2005:/tag/gentoo</id>
      <link href="http://blog.flameeyes.eu" rel="alternate" type="text/html"/>
      <link href="http://blog.flameeyes.eu/tag/gentoo.atom" rel="self" type="application/atom+xml"/>
      <subtitle xml:lang="en-US">The weblog of Diego Elio Pettenò</subtitle>
      <title xml:lang="en-US">gentoo | Flameeyes's Weblog</title>
      <updated>2013-04-09T21:56:09Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://lxnay.wordpress.com/?p=590</id>
    <link href="http://lxnay.wordpress.com/2013/04/08/whats-cookin-on-the-bbq/" rel="alternate" type="text/html"/>
    <title>What’s cookin’ on the BBQ</title>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml">While Spring has yet to come here, the rainy days are giving me some time to think about the future of Sabayon and summarize what’s been done during the last months. donations As far as I can see, donations are going surprisingly well. The foundation has now enough money (see the pledgie.com campaign at sabayon.org) … <a href="http://lxnay.wordpress.com/2013/04/08/whats-cookin-on-the-bbq/">Continue reading <span class="meta-nav">→</span></a><img alt="" border="0" height="1" src="http://stats.wordpress.com/b.gif?host=lxnay.wordpress.com&amp;blog=14999083&amp;post=590&amp;subd=lxnay&amp;ref=&amp;feed=1" width="1"/></div>
    </summary>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>While Spring has yet to come here, the rainy days are giving me some time to think about the future of Sabayon and summarize what’s been done during the last months.</p>
<h1>donations</h1>
<p>As far as I can see, donations are going surprisingly well. The foundation has now enough money (see the pledgie.com campaign at sabayon.org) to guarantee 24/7 operations, new hardware purchase and travel expenses for several months. Of course, the more the better (paranoia mode on) but I cannot really complain, given that’s our sole source of funds. Here is a list of stuff we’ve been able to buy during the last year (including prices, we’re in the EU, prices in the US are much lower, sigh):</p>
<ul>
<li><span style="line-height: 12.997159004211px;">one Odroid X2 (for Sabayon on ARM experiments) – 131€</span></li>
<li>one PandaBoard ES (for Sabayon on ARM experiments) – 160€</li>
<li>two 2TB Seagate Barracuda HDDs (one for Joost’s experiments, one for the Entropy tinderbox) – 185€</li>
<li>two 480GB Vertex3 OCZ SSDs for the Entropy tinderbox (running together with the Samsung 830 SSDs in a LVM setup) – 900€</li>
<li>one Asus PIKE 2008 SAS controller for the Entropy tinderbox – 300€</li>
<li>other 16GB of DDR3 for the Entropy tinderbox (now running with 64G) – 128€</li>
<li>mirror.de.sabayon.org @ hetzner.de maintenance (33€/mo for 1 year) – 396€</li>
<li>my personal FOSDEM 2013 travel expenses – 155€</li>
</ul>
<p>Plus, travel expenses to data centers whenever there is a problem that cannot be fixed remotely. That’s more or less from 40€ to 60€ each depending on the physical distance.<br/>
As you may understand, this is just a part of the “costs”, because the time donated by individual developers is not accounted there, and I believe that it’s much more important than a piece of silicon.</p>
<h1>monthly releases, entropy</h1>
<p>Besides the money part, I spent the past months on Sabayon 11 (of course), on advancing with the automation agenda for 2013. Ideally, I would like to have stable releases automatically produced and tested monthly, and eventually pushed to mirrors. This required me to migrate to a different bittorrent tracker, one that scrapes a directory containing .torrents and publishes them automatically: you can see the outcome at <a href="http://torrents.sabayon.org">http://torrents.sabayon.org</a>. Furthermore, a first, yet not advertised, set of monthly ISO images is available on our mirrors into the iso/monthly/ sub-directory. You can read more about them <a href="http://lists.sabayon.org/pipermail/devel/2013-April/008691.html">here</a>. This may (eheh) indicate that the next Sabayon release will be versioned something like 13.05, who knows…<br/>
On the Entropy camp, nothing much has changed, besides the usual set of bug fixe, little improvements and the migration to an .ini-like repositories configuration files syntax for both Entropy Server and Client modules, see <a href="http://lists.sabayon.org/pipermail/devel/2013-March/008578.html">here</a>. You may start realizing that all the good things I do are communicated through the <a href="https://lists.sabayon.org/mailman/listinfo/devel">devel mailing list</a>.</p>
<h1>leh systemd</h1>
<p>I spent a week working on a Sabayon systemd system to see how it works and performs compared to openrc. Long story short, I am about to arrange some ideas on making the systemd migration come true at some point in the (near) future. Joost and I are experimenting with a private Entropy repository (thus chroot) that’s been migrated to systemd, from openrc. While I don’t want to start yet another flamewar about openrc vs systemd, I do believe in science, facts and benchmarks. Even though I don’t really like the vertical architecture of systemd, I am starting to appreciate its features and most importantly, its <a href="https://plus.google.com/u/1/107663298003289209275/posts/9XKaRKqsPY9">performance</a>. The first thing I would like to sort out is to be able to switch between systemd and openrc at runtime, this may involve the creation of an eselect module (trivial) and patching some ebuilds. I think that’s the best thing to do, if we really want to design and deploy a migration path for current openrc users (I would like to remind people that Gentoo is about choice, after all). If you’re a Gentoo developer that hasn’t been bugged by me yet, feel free to drop a line to <em>lxnay@g.o</em> (expand the domain, duh!) if you’re interested.</p>
<br/>  <a href="http://feeds.wordpress.com/1.0/gocomments/lxnay.wordpress.com/590/" rel="nofollow"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/lxnay.wordpress.com/590/"/></a> <img alt="" border="0" height="1" src="http://stats.wordpress.com/b.gif?host=lxnay.wordpress.com&amp;blog=14999083&amp;post=590&amp;subd=lxnay&amp;ref=&amp;feed=1" width="1"/></div>
    </content>
    <updated>2013-04-08T16:27:16Z</updated>
    <category term="Gentoo"/>
    <category term="Sabayon"/>
    <author>
      <name>lxnay</name>
    </author>
    <source>
      <id>http://lxnay.wordpress.com</id>
      <logo>http://s2.wp.com/i/buttonw-com.png</logo>
      <link href="http://lxnay.wordpress.com/category/gentoo/feed/" rel="self" type="application/rss+xml"/>
      <link href="http://lxnay.wordpress.com" rel="alternate" type="text/html"/>
      <link href="http://lxnay.wordpress.com/osd.xml" rel="search" title="On The Other Hand" type="application/opensearchdescription+xml"/>
      <link href="http://lxnay.wordpress.com/?pushpress=hub" rel="hub" type="text/html"/>
      <subtitle>lxnay's ramblings on Sabayon, Gentoo, Open Source and Software Engineering</subtitle>
      <title>On The Other Hand » Gentoo</title>
      <updated>2013-05-19T11:02:48Z</updated>
    </source>
  </entry>

  <entry xml:lang="en-US">
    <id>https://michal.hrusecky.net/?p=1252</id>
    <link href="http://michal.hrusecky.net/2013/04/fosdem-2013-and-etc-update/" rel="alternate" type="text/html"/>
    <link href="https://flattr.com/submit/auto?user_id=miska&amp;popout=1&amp;url=http%3A%2F%2Fmichal.hrusecky.net%2F2013%2F04%2Ffosdem-2013-and-etc-update%2F&amp;language=en_GB&amp;category=text&amp;title=FOSDEM+2013+%26%23038%3B+etc-update&amp;description=I+started+writing+this+post+after+FOSDEM%2C+but+never+actually+managed+to+finish+it.+But+as+I+plan+to+blog+about+something+again+%26%238220%3Bsoon%26%238221%3B%2C+I+wanted+to+get+this+one...&amp;tags=community%2Cconference%2CGentoo%2CopenSUSE%2Cpackages%2Cshell+script%2Cblog%2Clinux%2CopenSUSE%2Copensource" rel="payment" title="Flattr this!" type="text/html"/>
    <title>FOSDEM 2013 &amp; etc-update</title>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml">I started writing this post after FOSDEM, but never actually managed to finish it. But as I plan to blog about something again “soon”, I wanted to get this one out first. So let’s start with FOSDEM – it is awesome event and every open source hacker is there unless he has some really huge … <p/><p><a class="more-link block-button" href="http://michal.hrusecky.net/2013/04/fosdem-2013-and-etc-update/">Continue reading »</a></p></div>
    </summary>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><div class="wp-caption alignright" id="attachment_1297" style="width: 235px;"><a href="https://michal.hrusecky.net/wp-content/uploads/fosdem.jpg"><img alt="FOSDEM 2013" class="size-medium wp-image-1297" height="300" src="https://michal.hrusecky.net/wp-content/uploads/fosdem-225x300.jpg" width="225"/></a><p class="wp-caption-text">FOSDEM 2013</p></div>
<p>I started writing this post after FOSDEM, but never actually managed to finish it. But as I plan to blog about something again “soon”, I wanted to get this one out first. So let’s start with FOSDEM – it is awesome event and every open source hacker is there unless he has some really huge reasons why not to come (like being dead, in prison or locked down in psychiatric care). I was there together with bunch of openSUSE/SUSE folks. It was a lot of fun and we even managed to get some work done during the event. So how was it?</p>
<p><strong>FOSDEM</strong></p>
<p>We had a lot of fun on the way already. You know, every year, we rent a bus just for us and we go from Nuremberg to Brussels and back all together by bus. And we talk and drink and talk and drink some more…. So although it sounds crazy – 8 hours drive – it’s not as bad as it sounds.</p>
<p><strong>etc-update</strong></p>
<p>What the hack is <a href="http://www.gentoo.org/doc/en/handbook/handbook-x86.xml?part=3&amp;chap=4#doc_chap2" target="_blank" title="etc-update">etc-update</a> and what does it have to do with me, <a href="http://www.opensuse.org" target="_blank" title="openSUSE">openSUSE</a> or FOSDEM? Isn’t it <a href="http://www.gentoo.org" target="_blank" title="Gentoo">Gentoo</a> tool? Yes, it is. It is Gentoo tool (actually part of portage, Gentoo package manager) that is used in Gentoo to merge updates to the configuration files. When you install package, portage is not going to overwrite your configuration files that you have spend days and nights tuning. It will create a new file with new upstream configuration and it is up to you to merge them. But you know, rpm does the same thing. In almost all cases rpm is not going to overwrite your configuration file, but will install the new one as config_file.rpmnew. And it is up to you to merge the changes. But it’s not fun. Searching for all files, compare them manually and choose what to merge and how. And here comes etc-update o the rescue <img alt=";-)" class="wp-smiley" src="http://michal.hrusecky.net/wp-includes/images/smilies/icon_wink.gif"/> </p>
<p>How does it work? Simple. You need to install it (will speak about that later) and run it. It’s command line tool and it doesn’t need any special parameters. All you need to do is to run etc-update as root (to be actually able to do something with these files). And the result?</p>
<pre># etc-update 
Scanning Configuration files...
The following is the list of files which need updating, each
configuration file is followed by a list of possible replacement files.
1) /etc/camsource.conf (1)
2) /etc/ntp.conf (1)
Please select a file to edit by entering the corresponding number.
              (don't use -3, -5, -7 or -9 if you're unsure what to do)
              (-1 to exit) (-3 to auto merge all files)
                           (-5 to auto-merge AND not use 'mv -i')
                           (-7 to discard all updates)
                           (-9 to discard all updates AND not use 'rm -i'):</pre>
<p>What I usually do is that I select configuration files I do care about, review changes and merge them somehow and later just use -5 for everything else. It looks really simple, doesn’t it? And in fact it is!</p>
<p>Somebody asked a question on how to merge updates of configuration files while visiting our openSUSE booth at FOSDEM. When I learned that from <a href="http://www.sysrich.co.uk/?p=147" target="_blank" title="Richard Brown">Richard</a>, we talked a little bit about how easy it is to do something like that and later during one of the less interesting talks, I took this Gentoo tool, patched it to work on rpm distributions, packaged it and now it is in Factory and it will be part of openSUSE 13.1 <img alt=";-)" class="wp-smiley" src="http://michal.hrusecky.net/wp-includes/images/smilies/icon_wink.gif"/>  If you want to try it, you can get it either from my home project – <a href="http://download.opensuse.org/repositories/home:/-miska-:/arm/" target="_blank" title="home:-miska-:arm">home:-miska-:arm</a> (even for x86 <img alt=";-)" class="wp-smiley" src="http://michal.hrusecky.net/wp-includes/images/smilies/icon_wink.gif"/>  ) or from <a href="http://download.opensuse.org/repositories/utilities/" target="_blank" title="utilities">utilities</a> repository.</p>
<p>Hope you will like it and that it will make many sysadmins happy <img alt=";-)" class="wp-smiley" src="http://michal.hrusecky.net/wp-includes/images/smilies/icon_wink.gif"/> </p></div>
    </content>
    <updated>2013-04-07T16:00:35Z</updated>
    <category term="English"/>
    <category term="Gentoo"/>
    <category term="openSUSE"/>
    <category term="community"/>
    <category term="conference"/>
    <category term="packages"/>
    <category term="shell script"/>
    <author>
      <name>Michal Hrušecký</name>
    </author>
    <source>
      <id>http://michal.hrusecky.net</id>
      <link href="http://michal.hrusecky.net/category/gentoo/feed/" rel="self" type="application/rss+xml"/>
      <link href="http://michal.hrusecky.net" rel="alternate" type="text/html"/>
      <subtitle>...about me, Linux and OpenSource</subtitle>
      <title>Michal Hrušecký» Gentoo</title>
      <updated>2013-05-15T09:03:04Z</updated>
    </source>
  </entry>

  <entry xml:lang="en-US">
    <id>http://blogs.gentoo.org/titanofold/?p=218</id>
    <link href="http://blogs.gentoo.org/titanofold/2013/04/04/one-severe-and-multiple-security-fixes-postgresql/#utm_source=feed&amp;utm_medium=feed&amp;utm_campaign=feed" rel="alternate" type="text/html"/>
    <title>One Severe and Multiple Security Fixes – PostgreSQL</title>
    <summary>If you’re using dev-db/postgresql-server, update now. CVE-2013-1899 &lt;dev-db/postgresql-server-{9.2.4,9.1.9,9.0.13} ------------------------------------------------------------ A connection request containing a database name that begins with "-" may be crafted to damage or destroy files within a server's data directory. CVE-2013-1900 &lt;dev-db/postgresql-server-{9.2.4,9.1.9,9.0.13,8.4.17} ------------------------------------------------------------------- Random numbers generated by contrib/pgcrypto functions may be easy for another database user to guess CVE-2013-1901 &lt;dev-db/postgresql-server-{9.2.4,9.1.9} ----------------------------------------------------- An [...]</summary>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>If you’re using dev-db/postgresql-server, update now.</p>
<pre id="comment_text_6">CVE-2013-1899 &lt;dev-db/postgresql-server-{9.2.4,9.1.9,9.0.13}
------------------------------------------------------------
A connection request containing a database name that begins
with "-" may be crafted to damage or destroy files within a server's data directory.

CVE-2013-1900 &lt;dev-db/postgresql-server-{9.2.4,9.1.9,9.0.13,8.4.17}
-------------------------------------------------------------------
Random numbers generated by contrib/pgcrypto functions may be easy for another
database user to guess

CVE-2013-1901 &lt;dev-db/postgresql-server-{9.2.4,9.1.9}
-----------------------------------------------------
An unprivileged user can run commands that could interfere with in-progress backups.</pre></div>
    </content>
    <updated>2013-04-04T21:15:17Z</updated>
    <category term="Gentoo"/>
    <category term="PostgreSQL"/>
    <category term="Universe"/>
    <author>
      <name>titanofold</name>
    </author>
    <source>
      <id>http://blogs.gentoo.org/titanofold</id>
      <link href="http://blogs.gentoo.org/titanofold/category/gentoo/feed/" rel="self" type="application/rss+xml"/>
      <link href="http://blogs.gentoo.org/titanofold" rel="alternate" type="text/html"/>
      <subtitle>Just another Gentoo Blogs site</subtitle>
      <title>titanofold » Gentoo</title>
      <updated>2013-04-04T22:03:17Z</updated>
    </source>
  </entry>

  <entry>
    <id>tag:blog.mthode.org,2013-04-03:posts/2013/Apr/gentoo-hardened-zfs-rootfs-with-dm-cryptluks-stable-edition/</id>
    <link href="http://blog.mthode.org/posts/2013/Apr/gentoo-hardened-zfs-rootfs-with-dm-cryptluks-stable-edition/" rel="alternate" type="text/html"/>
    <title>Gentoo Hardened ZFS rootfs with dm-crypt/luks stable edition</title>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><h1>Disclaimer</h1>
<ol>
<li>Keep in mind that ZFS on Linux is supported upstream, for differing values of support</li>
<li>I do not care much for hibernate, normal suspending works.</li>
<li>This is for a laptop/desktop, so I choose multilib.</li>
<li><strong>If you patch the kernel to add in ZFS support directly, you cannot share the binary, the cddl and gpl2 are not compatible in that way.</strong></li>
</ol>
<h2>Initialization</h2>
<p>Make sure your installation media supports zfs on linux and installing whatever bootloader is required (uefi needs media that supports it as well).
I uploaded an iso that works for me at <a href="http://cdn.mthode.org/install-amd64-hardened-minimal-13.0.ZFS-r3.iso" title="Gentoo Hardened minimal iso with ZFS">this link</a>
Live DVDs newer then 12.1 should also have support, but the previous link has the stable version of zfsonlinux.
If you need to install the bootloader via uefi, you can use one of the latest Fedora CDs, though the gentoo media should be getting support 'soon'.  You can install your system normally up until the formatting begins.</p>
<h2>Formatting</h2>
<p>I will be assuming the following.</p>
<ol>
<li>/boot on /dev/sda1</li>
<li>cryptroot on /dev/sda2</li>
<li>swap inside cryptroot OR not used.</li>
</ol>
<p><em>When using GPT for partitioning, create the first partition at 1M, just to make sure you are on a sector boundry</em>
<em>Most newer drives are 4k advanced format drives.  Because of this you need ashift=12, some/most newer SSDs need ashift=13</em>
<em>compression set to lz4 will make your system incompatible with upstream (oracle) zfs, if you want to stay compatible then just set compression=on</em></p>
<h2>General Setup</h2>
<div class="codehilite"><pre><span class="c">#setup encrypted partition</span>
cryptsetup luksFormat -l 512 -c aes-xts-plain64 -h sha512 /dev/sda2
cryptsetup luksOpen /dev/sda2 cryptroot

<span class="c">#setup ZFS</span>
zpool create -f -o <span class="nv">ashift</span><span class="o">=</span>12 -o <span class="nv">cachefile</span><span class="o">=</span>/tmp/zpool.cache -O <span class="nv">normalization</span><span class="o">=</span>formD -m none -R /mnt/gentoo rpool /dev/mapper/cryptroot
zfs create -o <span class="nv">mountpoint</span><span class="o">=</span>none -o <span class="nv">compression</span><span class="o">=</span>lz4 rpool/ROOT
<span class="c">#rootfs</span>
zfs create -o <span class="nv">mountpoint</span><span class="o">=</span>/ rpool/ROOT/rootfs
zfs create -o <span class="nv">mountpoint</span><span class="o">=</span>/opt rpool/ROOT/rootfs/OPT
zfs create -o <span class="nv">mountpoint</span><span class="o">=</span>/usr rpool/ROOT/rootfs/USR
zfs create -o <span class="nv">mountpoint</span><span class="o">=</span>/var rpool/ROOT/rootfs/VAR
<span class="c">#portage</span>
zfs create -o <span class="nv">mountpoint</span><span class="o">=</span>none rpool/GENTOO
zfs create -o <span class="nv">mountpoint</span><span class="o">=</span>/usr/portage rpool/GENTOO/portage
zfs create -o <span class="nv">mountpoint</span><span class="o">=</span>/usr/portage/distfiles -o <span class="nv">compression</span><span class="o">=</span>off rpool/GENTOO/distfiles
zfs create -o <span class="nv">mountpoint</span><span class="o">=</span>/usr/portage/packages -o <span class="nv">compression</span><span class="o">=</span>off rpool/GENTOO/packages
<span class="c">#homedirs</span>
zfs create -o <span class="nv">mountpoint</span><span class="o">=</span>/home rpool/HOME
zfs create -o <span class="nv">mountpoint</span><span class="o">=</span>/root rpool/HOME/root

<span class="nb">cd</span> /mnt/gentoo

<span class="c">#Download the latest stage3 and extract it.</span>
wget ftp://gentoo.osuosl.org/pub/gentoo/releases/amd64/autobuilds/current-stage3-amd64-hardened/stage3-amd64-hardened-*.tar.bz2
tar -xf /mnt/gentoo/stage3-amd64-hardened-*.tar.bz2 -C /mnt/gentoo

<span class="c">#get the latest portage tree</span>
emerge --sync

<span class="c">#copy the zfs cache from the live system to the chroot</span>
mkdir -p /mnt/gentoo/etc/zfs
cp /tmp/zpool.cache /mnt/gentoo/etc/zfs/zpool.cache
</pre></div>


<h2>Kernel Config</h2>
<p><strong>If you are compiling the modules into the kernel staticly, then keep these things in mind.</strong></p>
<ul>
<li>When configuring the kernel, make sure that CONFIG_SPL and CONFIG_ZFS are set to 'Y'.</li>
<li>Portage will want to install sys-kernel/spl when <code>emerge sys-fs/zfs</code> is run because of dependencies. Also, sys-kernel/spl is still necessary to make the sys-fs/zfs configure script happy.</li>
<li>You do not need to run or install module-rebuild.</li>
<li>There have been some updates to the kernel/userspace ioctl since 0.6.0-rc9 was tagged.<ul>
<li>An issue occurs if newer userland utilities are used with older kernel modules.</li>
</ul>
</li>
</ul>
<p>Install as normal up until the kernel install.</p>
<div class="codehilite"><pre><span class="nb">echo</span> <span class="s2">"=sys-kernel/genkernel-3.4.40 ~amd64       #needed for zfs and encryption support"</span> &gt;&gt; /etc/portage/package.accept_keywords
emerge sys-kernel/genkernel
emerge sys-kernel/gentoo-sources                <span class="c">#or hardned-sources</span>

<span class="c">#patch the kernel</span>

<span class="c">#If you want to build the modules into the kernel directly, you will need to patch the kernel directly.  Otherwise, skip the patch commands.</span>
env <span class="nv">EXTRA_ECONF</span><span class="o">=</span><span class="s1">'--enable-linux-builtin'</span> ebuild /usr/portage/sys-kernel/spl/spl-0.6.1.ebuild clean configure
<span class="o">(</span><span class="nb">cd</span> /var/tmp/portage/sys-kernel/spl-0.6.1/work/spl-0.6.1 <span class="o">&amp;&amp;</span> ./copy-builtin /usr/src/linux<span class="o">)</span>
env <span class="nv">EXTRA_ECONF</span><span class="o">=</span><span class="s1">'--with-spl=/usr/src/linux --enable-linux-builtin'</span> ebuild /usr/portage/sys-fs/zfs-kmod/zfs-kmod-0.6.1.ebuild clean configure
<span class="o">(</span><span class="nb">cd</span> /var/tmp/portage/sys-fs/zfs-kmod-0.6.1/work/zfs-zfs-0.6.1/ <span class="o">&amp;&amp;</span> ./copy-builtin /usr/src/linux<span class="o">)</span>
mkdir -p /etc/portage/profile
<span class="nb">echo</span> <span class="s1">'sys-fs/zfs -kernel-builtin'</span> &gt;&gt; /etc/portage/profile/package.use.mask
<span class="nb">echo</span> <span class="s1">'sys-fs/zfs kernel-builtin'</span> &gt;&gt; /etc/portage/package.use

<span class="c">#finish configuring, building and installing the kernel making sure to enable dm-crypt support</span>

<span class="c">#if not building zfs into the kernel, install module-rebuild</span>
emerge module-rebuild

<span class="c">#install SPL and ZFS stuff zfs pulls in spl automatically</span>
mkdir -p /etc/portage/profile                                                   
<span class="nb">echo</span> <span class="s1">'sys-fs/zfs -kernel-builtin'</span> &gt;&gt; /etc/portage/profile/package.use.mask      
<span class="nb">echo</span> <span class="s1">'sys-fs/zfs kernel-builtin'</span> &gt;&gt; /etc/portage/package.use                    
emerge sys-fs/zfs

<span class="c"># Add zfs to the correct runlevels</span>
rc-update add zfs boot
rc-update add zfs-shutdown shutdown

<span class="c">#initrd creation, add '--callback="module-rebuild rebuild"' to the options if not building the modules into the kernel</span>
genkernel --luks --zfs --disklabel initramfs
</pre></div>


<p>Finish installing as normal, your kernel line should look like this, and you should also have a the initrd defined.</p>
<div class="codehilite"><pre><span class="c">#kernel line for grub2, libzfs support is not needed in grub2 because you are not mounting the filesystem directly.</span>
linux  /kernel-3.5.0-gentoo <span class="nv">real_root</span><span class="o">=</span><span class="nv">ZFS</span><span class="o">=</span>rpool/ROOT/rootfs <span class="nv">crypt_root</span><span class="o">=</span>/dev/sda2 <span class="nv">dozfs</span><span class="o">=</span>force ro
initrd /initramfs-genkernel-x86_64-3.5.0
</pre></div>


<p>In /etc/fstab, make sure BOOT, ROOT and SWAP lines are commented out and finish the install.</p>
<p>You should now have a working encryped zfs install.</p></div>
    </summary>
    <updated>2013-04-03T05:00:00Z</updated>
    <category term="zfs"/>
    <category term="gentoo"/>
    <category term="encryption"/>
    <author>
      <name>Matthew Thode (prometheanfire)</name>
    </author>
    <source>
      <id>http://blog.mthode.org/</id>
      <link href="http://blog.mthode.org/" rel="alternate" type="text/html"/>
      <link href="http://blog.mthode.org/feeds/Gentoo.rss.xml" rel="self" type="application/rss+xml"/>
      <title>Let's Play a Game</title>
      <updated>2013-04-03T22:02:59Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://gentoo-pr.org/42 at http://gentoo-pr.org</id>
    <link href="http://gentoo-pr.org/node/42" rel="alternate" type="text/html"/>
    <title>udev-200 interface names</title>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>Just updated to udev-200 and figured it was time to read the news item and deal with the Predictable Network Interface Names. I only have one network card and connect with a static ip address. It looked to me like more trouble to keep net.eth0 then to just go with the flow and paddle downstream and not fight it so here is what I did.</p>
<p>First I read the news item :) then found out what my new name would be.<br/>
</p><div class="geshifilter"><pre class="bash geshifilter-bash" style="font-family: monospace;">eselect news <span style="color: #c20cb9; font-weight: bold;">read</span>
udevadm test-builtin net_id <span style="color: #000000; font-weight: bold;">/</span>sys<span style="color: #000000; font-weight: bold;">/</span>class<span style="color: #000000; font-weight: bold;">/</span>net<span style="color: #000000; font-weight: bold;">/</span>eth0 <span style="color: #000000;">2</span><span style="color: #000000; font-weight: bold;">&gt;</span> <span style="color: #000000; font-weight: bold;">/</span>dev<span style="color: #000000; font-weight: bold;">/</span>null</pre></div><p/>
<p>That returned enp0s25 ...</p>
<p>Next remove the old symlink and create the new one.</p>
<p/><div class="geshifilter"><pre class="bash geshifilter-bash" style="font-family: monospace;"><span style="color: #7a0874; font-weight: bold;">cd</span> <span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>init.d<span style="color: #000000; font-weight: bold;">/</span>
<span style="color: #c20cb9; font-weight: bold;">rm</span> net.eth0
<span style="color: #c20cb9; font-weight: bold;">ln</span> <span style="color: #660033;">-s</span> net.lo net.enp0s25</pre></div><p/>
<p>I removed all the files from /etc/udev/rules.d/</p>
<p>Next set up /etc/conf.d/net for my static address.</p>
<p/><div class="geshifilter"><pre class="bash geshifilter-bash" style="font-family: monospace;"><span style="color: #666666; font-style: italic;"># Static</span>
 
<span style="color: #007800;">config_enp0s25</span>=<span style="color: #ff0000;">"192.168.1.68/24"</span>
<span style="color: #007800;">routes_enp0s25</span>=<span style="color: #ff0000;">"default via 192.168.1.254"</span>
<span style="color: #007800;">dns_servers_enp0s25</span>=<span style="color: #ff0000;">"192.168.1.254 8.8.8.8"</span></pre></div><p/>
<p>That was it, rebooted, held my breath, and everything seems just fine, YES!</p>
<p/><div class="geshifilter"><pre class="bash geshifilter-bash" style="font-family: monospace;"> <span style="color: #c20cb9; font-weight: bold;">ifconfig</span>
enp0s25: <span style="color: #007800;">flags</span>=4163<span style="color: #000000; font-weight: bold;">&lt;</span>UP,BROADCAST,RUNNING,MULTICAST<span style="color: #000000; font-weight: bold;">&gt;</span>  mtu 1500
        inet 192.168.1.68  netmask 255.255.255.0  broadcast 192.168.1.255
        inet6 fe80::21c:c0ff:fe91:5798  prefixlen 64  scopeid 0x20<span style="color: #000000; font-weight: bold;">&lt;</span><span style="color: #c20cb9; font-weight: bold;">link</span><span style="color: #000000; font-weight: bold;">&gt;</span>
        ether 00:1c:c0:91:57:98  txqueuelen 1000  <span style="color: #7a0874; font-weight: bold;">(</span>Ethernet<span style="color: #7a0874; font-weight: bold;">)</span>
        RX packets 3604  bytes 1310220 <span style="color: #7a0874; font-weight: bold;">(</span>1.2 MiB<span style="color: #7a0874; font-weight: bold;">)</span>
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 2229  bytes 406258 <span style="color: #7a0874; font-weight: bold;">(</span>396.7 KiB<span style="color: #7a0874; font-weight: bold;">)</span>
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
        device interrupt 20  memory 0xd3400000-d3420000  
 
lo: <span style="color: #007800;">flags</span>=<span style="color: #000000;">73</span><span style="color: #000000; font-weight: bold;">&lt;</span>UP,LOOPBACK,RUNNING<span style="color: #000000; font-weight: bold;">&gt;</span>  mtu <span style="color: #000000;">16436</span>
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::<span style="color: #000000;">1</span>  prefixlen <span style="color: #000000;">128</span>  scopeid 0x10<span style="color: #000000; font-weight: bold;">&lt;</span>host<span style="color: #000000; font-weight: bold;">&gt;</span>
        loop  txqueuelen <span style="color: #000000;">0</span>  <span style="color: #7a0874; font-weight: bold;">(</span>Local Loopback<span style="color: #7a0874; font-weight: bold;">)</span>
        RX packets <span style="color: #000000;">0</span>  bytes <span style="color: #000000;">0</span> <span style="color: #7a0874; font-weight: bold;">(</span><span style="color: #000000;">0.0</span> B<span style="color: #7a0874; font-weight: bold;">)</span>
        RX errors <span style="color: #000000;">0</span>  dropped <span style="color: #000000;">0</span>  overruns <span style="color: #000000;">0</span>  frame <span style="color: #000000;">0</span>
        TX packets <span style="color: #000000;">0</span>  bytes <span style="color: #000000;">0</span> <span style="color: #7a0874; font-weight: bold;">(</span><span style="color: #000000;">0.0</span> B<span style="color: #7a0874; font-weight: bold;">)</span>
        TX errors <span style="color: #000000;">0</span>  dropped <span style="color: #000000;">0</span> overruns <span style="color: #000000;">0</span>  carrier <span style="color: #000000;">0</span>  collisions <span style="color: #000000;">0</span></pre></div><p/>
<p><b>Update</b><br/>
I had to edit /etc/vnstat.conf and change eth0 to enp0s25. I use vnstat with conky.</p>
<p/><div class="geshifilter"><pre class="bash geshifilter-bash" style="font-family: monospace;"><span style="color: #c20cb9; font-weight: bold;">rm</span> <span style="color: #000000; font-weight: bold;">/</span>var<span style="color: #000000; font-weight: bold;">/</span>lib<span style="color: #000000; font-weight: bold;">/</span>vnstat<span style="color: #000000; font-weight: bold;">/*</span>
vnstat <span style="color: #660033;">-u</span> <span style="color: #660033;">-i</span> enp0s25</pre></div><p/></div>
    </summary>
    <updated>2013-03-31T00:59:43Z</updated>
    <author>
      <name>dabbott</name>
    </author>
    <source>
      <id>http://gentoo-pr.org</id>
      <link href="http://gentoo-pr.org" rel="alternate" type="text/html"/>
      <link href="http://gentoo-pr.org/rss.xml" rel="self" type="application/rss+xml"/>
      <subtitle>Disclaimer: This is *not* an official Gentoo Site. Site is maintained by David Abbott</subtitle>
      <title>dabbott</title>
      <updated>2013-03-31T14:02:15Z</updated>
    </source>
  </entry>

  <entry xml:lang="en-US">
    <id>urn:uuid:fa4f60be-08ea-498d-81ee-1ace238114c1</id>
    <link href="http://blog.flameeyes.eu/2013/03/me-and-a-raspberrypi-don-t-open-that-port" rel="alternate" type="text/html"/>
    <title xml:lang="en-US">Me and a RaspberryPi: Don't Open That I/O Port</title>
    <content type="xhtml" xml:lang="en-US"><div xmlns="http://www.w3.org/1999/xhtml"><p><em>The article’s title is a play on the phrase “don’t open that door”, and makes more sense in Italian as we use the same word for ‘door’ and ‘port’…</em></p>
<p>So you left your hero (me) working on setting up a Raspberry Pi with at least a partial base of cross-compilation. The whole thing worked to a decent extent, but it wasn’t really as feasible as I hoped. Too many things, including Python, cannot cross-compile without further tricks, and the time it takes to figure out how to cross-compile them, tend to be more than that needed to just wait for it to build on the board itself. I guess this is why there is that little interest in getting cross-compilation supported.</p>
<p>But after getting a decent root, or stage4 as you prefer to call it, I needed to get a kernel to boot the device. This wasn’t easy.; there is no official configuration file published — what they tell you is, if you want to build a new custom kernel, to <code>zcat /proc/config.gz</code> from Raspian. I didn’t want to use Raspian, so I looked further. The next step is to check out the <code>defconfig</code> settings that the kernel repository includes, a few, different of them exist.</p>
<p>You’d expect them to be actually thought out to enable exactly what the RaspberryPi provides, and nothing more or less. Some leeway can be expected for things like network options, but at least the “cutdown” version should not include all of IrDA, Amateur Radio, Wireless, Bluetooth, <span class="caps">USB</span> network, <span class="caps">PPP</span>, … After disabling a bunch of options, since the system I need to run will have very few devices connected – in particular, only the Davis Vantage Pro station, maybe a printer – I built the kernel and copied it over the SD card. It booted, it crashed. Kernel panicked right away, due to a pointer dereference.</p>
<p>After some rebuild-copy-test cycles I was able to find out what the problem is. It’s a problem that is not unique to the RPi actually, as I found the same trace from an OMAP3 user reporting it somewhere else. The trick was disabling the (default-enabled) in-kernel debugger – which I couldn’t access anyway, as I don’t have an <span class="caps">USB</span> keyboard at hand right now – so that it would print the full trace of the error .That pointed at the <code>l4_init</code> function, which is the initialization of the Lightning 4 gameport controller — an old style, <span class="caps">MIDI</span> game port.</p>
<p>My hunch is that this expansion card is an old-style <span class="caps">ISA</span> card, since it does not rely on <span class="caps">PCI</span> structures to probe for the device — I cannot confirm it because googling for “lightning 4” only comes up with images of iPad and accessories. What it does, is simply poking at the 0×201 address, and the moment when it does, you get a bad dereference from the kernel exactly at that address. I’ve sent a (broken, unfortunately) patch to the <span class="caps">LKML</span> to see if there is an easy way to solve this.</p>
<p>To be honest and clear, if you just take a defconfig and build it exactly as-is, you won’t be hitting that problem. The problem happens to me because in this kernel, like in almost every other one I built, I do one particular thing: I disable modules so that a single, statically build kernel. This in turn means that all the drivers are initialized when you start the kernel, and the moment when the L4 driver is started, it crashes the kernel. Possibly it’s not the only one.</p>
<p>This is most likely not strictly limited to the RaspberryPi but it doesn’t help that there is no working minimal configuration – mine is, by the way, <a href="http://www.flameeyes.eu/rpi/linux-config-20130330">available here</a> – and I’m pretty sure there are other similar situations even when the arch is x86… I guess it’s just a matter of reporting them when you encounter them.</p></div>
    </content>
    <updated>2013-03-30T13:47:23Z</updated>
    <published>2013-03-30T13:47:23Z</published>
    <category label="English" scheme="http://blog.flameeyes.eu/category/english" term="english"/>
    <category label="Technical" scheme="http://blog.flameeyes.eu/category/technical" term="technical"/>
    <category scheme="http://blog.flameeyes.eu/tag/raspberrypi" term="RaspberryPi"/>
    <category scheme="http://blog.flameeyes.eu/tag/gentoo" term="Gentoo"/>
    <category scheme="http://blog.flameeyes.eu/tag/kernel" term="kernel"/>
    <category scheme="http://blog.flameeyes.eu/tag/linux" term="Linux"/>
    <category scheme="http://blog.flameeyes.eu/tag/gameports" term="GamePorts"/>
    <category scheme="http://blog.flameeyes.eu/tag/arm" term="ARM"/>
    <author>
      <name>Flameeyes</name>
      <email>flameeyes@flameeyes.eu</email>
    </author>
    <source>
      <id>tag:blog.flameeyes.eu,2005:/tag/gentoo</id>
      <link href="http://blog.flameeyes.eu" rel="alternate" type="text/html"/>
      <link href="http://blog.flameeyes.eu/tag/gentoo.atom" rel="self" type="application/atom+xml"/>
      <subtitle xml:lang="en-US">The weblog of Diego Elio Pettenò</subtitle>
      <title xml:lang="en-US">gentoo | Flameeyes's Weblog</title>
      <updated>2013-04-09T21:56:09Z</updated>
    </source>
  </entry>

  <entry xml:lang="en-US">
    <id>urn:uuid:de9aabef-3f78-4adf-b99a-2b92584cf36b</id>
    <link href="http://blog.flameeyes.eu/2013/03/predictable-persistently-non-mnemonic-names" rel="alternate" type="text/html"/>
    <title xml:lang="en-US">Predictable persistently (non-)mnemonic names</title>
    <content type="xhtml" xml:lang="en-US"><div xmlns="http://www.w3.org/1999/xhtml"><p><em>This is part two of a series of articles looking into the new udev “predictable” names. <a href="http://blog.flameeyes.eu/2013/03/predictably-non-persistent-names">Part one is here</a> and talks about the path-based names.</em></p>
<p>As Steve also asked on the comments from last post, isn’t it possible to just use the <span class="caps">MAC</span> address of an interface to point at it? Sure it’s possible! You just need to enable the mac-based name generator. But what does that mean? It means that your new interface names will be <code>enx0026b9d7bf1f</code> and <code>wlx0023148f1cc8</code> — do you see yourself typing them?</p>
<p>Myself, I’m not going to type them. My favourite suggestion to solve the issue is to rely on rules similar to the previous persistent naming, but not re-using the <code>eth</code> prefix to avoid collisions (which will no longer be resolved by future versions of udev). I instead use the names <code>wan0</code> and <code>lan0</code> (and so on), when the two interfaces sit stranding between a private and a public network. How do I achieve that? Simple:</p>
<div class="CodeRay"><pre>SUBSYSTEM=="net", ACTION=="add", ATTR{address}=="00:17:31:c6:4a:ca", NAME="lan0"
SUBSYSTEM=="net", ACTION=="add", ATTR{address}=="00:07:e9:12:07:36", NAME="wan0"</pre></div>
<p>Yes these simple rules are doing all the work you need if you just want to make sure not to mix the two interfaces by mistake. If your server or vserver only has one interface, and you want to have it as <code>wan0</code> no matter what its mac address is (easier to clone, for instance), then you can go for</p>
<div class="CodeRay"><pre>SUBSYSTEM=="net", ACTION=="add", ATTR{address}=="*", NAME="wan0"</pre></div>
<p>As long as you only have a single network interface, that will work just fine. For those who use Puppet, I also <a href="http://forge.puppetlabs.com/Flameeyes/udevnet">published a module</a> that you can use to create the file, and ensure that the other methods to achieve “sticky” names are not present.</p>
<p>My reasoning to actually using this kind of names is relatively simple: the rare places where I do need to specify the interface name are usually in ACLs, the firewall, and so on. In these, the most important part to me is knowing whether the interface is public or not, so the wan/lan distinction is the most useful. I don’t intend trying to remember whether <code>enp5s24k1f345totheright4nextothebaker</code> is the public or private interface.</p>
<p>Speaking about which, one of the things that appears obvious even from Lennart’s comment to the previous post, is that there is no real assurance that the names are set in stone — he says that an udev upgrade won’t change them, but I guess most people would be sceptic, remembering the track record that udev and systemd has had over the past few months alone. In this situation my personal, informed opinion is that all this work on “predictable” names is a huge waste of time for almost everybody.</p>
<p>If you do care about stable interface names, you most definitely expect them to be more meaningful than 10-digits strings of paths or mac addresses, so you almost certainly want to go through with custom naming, so that at least you attach some sense into the names themselves.</p>
<p>On the other hand, if you do not care about interface names themselves, for instance because instead of running commands or scripts, you just use NetworkManager… well what the heck are you doing playing around with paths? If it doesn’t bother you that the interface for an <span class="caps">USB</span> device changes considerably between one port and another, how can it matter to you whether it’s called <code>wwan0</code> or <code>wwan123</code>? And if the name of the interface does not matter to you, why are you spending useless time trying to get these “predictable” names working?</p>
<p>All in all, I think this is just an useless nice trick, that will only cause more headaches than it can possibly solve. Bahumbug!</p></div>
    </content>
    <updated>2013-03-29T20:09:59Z</updated>
    <published>2013-03-29T20:09:59Z</published>
    <category label="English" scheme="http://blog.flameeyes.eu/category/english" term="english"/>
    <category label="Technical" scheme="http://blog.flameeyes.eu/category/technical" term="technical"/>
    <category scheme="http://blog.flameeyes.eu/tag/gentoo" term="Gentoo"/>
    <category scheme="http://blog.flameeyes.eu/tag/systemd" term="systemd"/>
    <category scheme="http://blog.flameeyes.eu/tag/udev" term="udev"/>
    <category scheme="http://blog.flameeyes.eu/tag/chipmunks" term="Chipmunks"/>
    <category scheme="http://blog.flameeyes.eu/tag/linux" term="Linux"/>
    <category scheme="http://blog.flameeyes.eu/tag/kernel" term="kernel"/>
    <category scheme="http://blog.flameeyes.eu/tag/network" term="Network"/>
    <author>
      <name>Flameeyes</name>
      <email>flameeyes@flameeyes.eu</email>
    </author>
    <source>
      <id>tag:blog.flameeyes.eu,2005:/tag/gentoo</id>
      <link href="http://blog.flameeyes.eu" rel="alternate" type="text/html"/>
      <link href="http://blog.flameeyes.eu/tag/gentoo.atom" rel="self" type="application/atom+xml"/>
      <subtitle xml:lang="en-US">The weblog of Diego Elio Pettenò</subtitle>
      <title xml:lang="en-US">gentoo | Flameeyes's Weblog</title>
      <updated>2013-04-09T21:56:09Z</updated>
    </source>
  </entry>

  <entry>
    <id>urn:myopera-pacho-blog-60182622</id>
    <link href="http://my.opera.com/pacho/blog/show.dml/60182622" rel="alternate" type="text/html"/>
    <title>Gnome 3.8 released</title>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><a href="http://www.gnome.org/news/2013/03/gnome-3-8-released/" rel="nofollow">Gnome 3.8 Released</a>, and already available in main tree hardmasked for adventurous people willing to help with it being fixed for stable "soon" ;)<br/><br/>Thanks for your help!</div>
    </summary>
    <updated>2013-03-29T17:08:20Z</updated>
    <category term="gentoo"/>
    <category term="mandriva"/>
    <author>
      <name>lid (Pacho Ramos</name>
      <email>address-withheld@my.opera.com.inva</email>
    </author>
    <source>
      <id>http://my.opera.com/pacho/</id>
      <link href="http://my.opera.com/pacho/" rel="alternate" type="text/html"/>
      <link href="http://my.opera.com/pacho/xml/rss/blog/gentoo" rel="self" type="application/rss+xml"/>
      <subtitle>"Antes o después tendrán que rendir cuentas"</subtitle>
      <title>El Blog de Pacho</title>
      <updated>2013-03-29T17:08:20Z</updated>
    </source>
  </entry>

  <entry xml:lang="en-US">
    <id>urn:uuid:1700fb34-9654-41fa-ab53-934936b5e6ef</id>
    <link href="http://blog.flameeyes.eu/2013/03/predictably-non-persistent-names" rel="alternate" type="text/html"/>
    <title xml:lang="en-US">Predictably non-persistent names</title>
    <content type="xhtml" xml:lang="en-US"><div xmlns="http://www.w3.org/1999/xhtml"><p>This is going to be fun. The Gentoo “udev team”, in the person of Samuli – who seems to suffer from 0-day bump syndrome – decided to now enable by default the new <a href="http://www.freedesktop.org/wiki/Software/systemd/PredictableNetworkInterfaceNames">predictable names</a> featuer that is supposed to make things so much nicer in Linux land where, especially for people coming from FreeBSD, things have been pretty much messed up. This replaces the old “persistent” names, that were often enough too fragile to work, as they did in-place renaming of interfaces, and would cause way too often conflicts at boot time, since swapping two devices’ names is not an atomic operation for obvious reasons.</p>
<p>So what’s this predictable name all around? Well, it’s mostly a merge of the previous persistent naming system, and the <span class="caps">BIOS</span> label naming project which was developed by RedHat for a few years already so that the names of interfaces for server hardware in the operating system match the documentation of said server, so that you can be sure that if you’re connecting the port marked with “1” on the chassis, out of four on the motherboard, it will bring up eth2.</p>
<p>But why were those two technologies needed? Let’s start first with explaining how (more or less) the kernel naming scheme works: unlike the <span class="caps">BSD</span> systems, where the interfaces are named after the kernel driver (<code>en0</code>, <code>dc0</code>, etc.), the Linux kernel uses generic names, mostly <code>eth</code>, <code>wlan</code> and <code>wwan</code>, and maybe a couple more, for tunnels and so on. This causes the first problem: if you have multiple devices of the same class (ethernet, wlan, wwan) coming from different drivers, the order of the interface may very well vary between reboots, either because of changes in the kernel, if the drivers are built-in, or simply because of locking and execution of modules load (which is much more common for binary distributions).</p>
<p><em>The reason why changes in the kernel can change the order is that the order in which drivers are initialized has changed before and might change again in the future. A driver could also decide to change the order with which its devices are initialized (<span class="caps">PCI</span> tree scanning order, <span class="caps">PCI</span> ID order, <span class="caps">MAC</span> address order, …) and so on, causing it to change the order of interfaces even for the same driver. More about this later.</em></p>
<p>But here’s my first doubt arises: how common is for people to have more than one interface of the same class from vendors different enough to use different drivers? Well it depends on the class of device; on a laptop you’d have to search hard for a model with more than one Ethernet or wireless interface, unless you add an ExpressCard or <span class="caps">PCMCIA</span> expansion card (and even those are not that common). On a desktop, I’ve seen a few <em>very</em> recent motherboards with more than one network port, and I have yet to see one with different chips for the two. Servers, that’s a different story.</p>
<p>Indeed, it’s not that uncommon to have multiple on-board and expansion card ports on a server. For instance you could use the two onboard ports as public and private interfaces for the host… and then add a 4-port card to split between virtual machines. In this situation, having a persistent naming of the interfaces is indeed something you would be glad of. How can you tell which one of <code>eth{0..5}</code> is your onboard port #2, otherwise? This would be problem number two.</p>
<p>Another situation in which having a persistent naming of interfaces is almost a requirement is if you’re setting up a router: you definitely don’t want to switch the <span class="caps">LAN</span> and <span class="caps">WAN</span> interface names around, especially where the firewall is involved.</p>
<p>This background is why the persistent-net rules were devised quite a few years ago for udev. Unfortunately almost everybody got at least one nasty experience with them. Sometimes the in-place rename would fail, and you’d end up with the temporary names at the end of boot. In a few cases the name was not persistent at all: if the kernel driver for the device would change, or change name at least, the rules wouldn’t match and your <code>eth0</code> would become <code>eth1</code> (this was the case when Intel split the e1000 and e1000e drivers, but it’s definitely more common with wireless drivers, especially if they move from staging to main).</p>
<p>So the old persistent net rules were flawed. What about the new predictable rules? Well, not only they combined the <span class="caps">BIOS</span> naming scheme (which is actually awesome <strong>when it works</strong> — SuperMicro servers such as Excelsior do not expose the label; my Dell laptop only exposes a label for the Ethernet port but doesn’t for either the wireless adapter or the 3G one), but it has two “fallbacks” that are supposed to be used when the labels fail, one based on the <span class="caps">MAC</span> address of the interface, and the other based on the “path” — which for most <span class="caps">PCI</span>, <span class="caps">PCI</span>-E, onboard, ExpressCard ports is basically the <span class="caps">PCI</span> address; for <span class="caps">USB</span>… we’ll see in a moment.</p>
<p>So let’s see, from my laptop:</p>
<div class="CodeRay"><pre># lspci | grep &amp;aposNetwork controller&amp;apos
03:00.0 Network controller: Intel Corporation Centrino Advanced-N 6200 (rev 35)
# ifconfig | grep wlp3
wlp3s0: flags=4163&lt;UP,BROADCAST,RUNNING,MULTICAST&gt;  mtu 1500</pre></div>
<p>Why “wlp3s0”? It’s the Wireless adapter (<code>wl</code>) <span class="caps">PCI</span> (<code>p</code>) card at bus 3, slot 0 (<code>s0</code>): <code>03:00.0</code>. Matches lspci properly. But let’s see the <span class="caps">WWAN</span> interface on the same laptop:</p>
<div class="CodeRay"><pre># ifconfig -a | grep ww
wwp0s29u1u6i6: flags=4098&lt;BROADCAST,MULTICAST&gt;  mtu 1500</pre></div>
<p>Much longer name! What’s going on then? Let’s see, it’s reporting it’s card at bus 0, slot 29 (0×1d) — <code>lspci</code> will use hexadecimal numbers for the addresses:</p>
<div class="CodeRay"><pre># lspci | grep &amp;apos00:1d&amp;apos
00:1d.0 USB controller: Intel Corporation 5 Series/3400 Series Chipset USB2 Enhanced Host Controller (rev 05)</pre></div>
<p>Okay so it’s an <span class="caps">USB</span> device, even though the physical form factor is a mini-<span class="caps">PCIE</span> card. It’s common. Does it match <code>lsusb</code>?</p>
<div class="CodeRay"><pre># lsusb | grep Broadband
Bus 002 Device 004: ID 413c:8184 Dell Computer Corp. F3607gw v2 Mobile Broadband Module</pre></div>
<p>Not the Bus/Device specification there, which is good: the device number will increase every time you pop something in/out of the port, so it’s not persistent across reboots at all. What it uses is the path to the device standing by <span class="caps">USB</span> ports, which is a tad more complex, but basically means it matches <code>/sys/bus/usb/devices/2-1.6:1.6/</code> (I don’t pretend to know how the thing works exactly, but it describe to which physical port the device is connected).</p>
<p>In my laptop’s case, the situation is actually quite nice: I cannot move either the <span class="caps">WLAN</span> or <span class="caps">WWAN</span> device on a different slot so the name assigned by the slot is persistent as well as predictable. But what if you’re on a desktop with an add-on <span class="caps">WLAN</span> card? What happens if you decide to change your video card, with a more powerful one that occupies the space of two slots, one of which happen to be the place where you <span class="caps">WLAN</span> card is? You move it, reboot and .. you just changed the interface name! If you’ve been using Network Manager, you’ll just have to reconfigure the network I suppose.</p>
<p>Let’s take a different example. My laptop, with its integrated <span class="caps">WWAN</span> card, is a rare example; most people I know use <span class="caps">USB</span> “keys”, as the providers give them away for free, at least in Italy. I happen to have one as well, so let me try to plug it in one of the ports of my laptop:</p>
<div class="CodeRay"><pre># lsusb | grep modem
Bus 002 Device 014: ID 12d1:1436 Huawei Technologies Co., Ltd. E173 3G Modem (modem-mode)
# ifconfig -a | grep ww
wwp0s29u1u2i1: flags=4098&lt;BROADCAST,MULTICAST&gt;  mtu 1500
wwp0s29u1u6i6: flags=4098&lt;BROADCAST,MULTICAST&gt;  mtu 1500</pre></div>
<p>Okay great this is a different <span class="caps">USB</span> device, connected to the same <span class="caps">USB</span> controller as the onboard one, but at different ports, neat. Now, what if I had all my usual ports busy, and I decided to connect it to the USB3 add-on ExpressCard I got on the laptop?</p>
<div class="CodeRay"><pre># lsusb | grep modem
Bus 003 Device 004: ID 12d1:1436 Huawei Technologies Co., Ltd. E173 3G Modem (modem-mode)
# ifconfig -a | grep ww
wwp0s29u1u6i6: flags=4098&lt;BROADCAST,MULTICAST&gt;  mtu 1500
wws1u1i1: flags=4098&lt;BROADCAST,MULTICAST&gt;  mtu 1500</pre></div>
<p>What’s this? Well, the USB3 controller provides slot information, so udev magically uses that to rename the interface, so it avoids using the otherwise longer <code>wwp6s0u1i1</code> name (the USB3 controller is on the <span class="caps">PCI</span> bus 6).</p>
<p>Let’s go back to the on-board ports:</p>
<div class="CodeRay"><pre># lsusb | grep modem
Bus 002 Device 016: ID 12d1:1436 Huawei Technologies Co., Ltd. E173 3G Modem (modem-mode)
# ifconfig -a | grep ww
wwp0s29u1u3i1: flags=4098&lt;BROADCAST,MULTICAST&gt;  mtu 1500
wwp0s29u1u6i6: flags=4098&lt;BROADCAST,MULTICAST&gt;  mtu 1500</pre></div>
<p>Seems the same, but it’s not. Now it’s u3 not u2. Why? I used a different port on the laptop. And the interface name changed. Yes, any port change will produce a different interface name, predictably. But what happens if the kernel decides to change the way the ports are enumerated? What happens if the <span class="caps">USB</span> 2 driver is buggy and is <em>supposed</em> to provide slot information, and they fix it? You got it, even in these cases, the interface names are changed.</p>
<p>I’m not saying that the kernel naming scheme is perfect. But if you’re expected to always only have an Ethernet port, a <span class="caps">WLAN</span> card and a <span class="caps">WWAN</span> <span class="caps">USB</span> stick, with it you’ll be sure to have <code>eth0</code>, <code>wlan0</code> and <code>wwan0</code>, as long as the drivers are not completely broken as they are now (like if the <span class="caps">WLAN</span> is appearing as <code>eth1</code>), and as long as you don’t muck with the interface names in userspace.</p>
<p>Next up, I’ll talk about the <span class="caps">MAC</span> addresses based naming and my personal preference when setting up servers and routers. Have fun in the mean time figuring out what your interface names will be.</p></div>
    </content>
    <updated>2013-03-29T10:51:25Z</updated>
    <published>2013-03-29T10:51:25Z</published>
    <category label="English" scheme="http://blog.flameeyes.eu/category/english" term="english"/>
    <category label="Technical" scheme="http://blog.flameeyes.eu/category/technical" term="technical"/>
    <category scheme="http://blog.flameeyes.eu/tag/chipmunks" term="Chipmunks"/>
    <category scheme="http://blog.flameeyes.eu/tag/gentoo" term="Gentoo"/>
    <category scheme="http://blog.flameeyes.eu/tag/linux" term="Linux"/>
    <category scheme="http://blog.flameeyes.eu/tag/network" term="Network"/>
    <category scheme="http://blog.flameeyes.eu/tag/kernel" term="kernel"/>
    <category scheme="http://blog.flameeyes.eu/tag/systemd" term="systemd"/>
    <category scheme="http://blog.flameeyes.eu/tag/udev" term="udev"/>
    <author>
      <name>Flameeyes</name>
      <email>flameeyes@flameeyes.eu</email>
    </author>
    <source>
      <id>tag:blog.flameeyes.eu,2005:/tag/gentoo</id>
      <link href="http://blog.flameeyes.eu" rel="alternate" type="text/html"/>
      <link href="http://blog.flameeyes.eu/tag/gentoo.atom" rel="self" type="application/atom+xml"/>
      <subtitle xml:lang="en-US">The weblog of Diego Elio Pettenò</subtitle>
      <title xml:lang="en-US">gentoo | Flameeyes's Weblog</title>
      <updated>2013-04-09T21:56:09Z</updated>
    </source>
  </entry>

  <entry xml:lang="en-US">
    <id>http://www.ultrabug.fr/?p=652</id>
    <link href="http://www.ultrabug.fr/mongodb-v2-4-1-and-pymongo-2-5-released/" rel="alternate" type="text/html"/>
    <title>mongoDB v2.4.1 and pymongo 2.5 released</title>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml">10gen released a critical update for mongoDB 2.4.0 which affected queries on secondaries, you should upgrade asap. The python mongo driver followed the 2.4.x releases and got bumped to 2.5 this week-end. I am pleased to announce that I took the chance to add the kerberos authentication support to both ebuilds while bumping them. pymongo-2.5 GSSAPI… <a href="http://www.ultrabug.fr/mongodb-v2-4-1-and-pymongo-2-5-released/">Continue reading <span class="meta-nav">→</span></a></div>
    </summary>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>10gen released a <strong>critical</strong> update for mongoDB 2.4.0 which <a href="https://jira.mongodb.org/browse/SERVER-9087" target="_blank">affected queries</a> on secondaries, <strong>you should upgrade</strong> asap. The python mongo driver followed the 2.4.x releases and got bumped to 2.5 this week-end. I am pleased to announce that I took the chance to add the <strong><a href="http://docs.mongodb.org/manual/tutorial/control-access-to-mongodb-with-kerberos-authentication/" target="_blank">kerberos authentication</a> support</strong> to both ebuilds while bumping them.</p>
<h2>pymongo-2.5</h2>
<ul>
<li>GSSAPI (Kerberos) authentication</li>
<li>SSL certificate validation with hostname matching</li>
<li>Delegated and role based authentication</li>
</ul></div>
    </content>
    <updated>2013-03-25T12:01:20Z</updated>
    <category term="Linux"/>
    <category term="gentoo"/>
    <category term="mongodb"/>
    <category term="portage"/>
    <category term="release"/>
    <author>
      <name>ultrabug</name>
    </author>
    <source>
      <id>http://www.ultrabug.fr</id>
      <link href="http://www.ultrabug.fr/tag/gentoo-2/feed/" rel="self" type="application/rss+xml"/>
      <link href="http://www.ultrabug.fr" rel="alternate" type="text/html"/>
      <subtitle>a Gentoo Linux developer's blog</subtitle>
      <title>Ultrabug » gentoo</title>
      <updated>2013-05-21T15:03:28Z</updated>
    </source>
  </entry>

  <entry xml:lang="en-US">
    <id>urn:uuid:78575016-9c8f-4da9-aa80-e99109df218f</id>
    <link href="http://blog.flameeyes.eu/2013/04/why-puppet" rel="alternate" type="text/html"/>
    <title xml:lang="en-US">Why Puppet?</title>
    <content type="xhtml" xml:lang="en-US"><div xmlns="http://www.w3.org/1999/xhtml"><p>Seems like the only thing everybody has to comment <a href="http://blog.flameeyes.eu/2013/03/managing-configuration">on my previous post</a> was to ask me why I haven’t used $this, $that and ${the kitchen sink}. Or to be precise they asked about cfengine, chef and bcfg2. I have to say I don’t really like being forced into justifying myself but at this point I couldn’t just avoid answering, or I would keep getting the same requests over and over again.</p>
<p>So first of all, why a configuration management system? I have three production vservers at <a href="http://iossol.de/"><span class="caps">IOS</span></a> (one is this, another is xine, and another is a customer’s of mine). I have a standby backup server at <span class="caps">OVH</span>. And then there’s excelsior, which has four “spacedocks” (containers that I use for building binpkgs for the <span class="caps">IOS</span> servers), three tinderbox (but only two usually running), and a couple of “testing” containers (for x32 and musl), beside the actual container I use in it to maintain stuff.</p>
<p>That’s a lot of systems, and while they are very similar between themselves, they are not identical. To begin with, they are in three different countries. And they us three different CPUs. And this is without adding the RaspberryPi I set up with the weather station for a friend of mine. The result is that trying to maintain all those systems manually is a folly, even though I already reduced the number of hosts, since the print shop customer – the one I wrote so often about – moved on and found someone else to pick up their sysadmin tasks (luckily for both of us, since it was a huge time sink).</p>
<p>But the reason why I focused almost exclusively onto Puppet is easy to understand: people I know have been using it for a while. Even though this might sound stupid, I do follow the crowd of friends of mine when I have to figure out what to use. This is because the moment when I have no idea how to do something, it’s easier to ask to a friend than going through the support chain at the upstream project. Gentoo infra people are using and working on Puppet, so that’s a heavy factor to me. I don’t know <em>why</em> they chose puppet but at this point I really don’t care.</p>
<p>But there is another thing, a lesson I learned with Munin: I need to judge the implementation language. The reason is simple, and that’s that I’ll find bugs, for sure. I have this bad knack at finding bugs in stuff I use… which is the main reason why I got interested in open source development: I could then <em>fix</em> the bugs I found! But to do so I have to understand what’s written. And even though learning Perl was easy, understanding Munin’s code… was, and is, tricky. I was able to get some degree of stuff done. Puppet being written in Ruby is a positive note.</p>
<p>I know, chef is also written in Ruby. But I do have a reason to not wanting to deal with chef: its maintainer in Gentoo. Half the bugs I find have to do with the way things are packaged, which is the reason why I became a developer in the first place. This means though that I have to be able to collaborate with the remaining developers, and sometimes that’s just not possible. Sometimes it’s due to <a href="http://blog.flameeyes.eu/2013/03/unfriendly-open-source-projects">upstream developers</a> but in the case of chef the problem is the Gentoo developer who’s definitely <strong>not</strong> somebody I want to work with, since he’s been “fiddling” with Ruby ebuilds for chef messing up a lot of the work that the Ruby team, me included, kept pouring to improve the quality of the Ruby packages.</p>
<p>So basically these are the reason why I decided to start using Puppet and writing Puppet modules.</p></div>
    </content>
    <updated>2013-03-25T10:56:15Z</updated>
    <published>2013-03-25T10:56:15Z</published>
    <category label="English" scheme="http://blog.flameeyes.eu/category/english" term="english"/>
    <category label="Technical" scheme="http://blog.flameeyes.eu/category/technical" term="technical"/>
    <category scheme="http://blog.flameeyes.eu/tag/puppet" term="Puppet"/>
    <category scheme="http://blog.flameeyes.eu/tag/gentoo" term="Gentoo"/>
    <category scheme="http://blog.flameeyes.eu/tag/ruby" term="Ruby"/>
    <category scheme="http://blog.flameeyes.eu/tag/management" term="Management"/>
    <category scheme="http://blog.flameeyes.eu/tag/sysadmin" term="SysAdmin"/>
    <author>
      <name>Flameeyes</name>
      <email>flameeyes@flameeyes.eu</email>
    </author>
    <source>
      <id>tag:blog.flameeyes.eu,2005:/tag/gentoo</id>
      <link href="http://blog.flameeyes.eu" rel="alternate" type="text/html"/>
      <link href="http://blog.flameeyes.eu/tag/gentoo.atom" rel="self" type="application/atom+xml"/>
      <subtitle xml:lang="en-US">The weblog of Diego Elio Pettenò</subtitle>
      <title xml:lang="en-US">gentoo | Flameeyes's Weblog</title>
      <updated>2013-04-09T21:56:09Z</updated>
    </source>
  </entry>

  <entry xml:lang="en-US">
    <id>urn:uuid:e4ec8644-0c84-48e8-801f-c80a884d8a7c</id>
    <link href="http://blog.flameeyes.eu/2013/03/managing-configuration" rel="alternate" type="text/html"/>
    <title xml:lang="en-US">Managing configuration</title>
    <content type="xhtml" xml:lang="en-US"><div xmlns="http://www.w3.org/1999/xhtml"><p>So I’ve finally bit the bullet and decided to look into installing and setting up Puppet to manage the configuration of my servers. The reason is to be found in my <a href="http://blog.flameeyes.eu/2013/03/the-pain-of-downsizing">transfer to Dublin</a> as I expect I won’t have the same time I had before, and that means that any streamlining in the administration of my servers is a net improvement.</p>
<p>In particular, just the other day I spent a lot of time fighting just to set up <span class="caps">SSL</span> properly on the servers, and I kept scp’ing files around — it was obvious I wasn’t doing it right.</p>
<p>It goes deeper than this though; since Puppet is obviously trying to get me to standardize the configurations between different servers, I’ve ended up uncovering a number of situations where the configuration of different servers was, well, different. Most of the times without a real reason. For instance, the Munin plugins configured didn’t match, even those that are not specific to a service — of three vservers, one uses PostgreSQL, another uses MySQL and the third, being the standby backup for the two, has both.</p>
<p>Certainly there’s a conflict between your average Gentoo Linux way to do things and the way Puppet expects things to be done. Indeed, the latter requires you to make configurations very similar, while the former tends to make you install each system like its own snowflake — but if you are even partially sane, you would know that to manage more than one Gentoo system, you’ll have to at least standardize some configurations.</p>
<p>The other big problem with using Puppet on Gentoo is that there is a near-showstoppper lack of modules that support our systems. While Theo and Adrien are maintaining a very nice Portage module, there is nothing that allows us to set the OpenRC oldnet-style network configuration, for instance. For other services, often times the support is written with only CentOS or Debian in mind, and the only way to get them to work in Gentoo is to fix the module.</p>
<p>To solve this problem, I started submitting pull requests to modules such as <a href="https://github.com/Flameeyes/puppet-timezone-1">timezone</a> and <a href="https://github.com/Flameeyes/puppetlabs-ntp">ntp</a> so that they work on Gentoo. It’s usually relatively easy to do, but it can get tricky, when the CentOS and Gentoo way to set something up are radically different. By the way, the ntp module is <em>sweet</em> because finally I can no longer forget that we have <strong>two</strong> places to set the <span class="caps">NTP</span> server pools.</p>
<p>I also decided to create <a href="https://github.com/Flameeyes/puppet-gentoo">a module</a> to fit in whatever is Gentoo-specific enough, although this is not yet the kind of stuff you want to rely upon forever — it would have to be done through a real parsed file to set it up properly. On the other hand it allows me set up all my servers’ networks, so it should be okay. And <a href="https://github.com/Flameeyes/puppet-env">another module</a> allows me to set environment variables on different systems.</p>
<p>You can probably expect me to publish a few more puppet modules – and editing even more – in the next few weeks while I transition as much configuration as I can from custom files to Puppet. In particular, but that’s worth of a separate blog post, I’ll have to work hard to get a nice, easy, and dependable Munin module.</p></div>
    </content>
    <updated>2013-03-20T19:53:29Z</updated>
    <published>2013-03-20T19:53:29Z</published>
    <category label="English" scheme="http://blog.flameeyes.eu/category/english" term="english"/>
    <category label="Technical" scheme="http://blog.flameeyes.eu/category/technical" term="technical"/>
    <category scheme="http://blog.flameeyes.eu/tag/puppet" term="Puppet"/>
    <category scheme="http://blog.flameeyes.eu/tag/gentoo" term="Gentoo"/>
    <category scheme="http://blog.flameeyes.eu/tag/sysadmin" term="SysAdmin"/>
    <author>
      <name>Flameeyes</name>
      <email>flameeyes@flameeyes.eu</email>
    </author>
    <source>
      <id>tag:blog.flameeyes.eu,2005:/tag/gentoo</id>
      <link href="http://blog.flameeyes.eu" rel="alternate" type="text/html"/>
      <link href="http://blog.flameeyes.eu/tag/gentoo.atom" rel="self" type="application/atom+xml"/>
      <subtitle xml:lang="en-US">The weblog of Diego Elio Pettenò</subtitle>
      <title xml:lang="en-US">gentoo | Flameeyes's Weblog</title>
      <updated>2013-04-09T21:56:09Z</updated>
    </source>
  </entry>

  <entry xml:lang="en-US">
    <id>http://www.ultrabug.fr/?p=634</id>
    <link href="http://www.ultrabug.fr/mongodb-v2-4-0-released/" rel="alternate" type="text/html"/>
    <title>mongoDB : v2.4.0 released</title>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml">A few months ago, I pointed out what was coming with this release and did an update of this cooking 2.4.0 later. Yesterday, 10gen announced the release of the new stable branch of mongoDB v2.4.0. Instead of talking about it again, I’ll focus on what this release brings to Gentoo users as I’m glad to announce… <a href="http://www.ultrabug.fr/mongodb-v2-4-0-released/">Continue reading <span class="meta-nav">→</span></a></div>
    </summary>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>A <a href="http://www.ultrabug.fr/coming-soon-on-mongodb/" target="_blank">few months ago</a>, I pointed out what was coming with this release and did <a href="http://www.ultrabug.fr/mongodb-2-4-0-rc/" target="_blank">an update</a> of this cooking 2.4.0 later. Yesterday, 10gen announced the <a href="http://blog.mongodb.org/post/45754637343/mongodb-2-4-released" target="_blank">release of the new stable branch of mongoDB v2.4.0</a>. Instead of talking about it again, I’ll focus on what this release brings to Gentoo users as I’m glad to announce that it’s already available in portage.</p>
<h2>SSL support</h2>
<p>First of all, I think it was a good time to close <a href="https://bugs.gentoo.org/show_bug.cgi?id=421289" target="_blank">bug #421289</a> and finally enable the SSL support via the <strong>ssl USE flag</strong>. I’ll support it as much as upstream does, so don’t expect some big magic about it.</p>
<h2>Shared client library</h2>
<p>Since this has always been a mess, I also added the <strong>sharedclient USE flag</strong> so that users who really need the client shared library can toggle its installation easily. This also permits me to isolate possible problems from the main ebuild.</p>
<h2>Upgrading to 2.4</h2>
<p>This is seamless <strong>unless you’re running a sharded cluster</strong> ! In this case, take great care of what you do and note that the upgrade is <strong>only possible if your cluster is running v2.2</strong> ! Please read with care the <a href="http://docs.mongodb.org/manual/release-notes/2.4-upgrade/" target="_blank">upgrade plan</a>.</p></div>
    </content>
    <updated>2013-03-20T17:33:28Z</updated>
    <category term="Linux"/>
    <category term="gentoo"/>
    <category term="mongodb"/>
    <category term="nosql"/>
    <category term="portage"/>
    <category term="release"/>
    <author>
      <name>ultrabug</name>
    </author>
    <source>
      <id>http://www.ultrabug.fr</id>
      <link href="http://www.ultrabug.fr/tag/gentoo-2/feed/" rel="self" type="application/rss+xml"/>
      <link href="http://www.ultrabug.fr" rel="alternate" type="text/html"/>
      <subtitle>a Gentoo Linux developer's blog</subtitle>
      <title>Ultrabug » gentoo</title>
      <updated>2013-05-21T15:03:28Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://dberkholz.com/?p=800</id>
    <link href="http://dberkholz.com/2013/03/14/opportunities-for-gentoo/" rel="alternate" type="text/html"/>
    <link href="http://dberkholz.com/2013/03/14/opportunities-for-gentoo/#comments" rel="replies" type="text/html"/>
    <link href="http://dberkholz.com/2013/03/14/opportunities-for-gentoo/feed/atom/" rel="replies" type="application/atom+xml"/>
    <title xml:lang="en">Opportunities for Gentoo</title>
    <summary type="xhtml" xml:lang="en"><div xmlns="http://www.w3.org/1999/xhtml">When I’ve wanted to play in some new areas lately, it’s been a real frustration because Gentoo hasn’t had a complete set of packages ready in any of them. I feel like these are some opportunities for Gentoo to be awesome and gain access to new sets of users (or at least avoid chasing away [...]<img alt="" border="0" height="1" src="http://stats.wordpress.com/b.gif?host=dberkholz.com&amp;blog=2962469&amp;post=800&amp;subd=dberkholz&amp;ref=&amp;feed=1" width="1"/></div>
    </summary>
    <content type="xhtml" xml:lang="en"><div xmlns="http://www.w3.org/1999/xhtml"><p>When I’ve wanted to play in some new areas lately, it’s been a real frustration because Gentoo hasn’t had a complete set of packages ready in any of them. I feel like these are some opportunities for Gentoo to be awesome and gain access to new sets of users (or at least avoid chasing away existing users who want better tools):</p>
<ul>
<li><span style="line-height: 13px;"><strong>Data science.</strong> Package <a href="http://hadoop.apache.org/">Hadoop</a>. Package streaming options like <a href="http://storm-project.net/">Storm</a>. How about related tools like <a href="http://flume.apache.org/">Flume</a>? <a href="http://http://www.rabbitmq.com/">RabbitMQ</a> is in Gentoo, though. I’ve heard anecdotally that a well-optimized Hadoop-on-Gentoo installation showed double-digit performance increases over the usual Hadoop distributions (i.e., not Linux distributions, but companies specializing in providing Hadoop solutions). Just heard from Tim Harder (radhermit) than he’s got some packages in progress for a lot of this, which is great news.</span></li>
<li><strong>DevOps.</strong> This is an area where Gentoo historically did pretty well, in part because our own infrastructure team and the group at the <a href="http://osuosl.org/">Open Source Lab</a> have run tools like <a href="http://cfengine.com/">CFEngine</a> and <a href="https://puppetlabs.com/">Puppet</a>. But we’re lagging behind the times. We don’t have <a href="http://jenkins-ci.org/">Jenkins</a> or <a href="https://travis-ci.org/">Travis</a>. Seriously? Although we’ve got <a href="http://www.vagrantup.com/">Vagrant</a> packaged, for example, we don’t have <a href="https://github.com/jedi4ever/veewee">Veewee</a>. We could be integrating the creation of <strong>Vagrant boxes</strong> into our release-engineering process.</li>
<li>Relatedly: <strong>Monitoring</strong>. Look for some of the increasingly popular open-source tools today, things like <a href="http://graphite.wikidot.com/">Graphite</a>, <a href="https://github.com/etsy/statsd/">StatsD</a>, <a href="http://logstash.net/">Logstash</a>, <a href="https://github.com/jordansissel/lumberjack">Lumberjack</a>, <a href="http://www.elasticsearch.org/">ElasticSearch</a>, <a href="http://kibana.org/">Kibana</a>, <a href="http://sensuapp.org/">Sensu</a>, <a href="https://github.com/obfuscurity/tasseo">Tasseo</a>, <a href="https://github.com/obfuscurity/descartes">Descartes</a>, <a href="http://riemann.io/">Riemann</a>. None of those are there.</li>
<li><strong>Cloud</strong>. Public cloud and on-premise IaaS/PaaS. How about IaaS: <a href="http://www.openstack.org/">OpenStack</a>, <a href="http://incubator.apache.org/cloudstack/">CloudStack</a>, <a href="http://www.eucalyptus.com/">Eucalyptus</a>, or <a href="http://opennebula.org/">OpenNebula</a>? Not there, although some work is happening for OpenStack according to Matthew Thode (prometheanfire). How about a PaaS like <a href="http://www.cloudfoundry.org/">Cloud Foundry</a> or <a href="https://openshift.redhat.com/community/open-source">OpenShift</a>? Nope. None of the <a href="http://netflix.github.com/#repo">Netflix open-source tools</a> are there. On the public side, things are a bit better — we’ve got lots of AWS tools packaged, even stretching to things like <a href="https://github.com/boto/boto">Boto</a>. We could be integrating the creation of <strong>AWS images</strong> into our release engineering to ensure AWS users always have a recent, official Gentoo image.</li>
<li><strong>NoSQL</strong>. We’ve got a pretty decent set here with some holes. We’ve got <a href="http://redis.io/">Redis</a>, <a href="http://www.mongodb.org/">Mongo</a>, and <a href="http://couchdb.apache.org/">CouchDB</a> not to mention <a href="https://code.google.com/p/memcached/">Memcached</a>, but how about graph databases like <a href="http://www.neo4j.org/">Neo4j</a>, or other key-value stores like <a href="http://basho.com/riak/">Riak</a>, <a href="http://cassandra.apache.org/">Cassandra</a>, or <a href="http://www.project-voldemort.com/voldemort/">Voldemort</a>?</li>
<li><strong>Android development</strong>. Gentoo is perfect as a development environment. We should be pushing it hard for mobile development, especially Android given its Linux base. There’s a couple of halfhearted <a href="http://en.gentoo-wiki.com/wiki/Android_development_with_Gentoo,_Scala_and_SBT">wiki</a> <a href="http://wiki.gentoo.org/wiki/Android">pages</a> but that does not an effort make. If the SDKs and related packages are there, the docs need to be there too.</li>
</ul>
<p>Where does Gentoo shine? As a platform for developers, as a platform for flexibility, as a platform to eke every last drop of performance out of a system. All of the above use cases are relevant to at least one of those areas.</p>
<p>I’m writing this post because I would love it if anyone else who wants to help Gentoo be more awesome would chip in with packaging in these specific areas. Let me know!</p>
<p><strong>Update</strong>: Michael Stahnke <a href="https://twitter.com/stahnma/status/312080071601037312">suggested</a> I point to some resources on Gentoo packaging, for anyone interested, so take a look at the <a href="http://devmanual.gentoo.org/">Gentoo Development Guide</a>. The <a href="http://www.gentoo.org/proj/en/devrel/handbook/handbook.xml">Developer Handbook</a> contains some further details on policy as well as info on how to get commit access by becoming a Gentoo developer.</p>
<br/> Tagged: <a href="http://dberkholz.com/tag/development/">development</a>, <a href="http://dberkholz.com/tag/gentoo/">gentoo</a>, <a href="http://dberkholz.com/tag/greatness/">greatness</a> <a href="http://feeds.wordpress.com/1.0/gocomments/dberkholz.wordpress.com/800/" rel="nofollow"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/dberkholz.wordpress.com/800/"/></a> <img alt="" border="0" height="1" src="http://stats.wordpress.com/b.gif?host=dberkholz.com&amp;blog=2962469&amp;post=800&amp;subd=dberkholz&amp;ref=&amp;feed=1" width="1"/></div>
    </content>
    <updated>2013-03-19T15:36:56Z</updated>
    <published>2013-03-14T05:38:54Z</published>
    <category scheme="http://dberkholz.com" term="Blog"/>
    <category scheme="http://dberkholz.com" term="development"/>
    <category scheme="http://dberkholz.com" term="gentoo"/>
    <category scheme="http://dberkholz.com" term="greatness"/>
    <author>
      <name>Donnie Berkholz</name>
      <uri>http://dberkholz.wordpress.com/</uri>
    </author>
    <source>
      <id>http://dberkholz.com/feed/atom/</id>
      <link href="http://dberkholz.com" rel="alternate" type="text/html"/>
      <link href="http://dberkholz.com/tag/gentoo/feed/atom/" rel="self" type="application/atom+xml"/>
      <link href="http://dberkholz.com/osd.xml" rel="search" title="Striving for greatness" type="application/opensearchdescription+xml"/>
      <link href="http://wordpress.com/opensearch.xml" rel="search" title="WordPress.com" type="application/opensearchdescription+xml"/>
      <link href="http://dberkholz.com/?pushpress=hub" rel="hub" type="text/html"/>
      <subtitle xml:lang="en">The life and times of a Gentoo developer and leader</subtitle>
      <title xml:lang="en">Striving for greatness » gentoo</title>
      <updated>2013-05-01T07:21:00Z</updated>
    </source>
  </entry>

  <entry xml:lang="en-US">
    <id>http://blogs.gentoo.org/nightmorph/?p=594</id>
    <link href="http://blogs.gentoo.org/nightmorph/2013/03/19/fonts/#utm_source=feed&amp;utm_medium=feed&amp;utm_campaign=feed" rel="alternate" type="text/html"/>
    <title>fonts</title>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml">i think i’ve sorted out some of my desktop font issues, and created a few more in the process. for a long time, i’ve had to deal with occasionally jagged, hard-to-read fonts when viewing webpages, because i ran my xfce … <a href="http://blogs.gentoo.org/nightmorph/2013/03/19/fonts/">Continue reading <span class="meta-nav">→</span></a></div>
    </summary>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>i think i’ve sorted out some of my desktop font issues, and created a few more in the process.</p>
<p>for a long time, i’ve had to deal with occasionally jagged, hard-to-read fonts when viewing webpages, because i ran my <a href="http://www.xfce.org">xfce</a> desktop without any <a href="http://en.wikipedia.org/wiki/Font_rasterization">font antialiasing</a>.</p>
<p>i’ve always hated the way modern desktop environments try to “fool” my eyes with antialiasing and subpixel hinting to convince me that a group of square pixels can be smoothed into round shapes. turning off antialiasing tends to make the rounder fonts, especially serif fonts, look pretty bad at large sizes, as seen here:</p>
<p><a href="http://blogs.gentoo.org/nightmorph/files/2013/03/20130315-font.png#utm_source=feed&amp;utm_medium=feed&amp;utm_campaign=feed"><img alt="display issues" class="alignnone size-medium wp-image-596" height="236" src="http://blogs.gentoo.org/nightmorph/files/2013/03/20130315-font-300x236.png" width="300"/></a></p>
<p>my preferred font for the desktop and the web is verdana, which looks pretty good without antialiasing. but most websites use other fonts, so rather than force one size of verdana everywhere (which causes flow/layout issues), i turned on antialiasing for my entire desktop, including my <a href="http://www.mozilla.com/firefox">preferred browser</a>, and started disabling antialiasing where needed.</p>
<p>before and after font settings:</p>
<p><a href="http://blogs.gentoo.org/nightmorph/files/2013/03/20130318-settings.png#utm_source=feed&amp;utm_medium=feed&amp;utm_campaign=feed"><img alt="before/after settings" class="alignnone size-medium wp-image-595" height="219" src="http://blogs.gentoo.org/nightmorph/files/2013/03/20130318-settings-300x219.png" width="300"/></a></p>
<p>i tried the <a href="http://www.infinality.net">infinality</a> patchset for <a href="http://www.freetype.org">freetype</a>, but unfortunately none of the <a href="https://github.com/yngwin/eselect-infinality">eselect</a> configurations produced the crisply rounded antialiased text the patches are <a href="http://www.infinality.net/blog/infinality-freetype-patches/">known for</a>. i rebuilt freetype without the patchset, and went into <code>/etc/fonts</code> to do some XML hacking.</p>
<p>while <code>eselect-fontconfig</code> offers painless management of existing presets, the only way to customize one’s setup is to get into nitty-gritty text editing, and font configs are in XML format. this is what i ended up with:</p>
<pre>$ cat ~/.fonts.conf

&lt;?xml version="1.0"?&gt;
&lt;!DOCTYPE fontconfig SYSTEM "fonts.dtd"&gt;
&lt;fontconfig&gt;
&lt;match target="font"&gt;
    &lt;edit name="antialias" mode="assign"&gt;
        &lt;bool&gt;false&lt;/bool&gt;
    &lt;/edit&gt;
&lt;/match&gt;
&lt;match target="font" &gt;
    &lt;test name="size" qual="any" compare="more"&gt;
        &lt;double&gt;11&lt;/double&gt;
    &lt;/test&gt;
    &lt;edit name="antialias" mode="assign"&gt;
        &lt;bool&gt;true&lt;/bool&gt;
    &lt;/edit&gt;
&lt;/match&gt;
&lt;match target="font" &gt;
    &lt;test name="pixelsize" qual="any" compare="more"&gt;
        &lt;double&gt;16&lt;/double&gt;
    &lt;/test&gt;
    &lt;edit name="antialias" mode="assign"&gt;
        &lt;bool&gt;true&lt;/bool&gt;
    &lt;/edit&gt;
&lt;/match&gt;
&lt;match target="pattern"&gt;
    &lt;test qual="any" name="family"&gt;&lt;string&gt;Helvetica&lt;/string&gt;&lt;/test&gt;
    &lt;edit name="antialias" mode="assign"&gt;
      &lt;bool&gt;true&lt;/bool&gt;
    &lt;/edit&gt;
&lt;/match&gt;</pre>
<p>let’s step through the rules:</p>
<p>first, all antialiasing is disabled. then, any requested font size over 11, or anything that would display more than 16 pixels high, is antialiased. finally, since the common helvetica font really needs to be antialiased at all sizes, a rule turns that on. in theory, that is — firefox and xfce both seem to be ignoring this. unless antialiasing really is enabled at the smallest sizes with no visible effect, since there are only so many pixel spaces available at that scale to “fake” rounded corners.</p>
<p>a test webpage shows the antialiasing effect on different fonts and sizes:</p>
<p><a href="http://blogs.gentoo.org/nightmorph/files/2013/03/20130318-fonts1.png#utm_source=feed&amp;utm_medium=feed&amp;utm_campaign=feed"><img alt="desktop and browser fonts" class="alignnone size-medium wp-image-597" height="187" src="http://blogs.gentoo.org/nightmorph/files/2013/03/20130318-fonts1-300x187.png" width="300"/></a></p>
<p>besides the helvetica issue, there are a few xfce font display problems. xfce is known for mostly ignoring the “modern” xorg font config files, and each app in the desktop environment follows its own aliasing and hinting rules. gvim’s monospace font is occasionally antialiased, resulting in hard-to-read code. the terminal, which uses the exact same font and size, is not antialiased, since it has its own control for text display.</p>
<p>the rest of the gtk+ apps in the above screenshot are size 10 verdana, so they have no antialiasing, being under the “size 11″ rule. firefox doesn’t always obey the system’s font smoothing and hinting settings, even with the proper options in <code>about:config</code> set. unlike user stylesheets, there’s no way to enforce desktop settings with something like <code>!important</code> CSS code. i haven’t found any pattern in what firefox ignores or respects.</p>
<p>also, i haven’t found a workable fontconfig rule that enables antialiasing only for <em>specific</em> fonts at certain sizes. i’m not sure it’s even possible to set such a rule, despite putting together well-formed XML to do just that.</p>
<p>* * *</p>
<p>to sum up: font management on linux can be needlessly complicated, even if you don’t have special vision needs. my environment is overall a bit better, but i’m not ready to move entirely to antialiased text, not until it’s less blurry. i need crispy, sharp text.</p>
<p>fonts on my android phone’s screen look pretty good despite the antialiasing used everywhere, but the thing’s pixel density is so much higher than laptop and desktop LCDs that the display server doesn’t need to resort to complicated smoothing/hinting techniques to achieve that look.</p>
<p>as a general resource, the arch linux <a href="https://wiki.archlinux.org/index.php/Font_Configuration">wiki</a> page has very useful information on font configuration. there are some great ideas in there, even if they don’t all work on my system. the gentoo linux <a href="http://wiki.gentoo.org/wiki/Fontconfig">wiki</a> page on fontconfig is a more basic; i didn’t use anything from it.</p></div>
    </content>
    <updated>2013-03-19T10:18:34Z</updated>
    <category term="Applications"/>
    <category term="Gentoo"/>
    <category term="Linux"/>
    <category term="Xfce"/>
    <author>
      <name>nightmorph</name>
    </author>
    <source>
      <id>http://blogs.gentoo.org/nightmorph</id>
      <link href="http://blogs.gentoo.org/nightmorph/category/gentoo/feed/" rel="self" type="application/rss+xml"/>
      <link href="http://blogs.gentoo.org/nightmorph" rel="alternate" type="text/html"/>
      <subtitle>Wordsmith and Code Poet</subtitle>
      <title>Josh Saddler » Gentoo</title>
      <updated>2013-03-19T11:02:41Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://gentoohaskell.wordpress.com/?p=78</id>
    <link href="http://gentoohaskell.wordpress.com/2013/03/16/a-haskell-dev-survey/" rel="alternate" type="text/html"/>
    <title>a haskell dev survey</title>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml">Ladies and gentlemen! If you happen to be involved in using/developing haskell-powered software you might like to answer our poll on that matter. Thanks in advance!<img alt="" border="0" height="1" src="http://stats.wordpress.com/b.gif?host=gentoohaskell.wordpress.com&amp;blog=7667502&amp;post=78&amp;subd=gentoohaskell&amp;ref=&amp;feed=1" width="1"/></div>
    </summary>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>Ladies and gentlemen!</p>
<p>If you happen to be involved in using/developing haskell-powered software you might like to answer our <a href="https://docs.google.com/forms/d/1y5WtrCB7O9-jb-2Mzo1MtkToh4O6oY2oBXGkc_Q-cy0/viewform">poll on that matter</a>.</p>
<p>Thanks in advance!</p>
<br/>  <a href="http://feeds.wordpress.com/1.0/gocomments/gentoohaskell.wordpress.com/78/" rel="nofollow"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/gentoohaskell.wordpress.com/78/"/></a> <img alt="" border="0" height="1" src="http://stats.wordpress.com/b.gif?host=gentoohaskell.wordpress.com&amp;blog=7667502&amp;post=78&amp;subd=gentoohaskell&amp;ref=&amp;feed=1" width="1"/></div>
    </content>
    <updated>2013-03-16T20:58:57Z</updated>
    <category term="Uncategorized"/>
    <category term="gentoo"/>
    <category term="ghc"/>
    <category term="overlay"/>
    <author>
      <name>Sergei Trofimovich</name>
    </author>
    <source>
      <id>http://gentoohaskell.wordpress.com</id>
      <logo>http://s2.wp.com/i/buttonw-com.png</logo>
      <link href="http://gentoohaskell.wordpress.com/feed/" rel="self" type="application/rss+xml"/>
      <link href="http://gentoohaskell.wordpress.com" rel="alternate" type="text/html"/>
      <link href="http://gentoohaskell.wordpress.com/osd.xml" rel="search" title="Gentoo Linux and Haskell" type="application/opensearchdescription+xml"/>
      <link href="http://gentoohaskell.wordpress.com/?pushpress=hub" rel="hub" type="text/html"/>
      <subtitle>Gentoo and Haskell in symbiosis</subtitle>
      <title>Gentoo Linux and Haskell</title>
      <updated>2013-04-09T20:02:28Z</updated>
    </source>
  </entry>

  <entry xml:lang="en-US">
    <id>http://blogs.gentoo.org/titanofold/?p=206</id>
    <link href="http://blogs.gentoo.org/titanofold/2013/03/16/postgresql-8-3-has-reached-end-of-life/#utm_source=feed&amp;utm_medium=feed&amp;utm_campaign=feed" rel="alternate" type="text/html"/>
    <title>PostgreSQL 8.3 Has Reached End of Life</title>
    <summary>Today I’ll be masking PostgreSQL 8.3 for removal. If you haven’t already, you should move to a more recent version of PostgreSQL.</summary>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>Today I’ll be masking PostgreSQL 8.3 for removal. If you haven’t already, you should move to a more recent version of PostgreSQL.</p></div>
    </content>
    <updated>2013-03-16T13:48:09Z</updated>
    <category term="Gentoo"/>
    <category term="PostgreSQL"/>
    <category term="Universe"/>
    <author>
      <name>titanofold</name>
    </author>
    <source>
      <id>http://blogs.gentoo.org/titanofold</id>
      <link href="http://blogs.gentoo.org/titanofold/category/gentoo/feed/" rel="self" type="application/rss+xml"/>
      <link href="http://blogs.gentoo.org/titanofold" rel="alternate" type="text/html"/>
      <subtitle>Just another Gentoo Blogs site</subtitle>
      <title>titanofold » Gentoo</title>
      <updated>2013-04-04T22:03:17Z</updated>
    </source>
  </entry>
</feed>
