<?xml version="1.0"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">

<channel>
	<title>Gentoo Universe</title>
	<link>http://planet.gentoo.org/universe/</link>
	<language>en</language>
	<description>Gentoo Universe - http://planet.gentoo.org/universe/</description>

<item>
	<title>Jeremy Olexa: Gentoo: Bugday and maintainer-needed packages</title>
	<guid isPermaLink="false">http://jolexa.wordpress.com/?p=72</guid>
	<link>http://jolexa.wordpress.com/2008/09/05/gentoo-bugday-and-maintainer-needed-packages/</link>
	<description>&lt;div class=&quot;snap_preview&quot;&gt;&lt;br /&gt;&lt;p&gt;In response to &lt;a href=&quot;http://www.gentoo.org/news/20080904-bugday.xml&quot;&gt;Bugday&lt;/a&gt; and my willingness to help, I want to help users that contribute. I won&amp;#8217;t be around for Bugday and I am normally not available on the weekends. So, here is what I am willing to do.. On any maintainer-needed bug, if you fix the issue, feel free to CC me (&lt;code&gt;darkside (at) gentoo.org&lt;/code&gt;) on it. You should say something like &amp;#8220;darkside: I fixed this and tested it, please commit&amp;#8221; and I will review it and commit it.&lt;/p&gt;
&lt;p&gt;Do &lt;strong&gt;not&lt;/strong&gt;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;CC me on a bug that doesn&amp;#8217;t have a fix.&lt;/li&gt;
&lt;li&gt;CC me on a bug asking for help with something&lt;/li&gt;
&lt;li&gt;CC me on a bug with a fix that &lt;em&gt;you&lt;/em&gt; personally have not tested.&lt;/li&gt;
&lt;li&gt;CC me on a maintainer-wanted package. Sorry, but there is &lt;a href=&quot;http://www.gentoo.org/proj/en/sunrise/&quot;&gt;Sunrise&lt;/a&gt; for you.
&lt;li&gt;Abuse my willingness to help you.&lt;/li&gt;
&lt;li&gt;Expect an immediate commit. Work, school, and my significant other come first &lt;img src=&quot;http://s.wordpress.com/wp-includes/images/smilies/icon_wink.gif&quot; alt=&quot;;)&quot; class=&quot;wp-smiley&quot; /&gt; &lt;/li&gt;
&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;I am offering to do this because a) I like when users get involved and help make Gentoo better, b) the whole maintainership concept slightly bothers me, c) I can&amp;#8217;t look at all 250+ maintainer-needed bugs to see if there is a fix for it by myself.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://bugs.gentoo.org/buglist.cgi?query_format=advanced&amp;amp;short_desc_type=allwordssubstr&amp;amp;short_desc=&amp;amp;long_desc_type=substring&amp;amp;long_desc=&amp;amp;bug_file_loc_type=allwordssubstr&amp;amp;bug_file_loc=&amp;amp;status_whiteboard_type=allwordssubstr&amp;amp;status_whiteboard=&amp;amp;keywords_type=allwords&amp;amp;keywords=&amp;amp;bug_status=NEW&amp;amp;bug_status=ASSIGNED&amp;amp;bug_status=REOPENED&amp;amp;emailassigned_to1=1&amp;amp;emailcc1=1&amp;amp;emailtype1=substring&amp;amp;email1=maintainer-needed&amp;amp;emailassigned_to2=1&amp;amp;emailreporter2=1&amp;amp;emailcc2=1&amp;amp;emailtype2=substring&amp;amp;email2=&amp;amp;bugidtype=include&amp;amp;bug_id=&amp;amp;votes=&amp;amp;chfieldfrom=&amp;amp;chfieldto=Now&amp;amp;chfieldvalue=&amp;amp;cmdtype=doit&amp;amp;order=Reuse+same+sort+as+last+time&amp;amp;field0-0-0=noop&amp;amp;type0-0-0=noop&amp;amp;value0-0-0=&quot;&gt;Here&lt;/a&gt; is a search for bugzilla that you could use to find maintainer-needed bugs (in assignee or CC). At the time of this writing there is 270. I (plus others I&amp;#8217;m sure) have worked that queue before, the lowest I have seen it recently is 250. Consider this an open offer and we will see what happens. Thanks for helping!&lt;/p&gt;
&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/categories/jolexa.wordpress.com/72/&quot; /&gt; &lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/tags/jolexa.wordpress.com/72/&quot; /&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/gocomments/jolexa.wordpress.com/72/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/comments/jolexa.wordpress.com/72/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/godelicious/jolexa.wordpress.com/72/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/delicious/jolexa.wordpress.com/72/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/gostumble/jolexa.wordpress.com/72/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/stumble/jolexa.wordpress.com/72/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/godigg/jolexa.wordpress.com/72/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/digg/jolexa.wordpress.com/72/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/goreddit/jolexa.wordpress.com/72/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/reddit/jolexa.wordpress.com/72/&quot; /&gt;&lt;/a&gt; &lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://stats.wordpress.com/b.gif?host=jolexa.wordpress.com&amp;amp;blog=4115754&amp;amp;post=72&amp;amp;subd=jolexa&amp;amp;ref=&amp;amp;feed=1&quot; /&gt;&lt;/div&gt;</description>
	<pubDate>Fri, 05 Sep 2008 22:27:07 +0000</pubDate>
	<dc:creator>Jeremy Olexa (darkside)</dc:creator>
</item>
<item>
	<title>Steev Klimaszewski: Where does the time go?</title>
	<guid isPermaLink="false">http://www.steev.net/?p=155</guid>
	<link>http://www.steev.net/?p=155</link>
	<description>&lt;img src=&quot;http://planet.gentoo.org/images/steev.png&quot; width=&quot;&quot; height=&quot;&quot; alt=&quot;&quot; align=&quot;right&quot; style=&quot;float: right;&quot;&gt;&lt;p&gt;So, it has been a long time since I last blogged - seems to happen a lot actually - I just don&amp;#8217;t find anything interesting enough to talk about, sorry about that!  On the Gentoo side, not a whole lot going on there for me, mainly due to the Personal side, which follows&amp;#8230;&lt;/p&gt;
&lt;p&gt;I am currently in the process of moving, in with a friends grandparents, for a little while at least, so I am packing up all my stuff, I seem to have accrued quite a bit while living here for the past almost 3 years, and I am still not sure what I am going to do with some things, for example I have wanted a new computer desk for a while as the current one I have is extremely bulky and huge, and no easy way to move it around as its in about 7 different (large) pieces.  I have all the computers, which isn&amp;#8217;t an issue, and most importantly is the car that is still not running, figuring out how to get it over to the new place, or more specifically - a mechanic who can actually look at it.  I have had a couple people look at it - but the biggest issue has always been, whenever someone takes a look at it, it starts right up as soon as I turn the key.  Then after the person is no longer around, it won&amp;#8217;t start anymore.  Personally, I think it is something in the electronics, but I am a computer guy, not a car guy.&lt;br /&gt;
As always, there are some other things and more to it, but at present I don&amp;#8217;t want to talk about them.&lt;/p&gt;</description>
	<pubDate>Fri, 05 Sep 2008 19:35:13 +0000</pubDate>
	<dc:creator>Steev Klimaszewski (steev)</dc:creator>
</item>
<item>
	<title>Diego Pettenò: So, I need surgery..</title>
	<guid isPermaLink="false">urn:uuid:4c31679c-3131-431e-9022-3dc2d2f6d9ec</guid>
	<link>http://blog.flameeyes.eu/articles/2008/09/05/so-i-need-surgery</link>
	<description>&lt;img src=&quot;http://planet.gentoo.org/images/flameeyes.png&quot; width=&quot;&quot; height=&quot;&quot; alt=&quot;&quot; align=&quot;right&quot; style=&quot;float: right;&quot;&gt;&lt;p&gt;So today they broke me the news, not like it wasn&amp;#8217;t in the air already. I need surgery, to remove my gallbladder, and to remove the pseudocyst that is still there. If I don&amp;#8217;t remove it soon enough, it might turn into chronic pancreatitis, and I&amp;#8217;d rather that not to happen.&lt;/p&gt;


	&lt;p&gt;I admit I felt, for a while, slightly crushed by the bad news, but I got to feel better, to the point I was able to eat just fine. I suppose it helped that I was laughing at the fact I felt in the middle of a &lt;a href=&quot;http://www.amazon.co.uk/exec/obidos/ASIN/B0001WHXQ6/flameeyessweb-21&quot;&gt;Scrubs&lt;/a&gt; episode, with all the new doctors around and the chief of the unit asking questions.&lt;/p&gt;


	&lt;p&gt;At any rate, I&amp;#8217;ll be in the hospital for a little while more, then when I&amp;#8217;ll be back home it&amp;#8217;ll probably be for just a few days, before being called in for surgery. I&amp;#8217;ll try to do my best to do something good in the mean time but I might be scarcely available for a while.&lt;/p&gt;


	&lt;p&gt;I just hope not to be a guinea pig for a long time still&amp;#8230;.&lt;/p&gt;</description>
	<pubDate>Fri, 05 Sep 2008 14:28:00 +0000</pubDate>
	<dc:creator>Diego Pettenò (flameeyes)</dc:creator>
</item>
<item>
	<title>Gentoo News: Get involved: Bugday coming up Saturday</title>
	<guid isPermaLink="false">http://www.gentoo.org/news/20080904-bugday.xml</guid>
	<link>http://www.gentoo.org/news/20080904-bugday.xml</link>
	<description>&lt;img src=&quot;http://planet.gentoo.org/images/larry_the_cow.jpg&quot; width=&quot;&quot; height=&quot;&quot; alt=&quot;&quot; align=&quot;right&quot; style=&quot;float: right;&quot;&gt;&lt;p&gt;&lt;b&gt;What:&lt;/b&gt; Gentoo contributors get together to help each other fix bugs
&lt;/p&gt;&lt;p&gt;&lt;b&gt;Where:&lt;/b&gt; irc.freenode.net, #gentoo-bugs 
&lt;/p&gt;&lt;p&gt;&lt;b&gt;When:&lt;/b&gt; Saturday, September 6, in a timezone near you
&lt;/p&gt;&lt;p&gt;&lt;b&gt;What do you need to bring?&lt;/b&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;A Gentoo system, an Internet connection and an IRC client&lt;/li&gt;&lt;li&gt;Your bug. If you don't have one, we will find you one to suit your area
  of interest and your skills&lt;/li&gt;&lt;li&gt;Your favorite editor&lt;/li&gt;&lt;li&gt;A way to test that your bug is fixed (asking people counts!)&lt;/li&gt;&lt;li&gt;You &lt;b&gt;don't&lt;/b&gt; need to know C, C++, or bash&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;b&gt;What's a bug?&lt;/b&gt; Gentoo's way of tracking change requests. A change
  request can be anything from &quot;I've found a typo in foo&quot; to &quot;I've built this
  really useful program called bar but there's no ebuild for it.&quot; Bugs have
  various levels of helpfulness, from identifying the existence of a problem
  to localizing the problem to providing the patch to fix it.
&lt;/p&gt;&lt;p&gt;
  There are bugs in documentation such as man pages as well as ebuilds and the
  source code that Gentoo distributes. These bugs are problem reports. Bugs
  for things Gentoo doesn't do yet but you think should be done are feature
  requests. &lt;b&gt;Bugday is more about fixing problems than adding features&lt;/b&gt;,
  but you won't be turned away if you want help with a new feature.
&lt;/p&gt;&lt;p&gt;&lt;b&gt;Want to know more about Bugday?&lt;/b&gt; It's held on the first Saturday of
  every month. It's an opportunity for everyone to contribute to making Gentoo
  better, and eventually you might even become a Gentoo developer. See the
  &lt;a href=&quot;http://www.gentoo.org/proj/en/bugday/index.xml&quot;&gt;Bugday project
  page&lt;/a&gt; for more details.
&lt;/p&gt;&lt;p&gt;&lt;b&gt;Bugday is about community spirit&lt;/b&gt;. Gentoo is a community—there
  is no &quot;me&quot; and &quot;them&quot;, there is only &quot;we,&quot; so instead of lobbying for &quot;them&quot;
  to fix your particular bug, work together to fix it! Bugday is an
  opportunity to get help to help yourself.
&lt;/p&gt;&lt;p&gt;
  If you've been wanting to get involved but weren't sure how, Bugday is a
  great way for you to see what goes on in making a distribution and get
  involved in Gentoo.
&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;http://forums.gentoo.org/viewtopic-t-705932.html&quot;&gt;Discuss
  this!&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;Roy Bamford contributed the draft for this announcement.&lt;/span&gt;&lt;/p&gt;</description>
	<pubDate>Fri, 05 Sep 2008 06:02:09 +0000</pubDate>
	<dc:creator>Gentoo News ()</dc:creator>
</item>
<item>
	<title>Anant Narayanan: When innovation doesn’t reach the people…</title>
	<guid isPermaLink="false">http://www.kix.in/blog/?p=246</guid>
	<link>http://feeds.kix.in/~r/kix/~3/383513369/</link>
	<description>&lt;img src=&quot;http://planet.gentoo.org/images/anant.png&quot; width=&quot;&quot; height=&quot;&quot; alt=&quot;&quot; align=&quot;right&quot; style=&quot;float: right;&quot;&gt;&lt;p&gt;&amp;#8230;you know something is wrong.&lt;/p&gt;
&lt;p&gt;This is a rant I&amp;#8217;ve been wanting to do for a long time. It costs cell phone operators practically nothing to deliver an SMS within their own network, and maybe a little to deliver it to another network - so why do they charge the end user so much? Would a broadband internet subscriber agree to paying 10 cents for transferring 160 bytes of data? That&amp;#8217;s how much data is in a single SMS, and everytime you send one, your cellphone company enjoys profit margins of close to 98%.&lt;/p&gt;
&lt;p&gt;We&amp;#8217;ve got even better technology reaching the mobile market - 3G networks can offer &lt;a href=&quot;http://en.wikipedia.org/wiki/HSDPA&quot;&gt;data speeds&lt;/a&gt; of upto 7.2Mbits/sec (the theoritical limit is 14.4Mbits/sec). Combined with VOIP systems, that should mean cheap telephony and communication for everyone. It means you could reduce your mobile phone bills to 10% of what you&amp;#8217;re paying now.&lt;/p&gt;
&lt;p&gt;But no. You&amp;#8217;re not allowed to use VOIP on your smartphone unless you&amp;#8217;re in a WiFi hotspot. Why not? Because the cell phone operators don&amp;#8217;t want you to - that would be bad for business wouldn&amp;#8217;t it? I thought the whole point of technology was to make things cheap and easier for the end users. Apparently not.&lt;/p&gt;
&lt;p&gt;This situation is a bit like when the old vinyl record companies tried to push back the compact disk revolution just because it would be &amp;#8220;bad for business&amp;#8221;. This is what happens when you put technology into the hands of giant corporates whose only reason to exist is profit. It&amp;#8217;s like all the cell phone operators all over the world have an unspoken agreement to fleece the consumer collectively.&lt;/p&gt;
&lt;p&gt;What we need is just &lt;em&gt;one&lt;/em&gt; company to take a bold move forward by breaking this pact. It&amp;#8217;s not like they have to invest huge amounts of money, the technology and infrastructure is &lt;strong&gt;here&lt;/strong&gt; and &lt;strong&gt;now&lt;/strong&gt;. Please, just charge the consumer how much it actually costs to make a call or send an SMS, with a &lt;em&gt;reasonable&lt;/em&gt; profit margin. The rest will follow suit, as the free market dictates. That&amp;#8217;s how the cell phone rates in India dropped drastically, and it&amp;#8217;s our only ray of hope.&lt;/p&gt;
&lt;p&gt;It&amp;#8217;s not enough if we have &lt;a href=&quot;http://www.openmoko.com/&quot;&gt;open mobile phones&lt;/a&gt;, we need operators that are as honest and open as the handset. Communication simply doesn&amp;#8217;t cost as much as the cell phone operators tell you it does, and it&amp;#8217;s about time more people realized it.&lt;/p&gt;
&lt;img src=&quot;http://feeds.kix.in/~r/kix/~4/383513369&quot; height=&quot;1&quot; width=&quot;1&quot; /&gt;</description>
	<pubDate>Thu, 04 Sep 2008 19:35:43 +0000</pubDate>
	<dc:creator>Anant Narayanan (anant)</dc:creator>
</item>
<item>
	<title>Jan Kundrát: KPhotoAlbum Development Sprint: Part Two</title>
	<guid isPermaLink="false">http://jkt.flaska.net/blog/KPhotoAlbum_Development_Sprint:_Part_Two.html</guid>
	<link>http://jkt.flaska.net/blog/KPhotoAlbum_Development_Sprint:_Part_Two.html</link>
	<description>&lt;h2&gt;Image Stacking&lt;/h2&gt;

&lt;p&gt;
As Henner &lt;a href=&quot;http://www.kphotoalbum.org/news.html#item0054&quot;&gt;writes&lt;/a&gt;, we've managed
to add a new feature that some users were requesting for quite a long time --
now there's that thingy for marking several images as &quot;belonging together&quot;.
&lt;/p&gt;

&lt;p&gt;
Imagine you've taken a group photo of bunch of your friends at a pub. You
weren't exactly sober, so perhaps some of these are shaky, out-of-focus or
otherwise imperfect. You weren't drunk as a lord, though, so there's one of
them which is pretty good. Now you don't want to erase all the other pictures,
but you don't want to see them by default, either. So what you do now is to
make an &lt;em&gt;Image Stack&lt;/em&gt; of all of them and select which are bad and which
one is the best one. This feature might be useful for various variants of
images decoded from one RAW file or for images stitched to one big panorama as
well.
&lt;/p&gt;

&lt;p&gt;
It's far from complete yet (the GUI part still sucks and you can't select
your order of preference, either), but it's a good start and it got done
pretty fast.
&lt;/p&gt;

&lt;p&gt;
Lets look at an example stack with a picture of Gunvald (Jesper's dog) on the
beach. The default view in the thumbnail view shows only the first
picture:&lt;br /&gt;
&lt;a href=&quot;http://www.kphotoalbum.org/img/stacking-collapsed.jpg&quot;&gt;&lt;img src=&quot;http://www.kphotoalbum.org/img/stacking-collapsed.jpg&quot; alt=&quot;collapsed stack view&quot; width=&quot;400&quot; /&gt;&lt;/a&gt; &amp;hellip; expanding to&lt;br /&gt;

&lt;a href=&quot;http://www.kphotoalbum.org/img/stacking-expanded.jpg&quot;&gt;&lt;img src=&quot;http://www.kphotoalbum.org/img/stacking-expanded.jpg&quot; alt=&quot;expanded stack view&quot; width=&quot;500&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;/p&gt;

&lt;p&gt;
Please read &lt;a href=&quot;http://www.kphotoalbum.org/news.html#item0054&quot;&gt;Henner's
post&lt;/a&gt; as well and &lt;a href=&quot;mailto:kphotoalbum@kdab.net&quot;&gt;let us know&lt;/a&gt;
what you think about this feature.
&lt;/p&gt;

&lt;h2&gt;Digikam&lt;/h2&gt;

&lt;p&gt;
Shortly after my &lt;a href=&quot;http://jkt.flaska.net/blog/KPhotoAlbum_Development_Sprint:_Part_1.html&quot;&gt;last
post&lt;/a&gt;, I got a bunch of mails from our users. It's great to hear that
people are interested in our work, so many thanks to all the readers! Please
keep the comments going. Anyway, the most frequent question was
interoperability with Digikam.
&lt;/p&gt;

&lt;p&gt;
At first, I'd like to mention that I'm on a &lt;em&gt;KPhotoAlbum&lt;/em&gt; Development
Sprint. Nobody of us over here is hacking on Digikam. It surely is a great
piece of software, but we don't use it ourselves. That's why I have to
disappoint one reader of this blog -- nope, I can't blog about new features in
Digikam, sorry. But be sure to check out the KDE Planet form time to time,
their development team is blogging every now and then.
&lt;/p&gt;

&lt;p&gt;
Now the interoperability thingy -- we have a &lt;a href=&quot;http://websvn.kde.org/trunk/extragear/graphics/kphotoalbum/digikam-db-compatibility-issues&quot;&gt;nice
file&lt;/a&gt; describing what the problems are. Looking at the document, I'm afraid
that both applications are using quite different approach to tagging -- in
Digikam, tags are (I haven't check the Digikam sources, nor am I using it, so
this might be actually wrong) apparently in a flat namespace, while in
KPhotoAlbum, we use a hierarchy (a tree) of tags for features like &quot;pictures
of Anna should be recognized as pictures containing anyone of my friends as
well&quot;. This is certainly not a showstopper, but quite an important issue
nonetheless.
&lt;/p&gt;

&lt;p&gt;
However, please don't get disappointed too early. The question is -- why
should we somehow prefer interoperability with Digikam over, say, XnView?
There's a lot of users out there who are using different applications on
different operating systems, and we'd like to do our best to be interoperable
with all of them. At the same time, we certainly aren't willing to be held
back by lack of features in other applications. Therefore, we won't write any
feature like &quot;copy my database to the Digikam format&quot;, nor do we expect
Digikam to be able to import our stuff. (There's nothing holding you back in
writing your own converter, though -- our format is pretty simple to deal
with.) What we will do, however, is adding a feature for metadata import and
export. We'll use standardized stuff like Exif, IPTC and XMP, so that it
should be easy for KPhotoAlbum users to provide their friends with images with
embedded tags (and the other way round, of course).
&lt;/p&gt;

&lt;h2&gt;KDE4, SQL,...&lt;/h2&gt;

&lt;p&gt;
Another question was a state of the KDE4 port and the SQL support. I'll leave
that for another blogpost, as this one got pretty long already :).
&lt;/p&gt;</description>
	<pubDate>Thu, 04 Sep 2008 12:03:15 +0000</pubDate>
	<dc:creator>Jan Kundrát (jkt)</dc:creator>
</item>
<item>
	<title>Christian Faulhammer: Get rid of teTeX</title>
	<guid isPermaLink="false">http://www.faulhammer.org/index.php?option=com_content&amp;task=view&amp;id=252&amp;Itemid=99999999</guid>
	<link>http://www.faulhammer.org/index.php?option=com_content&amp;task=view&amp;id=252&amp;Itemid=99999999</link>
	<description>&lt;img src=&quot;http://planet.gentoo.org/images/opfer.png&quot; width=&quot;&quot; height=&quot;&quot; alt=&quot;&quot; align=&quot;right&quot; style=&quot;float: right;&quot;&gt;I blogged about the USE flag transition from USE=tetex to something more sensible &lt;a href=&quot;http://www.faulhammer.org/index.php?option=com_content&amp;amp;task=view&amp;amp;id=213&quot;&gt;before&lt;/a&gt;.  This is finally done and so the next step is to get rid of virtual/tetex in the whole tree and depending on the virtual needed instead like virtual/tex-base, virtual/latex-base or virtual/texi2dvi.  To avoid problems there is a recommendation for all users and developers: Check if TeXLive is availabe for you, unmerge teTeX and do a world update to get something more up to date.  TeXLive 2008 will not provide virtual/tetex anymore and was release yesterday, after some tests it will hit the tree. Also check out the &lt;a href=&quot;http://www.gentoo.org/proj/en/tex/texlive-migration-guide.xml&quot;&gt;upgrade guide&lt;/a&gt; and this forums &lt;a href=&quot;http://forums.gentoo.org/viewtopic-t-706352.html&quot;&gt;thread&lt;/a&gt;.  &lt;a href=&quot;http://www.gentoo.org/proj/en/tex/texlive-migration-guide.xml&quot;&gt; &lt;/a&gt;&lt;a href=&quot;http://www.gentoo.org/proj/en/tex/texlive-migration-guide.xml&quot;&gt; &lt;/a&gt;</description>
	<pubDate>Thu, 04 Sep 2008 06:05:35 +0000</pubDate>
	<dc:creator>Christian Faulhammer (opfer)</dc:creator>
</item>
<item>
	<title>Robin Johnson: Apparently non-existent, but quite real parts: Analog Devices AD2000B</title>
	<guid isPermaLink="false">http://robbat2.livejournal.com/231012.html</guid>
	<link>http://robbat2.livejournal.com/231012.html</link>
	<description>&lt;img src=&quot;http://planet.gentoo.org/images/robbat2.gif&quot; width=&quot;&quot; height=&quot;&quot; alt=&quot;&quot; align=&quot;right&quot; style=&quot;float: right;&quot;&gt;&lt;b&gt;Edit 2008/09/05:&lt;/b&gt;&lt;br /&gt;
&lt;p&gt;A private source that I inquired of indicates that the AD2000B part was only a special run of the AD1989B part. There shouldn't be any functional differences. On the side of a spec sheet, the AD1989B specs should be available &quot;shortly&quot; from Analog Devices.&lt;/p&gt;

&lt;b&gt;Original posting:&lt;/b&gt;&lt;br /&gt;
&lt;img src=&quot;http://robbat2.icons.ljtoys.org.uk/mi/dot.gif&quot; border=&quot;0&quot; alt=&quot;&quot; /&gt;
&lt;p&gt;So in more details to follow, I picked up hardware for a new workstation to replace my G5. The only part of the hardware that isn't working yet, is the digital audio (SPDIF/Toslink) output. My motherboard is an &lt;a href=&quot;http://ca.asus.com/products.aspx?modelmenu=2&amp;amp;model=2312&amp;amp;l1=3&amp;amp;l2=11&amp;amp;l3=709&amp;amp;l4=0&quot;&gt;Asus P5Q-Premium&lt;/a&gt;, and the specifications claim to have &quot;ADI® AD2000B 8-Channel High Definition Audio CODEC&quot; as the audio chip. This chip is apparently the successor to the AD1988B chip. The analog audio part works fine, just that I use optical to overcome an interference issue on the run between my computers and my actual working area of my desk (with a small digital decoder and stereo speakers).&lt;/p&gt;

&lt;p&gt;Digging around in the ALSA drivers, it just seems I need to find a different set of controls to toggle the digital lines to be outputs or enabled - and that this data would be in the public datasheet, just like previous versions of the chip. I submitted a technical request to Asus a few days ago, with no response yet. I also contacted Analog Devices directly. Their customer support referred me to their application engineers, whom I phoned, and they then proceeded to deny the existence of the chip, and I quote: &quot;It's not in my system, we don't manufacture it.&quot; That's really interesting, because I've got it on my motherboard!&lt;/p&gt;

&lt;p&gt;Either the divisions of Analog Devices aren't talking, or Asus is using chips from a 3rd party that's ripping off Analog Device's trademark amongst other things.&lt;/p&gt;

&lt;p&gt;Here's the text off the chip:&lt;/p&gt;
&lt;pre&gt;AD2000BX
14??793.1
#0816 0.3
SINGAPORE&lt;/pre&gt;
&lt;p&gt;I tried to take a photo, but it's really annoying and hard to read, without dis-assembling my machine, which I'd prefer not to do at this point.&lt;/p&gt;

&lt;p&gt;However, I did find another &lt;a href=&quot;http://www.orbis-terrarum.net/~robbat2/ad2000b/AD2000b.jpg&quot;&gt;photo on the web&lt;/a&gt;, of the same area from a review of the motherboard. The Analog Devices logo is also clearly visible after the 'BX' portion of the text.
From the photo I could make out:&lt;/p&gt;
&lt;pre&gt;AD2000BX
1383055.1
#0808 0.2
SINGAPORE&lt;/pre&gt;

&lt;p&gt;If I had to make a guess about it, the chip is AD2000BX, the second line is the serial number, the third is the year and week of manufacturer, plus the revision of the chip, and the last line is the manufacture location.&lt;/p&gt;

&lt;p&gt;If you're from Asus or Analog Devices, and you're reading this, where's the datasheet for the chip? Is it a real ADI part? I simply want the public datasheet like the rest of models so that I can fix digital audio output in Linux myself, and contribute it back to the ALSA project.&lt;/p&gt;

&lt;p&gt;P.S. The upstream ALSA bug is &lt;a href=&quot;https://bugtrack.alsa-project.org/alsa-bug/view.php?id=4109&quot;&gt;here&lt;/a&gt;. There's no downstream Gentoo bug.&lt;/p&gt;</description>
	<pubDate>Wed, 03 Sep 2008 21:25:10 +0000</pubDate>
	<dc:creator>Robin Johnson (robbat2)</dc:creator>
</item>
<item>
	<title>Sune Kloppenborg Jeppesen: Iwlwifi problems with 3945 Part II</title>
	<guid isPermaLink="false">http://home.coming.dk/xmlsrv/831@http://home.coming.dk/</guid>
	<link>http://home.coming.dk/index.php/2008/09/03/iwlwifi_problems_with_3945_part_ii</link>
	<description>&lt;p&gt;As I wrote &lt;a href=&quot;http://home.coming.dk/index.php/2008/08/15/p822&quot;&gt;earlier&lt;/a&gt; I've had some problems with the iwlwifi driver and my Intel 3945 wifi card. One workaround brought to my attention by again by &lt;a href=&quot;http://jolexa.wordpress.com/2008/09/02/intel-iwl3945-madness/&quot;&gt;Jeremy Olexa's blog post&lt;/a&gt; is to run G mode only.&lt;/p&gt;

&lt;p&gt;This can easily be done in OpenWRT Kamikaze with:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;ipkg install wl&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;In the config file /lib/wifi/broadcom.sh add the following line just after the &lt;code&gt;killall&lt;/code&gt; statement:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;wl gmode GOnly&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Restart network/box.&lt;/p&gt;

&lt;p&gt;With this workaround speed is back to normal, thanks to the initial blog post by Markus Golser &lt;a href=&quot;http://elmargol.wordpress.com/2008/04/10/howto-switch-to-gonly-mode-using-openwrt-kamikaze/&quot;&gt;here&lt;/a&gt;.&lt;/p&gt;</description>
	<pubDate>Wed, 03 Sep 2008 17:56:41 +0000</pubDate>
	<dc:creator>Sune Kloppenborg Jeppesen (jaervosz)</dc:creator>
</item>
<item>
	<title>Marcus Hanwell: ACS Avogadro Talk Slides and Poster</title>
	<guid isPermaLink="false">http://blog.cryos.net/archives/188-guid.html</guid>
	<link>http://blog.cryos.net/archives/188-ACS-Avogadro-Talk-Slides-and-Poster.html</link>
	<description>&lt;img src=&quot;http://planet.gentoo.org/images/cryos.png&quot; width=&quot;&quot; height=&quot;&quot; alt=&quot;&quot; align=&quot;right&quot; style=&quot;float: right;&quot;&gt;&lt;span&gt;&lt;p&gt;I kept meaning to put the slides to my Avogadro talk and the poster I presented at the &lt;a href=&quot;http://blog.cryos.net/exit.php?url_id=877&amp;amp;entry_id=188&quot; title=&quot;http://portal.acs.org/portal/Navigate?nodeid=859&quot;&gt;recent ACS meeting in Philadelphia&lt;/a&gt;. Things have been really hectic these last few weeks but here they are. The talk was presented in the chemical eduction section, on Monday 18 August, &quot;&lt;a href=&quot;http://blog.cryos.net/uploads/MDHanwell-ACS-Avo-Talk.pdf&quot;&gt;Avogadro: An integrated approach to teach computational chemistry modeling, simulation and visualization&lt;/a&gt;&quot;. The slides were made using &lt;a href=&quot;http://blog.cryos.net/exit.php?url_id=879&amp;amp;entry_id=188&quot; title=&quot;http://latex-beamer.sourceforge.net/&quot;&gt;LaTeX Beamer&lt;/a&gt; and the talk itself was focused on the use of Avogadro when teaching computational chemistry.&lt;/p&gt;

&lt;center&gt;&lt;a href=&quot;http://blog.cryos.net/uploads/MDHanwell-ACS-Avo-Poster.pdf&quot;&gt;&lt;img src=&quot;http://blog.cryos.net/uploads/MDHanwell-ACS-Avogadro.png&quot; width=&quot;516&quot; height=&quot;367&quot; alt=&quot;Avogadro poster presented at ACS meeting&quot; /&gt;&lt;/a&gt;&lt;/center&gt;

&lt;p&gt;I also presented a poster at Sci-Mix on Monday, 18 August, and at the main computational chemistry poster session on Tuesday, 19 August. You may have guessed already but I used LaTeX - this time the &lt;a href=&quot;http://blog.cryos.net/exit.php?url_id=880&amp;amp;entry_id=188&quot; title=&quot;http://andreas.welcomes-you.com/projects/a0poster/&quot;&gt;A0 poster package&lt;/a&gt;. The poster title was &quot;&lt;a href=&quot;http://blog.cryos.net/uploads/MDHanwell-ACS-Avo-Poster.pdf&quot;&gt;Avogadro: A framework for quantum chemistry simulation and visualization&lt;/a&gt;&quot;. I really enjoyed the two poster sessions and met lots of interesting people during the sessions.&lt;/p&gt;

&lt;p&gt;You can grab copies of the slides or poster by clicking on their titles. It was certainly a very interesting conference, although it was so big it was difficult to choose where to go and what to see at times. Especially as some of the hotels with talks I wanted to attend were thirty minutes apart on foot. It was a great opportunity to tell other scientists about the work we are doing as well as introducing some of the concepts of open source to the wide and varied list of attendees I had the pleasure of meeting.&lt;/p&gt;&lt;/span&gt;</description>
	<pubDate>Wed, 03 Sep 2008 10:39:00 +0000</pubDate>
	<dc:creator>Marcus Hanwell (cryos)</dc:creator>
</item>
<item>
	<title>Steve Dibb: bend, drip, mythvideo</title>
	<guid isPermaLink="false">http://wonkabar.org/archives/459</guid>
	<link>http://wonkabar.org/archives/459</link>
	<description>&lt;img src=&quot;http://planet.gentoo.org/images/beandog.png&quot; width=&quot;&quot; height=&quot;&quot; alt=&quot;&quot; align=&quot;right&quot; style=&quot;float: right;&quot;&gt;&lt;p&gt;Here&amp;#8217;s something I haven&amp;#8217;t written about in a long time &amp;#8212; bend, my custom written CLI PHP5 scripts to rip and encode TV shows.&lt;/p&gt;
&lt;p&gt;I actually rewrote the entire thing over Labor Day weekend.  What&amp;#8217;s amazing is it took so long to write the original one, but so short a time to completely revamp it.  It&amp;#8217;s something I&amp;#8217;ve been wanting to do for a long time, and I&amp;#8217;m glad I finally got to it.  The code on the old one was so horrible, and was such a frustrating experience to patch, debug or add features.  The new one is already 20 times better.&lt;/p&gt;
&lt;p&gt;The first one was just plagued by scope creep, though &amp;#8212; I started off just mostly coding it around the way that I thought DVDs *should* work and how they ought to be authored, only to be constantly slapped in the face by so many exceptions that I&amp;#8217;d have to go back and hack it to work around the new found realities.&lt;/p&gt;
&lt;p&gt;One example is that either lsdvd or libdvdread is buggy in how it outputs chapter information.  Actually, my whole experience with chapters have been that if there are any oddities, then the players will just freak out.  You wouldn&amp;#8217;t believe the cases I ran into.  Anyway, here&amp;#8217;s a small example.  On one DVD, lsdvd will report in original output that one track has 30 chapters on it.  But when you go to display the chapters, it will only say that there are two.  Most of the time, what happens, is that it will choke anytime there is a chapter between others that is zero length.  In this case, lsdvd just chokes and stops counting them.  MPlayer (at least, the ancient version I&amp;#8217;m using) will do a couple of things depending on its mood &amp;#8212; sometimes freeze, sometimes skip over it, sometimes act like its not even there.  It&amp;#8217;s very odd.  I&amp;#8217;ve found a lot of interesting little bugs in the dvd libraries and tools.  I&amp;#8217;d love to poke and the source and fix them up &amp;#8230; when I have time.&lt;/p&gt;
&lt;p&gt;The code is online in my &lt;a href=&quot;http://spaceparanoids.org/svn/?root=bend&quot;&gt;svn repo&lt;/a&gt;, and the new one is called &amp;#8216;drip&amp;#8217; for dvd ripper.  Original, I know, but eventually it will replace bend completely once I add in all the features the old one had plus all the new stuff I want.  I would throw in a link to trac which has prettier display output for viewing SVN files, but my installation is broken (again) and I have no idea why, and it&amp;#8217;s always a royal pain trying to figure out what went wrong, so I&amp;#8217;ll just fix it later.  I love trac, but its not easy debugging the setup.&lt;/p&gt;
&lt;p&gt;Oh yah, also I&amp;#8217;ve been working on my mythvideo setup, tweaking it even more.  One really thing that dawned on me, which I&amp;#8217;ll write in more detail once I actually have a script ready, is that you can use it to execute shell scripts using the File Types admin menu.  Just tell it to execute .sh files in your folders with /bin/bash and away you can go.&lt;/p&gt;
&lt;p&gt;Another thing I learned is that MythVideo will only pass two variables to any external scripts, the default player (%d) and the video file (%s), or more accurately, the file you&amp;#8217;ve selected to run.  So if you wanted to see what you&amp;#8217;re executing, you would add this to the file type for .sh files: /bin/bash %s %s&lt;/p&gt;
&lt;p&gt;Then, say you had test.sh, this would be the contents:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;#!/bin/bash&lt;/p&gt;&lt;/blockquote&gt;
&lt;blockquote&gt;&lt;p&gt;echo $a&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;I&amp;#8217;m getting ahead of myself, though .. I&amp;#8217;ll write more about that when I&amp;#8217;ve got something to show.  I&amp;#8217;m actually working on a shell script similar to &lt;a href=&quot;http://packages.larrythecow.org/?v=pkg&amp;amp;c=media-video&amp;amp;s=mplayer-resume&quot;&gt;mplayer-resume&lt;/a&gt; to resume playback of a playlist you&amp;#8217;re in.  It&amp;#8217;s a bit trickier than I thought it would (or rather, not nearly as simple as I had hoped), so I&amp;#8217;m still scoping it out in my head.&lt;/p&gt;
&lt;p&gt;Speaking of mplayer-resume, I fixed a bug I kept running into with it for a while now.  The script will now catch the exit code of mplayer, and if it&amp;#8217;s not successful (zero), then it won&amp;#8217;t overwrite or delete the old position.  I used to hit it all the time because I used to run mplayer -hardframedrop when playing my videos, which would crash the playback about 10% of the time and of course kill the file that had the playback position.  I need to repackage it and push it live, but there&amp;#8217;s a few more small fixes I want to make to it first &amp;#8230; I might finish the playlist resume script first and add it to there.  Plus I want to get trac working, because that&amp;#8217;s where it&amp;#8217;s homepage is.&lt;/p&gt;
&lt;p&gt;But, I moved my mini-itx to the living room and hooked it up to my HDTV.  It was sitting in my bedroom just collecting dust, and I figured I might as well move it to see if it gets any more usage.  Actually, I remember now, I moved it was because the LED lights were really bright in my bedroom at night, and I have to sleep in total darkness to get a good night&amp;#8217;s rest.   Anyway, it&amp;#8217;s worked out well so far.  My TV has a VGA port so it&amp;#8217;s super simple to plug it in, not to mention I like the fact that it doesn&amp;#8217;t use up an HDMI port.  I love my TV. :)  Once I have this series playlist resume script finished, I think I&amp;#8217;ll be pretty much &amp;#8220;done&amp;#8221; with having the setup that I&amp;#8217;ve wanted so long.  Well, aside from the fact that I need about 12 more terabytes of harddrive space.&lt;/p&gt;
&lt;p&gt;Good times, I tell you what.  I&amp;#8217;m gonna go watch some Star Trek TNG.&lt;/p&gt;</description>
	<pubDate>Wed, 03 Sep 2008 05:48:39 +0000</pubDate>
	<dc:creator>Steve Dibb (beandog)</dc:creator>
</item>
<item>
	<title>Diego Pettenò: A question of names</title>
	<guid isPermaLink="false">urn:uuid:50bcc533-a900-48b1-be9a-0320aabedb33</guid>
	<link>http://blog.flameeyes.eu/articles/2008/09/02/a-question-of-names</link>
	<description>&lt;img src=&quot;http://planet.gentoo.org/images/flameeyes.png&quot; width=&quot;&quot; height=&quot;&quot; alt=&quot;&quot; align=&quot;right&quot; style=&quot;float: right;&quot;&gt;&lt;p&gt;I wanted to write about names and their spelling since &lt;a href=&quot;http://blogs.msdn.com/michkap/archive/2008/08/08/8842654.aspx&quot;&gt;a post by Michael S. Kaplan&lt;/a&gt; but for a reason or another I postponed it till now. I decided to return on this topic since, for the whole day at the hospital up to now, my name was regularly misspelled, and considering I am not even hitting problems with &amp;#8220;foreign&amp;#8221; names here, it makes me quite upset sincerely, as it&amp;#8217;s all due to the way software has been written.&lt;/p&gt;


	&lt;p&gt;As you most likely know if you read my blog, wherever this happens, is that my name is Diego Pettenò (well, this is not going to be technically right in a few months but that&amp;#8217;s another point altogether). You can see there is something &amp;#8220;funny&amp;#8221; on the final &amp;#8220;o&amp;#8221; of my surname. If you&amp;#8217;re American, you might not know that&amp;#8217;s called an &amp;#8220;accent&amp;#8221;, and it gives the proper way to pronounce the name. I guess one of the reasons English is considered easier than French, Italian and Spanish is that it lacks accents.&lt;/p&gt;


	&lt;p&gt;What is the problem? As the computers used nowadays seems all to derive from some English based design, they base themselves still on the &lt;span class=&quot;caps&quot;&gt;ASCII&lt;/span&gt; table, the &lt;span class=&quot;caps&quot;&gt;ASCII&lt;/span&gt; table makes it very difficult to handle special characters, which include &amp;#8220;ò&amp;#8221;. On some systems, like the credit card system for what I can tell, this is handled by replacing the accent with a quotation mark, making my name &lt;strong&gt;Diego Petteno&amp;#8217;&lt;/strong&gt;; not exactly my name but it comes closer than &amp;#8220;Diego Petteno&amp;#8221; that many other systems use; this is especially boring because &amp;#8220;Petteno&amp;#8221; (with no accent) is a different surname in this area, so I make it a point to distinguish between the two.&lt;/p&gt;


	&lt;p&gt;It is even worse when you go away from the Venice area, where both surnames are quite common, and enter Verona area, where at least Pettenò is not; I&amp;#8217;ve been called Petteno all day, and I&amp;#8217;m not liking it. And this is staying in the same country, actually the same region. I don&amp;#8217;t even want to know how people whose main alphabet is not the latin one feel about this, with forms to be compiled with an approximation of their actual name.&lt;/p&gt;


	&lt;p&gt;I&amp;#8217;m &lt;em&gt;always&lt;/em&gt; signing up with my full proper name when I can, but a few times I&amp;#8217;ve been asked to remove &amp;#8220;non-letters&amp;#8221; from my surname, and the scary thing is that this seems to happen more often with Italian sites rather than American ones, lately. It is not possible, for instance, to issue a wire transfer to &amp;#8220;Diego Pettenò&amp;#8221;, you &lt;em&gt;have&lt;/em&gt; to round it down to &amp;#8220;Diego Petteno&amp;#8221;, even when using &lt;span class=&quot;caps&quot;&gt;SEPA&lt;/span&gt; (&lt;em&gt;Single Euro Payment Area&lt;/em&gt;, which means a global &amp;#8220;namespace&amp;#8221; for wire transfer in the Euro Area; note that European languages are quite full of special characters, I can&amp;#8217;t think of another one but English than doesn&amp;#8217;t have them, and much more &amp;#8220;complex&amp;#8221; than &amp;#8220;ò&amp;#8221;).&lt;/p&gt;


	&lt;p&gt;And don&amp;#8217;t even try to get me started about katakana passwords :P&lt;/p&gt;</description>
	<pubDate>Tue, 02 Sep 2008 18:01:00 +0000</pubDate>
	<dc:creator>Diego Pettenò (flameeyes)</dc:creator>
</item>
<item>
	<title>Jeremy Olexa: Intel: iwl3945 madness</title>
	<guid isPermaLink="false">http://jolexa.wordpress.com/?p=62</guid>
	<link>http://jolexa.wordpress.com/2008/09/02/intel-iwl3945-madness/</link>
	<description>&lt;div class=&quot;snap_preview&quot;&gt;&lt;br /&gt;&lt;p&gt;As jaervosz &lt;a href=&quot;http://home.coming.dk/index.php/2008/08/15/p822&quot;&gt;wrote&lt;/a&gt; the other day, the iwl3945 driver has some serious issues with it. I think I have it narrowed down to what conditions cause the problem. &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Problem:&lt;/strong&gt; When downloading large files for non-trivial amounts of time, the download speed drops to &amp;lt;80 K/s. This is unacceptable, the whole pipe is limited to that by the way. I am not sure &lt;em&gt;what&lt;/em&gt; exactly causes this but I have narrowed down the conditions to which it happens.&lt;/p&gt;
&lt;p&gt;Encryption does not matter.. it falters on wep/wpa{1,2} or open networks. However, I found that this condition only exists on mode B APs. This includes &amp;#8220;mixed&amp;#8221; APs as well. I do not know enough about drivers but if the AP offers B &amp;amp; G, then it should select G, right? Well, based on the condition of the speeds, I would have to say that it is selecting B mode and then hitting this bug again.&lt;/p&gt;
&lt;p&gt;Anyway, for the time being&amp;#8230;Do not use B APs. Easier said that done because I&amp;#8217;m sure most every sys-admin would select Mixed AP over G only. So, if you are experiencing this issue as well, please comment on the &lt;a href=&quot;http://www.intellinuxwireless.org/bugzilla/show_bug.cgi?id=1592&quot;&gt;upstream bug&lt;/a&gt;, which has been open for 7 months by the way. Annoying. Maybe we can convince them to look at this issue some more? Even intel employees are CC&amp;#8217;d on the bug because they have the issue too..&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Workaround:&lt;/strong&gt; Convert your AP to G only or use G only APs.&lt;/p&gt;
&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/categories/jolexa.wordpress.com/62/&quot; /&gt; &lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/tags/jolexa.wordpress.com/62/&quot; /&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/gocomments/jolexa.wordpress.com/62/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/comments/jolexa.wordpress.com/62/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/godelicious/jolexa.wordpress.com/62/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/delicious/jolexa.wordpress.com/62/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/gostumble/jolexa.wordpress.com/62/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/stumble/jolexa.wordpress.com/62/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/godigg/jolexa.wordpress.com/62/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/digg/jolexa.wordpress.com/62/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/goreddit/jolexa.wordpress.com/62/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/reddit/jolexa.wordpress.com/62/&quot; /&gt;&lt;/a&gt; &lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://stats.wordpress.com/b.gif?host=jolexa.wordpress.com&amp;amp;blog=4115754&amp;amp;post=62&amp;amp;subd=jolexa&amp;amp;ref=&amp;amp;feed=1&quot; /&gt;&lt;/div&gt;</description>
	<pubDate>Tue, 02 Sep 2008 17:37:29 +0000</pubDate>
	<dc:creator>Jeremy Olexa (darkside)</dc:creator>
</item>
<item>
	<title>Diego Pettenò: Testing the corner cases</title>
	<guid isPermaLink="false">urn:uuid:1c2acb8c-1cb7-4a4d-9488-2088fb629760</guid>
	<link>http://blog.flameeyes.eu/articles/2008/09/02/testing-the-corner-cases</link>
	<description>&lt;img src=&quot;http://planet.gentoo.org/images/flameeyes.png&quot; width=&quot;&quot; height=&quot;&quot; alt=&quot;&quot; align=&quot;right&quot; style=&quot;float: right;&quot;&gt;&lt;p&gt;One interesting thing of using chroots to check things out is that often enough you stumble across different corner cases when you get to test one particular aspect of packages.&lt;/p&gt;


	&lt;p&gt;For instance, when I was testing linking collisions, I &lt;a href=&quot;http://blog.flameeyes.eu/articles/2008/01/21/and-what-about-imported-libraries&quot;&gt;found a lot of included libraries&lt;/a&gt;. This time &lt;a href=&quot;http://blog.flameeyes.eu/articles/2008/08/31/respecting-cflags-and-cxxflags-reality-testing&quot;&gt;testing for flags being respected&lt;/a&gt; I found some other corner cases.&lt;/p&gt;


	&lt;p&gt;It might some funky, but it has been common knowledge for a while that &lt;code&gt;gcc -O0&lt;/code&gt; sometimes produced bad code, and sometimes it failed to build some packages. Unfortunately it&amp;#8217;s difficult to track it down to specific problems when you&amp;#8217;re &amp;#8220;training&amp;#8221; somebody in handling the compiler. Today, I found one of these cases.&lt;/p&gt;


	&lt;p&gt;I was going to merge sys-block/unieject in my flagstesting chroot so I could make sure it worked properly, for this, it needed dev-libs/confuse, which I use for configuration files parsing. All at once, I found this failure:&lt;/p&gt;


&lt;div class=&quot;typocode&quot;&gt;&lt;pre&gt;&lt;code class=&quot;typocode_default  prettyprint&quot;&gt; i686-pc-linux-gnu-gcc -DLOCALEDIR=\&amp;quot;/usr/share/locale\&amp;quot; -DHAVE_CONFIG_H -I. -I. -I.. -Wall -pipe -include /var/tmp/portage/dev-libs/confuse-2.6-r1/temp/flagscheck.h -MT confuse.lo -MD -MP -MF .deps/confuse.Tpo -c confuse.c  -fPIC -DPIC -o .libs/confuse.o
confuse.c: In function 'cfg_init':
confuse.c:1112: warning: implicit declaration of function 'setlocale'
confuse.c:1112: error: 'LC_MESSAGES' undeclared (first use in this function)
confuse.c:1112: error: (Each undeclared identifier is reported only once
confuse.c:1112: error: for each function it appears in.)
confuse.c:1113: error: 'LC_CTYPE' undeclared (first use in this function)
make[2]: *** [confuse.lo] Error 1
make[2]: Leaving directory `/var/tmp/portage/dev-libs/confuse-2.6-r1/work/confuse-2.6/src'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/var/tmp/portage/dev-libs/confuse-2.6-r1/work/confuse-2.6'
make: *** [all] Error 2&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

	&lt;p&gt;This was funny to see as I did merge confuse lately on my main system on Yamato, and I do have nls enabled there, too. It didn&amp;#8217;t fail, so it&amp;#8217;s not even a &lt;a href=&quot;http://blog.flameeyes.eu/articles/2008/06/09/recognising-glibc-2-8-failures&quot;&gt;glibc cleanup-related failure&lt;/a&gt;.&lt;/p&gt;


	&lt;p&gt;Time to dig into the code, where is &lt;code&gt;setlocale&lt;/code&gt; used in confuse?&lt;/p&gt;


&lt;div class=&quot;typocode&quot;&gt;&lt;pre&gt;&lt;code class=&quot;typocode_default  prettyprint&quot;&gt;#if defined(ENABLE_NLS) &amp;amp;&amp;amp; defined(HAVE_GETTEXT)
    setlocale(LC_MESSAGES, &amp;quot;&amp;quot;);
    setlocale(LC_CTYPE, &amp;quot;&amp;quot;);
    bindtextdomain(PACKAGE, LOCALEDIR);
#endif&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

	&lt;p&gt;As I used this before, I know that &lt;code&gt;locale.h&lt;/code&gt; provides &lt;code&gt;setlocale()&lt;/code&gt; function, but usually it&amp;#8217;s included through gettext&amp;#8217;s own &lt;code&gt;libintl.h&lt;/code&gt; header file, so where is that included? A common problem here would be to have different preprocessor tests between the include and the use so that one is applied but not the other.&lt;/p&gt;


&lt;div class=&quot;typocode&quot;&gt;&lt;pre&gt;&lt;code class=&quot;typocode_default  prettyprint&quot;&gt;#if defined(ENABLE_NLS) &amp;amp;&amp;amp; defined(HAVE_GETTEXT)
# include &amp;lt;libintl.h&amp;gt;
# define _(str) dgettext(PACKAGE, str)
#else
# define _(str) str
#endif
#define N_(str) str&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

	&lt;p&gt;It seems to be entirely fine, the only problem would be if &lt;code&gt;libintl.h&lt;/code&gt; didn&amp;#8217;t include &lt;code&gt;locale.h&lt;/code&gt;, but why would it then work on the rest of the rest of the system?&lt;/p&gt;


	&lt;p&gt;The focal point here is to check why &lt;code&gt;libintl.h&lt;/code&gt; includes &lt;code&gt;locale.h&lt;/code&gt; in one place and not the other. Let&amp;#8217;s then look at the file itself:&lt;/p&gt;


&lt;div class=&quot;typocode&quot;&gt;&lt;pre&gt;&lt;code class=&quot;typocode_default  prettyprint&quot;&gt;/* Optimized version of the function above.  */
#if defined __OPTIMIZE__ &amp;amp;&amp;amp; !defined __cplusplus

[...]

/* We need LC_MESSAGES for `dgettext'.  */
# include &amp;lt;locale.h&amp;gt;

[...]

#endif  /* Optimizing.  */&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

	&lt;p&gt;So not for any kind of assurance, but just because there&amp;#8217;s a technical need, &lt;code&gt;libintl.h&lt;/code&gt; brings in the declaration of &lt;code&gt;setlocale()&lt;/code&gt;, and &lt;em&gt;only&lt;/em&gt; if you have optimisations enabled. Guess what? my chroot has no optimisations enabled, as I don&amp;#8217;t need to execute the code, but just build it.&lt;/p&gt;


	&lt;p&gt;The fix here is very easy, just include &lt;code&gt;locale.h&lt;/code&gt; explicitly; I&amp;#8217;ll be sending a patch upstream and submitting one to Gentoo, but it puts an important shadow over the correctness of Free Software when building with optimisations disabled. I suppose this is one other thing that I&amp;#8217;ll be testing for in the future, in &lt;a href=&quot;http://blog.flameeyes.eu/articles/2008/07/31/my-checklist-when-fixing-packages&quot;&gt;my checklist&lt;/a&gt;.&lt;/p&gt;</description>
	<pubDate>Tue, 02 Sep 2008 11:13:00 +0000</pubDate>
	<dc:creator>Diego Pettenò (flameeyes)</dc:creator>
</item>
<item>
	<title>Jan Kundrát: KPhotoAlbum Development Sprint: Part 1</title>
	<guid isPermaLink="false">http://jkt.flaska.net/blog/KPhotoAlbum_Development_Sprint:_Part_1.html</guid>
	<link>http://jkt.flaska.net/blog/KPhotoAlbum_Development_Sprint:_Part_1.html</link>
	<description>&lt;p&gt;
As you might already know from the &lt;a href=&quot;http://kphotoalbum.org/news.html#item0051&quot;&gt;news item&lt;/a&gt; at the KPA
website, I'm currently sitting behind a table in a wonderful country of
Denmark. I'm not sitting there alone, though, because we're having a small
KPhotoAlbum development sprint right now. Jesper, the main author, was so kind
to invite us to his home, the KDE e.V. paid the flight tickets, so all
we have to pay is just the barrels of beer and the T-shirts. And that's an
investment a typical developer makes with pleasure :).
&lt;/p&gt;

&lt;p&gt;
So far we have made just 17 commits, but there's a lot of talk going here (hi
Tuomas :p). For exmaple, the SQL backend is getting closer and closer to being
completely ready, the support for multiple cores is shaping up (and you won't
see that annoying flickering anymore) and we even have a cute, transparent
infobox which looks really sexy.
&lt;/p&gt;

&lt;p&gt;
Right now, I'm working on a reworked EXIF/IPTC/XMP import/export thingy, which
would essentially allow you to customize how KPhotoAlbum imports the metadata
from the images, and also to store these data back to the files for increased
interoperability and stuff like that. So I'll be finally able to share all the
captions and tags with a friend of mine who's using XnView. This feature was
already present in the 3.1.0 version, but the GUI for it was, well, not really
intuitive. I'm converting it to Kross, the KDE scripting environment.
&lt;/p&gt;

&lt;p&gt;
As I brought a GPS device some time ago, one can also expect some efforts for
integration with Marble. There's also a whiteboard full of interesting ideas
which I won't mention here.
&lt;/p&gt;</description>
	<pubDate>Tue, 02 Sep 2008 10:03:22 +0000</pubDate>
	<dc:creator>Jan Kundrát (jkt)</dc:creator>
</item>
<item>
	<title>Diego Pettenò: Leaving for the hospital</title>
	<guid isPermaLink="false">urn:uuid:94a3089f-b069-4832-874f-ab94a3314631</guid>
	<link>http://blog.flameeyes.eu/articles/2008/09/02/leaving-for-the-hospital</link>
	<description>&lt;img src=&quot;http://planet.gentoo.org/images/flameeyes.png&quot; width=&quot;&quot; height=&quot;&quot; alt=&quot;&quot; align=&quot;right&quot; style=&quot;float: right;&quot;&gt;&lt;p&gt;I&amp;#8217;m leaving for the hospital in a few minutes, I was called in yesterday around 14:00 and I had to get ready quite quickly as the bed was free either today or to a non-foreseen date.&lt;/p&gt;


	&lt;p&gt;I hope everything will be fine, that connection will be present, and that I&amp;#8217;ll have a decent roommate&amp;#8230;&lt;/p&gt;</description>
	<pubDate>Tue, 02 Sep 2008 05:03:00 +0000</pubDate>
	<dc:creator>Diego Pettenò (flameeyes)</dc:creator>
</item>
<item>
	<title>Shyam Mani: 2008 Singtel Singapore Grand Prix Tickets!</title>
	<guid isPermaLink="false">http://fox2mike.livejournal.com/168533.html</guid>
	<link>http://fox2mike.livejournal.com/168533.html</link>
	<description>&lt;img src=&quot;http://planet.gentoo.org/images/fox2mike.png&quot; width=&quot;&quot; height=&quot;&quot; alt=&quot;&quot; align=&quot;right&quot; style=&quot;float: right;&quot;&gt;&lt;div class=&quot;flickr-frame&quot;&gt;	&lt;a href=&quot;http://www.flickr.com/photos/fox2mike/2818126974/&quot; title=&quot;photo sharing&quot;&gt;&lt;img src=&quot;http://farm4.static.flickr.com/3229/2818126974_2d69714b62.jpg&quot; class=&quot;flickr-photo&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;br /&gt;	&lt;span class=&quot;flickr-caption&quot;&gt;&lt;a href=&quot;http://www.flickr.com/photos/fox2mike/2818126974/&quot;&gt;Walkabout Tickets&lt;/a&gt;, originally uploaded by &lt;a href=&quot;http://www.flickr.com/people/fox2mike/&quot;&gt;fox2mike&lt;/a&gt;.&lt;/span&gt;&lt;/div&gt;				&lt;p class=&quot;flickr-yourcomment&quot;&gt;	I can hardly wait :) 24 days to go for FP1 and that'll kick off the world's first night race. I got these 3 day walkabout tickets back in June, and took the pics back then too, just been lazy to upload them. &lt;br /&gt;&lt;br /&gt;Of course, these are commemorative tickets, and hence plastic. They're damn cool :)&lt;br /&gt;&lt;br /&gt;The circuit is almost done, lights are up, protective barriers are up and they're some very strong concrete barriers...will be interesting to see where the tyre walls will come up, if any. I'll try to walk around this weekend and get some shots of the circuit&lt;br /&gt;&lt;br /&gt;Few more pics :  &lt;a href=&quot;http://flickr.com/photos/fox2mike/sets/72157607054264156/&quot;&gt;http://flickr.com/photos/fox2mike/sets/72157607054264156/&lt;/a&gt;&lt;/p&gt;</description>
	<pubDate>Mon, 01 Sep 2008 17:05:00 +0000</pubDate>
	<dc:creator>Shyam Mani (fox2mike)</dc:creator>
</item>
<item>
	<title>Stuart Longland: Firefox 3.0.1 on MIPS</title>
	<guid isPermaLink="false">http://stuartl.longlandclan.yi.org/blog/?p=281</guid>
	<link>http://stuartl.longlandclan.yi.org/blog/2008/09/01/firefox-301-on-mips/</link>
	<description>&lt;img src=&quot;http://planet.gentoo.org/images/redhatter.png&quot; width=&quot;&quot; height=&quot;&quot; alt=&quot;&quot; align=&quot;right&quot; style=&quot;float: right;&quot;&gt;&lt;p&gt;Hi all&amp;#8230;&lt;/p&gt;
&lt;div id=&quot;attachment_283&quot; class=&quot;wp-caption alignright&quot;&gt;&lt;a href=&quot;http://stuartl.longlandclan.yi.org/blog/wp-content/uploads/2008/09/firefox-301-mips-acid2.png&quot;&gt;&lt;img class=&quot;size-medium wp-image-283&quot; title=&quot;Firefox 3.0.1 on Fulong&quot; src=&quot;http://stuartl.longlandclan.yi.org/blog/wp-content/uploads/2008/09/firefox-301-mips-acid2-281x300.png&quot; alt=&quot;Firefox 3.0.1 showing the Acid2 test on MIPS (click to enlarge)&quot; width=&quot;281&quot; height=&quot;300&quot; /&gt;&lt;/a&gt;&lt;p class=&quot;wp-caption-text&quot;&gt;Firefox 3.0.1 showing the Acid2 test on MIPS (click to enlarge)&lt;/p&gt;&lt;/div&gt;
&lt;p&gt;I&amp;#8217;ve been rather busy and thus haven&amp;#8217;t had much time for Gentoo work, but today I managed to get some patches together that allow Firefox 3.0.1 to build and run on MIPS.&lt;/p&gt;
&lt;p&gt;The ebuild is as yet, unkeyworded, as I wish to do some further testing.  I have successfully compiled it on little-endian MIPS, and it mostly seems to work okay.  It &lt;em&gt;mostly&lt;/em&gt; passes the Acid2 test with some slight errors, but unfortunately, crashes part way through the Acid3 test &amp;#8212; this I&amp;#8217;ll investigate when I have the time.  It also crashes on my blog so your mileage may vary.&lt;/p&gt;
&lt;p&gt;No testing has been done on big-endian MIPS at this stage, as my O2 is down for the short term (need to build a new kernel and get X running) so I&amp;#8217;d appreciate feedback from users on this matter.&lt;/p&gt;</description>
	<pubDate>Mon, 01 Sep 2008 11:58:43 +0000</pubDate>
	<dc:creator>Stuart Longland (redhatter)</dc:creator>
</item>
<item>
	<title>Remi Cardona: Intel Drivers... again...</title>
	<guid isPermaLink="false">http://planet.gentoo.org/developers/xmlsrv/1548@http://planet.gentoo.org/developers/</guid>
	<link>http://planet.gentoo.org/developers/remi/2008/09/01/intel_drivers_again</link>
	<description>&lt;p&gt;Just a quick post to let you all know that xf86-video-i810-2.4.2 has hit portage in ~arch.&lt;/p&gt;

&lt;p&gt;Here's my request : please test the hell out of it !! &lt;img src=&quot;http://planet.gentoo.org/developers/rsc/smilies/icon_smile.gif&quot; alt=&quot;&amp;#58;&amp;#41;&quot; class=&quot;middle&quot; /&gt;&lt;/p&gt;

&lt;p&gt;It seems to be a good improvement over the original 2.4.0 release as it has less flicker, but it needs some serious testing. I think there are still cases where I can see flickering but the conditions seem to vary over time and I can't reliably reproduce the issue.&lt;/p&gt;

&lt;p&gt;So please test this new release as much as you can and let me know how it works for you. Bugs should be filed in Bugzilla and not in the comments &lt;img src=&quot;http://planet.gentoo.org/developers/rsc/smilies/icon_wink.gif&quot; alt=&quot;&amp;#59;&amp;#41;&quot; class=&quot;middle&quot; /&gt;&lt;/p&gt;

&lt;p&gt;As for the new 2.5 branch, it should hit ~arch with a big fat package.mask over the next couple of days.&lt;/p&gt;

&lt;p&gt;Oh, and now I'm part of the X11 Team as I have to work with X stuff for my job, I might as well contribute some efforts there too.&lt;/p&gt;

&lt;p&gt;Cheers!&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Update&lt;/strong&gt; : Please &lt;strong&gt;please&lt;/strong&gt; file bugs if you still see flickering! Bugs won't solve themselves! Thanks &lt;img src=&quot;http://planet.gentoo.org/developers/rsc/smilies/icon_smile.gif&quot; alt=&quot;&amp;#58;&amp;#41;&quot; class=&quot;middle&quot; /&gt;&lt;/p&gt;</description>
	<pubDate>Mon, 01 Sep 2008 08:52:18 +0000</pubDate>
	<dc:creator>Remi Cardona (remi)</dc:creator>
</item>
<item>
	<title>Gentoo News: Gentoo Monthly Newsletter -- 31 August 2008</title>
	<guid isPermaLink="false">http://www.gentoo.org/news/20080831-gmn.xml</guid>
	<link>http://www.gentoo.org/news/20080831-gmn.xml</link>
	<description>&lt;img src=&quot;http://planet.gentoo.org/images/larry_the_cow.jpg&quot; width=&quot;&quot; height=&quot;&quot; alt=&quot;&quot; align=&quot;right&quot; style=&quot;float: right;&quot;&gt;&lt;p&gt;&lt;b&gt;The August issue of the &lt;a href=&quot;http://www.gentoo.org/news/en/gmn/20080831-newsletter.xml&quot;&gt;Gentoo Monthly Newsletter&lt;/a&gt; has
been released.&lt;/b&gt; In this month's issue: PHP4 removal, GSOC interview, new
Gentoo-based distributions, and more!
&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;http://forums.gentoo.org/viewtopic-p-5200246.html&quot;&gt;Discuss
This!&lt;/a&gt;&lt;/p&gt;</description>
	<pubDate>Mon, 01 Sep 2008 08:02:10 +0000</pubDate>
	<dc:creator>Gentoo News ()</dc:creator>
</item>
<item>
	<title>Daniel Drake: All aboard!</title>
	<guid isPermaLink="false">http://www.reactivated.net/weblog/?p=201</guid>
	<link>http://www.reactivated.net/weblog/archives/2008/09/all-aboard/</link>
	<description>&lt;p&gt;&lt;a href=&quot;http://wiki.laptop.org/go/Physics_Jam&quot;&gt;&lt;img src=&quot;http://www.reactivated.net/weblog-content/20080901-gamejam.jpg&quot; align=&quot;right&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
I spent some time this weekend at the &lt;a href=&quot;http://wiki.laptop.org/go/Physics_Jam&quot;&gt;OLPC Physics Game Jam&lt;/a&gt;. I teamed up with the legendary &lt;a href=&quot;http://eclecti.cc/&quot;&gt;Nirav Patel&lt;/a&gt; and we made a bridge building game. The objective is to build a bridge and see if it survives after a train starts travelling across it.&lt;/p&gt;
&lt;p&gt;We only have one level so far, but it is quite engaging and not as easy as it might sound. It was interesting to see some youngsters try it and experiment with different bridge structures during the review session. The game also features some top notch sound effects coordinated by Brian Jordan.&lt;/p&gt;
&lt;p&gt;We won the gold prize for game development. To learn more and download it, see the &lt;a href=&quot;http://wiki.laptop.org/go/Bridge&quot;&gt;Bridge&lt;/a&gt; page on the wiki.&lt;/p&gt;
&lt;div align=&quot;center&quot;&gt;&lt;a href=&quot;http://wiki.laptop.org/go/Bridge&quot;&gt;&lt;img src=&quot;http://www.reactivated.net/weblog-content/20080901-bridge.jpg&quot; /&gt;&lt;/a&gt;&lt;/div&gt;</description>
	<pubDate>Mon, 01 Sep 2008 03:52:34 +0000</pubDate>
	<dc:creator>Daniel Drake (dsd)</dc:creator>
</item>
<item>
	<title>Diego Pettenò: uClibc testing</title>
	<guid isPermaLink="false">urn:uuid:28226ccf-3085-4588-ad57-9a590d578fa9</guid>
	<link>http://blog.flameeyes.eu/articles/2008/09/01/uclibc-testing</link>
	<description>&lt;img src=&quot;http://planet.gentoo.org/images/flameeyes.png&quot; width=&quot;&quot; height=&quot;&quot; alt=&quot;&quot; align=&quot;right&quot; style=&quot;float: right;&quot;&gt;&lt;p&gt;As I said on &lt;a href=&quot;http://blog.flameeyes.eu/articles/2008/08/13/what-did-enterprise-do&quot;&gt;&lt;strong&gt;What did Enterprise do?&lt;/strong&gt;&lt;/a&gt;, I had (and have again) a series of chroots I use for testing particular setups; I have, for instance, one running OpenPAM that can tell me whether the software in the tree have the proper dependencies (either &lt;code&gt;sys-libs/pam&lt;/code&gt; if it wants Linux-PAM or &lt;code&gt;virtual/pam&lt;/code&gt; if it works with OpenPAM).&lt;/p&gt;


	&lt;p&gt;Since yesterday, thanks to solar, I have a new addition to my testing rig: an uclibc chroot. I asked solar to get me something I could download and run locally as I had to fix &lt;a href=&quot;https://bugs.gentoo.org/show_bug.cgi?id=235431&quot;&gt;a bug with &lt;span class=&quot;caps&quot;&gt;PAM&lt;/span&gt;&lt;/a&gt; which is now fixed.&lt;/p&gt;


	&lt;p&gt;I have to say that I don&amp;#8217;t know much yet about the setup of uClibc itself, which means I haven&amp;#8217;t gotten to understand well yet how iconv is supported in it. Certainly I now know that once &lt;span class=&quot;caps&quot;&gt;USE&lt;/span&gt;-based dependencies will be available in the tree I&amp;#8217;ll try once again to see if libiconv can be used for something else beside Gentoo/FreeBSD (but the collision with man-pages should be solved before that, if it&amp;#8217;s not already).&lt;/p&gt;


	&lt;p&gt;Even though I know solar does not really wish for me to mess in with &lt;span class=&quot;caps&quot;&gt;NLS&lt;/span&gt; and uClibc, I find it a pretty important part of Gentoo/FreeBSD work, I always found it as such, the reason for this is that it&amp;#8217;s easier to fix something the right way when you have more than one alternative case. Otherwise you might end up special casing something that should be made generic instead.&lt;/p&gt;


	&lt;p&gt;I also expect Gentoo/FreeBSD 7 to be upcoming, and that will probably mean my return to that too, now that I can get a VirtualBox running at a decent speed.&lt;/p&gt;


	&lt;p&gt;But I haven&amp;#8217;t even started setting up the uClibc chroot to speed with what I want to do, in particular I want to set up my &lt;code&gt;cowstats&lt;/code&gt; script on that too, and maybe one day adding the &lt;a href=&quot;http://blog.flameeyes.eu/articles/2008/08/31/respecting-cflags-and-cxxflags-reality-testing&quot;&gt;flags testing&lt;/a&gt; script too (which is unfortunately disruptive).&lt;/p&gt;


	&lt;p&gt;All in all, I hope that having an uclibc chroot around will allow the packages I maintain to work out of the box on uClibc, it&amp;#8217;s going to be a pretty interesting task.&lt;/p&gt;</description>
	<pubDate>Mon, 01 Sep 2008 00:46:00 +0000</pubDate>
	<dc:creator>Diego Pettenò (flameeyes)</dc:creator>
</item>
<item>
	<title>Caleb Tennis: Taco Bell - WTF?</title>
	<guid isPermaLink="false">http://www.tarkblog.org/general/1005</guid>
	<link>http://www.tarkblog.org/general/1005</link>
	<description>I think it&amp;#8217;s pretty universally known to not have high hopes of Taco Bell&amp;#8217;s accuracy in filling orders.</description>
	<pubDate>Sun, 31 Aug 2008 21:57:27 +0000</pubDate>
	<dc:creator>Caleb Tennis (caleb)</dc:creator>
</item>
<item>
	<title>Diego Pettenò: Respecting CFLAGS and CXXFLAGS, reality testing!</title>
	<guid isPermaLink="false">urn:uuid:090665d6-b3a6-484f-a2f7-1e25a95726f2</guid>
	<link>http://blog.flameeyes.eu/articles/2008/08/31/respecting-cflags-and-cxxflags-reality-testing</link>
	<description>&lt;img src=&quot;http://planet.gentoo.org/images/flameeyes.png&quot; width=&quot;&quot; height=&quot;&quot; alt=&quot;&quot; align=&quot;right&quot; style=&quot;float: right;&quot;&gt;&lt;p&gt;As I have written in my post &lt;a href=&quot;http://blog.flameeyes.eu/articles/2008/08/06/flags-and-flags&quot;&gt;&lt;strong&gt;Flags and flags&lt;/strong&gt;&lt;/a&gt;, I think that one way out of the hardened problem would be to actually respect the &lt;span class=&quot;caps&quot;&gt;CFLAGS&lt;/span&gt; and &lt;span class=&quot;caps&quot;&gt;CXXFLAGS&lt;/span&gt; the user requests so that they actually apply to the ebuilds. Unfortunately, not all the ebuilds in the tree respect the flags, and finding out which ones do and which ones don&amp;#8217;t hasn&amp;#8217;t been, up to now, an easy task.&lt;/p&gt;


	&lt;p&gt;There are many reasons for this, the most common one is to look at the build output and spot that all the compile lines lack your custom flags, but this is difficult to automate, another option is to inject a fake definition option (&lt;code&gt;-DIWASHERE&lt;/code&gt;) and grep for it in the build logs, but this is messed up if you consider that a package might ignore &lt;span class=&quot;caps&quot;&gt;CFLAGS&lt;/span&gt; just for a subset of its final outputs.&lt;/p&gt;


	&lt;p&gt;While I was without Enterprise I spent some time thinking about this and I came to find a possible solution, which I&amp;#8217;m going to experiment on Yamato, starting tonight (which is Friday 29th for what it&amp;#8217;s worth).&lt;/p&gt;


	&lt;p&gt;The trick is that &lt;span class=&quot;caps&quot;&gt;GCC&lt;/span&gt; provides a flag that allows you to include an extra file, unknown to the rest of the code. With a properly structured file, you can easily inject some beacon that you can later pick up.&lt;/p&gt;


	&lt;p&gt;And with a proper beacon injected in the build files, it shouldn&amp;#8217;t be a problem to check using scanelf or similar tools if the flags were respected.&lt;/p&gt;


	&lt;p&gt;The trick here is all in the choice of the beacon and in looking it up; the first requirement for the proper beacon is to make sure it does not intrude and disrupt the code or the compilation, this means it has to have a name that is not common, and thus does not risk to collide with other pieces of code, and won&amp;#8217;t clash between different translation units.&lt;/p&gt;


	&lt;p&gt;To solve this, the name can be just very long so that it&amp;#8217;s impractical that somebody might have used it for a funciton or variable name, let&amp;#8217;s say we call that beacon &lt;code&gt;cflags_test_cflags_respected&lt;/code&gt;. This is the first step, but it still doesn&amp;#8217;t solve the problem of clashing traslation units. If we were to write it like this:&lt;/p&gt;


&lt;div class=&quot;typocode&quot;&gt;&lt;pre&gt;&lt;code class=&quot;typocode_default  prettyprint&quot;&gt;const int cflags_test_cflags_respected = 1234;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

	&lt;p&gt;two translation units with that in them, linked together, will cause a linker error that will stop the build. This cannot happen or it&amp;#8217;ll make our test useless. The solution is to make the symbol a common symbol. In C, common symbols are usually the ones that are declared without an initialisation value, like this:&lt;/p&gt;


&lt;div class=&quot;typocode&quot;&gt;&lt;pre&gt;&lt;code class=&quot;typocode_default  prettyprint&quot;&gt;int cflags_test_cflags_respected;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

	&lt;p&gt;Unfortunately this syntax doesn&amp;#8217;t work on C++, as the notion of common symbol hasn&amp;#8217;t crossed that language barrier. Which means that we have to go deeper in the stack of languages to find the way to create the common symbol. It&amp;#8217;s not difficult, once you decide to use the assembly language:&lt;/p&gt;


&lt;div class=&quot;typocode&quot;&gt;&lt;pre&gt;&lt;code class=&quot;typocode_default  prettyprint&quot;&gt;asm(&amp;quot;.comm cflags_test_cflags_respected,1,1&amp;quot;);&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

	&lt;p&gt;will create a common symbol of size 1 byte. It won&amp;#8217;t be perfect as it might increase the size of .bss section for a program by one byte, and thus screw up perfect non-.bss programs, but we&amp;#8217;re interested in the tests rather than the performance, as of this moment.&lt;/p&gt;


	&lt;p&gt;There is still one little problem though: the &lt;code&gt;asm&lt;/code&gt; construct is not accepted by the &lt;span class=&quot;caps&quot;&gt;C99&lt;/span&gt; language, so we&amp;#8217;ll have to use the new one instead: &lt;code&gt;__asm__&lt;/code&gt;, that works just in the same way.&lt;/p&gt;


	&lt;p&gt;But before we go on with this, there is something else to take care of. As I have written in the entry linked at the start of this one, there are packages that mix &lt;span class=&quot;caps&quot;&gt;CFLAGS&lt;/span&gt; and &lt;span class=&quot;caps&quot;&gt;CXXFLAGS&lt;/span&gt;. As we&amp;#8217;re here, it could be easy to just add some more test beacons that track down for us if the package has used &lt;span class=&quot;caps&quot;&gt;CFLAGS&lt;/span&gt; to build C++ code or &lt;span class=&quot;caps&quot;&gt;CXXFLAGS&lt;/span&gt; to build C code. With this in mind, i came to create two files: &lt;code&gt;flagscheck.h&lt;/code&gt; and &lt;code&gt;flagscheck.hpp&lt;/code&gt;, respectively to be injected through &lt;span class=&quot;caps&quot;&gt;CFLAGS&lt;/span&gt; and &lt;span class=&quot;caps&quot;&gt;CXXFLAGS&lt;/span&gt;.&lt;/p&gt;


&lt;div class=&quot;typocode&quot;&gt;&lt;pre&gt;&lt;code class=&quot;typocode_default  prettyprint&quot;&gt;flame@yamato ~ % sudo cat /media/chroots/flagstesting/etc/portage/flagscheck.h
#ifdef __cplusplus
__asm__(&amp;quot;.comm cflags_test_cxxflags_in_cflags,1,1&amp;quot;);
#else
__asm__(&amp;quot;.comm cflags_test_cflags_respected,1,1&amp;quot;);
#endif
flame@yamato ~ % sudo cat /media/chroots/flagstesting/etc/portage/flagscheck.hpp
#ifndef __cplusplus
__asm__(&amp;quot;.comm cflags_test_cflags_in_cxxflags,1,1&amp;quot;);
#else
__asm__(&amp;quot;.comm cflags_test_cxxflags_respected,1,1&amp;quot;);
#endif&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

	&lt;p&gt;And here we are, now it&amp;#8217;s just time to inject these in the variables and check for the output. But I&amp;#8217;m still not satisfied with this. There are packages that, mistakenly, save their own &lt;span class=&quot;caps&quot;&gt;CFLAGS&lt;/span&gt; and propose them to other programs that are linked against; to avoid these to falsify our tests, I&amp;#8217;m going to make the injection unique on a package level.&lt;/p&gt;


	&lt;p&gt;Thanks to Portage, we can create two functions in the &lt;code&gt;bashrc&lt;/code&gt; file, &lt;code&gt;pre_src_unpack&lt;/code&gt; and &lt;code&gt;post_src_unpack&lt;/code&gt;, in the former, we&amp;#8217;re going to copy the two header files in the &lt;code&gt;${T}&lt;/code&gt; directory of the package (the temporary directory), then we can mess with the flags variables and insert the &lt;code&gt;-include&lt;/code&gt; command. This way, each package will get its own particular path; when a library passes the &lt;span class=&quot;caps&quot;&gt;CFLAGS&lt;/span&gt; assigned to itself to another package, it will fail to build.&lt;/p&gt;


&lt;div class=&quot;typocode&quot;&gt;&lt;pre&gt;&lt;code class=&quot;typocode_default  prettyprint&quot;&gt;pre_src_compile() {
    ln -s /etc/portage/flagscheck.{h,hpp} &amp;quot;${T}&amp;quot;

    CFLAGS=&amp;quot;${CFLAGS} -include ${T}/flagscheck.h&amp;quot;
    CXXFLAGS=&amp;quot;${CXXFLAGS} -include ${T}/flagscheck.hpp&amp;quot;
}&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

	&lt;p&gt;After the build completed, it&amp;#8217;s time to check the results, luckily pax-utils contains &lt;code&gt;scanelf&lt;/code&gt;, which makes it piece of cake to check whether one of the four symbols is defined, or if none is (and thus all the flags were ignored), the one line function is as follow:&lt;/p&gt;


&lt;div class=&quot;typocode&quot;&gt;&lt;pre&gt;&lt;code class=&quot;typocode_default  prettyprint&quot;&gt;post_src_compile() {
    scanelf &amp;quot;${WORKDIR}&amp;quot; \
        -E ET_REL -R -s \
        cflags_test_cflags_respected,cflags_test_cflags_in_cxxflags,cflags_test_cxxflags_respected,cflags_test_cxxflags_in_cflags
}&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

	&lt;p&gt;At this point you just have to look for the ET_REL output:&lt;/p&gt;


&lt;div class=&quot;typocode&quot;&gt;&lt;pre&gt;&lt;code class=&quot;typocode_default  prettyprint&quot;&gt;ET_REL cflags_test_cflags_respected /var/tmp/portage/sys-apps/which-2.19/work/which-2.19/tilde/tilde.o 
ET_REL cflags_test_cflags_respected /var/tmp/portage/sys-apps/which-2.19/work/which-2.19/tilde/shell.o 
ET_REL  -  /var/tmp/portage/sys-apps/which-2.19/work/which-2.19/getopt.o 
ET_REL cflags_test_cflags_respected /var/tmp/portage/sys-apps/which-2.19/work/which-2.19/bash.o 
ET_REL  -  /var/tmp/portage/sys-apps/which-2.19/work/which-2.19/getopt1.o 
ET_REL cflags_test_cflags_respected /var/tmp/portage/sys-apps/which-2.19/work/which-2.19/which.o&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

	&lt;p&gt;And it&amp;#8217;s time to find out why getopt.o and getopt1.o are not respecting &lt;span class=&quot;caps&quot;&gt;CFLAGS&lt;/span&gt; while the rest of the build is.&lt;/p&gt;</description>
	<pubDate>Sun, 31 Aug 2008 16:54:00 +0000</pubDate>
	<dc:creator>Diego Pettenò (flameeyes)</dc:creator>
</item>
<item>
	<title>Diego Pettenò: For A Parallel World. Case Study n.3: temporary files naming</title>
	<guid isPermaLink="false">urn:uuid:4205fc7b-656a-4db1-aa2c-3c583686636b</guid>
	<link>http://blog.flameeyes.eu/articles/2008/08/31/for-a-parallel-world-case-study-n-3-temporary-files-naming</link>
	<description>&lt;img src=&quot;http://planet.gentoo.org/images/flameeyes.png&quot; width=&quot;&quot; height=&quot;&quot; alt=&quot;&quot; align=&quot;right&quot; style=&quot;float: right;&quot;&gt;&lt;p&gt;A far less common problem than the last two I have written about, today I wish to analyse the failure in media-gfx/sam2p &lt;a href=&quot;https://bugs.gentoo.org/show_bug.cgi?id=236030&quot;&gt;I reported&lt;/a&gt;. I have found similar problems before, and thus I think it&amp;#8217;s another case worth talking about although the fix is very quick.&lt;/p&gt;


	&lt;p&gt;The failure in question would be this one:&lt;/p&gt;


&lt;div class=&quot;typocode&quot;&gt;&lt;pre&gt;&lt;code class=&quot;typocode_default  prettyprint&quot;&gt;Created executable file: ps_tiny (size: 47530).
ps_tiny: error at 1.2.1: tag %&amp;lt;Head or %&amp;lt;Open expected
make: *** [l1ghz.pst] Error 3
make: *** Waiting for unfinished jobs....
encoder.cpp: In member function ‘virtual void CjpegEncode::P::vi_copy(FILE*)’:
encoder.cpp:1033: warning: array subscript is above array bounds
encoder.cpp:1034: warning: array subscript is above array bounds
encoder.cpp:1035: warning: array subscript is above array bounds
ps_tiny: error at 638.5.21620: premature EOF
make: *** [l1g8z.pst] Error 3
ps_tiny: error at 638.5.21620: premature EOF
make: *** [l1gbz.pst] Error 3&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

	&lt;p&gt;The &amp;#8220;premature &lt;span class=&quot;caps&quot;&gt;EOF&lt;/span&gt;&amp;#8221; error message usually means a file is truncated. With experience, you can tell this is a race condition: either the &lt;a href=&quot;http://blog.flameeyes.eu/articles/2008/08/29/for-a-parallel-world-case-study-n-2-misknowing-your-make-rules&quot;&gt;same broken rule&lt;/a&gt; or two rules are creating and deleting a file, and one of the two is arriving after it was deleted already.&lt;/p&gt;


	&lt;p&gt;In this case, looking at the original Makefile, it&amp;#8217;s not the same broken rule:&lt;/p&gt;


&lt;div class=&quot;typocode&quot;&gt;&lt;pre&gt;&lt;code class=&quot;typocode_default  prettyprint&quot;&gt;l1g8z.pst: l1zip.psm psmlib.psm ps_tiny
        &amp;lt;$&amp;lt; &amp;gt;tmp.h perl -pe0
        $(CXX) -E $(L1_FLAGS) -DUSE_A85D=1 tmp.h &amp;gt;tmp.i
        &amp;lt;tmp.i &amp;gt;tmp.pin $(PREPROC_STRIP)
        &amp;lt;tmp.pin &amp;gt;tmp.ps0 ./ps_tiny
        &amp;lt;tmp.ps0 &amp;gt;tmp.pst $(TTT_QUOTE) $@
        mv -f tmp.pst $@
l1ghz.pst: l1zip.psm psmlib.psm ps_tiny
        &amp;lt;$&amp;lt; &amp;gt;tmp.h perl -pe0
        $(CXX) -E $(L1_FLAGS) -DUSE_HEXD=1 tmp.h &amp;gt;tmp.i
        &amp;lt;tmp.i &amp;gt;tmp.pin $(PREPROC_STRIP)
        &amp;lt;tmp.pin &amp;gt;tmp.ps0 ./ps_tiny
        &amp;lt;tmp.ps0 &amp;gt;tmp.pst $(TTT_QUOTE) $@
        mv -f tmp.pst $@
l1gbz.pst: l1zip.psm psmlib.psm ps_tiny
        &amp;lt;$&amp;lt; &amp;gt;tmp.h perl -pe0
        $(CXX) -E $(L1_FLAGS) -DUSE_BINARY=1 tmp.h &amp;gt;tmp.i
        &amp;lt;tmp.i &amp;gt;tmp.pin $(PREPROC_STRIP)
        &amp;lt;tmp.pin &amp;gt;tmp.ps0 ./ps_tiny
        &amp;lt;tmp.ps0 &amp;gt;tmp.pst $(TTT_QUOTE) $@
        mv -f tmp.pst $@&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

	&lt;p&gt;I didn&amp;#8217;t copy over &lt;em&gt;all&lt;/em&gt; the rules, but this already shows the problem here. All the rules, while not exactly identical (the flags passed to the pre-processors are different depending on the target), use the same setting and use the same file names. The result is that while one rule runs the others will run too, creating the race condition.&lt;/p&gt;


	&lt;p&gt;For Gentoo I fixed it in a slightly sub-optimal way, changing all the reference to &lt;code&gt;tmp.&lt;/code&gt; to $@&lt;code&gt;.tmp&lt;/code&gt;. This is not exactly the nicest way as the correct way would have been to create different rules that generate the various temporary stages, so that then they could be executed in parallel as much as possible, rather than only sequentially, but as I see very little space for parallelism here, and the build system is a bit of a mess, I thought it was much easier to leave it at that. The result is that the rules above would become:&lt;/p&gt;


&lt;div class=&quot;typocode&quot;&gt;&lt;pre&gt;&lt;code class=&quot;typocode_default  prettyprint&quot;&gt;l1g8z.pst: l1zip.psm psmlib.psm ps_tiny
        &amp;lt;$&amp;lt; &amp;gt;$@.tmp.h perl -pe0
        $(CXX) -E $(L1_FLAGS) -DUSE_A85D=1 $@.tmp.h &amp;gt;$@.tmp.i
        &amp;lt;$@.tmp.i &amp;gt;$@.tmp.pin $(PREPROC_STRIP)
        &amp;lt;$@.tmp.pin &amp;gt;$@.tmp.ps0 ./ps_tiny
        &amp;lt;$@.tmp.ps0 &amp;gt;$@.tmp.pst $(TTT_QUOTE) $@
        mv -f $@.tmp.pst $@
l1ghz.pst: l1zip.psm psmlib.psm ps_tiny
        &amp;lt;$&amp;lt; &amp;gt;$@.tmp.h perl -pe0
        $(CXX) -E $(L1_FLAGS) -DUSE_HEXD=1 $@.tmp.h &amp;gt;$@.tmp.i
        &amp;lt;$@.tmp.i &amp;gt;$@.tmp.pin $(PREPROC_STRIP)
        &amp;lt;$@.tmp.pin &amp;gt;$@.tmp.ps0 ./ps_tiny
        &amp;lt;$@.tmp.ps0 &amp;gt;$@.tmp.pst $(TTT_QUOTE) $@
        mv -f $@.tmp.pst $@
l1gbz.pst: l1zip.psm psmlib.psm ps_tiny
        &amp;lt;$&amp;lt; &amp;gt;$@.tmp.h perl -pe0
        $(CXX) -E $(L1_FLAGS) -DUSE_BINARY=1 $@.tmp.h &amp;gt;$@.tmp.i
        &amp;lt;$@.tmp.i &amp;gt;$@.tmp.pin $(PREPROC_STRIP)
        &amp;lt;$@.tmp.pin &amp;gt;$@.tmp.ps0 ./ps_tiny
        &amp;lt;$@.tmp.ps0 &amp;gt;$@.tmp.pst $(TTT_QUOTE) $@
        mv -f $@.tmp.pst $@&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

	&lt;p&gt;The alternative using pipes, for the first rule, would probably be something like:&lt;/p&gt;


&lt;div class=&quot;typocode&quot;&gt;&lt;pre&gt;&lt;code class=&quot;typocode_default  prettyprint&quot;&gt;l1g8z.pst: l1zip.psm psmlib.psm ps_tiny
        perl -pe0 &amp;lt; $&amp;lt; | \
        $(CXX) -E $(L1_FLAGS) -DUSE_A85D=1 | \
        $(PREPROC_STRIP) | \
        ./ps_tiny | \
        $(TTT_QUOTE) $@ &amp;gt; $@&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

	&lt;p&gt;I haven&amp;#8217;t changed it into this because I didn&amp;#8217;t have too much time to look into how much difference it makes, or to test it; I&amp;#8217;ve written it down to my &lt;span class=&quot;caps&quot;&gt;TODO&lt;/span&gt; list for the future, maybe it is a possible improvement.&lt;/p&gt;


	&lt;p&gt;In general, for parallel make, pipes should be preferred to temporary files, and if temporary files are needed, they should have a different names for each target, so that they won&amp;#8217;t overwrite one the other when make is run in parallel.&lt;/p&gt;</description>
	<pubDate>Sun, 31 Aug 2008 10:21:00 +0000</pubDate>
	<dc:creator>Diego Pettenò (flameeyes)</dc:creator>
</item>
<item>
	<title>Diego Pettenò: Updating a BIOS without floppies, Windows or CDs</title>
	<guid isPermaLink="false">urn:uuid:577c6081-145c-459f-b301-fbc7eddb37bf</guid>
	<link>http://blog.flameeyes.eu/articles/2008/08/30/updating-a-bios-without-floppies-windows-or-cds</link>
	<description>&lt;img src=&quot;http://planet.gentoo.org/images/flameeyes.png&quot; width=&quot;&quot; height=&quot;&quot; alt=&quot;&quot; align=&quot;right&quot; style=&quot;float: right;&quot;&gt;&lt;p&gt;One regression I have with Yamato is that the &lt;span class=&quot;caps&quot;&gt;BIOS&lt;/span&gt; cannot be updated through the &lt;span class=&quot;caps&quot;&gt;BIOS&lt;/span&gt; itself, like I could do with my previous &lt;span class=&quot;caps&quot;&gt;ASUS&lt;/span&gt; motherboard (and Award &lt;span class=&quot;caps&quot;&gt;BIOS&lt;/span&gt;). The &lt;span class=&quot;caps&quot;&gt;AMI&lt;/span&gt; bios of the Tyan motherboard doesn&amp;#8217;t support that.&lt;/p&gt;


	&lt;p&gt;But since I don&amp;#8217;t want to use my Windows installation to do the job (I use it only for work and to play more recent games that don&amp;#8217;t play in Wine), I decided to look up something that could allow  me to do the upgrade using only Free Software, my Gentoo Linux install, and the files provided by Tyan.&lt;/p&gt;


	&lt;p&gt;&lt;strong&gt;Caution: I make no warranty that the procedure will work properly, if this post gets published it means I was able to get it working myself but it might not work for you! Please remember that you do this at your risk!&lt;/strong&gt;&lt;/p&gt;


	&lt;p&gt;I found &lt;a href=&quot;http://ben.franske.com/blogs/2007/08/21/booting_dos_from_a_usb_flash_drive&quot;&gt;an interesting post&lt;/a&gt; about FreeDOS and &lt;span class=&quot;caps&quot;&gt;USB&lt;/span&gt; drives, which made my life much more easier. But as I&amp;#8217;m using Linux and in particular Gentoo, I revised a bit the instructions :)&lt;/p&gt;


	&lt;ul&gt;
	&lt;li&gt;first of all, merge the software we&amp;#8217;re going to need, this means sys-boot/makebootfat (from &lt;a href=&quot;http://git.flameeyes.eu/?p=overlay.git;a=summary&quot;&gt;my overlay&lt;/a&gt;) and app-arch/libarchive (to extract an &lt;span class=&quot;caps&quot;&gt;ISO&lt;/span&gt; file later on);&lt;/li&gt;
		&lt;li&gt;proceed then to create the directory where to put the files that will go on the virtual floppy, let&amp;#8217;s call it &amp;#8220;bios-update&amp;#8221;;&lt;/li&gt;
		&lt;li&gt;download the new &lt;span class=&quot;caps&quot;&gt;BIOS&lt;/span&gt; from &lt;a href=&quot;http://www.tyan.com/support_download.aspx&quot;&gt;Tyan&amp;#8217;s website&lt;/a&gt;, and put the content of the zip archive in &amp;#8220;bios-update&amp;#8221;;&lt;/li&gt;
		&lt;li&gt;&lt;a href=&quot;http://www.freedos.org/freedos/files/&quot;&gt;download FreeDOS&lt;/a&gt; (I suggest you to use the torrent download rather that ibiblio that is so slow!);&lt;/li&gt;
		&lt;li&gt;extract the &lt;span class=&quot;caps&quot;&gt;ISO&lt;/span&gt;, with &lt;code&gt;bsdtar&lt;/code&gt; it&amp;#8217;s just the same as extracting a standard tar file: &lt;code&gt;xf&lt;/code&gt; and all;&lt;/li&gt;
		&lt;li&gt;copy &lt;code&gt;freedos/setup/odin/{command.com,kernel.sys}&lt;/code&gt; from the FreeDOS &lt;span class=&quot;caps&quot;&gt;ISO&lt;/span&gt; to the &amp;#8220;bios-update&amp;#8221; directory;&lt;/li&gt;
		&lt;li&gt;from &lt;code&gt;freedos/packages/src_base/kernels.zip&lt;/code&gt; extract the files &lt;code&gt;source/ukernel/boot/fat{12,16,32lba}.bin&lt;/code&gt;.&lt;/li&gt;
		&lt;li&gt;run the &lt;code&gt;makebootfat&lt;/code&gt; command with a commandline similar to this: &lt;code&gt;makebootfat -o /dev/sde -E 255 -1 fat12.bin -2 fat16.bin -3 fat32lba.bin -m /usr/share/syslinux/mbr.bin bios-update&lt;/code&gt;; note that &lt;code&gt;/dev/sde&lt;/code&gt; has to be changed to your &lt;span class=&quot;caps&quot;&gt;USB&lt;/span&gt; device.&lt;/li&gt;
	&lt;/ul&gt;


	&lt;p&gt;Now just restart your system with the &lt;span class=&quot;caps&quot;&gt;USB&lt;/span&gt; drive in it and run the flash utility as provided by your manufacturer.&lt;/p&gt;


	&lt;p&gt;As an alternative you may rename an eventual batch file provided by your manufacturer to &lt;code&gt;autoexec.bat&lt;/code&gt; so that it is ran at boot; I have no idea (yet) how to stop FreeDOS from asking date and time, but whatever, just press enter at them. You don&amp;#8217;t usually have to worry about infinite loops of &lt;span class=&quot;caps&quot;&gt;BIOS&lt;/span&gt; updates, as once the update is done, I&amp;#8217;ve noticed &lt;em&gt;all&lt;/em&gt; BIOS, after update, require you to fill in the configuration again.&lt;/p&gt;


	&lt;p&gt;I&amp;#8217;m tempted to streamline this to a script or make the &lt;code&gt;makebootfat&lt;/code&gt; ebuild fetch the needed files out of the FreeDOS &lt;span class=&quot;caps&quot;&gt;ISO&lt;/span&gt;, or create an ebuild that install the basic FreeDOS files needed to create the boot disk. But maybe another time.&lt;/p&gt;</description>
	<pubDate>Sat, 30 Aug 2008 14:27:00 +0000</pubDate>
	<dc:creator>Diego Pettenò (flameeyes)</dc:creator>
</item>
<item>
	<title>Anant Narayanan: Why I like to act dumb</title>
	<guid isPermaLink="false">http://www.kix.in/blog/?p=244</guid>
	<link>http://feeds.kix.in/~r/kix/~3/378401442/</link>
	<description>&lt;img src=&quot;http://planet.gentoo.org/images/anant.png&quot; width=&quot;&quot; height=&quot;&quot; alt=&quot;&quot; align=&quot;right&quot; style=&quot;float: right;&quot;&gt;&lt;p&gt;From Wikipedia:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;The Dunning-Kruger effect is the phenomenon wherein people who have little knowledge (or skill) tend to think they know more (or have more skill) than they do, while others who have much more knowledge tend to think that they know less.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;Must&amp;#8230; learn&amp;#8230; to&amp;#8230; be&amp;#8230; modest &lt;img src=&quot;http://www.kix.in/blog/wp-includes/images/smilies/icon_smile.gif&quot; alt=&quot;:)&quot; class=&quot;wp-smiley&quot; /&gt;&lt;/p&gt;
&lt;img src=&quot;http://feeds.kix.in/~r/kix/~4/378401442&quot; height=&quot;1&quot; width=&quot;1&quot; /&gt;</description>
	<pubDate>Fri, 29 Aug 2008 21:02:34 +0000</pubDate>
	<dc:creator>Anant Narayanan (anant)</dc:creator>
</item>
<item>
	<title>Mike Pagano: New version of portpeek 1.6.7</title>
	<guid isPermaLink="false">http://www.mpagano.com/blog/?p=46</guid>
	<link>http://www.mpagano.com/blog/?p=46</link>
	<description>&lt;p&gt;A new version of portpeek can be found &lt;a href=&quot;http://www.mpagano.com/blog/?page_id=3&quot;&gt;here (version 1.6.7)&lt;/a&gt; or emerged through portage.&lt;/p&gt;
&lt;p&gt;Changes:&lt;/p&gt;
&lt;p&gt;The way I was checking if a package was masked was incorrect.  If you had a package in package.unmask and it was also in profiles/package.mask, the code was incorrectly surmising the package was stable.&lt;/p&gt;
&lt;p&gt;Bug reports and patches are always welcome.&lt;/p&gt;</description>
	<pubDate>Fri, 29 Aug 2008 20:20:24 +0000</pubDate>
	<dc:creator>Mike Pagano (mpagano)</dc:creator>
</item>
<item>
	<title>Diego Pettenò: For A Parallel World. Case Study n.2: misknowing your make rules</title>
	<guid isPermaLink="false">urn:uuid:f23d00f7-ca46-4789-81c0-107f201d6944</guid>
	<link>http://blog.flameeyes.eu/articles/2008/08/29/for-a-parallel-world-case-study-n-2-misknowing-your-make-rules</link>
	<description>&lt;img src=&quot;http://planet.gentoo.org/images/flameeyes.png&quot; width=&quot;&quot; height=&quot;&quot; alt=&quot;&quot; align=&quot;right&quot; style=&quot;float: right;&quot;&gt;&lt;p&gt;Here comes another case study about parallel make failures and fixes. This time I&amp;#8217;m going to write about a much less common, and more difficult to understand, type of failure. I have spotted and fixed this failure in &lt;a href=&quot;http://www.mono-project.com/GtkSharp&quot;&gt;gtk#&lt;/a&gt; (yes I have it installed).&lt;/p&gt;


	&lt;p&gt;Let&amp;#8217;s see the failure to begin with:&lt;/p&gt;


&lt;div class=&quot;typocode&quot;&gt;&lt;pre&gt;&lt;code class=&quot;typocode_default  prettyprint&quot;&gt;Creating policy.2.4.glib-sharp.dll
Creating policy.2.4.glib-sharp.dll
Creating policy.2.4.glib-sharp.dll
ALINK: error A1019: Metadata failure creating assembly -- System.IO.FileNotFoundException: Could not find file &amp;quot;/var/tmp/portage/dev-dotnet/gtk-sharp-2.10.2/work/gtk-sharp-2.10.2/glib/policy.2.4.glib-sharp.dll&amp;quot;.
File name: &amp;quot;/var/tmp/portage/dev-dotnet/gtk-sharp-2.10.2/work/gtk-sharp-2.10.2/glib/policy.2.4.glib-sharp.dll&amp;quot;
  at System.IO.FileStream..ctor (System.String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, Boolean anonymous, FileOptions options) [0x00000] 
  at System.IO.FileStream..ctor (System.String path, FileMode mode, FileAccess access, FileShare share) [0x00000] 
  at (wrapper remoting-invoke-with-check) System.IO.FileStream:.ctor (string,System.IO.FileMode,System.IO.FileAccess,System.IO.FileShare)
  at System.IO.File.OpenRead (System.String path) [0x00000] 
  at Mono.Security.StrongName.Sign (System.String fileName) [0x00000] 
  at System.Reflection.Emit.AssemblyBuilder.Save (System.String assemblyFileName, PortableExecutableKinds portableExecutableKind, ImageFileMachine imageFileMachine) [0x00000] 
  at System.Reflection.Emit.AssemblyBuilder.Save (System.String assemblyFileName) [0x00000] 
  at Mono.AssemblyLinker.AssemblyLinker.DoIt () [0x00000] 
ALINK: error A1019: Metadata failure creating assembly -- System.IO.IOException: Sharing violation on path /var/tmp/portage/dev-dotnet/gtk-sharp-2.10.2/work/gtk-sharp-2.10.2/glib/policy.2.4.glib-sharp.dll
  at System.IO.FileStream..ctor (System.String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, Boolean anonymous, FileOptions options) [0x00000] 
  at System.IO.FileStream..ctor (System.String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, Boolean isAsync, Boolean anonymous) [0x00000] 
  at System.IO.FileStream..ctor (System.String path, FileMode mode, FileAccess access) [0x00000] 
  at (wrapper remoting-invoke-with-check) System.IO.FileStream:.ctor (string,System.IO.FileMode,System.IO.FileAccess)
  at System.Reflection.Emit.ModuleBuilder.Save () [0x00000] 
  at System.Reflection.Emit.AssemblyBuilder.Save (System.String assemblyFileName, PortableExecutableKinds portableExecutableKind, ImageFileMachine imageFileMachine) [0x00000] 
  at System.Reflection.Emit.AssemblyBuilder.Save (System.String assemblyFileName) [0x00000] 
  at Mono.AssemblyLinker.AssemblyLinker.DoIt () [0x00000] 
Creating policy.2.6.glib-sharp.dll
Creating policy.2.6.glib-sharp.dll
Creating policy.2.6.glib-sharp.dll
ALINK: error A1019: Metadata failure creating assembly -- System.IO.IOException: Sharing violation on path /var/tmp/portage/dev-dotnet/gtk-sharp-2.10.2/work/gtk-sharp-2.10.2/glib/policy.2.6.glib-sharp.dll
  at System.IO.FileStream..ctor (System.String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, Boolean anonymous, FileOptions options) [0x00000] 
  at System.IO.FileStream..ctor (System.String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, Boolean isAsync, Boolean anonymous) [0x00000] 
  at System.IO.FileStream..ctor (System.String path, FileMode mode, FileAccess access) [0x00000] 
  at (wrapper remoting-invoke-with-check) System.IO.FileStream:.ctor (string,System.IO.FileMode,System.IO.FileAccess)
  at System.Reflection.Emit.ModuleBuilder.Save () [0x00000] 
  at System.Reflection.Emit.AssemblyBuilder.Save (System.String assemblyFileName, PortableExecutableKinds portableExecutableKind, ImageFileMachine imageFileMachine) [0x00000] 
  at System.Reflection.Emit.AssemblyBuilder.Save (System.String assemblyFileName) [0x00000] 
  at Mono.AssemblyLinker.AssemblyLinker.DoIt () [0x00000] 
Creating policy.2.8.glib-sharp.dll
Creating policy.2.8.glib-sharp.dll
Creating policy.2.8.glib-sharp.dll
ALINK: error A1019: Metadata failure creating assembly -- System.IO.IOException: Sharing violation on path /var/tmp/portage/dev-dotnet/gtk-sharp-2.10.2/work/gtk-sharp-2.10.2/glib/policy.2.8.glib-sharp.dll
  at System.IO.FileStream..ctor (System.String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, Boolean anonymous, FileOptions options) [0x00000] 
  at System.IO.FileStream..ctor (System.String path, FileMode mode, FileAccess access, FileShare share) [0x00000] 
  at (wrapper remoting-invoke-with-check) System.IO.FileStream:.ctor (string,System.IO.FileMode,System.IO.FileAccess,System.IO.FileShare)
  at System.IO.File.OpenWrite (System.String path) [0x00000] 
  at Mono.Security.StrongName.Sign (System.String fileName) [0x00000] 
  at System.Reflection.Emit.AssemblyBuilder.Save (System.String assemblyFileName, PortableExecutableKinds portableExecutableKind, ImageFileMachine imageFileMachine) [0x00000] 
  at System.Reflection.Emit.AssemblyBuilder.Save (System.String assemblyFileName) [0x00000] 
  at Mono.AssemblyLinker.AssemblyLinker.DoIt () [0x00000] 
make[3]: *** [policy.2.4.glib-sharp.dll] Error 1
make[3]: *** Waiting for unfinished jobs....
make[2]: *** [all-recursive] Error 1
make[1]: *** [all-recursive] Error 1
make: *** [all] Error 2&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

	&lt;p&gt;Okay so there are some failures during calling &amp;#8220;alink&amp;#8221;, in particular it reports &amp;#8220;sharing violations&amp;#8221;. I suppose the name of the error message is derived from the original .NET as &amp;#8220;sharing violation&amp;#8221; is what Windows reports when two applications try to write to the same file at once, or one tries to write to a file that is locked down by someone else.&lt;/p&gt;


	&lt;p&gt;But I want to put some emphasis on something in particular:&lt;/p&gt;


&lt;div class=&quot;typocode&quot;&gt;&lt;pre&gt;&lt;code class=&quot;typocode_default  prettyprint&quot;&gt;Creating policy.2.4.glib-sharp.dll
Creating policy.2.4.glib-sharp.dll
Creating policy.2.4.glib-sharp.dll
[...]
Creating policy.2.6.glib-sharp.dll
Creating policy.2.6.glib-sharp.dll
Creating policy.2.6.glib-sharp.dll
[...]
Creating policy.2.8.glib-sharp.dll
Creating policy.2.8.glib-sharp.dll
Creating policy.2.8.glib-sharp.dll
[...]
make[3]: *** [policy.2.4.glib-sharp.dll] Error 1
make[3]: *** Waiting for unfinished jobs....
make[2]: *** [all-recursive] Error 1
make[1]: *** [all-recursive] Error 1
make: *** [all] Error 2&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

	&lt;p&gt;As you can see each policy is reportedly created thrice. If you, like me, know what to look for in a parallel make failure, you&amp;#8217;ll also notice that there are three policies being created there. This is quite important and interesting, as it already suggests to an experienced eye what the problem is, but let&amp;#8217;s go on step by step.&lt;/p&gt;


	&lt;p&gt;Once again, we know the software is built with &lt;code&gt;automake&lt;/code&gt; so you don&amp;#8217;t expect parallel make failures, not from the default rules at least. But C#/Mono is not one of the languages that &lt;code&gt;automake&lt;/code&gt; supports out of the box. Which means that almost surely there are custom rules involved.&lt;/p&gt;


	&lt;p&gt;As they are using custom rules, rather than &lt;code&gt;automake&lt;/code&gt; the problem involves knowledge of &lt;span class=&quot;caps&quot;&gt;GNU&lt;/span&gt; &lt;code&gt;make&lt;/code&gt; (or any other &lt;code&gt;make&lt;/code&gt;, but let&amp;#8217;s assume &lt;span class=&quot;caps&quot;&gt;GNU&lt;/span&gt; for now, it&amp;#8217;s the most common in Free Software after all, for good or bad).&lt;/p&gt;


	&lt;p&gt;Let&amp;#8217;s look for the &amp;#8220;Creating&amp;#8221; line in the &lt;code&gt;Makefile.am&lt;/code&gt; file:&lt;/p&gt;


&lt;div class=&quot;typocode&quot;&gt;&lt;pre&gt;&lt;code class=&quot;typocode_default  prettyprint&quot;&gt;$(POLICY_ASSEMBLIES): $(top_builddir)/policy.config gtk-sharp.snk
        @for i in $(POLICY_VERSIONS); do        \
          echo &amp;quot;Creating policy.$$i.$(ASSEMBLY)&amp;quot;;       \
          sed -e &amp;quot;s/@ASSEMBLY_NAME@/$(ASSEMBLY_NAME)/&amp;quot; -e &amp;quot;s/@POLICY@/$$i/&amp;quot; $(top_builddir)/policy.config &amp;gt; policy.$$i.config;  \
          $(AL) -link:policy.$$i.config -out:policy.$$i.$(ASSEMBLY) -keyfile:gtk-sharp.snk;     \
        done&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

	&lt;p&gt;If you had to deal with a similar failure before (as I did), you knew already what you were going to find in that rule. I&amp;#8217;m referring to the &lt;code&gt;for&lt;/code&gt; loop. It&amp;#8217;s a common mistake for people not knowing &lt;code&gt;make&lt;/code&gt; well enough to create a rule like this. They expect that declaring multiple targets in the rule means, for make &amp;#8220;build all of these with a single command&amp;#8221;, while it actually means &amp;#8220;for any of these files, use this command to generate it&amp;#8221;.&lt;/p&gt;


	&lt;p&gt;The result is that, as you&amp;#8217;re going to need three different files, make will launch three times that code in parallel. Which not only will waste a huge amount of time but will also fail, as the three of them might try to access the same resource at once (like is happening here).&lt;/p&gt;


	&lt;p&gt;The solution for this kind of problem is not really obvious, as it often requires to rewrite the rules entirely. My usual way of thinking of the problem here is that whoever wrote the rule didn&amp;#8217;t know &lt;code&gt;make&lt;/code&gt; well enough and made a mistake, and it&amp;#8217;s easier to just rewrite the rule.&lt;/p&gt;


	&lt;p&gt;Let&amp;#8217;s decompose the rule then, ignoring the for loop, and the echo line, what we have is these two commands:&lt;/p&gt;


&lt;div class=&quot;typocode&quot;&gt;&lt;pre&gt;&lt;code class=&quot;typocode_default  prettyprint&quot;&gt;sed -e &amp;quot;s/@ASSEMBLY_NAME@/$(ASSEMBLY_NAME)/&amp;quot; -e &amp;quot;s/@POLICY@/$$i/&amp;quot; $(top_builddir)/policy.config &amp;gt; policy.$$i.config
$(AL) -link:policy.$$i.config -out:policy.$$i.$(ASSEMBLY) -keyfile:gtk-sharp.snk&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

	&lt;p&gt;Both of these two commands create a different file, one is intermediate, and is the policy configuration, the other is the final one. This again shows there&amp;#8217;s a lack of understanding of how &lt;code&gt;make&lt;/code&gt; is supposed to work, again a very common one, so I&amp;#8217;m not blaming the developer here, &lt;code&gt;make&lt;/code&gt; is a strange language. So there are two dependent steps involved here: the final requested result is the policy file, but to generate that you need the policy configuration.&lt;/p&gt;


	&lt;p&gt;Let&amp;#8217;s start with the policy configuration then, the actual generation command is a simple &lt;code&gt;sed&lt;/code&gt; call that takes the generic configuration and sets the assembly name and policy version in it. The problem here is obviously to replace the use of &lt;code&gt;$$i&lt;/code&gt; (the variable used in the for loop) with the actual policy name. Just so we&amp;#8217;re clear, the policy version is the 2.4, 2.6 and 2.8 string we have seen before. Luckily this is a pretty common task for a software like &lt;code&gt;make&lt;/code&gt; and there is a construct that gets in our help: static pattern rules.&lt;/p&gt;


	&lt;p&gt;The name of the generated file is always in the format &lt;code&gt;policy.$VERSION.config&lt;/code&gt;, and we need to know the &lt;code&gt;$VERSION&lt;/code&gt; part for using it in &lt;code&gt;sed&lt;/code&gt;. Nothing more suited for this than static pattern rules. Let&amp;#8217;s replace the variable section of the filename with the magic symbol &lt;code&gt;%&lt;/code&gt;, &lt;code&gt;make&lt;/code&gt; will take care of expanding that as needed, and will also provide us a special variable in the rule, &lt;code&gt;$*&lt;/code&gt; that will take the value of its expansion. The rule then becomes this:&lt;/p&gt;


&lt;div class=&quot;typocode&quot;&gt;&lt;pre&gt;&lt;code class=&quot;typocode_default  prettyprint&quot;&gt;policy.%.config: $(top_builddir)/policy.config
    sed -e &amp;quot;s/@ASSEMBLY_NAME@/$(ASSEMBLY_NAME)/&amp;quot; -e &amp;quot;s/@POLICY@/$*/&amp;quot; $(top_builddir)/policy.config &amp;gt; $@&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

	&lt;p&gt;And here we&amp;#8217;ve created our policy configuration files, in a parallel build friendly way as none of them is dependent on the other, the three &lt;code&gt;sed&lt;/code&gt; commands can easily be executed in parallel.&lt;/p&gt;


	&lt;p&gt;Now it&amp;#8217;s time to create the actual policy assembly, again, we&amp;#8217;re going to make use of the static pattern rules, and making the best use of the fact that you can also declare dependencies based on static patterns.&lt;/p&gt;


	&lt;p&gt;Instead of a simple two-entries rule, this is going to be a three-entries rule, the first entry defines the list of targets that this rule may apply to, that is the same as it was before (&lt;code&gt;$(POLICY_ASSEMBLIES)&lt;/code&gt;), the second and third are the usual ones, defining target and dependencies.&lt;/p&gt;


	&lt;p&gt;While the original rule depended directly on the generic policy config, this one will only depend on the actual final config, as the rule we just wrote for the configuration files will take care of it. So the final rule to generate the wanted assembly will be:&lt;/p&gt;


&lt;div class=&quot;typocode&quot;&gt;&lt;pre&gt;&lt;code class=&quot;typocode_default  prettyprint&quot;&gt;$(POLICY_ASSEMBLIES) : policy.%.$(ASSEMBLY): policy.%.config gtk-sharp.snk
    $(AL) -link:policy.$*.config -out:$@ -keyfile:gtk-sharp.snk&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

	&lt;p&gt;At this point, the same has just to be applied to all the involved &lt;code&gt;Makefile.am&lt;/code&gt; files in the package, like I did on &lt;a href=&quot;https://bugzilla.novell.com/show_bug.cgi?id=421063&quot;&gt;the patch I submitted&lt;/a&gt;, and the package becomes totally parallel build friendly.&lt;/p&gt;


	&lt;p&gt;There is another nice addition to this: you&amp;#8217;re trading one complex, difficult to read and broken rule with two one-liner rules, which makes the code much more readable and understandable if you&amp;#8217;re looking for a mistake.&lt;/p&gt;</description>
	<pubDate>Fri, 29 Aug 2008 11:03:00 +0000</pubDate>
	<dc:creator>Diego Pettenò (flameeyes)</dc:creator>
</item>
<item>
	<title>Diego Pettenò: For A Parallel World. Case Study n.1: automake variables misuse</title>
	<guid isPermaLink="false">urn:uuid:2bde95ea-076c-46d5-b7cc-71ec951cc57c</guid>
	<link>http://blog.flameeyes.eu/articles/2008/08/29/for-a-parallel-world-case-study-n-1-automake-variables-misuse</link>
	<description>&lt;img src=&quot;http://planet.gentoo.org/images/flameeyes.png&quot; width=&quot;&quot; height=&quot;&quot; alt=&quot;&quot; align=&quot;right&quot; style=&quot;float: right;&quot;&gt;&lt;p&gt;Following &lt;a href=&quot;http://blog.flameeyes.eu/articles/2008/08/27/parallel-emerge-versus-parallel-make&quot;&gt;my post about parallel builds&lt;/a&gt; I started today to tackle down some issues with packages not properly building with parallel make. Most of them end up being quite easy to fix, some of them don&amp;#8217;t have to be fixed at all, just need the &lt;code&gt;-j1&lt;/code&gt; dropped out of the ebuild because they already build fine (this usually is due to an older version failing and the ebuild never being revisited).&lt;/p&gt;


	&lt;p&gt;As I haven&amp;#8217;t been able yet to find time and energy to restart writing full-fledged guides (the &lt;a href=&quot;http://blog.flameeyes.eu/articles/2008/08/23/caffeine-addiction-coffee-and-gallbladders&quot;&gt;caffeine starvation&lt;/a&gt; doesn&amp;#8217;t help), I decided to start writing some &amp;#8220;case studies&amp;#8221;. What I mean is that I&amp;#8217;ll try to blog about some common problems I found in a particular package, and show the process to fix that. Hopefully, this way it&amp;#8217;ll be easier for other to fix similar problems in the future. This also goes toward the goal of &lt;a href=&quot;http://blog.flameeyes.eu/articles/2008/08/13/what-did-enterprise-do&quot;&gt;showing more of what Yamato does&lt;/a&gt; (by the way, once again thanks to everybody who contributed, and you all are still able to chip in if you want to help me).&lt;/p&gt;


	&lt;p&gt;The first case study in the list is for &lt;code&gt;libbtctl&lt;/code&gt; (that I think is deprecated for what I can understand of its author&amp;#8217;s comment).&lt;/p&gt;


	&lt;p&gt;When building with &lt;code&gt;-j8&lt;/code&gt; (and dropping the ebuild serialisation), the build will fail with an error similar to this:&lt;/p&gt;


&lt;div class=&quot;typocode&quot;&gt;&lt;pre&gt;&lt;code class=&quot;typocode_default  prettyprint&quot;&gt;libtool: compile:  x86_64-pc-linux-gnu-gcc -DHAVE_CONFIG_H -I. -I.. -g -I../intl -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -I/usr/include -I/usr/include/pygtk-2.0 -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -I/usr/include/python2.5 -I/usr/include -DDATA_DIR=\&amp;quot;/usr/share/libbtctl\&amp;quot; -DGETTEXT_PACKAGE=\&amp;quot;libbtctl\&amp;quot; -march=barcelona -O2 -ftracer -pipe -ftree-vectorize -Wformat=2 -Wno-error -Wno-pointer-sign -g -ggdb -Wstrict-aliasing=2 -Wno-format-zero-length -MT btctl-pymodule.lo -MD -MP -MF .deps/btctl-pymodule.Tpo -c btctl-pymodule.c -o btctl-pymodule.o &amp;gt;/dev/null 2&amp;gt;&amp;amp;1
libtool: compile:  x86_64-pc-linux-gnu-gcc -DHAVE_CONFIG_H -I. -I.. -g -I../intl -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -I/usr/include -I/usr/include/pygtk-2.0 -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -I/usr/include/python2.5 -I/usr/include -DDATA_DIR=\&amp;quot;/usr/share/libbtctl\&amp;quot; -DGETTEXT_PACKAGE=\&amp;quot;libbtctl\&amp;quot; -march=barcelona -O2 -ftracer -pipe -ftree-vectorize -Wformat=2 -Wno-error -Wno-pointer-sign -g -ggdb -Wstrict-aliasing=2 -Wno-format-zero-length -MT btctl-py.lo -MD -MP -MF .deps/btctl-py.Tpo -c btctl-py.c -o btctl-py.o &amp;gt;/dev/null 2&amp;gt;&amp;amp;1
libtool: link: cannot find the library `libbtctl.la' or unhandled argument `libbtctl.la'
make[3]: *** [btlist] Error 1
make[3]: *** Waiting for unfinished jobs....
libtool: link: cannot find the library `libbtctl.la' or unhandled argument `libbtctl.la'
make[3]: *** [btctl-async-test] Error 1
libtool: link: cannot find the library `libbtctl.la' or unhandled argument `libbtctl.la'
make[3]: *** [btctl-discovery-test] Error 1
libtool: link: cannot find the library `libbtctl.la' or unhandled argument `libbtctl.la'
make[3]: *** [btsignal-watch] Error 1
make[2]: *** [all] Error 2
make[1]: *** [all-recursive] Error 1
make: *** [all] Error 2&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

	&lt;p&gt;It&amp;#8217;s an easy error to understand, it cannot find &lt;code&gt;libbtctl.la&lt;/code&gt;, piece of cake. It&amp;#8217;s more of a problem to find the cause if you don&amp;#8217;t know that beforehand.&lt;/p&gt;


	&lt;p&gt;The first comment to have here is that the buildsystem used is standard autotools; standard autotools, if used with their internal rules, are not subject to parallel-make failures. They don&amp;#8217;t build directories in parallel, but they do the rest in as much parallel as they can. This means that it&amp;#8217;s either using a custom rule, or it has misused autotools.&lt;/p&gt;


	&lt;p&gt;Another common problem with &amp;#8220;cannot find the library&amp;#8221; problems with libtool is when the library is in a different directory, and the order of subdirectories is wrong; this rarely creeps into the distributed tarball, if upstream is smart enough to run a &lt;code&gt;make distcheck&lt;/code&gt; or to at least build their own tarballs, but you never know; usually you find this while trying to change the way interdependent libraries links against so that they can be built with &lt;code&gt;--as-needed&lt;/code&gt;.&lt;/p&gt;


	&lt;p&gt;But there&amp;#8217;s a tell-tale sign in the message: the library is not prefixed with any path, so it&amp;#8217;s not being built in a different directory but in the same one. This makes it very suspicious.&lt;/p&gt;


	&lt;p&gt;The first error comes from &lt;code&gt;btlist&lt;/code&gt;, so let&amp;#8217;s extract the source tarball, and look in &lt;code&gt;src/Makefile.am&lt;/code&gt; (because that&amp;#8217;s the most likely directory where it is defined, we could have grepped but it&amp;#8217;s easier this way):&lt;/p&gt;


&lt;div class=&quot;typocode&quot;&gt;&lt;pre&gt;&lt;code class=&quot;typocode_default  prettyprint&quot;&gt;noinst_PROGRAMS=btlist [...]

[...]

btlist_LDFLAGS = \
        libbtctl.la  $(BTCTL_LIBS) \
        $(BLUETOOTH_LIBS) $(OPENOBEX_LIBS)&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

	&lt;p&gt;What do you know? this is the only property defined for the &lt;code&gt;btlist&lt;/code&gt; target, and indeed, it doesn&amp;#8217;t look right, the &lt;code&gt;LDFLAGS&lt;/code&gt; variable should be used to pass flags to be used by the linker (like &lt;code&gt;-Wl,--as-needed&lt;/code&gt;), not the names of libraries. Even worse, name of libraries that have to be built as prerequisites for the target.&lt;/p&gt;


	&lt;p&gt;&lt;strong&gt;Edit:&lt;/strong&gt; Rémi made me notice that I didn&amp;#8217;t give the actual solution here, for those who don&amp;#8217;t know &lt;code&gt;automake&lt;/code&gt; so well. The correct variable to pass the libraries on is either &lt;code&gt;LIBADD&lt;/code&gt; (for other libraries) or &lt;code&gt;LDADD&lt;/code&gt; (for final executables). As &lt;code&gt;btlist&lt;/code&gt; is in &lt;code&gt;PROGRAMS&lt;/code&gt;, the latter is what we need to use.&lt;/p&gt;


	&lt;p&gt;And obviously the same mistake is repeated for almost every target in the &lt;code&gt;Makefile.am&lt;/code&gt;. But luckily there&amp;#8217;s a very active upstream, and the bug can be solved the same day &lt;a href=&quot;http://bugzilla.gnome.org/show_bug.cgi?id=549688&quot;&gt;it is reported&lt;/a&gt;.&lt;/p&gt;


	&lt;p&gt;It&amp;#8217;s not so difficult once you see how to do it, is it?&lt;/p&gt;</description>
	<pubDate>Fri, 29 Aug 2008 06:27:00 +0000</pubDate>
	<dc:creator>Diego Pettenò (flameeyes)</dc:creator>
</item>
<item>
	<title>Davide Italiano: Riemann&amp;#8217;s dead..</title>
	<guid isPermaLink="false">http://davzero.wordpress.com/?p=30</guid>
	<link>http://davzero.wordpress.com/2008/08/28/riemanns-dead/</link>
	<description>&lt;img src=&quot;http://planet.gentoo.org/images/dav_it.png&quot; width=&quot;&quot; height=&quot;&quot; alt=&quot;&quot; align=&quot;right&quot; style=&quot;float: right;&quot;&gt;&lt;div class=&quot;snap_preview&quot;&gt;&lt;br /&gt;&lt;p&gt;..and I&amp;#8217;m not talking about the famous German mathematician. I&amp;#8217;m talking about my ~x86-fbsd box.&lt;/p&gt;
&lt;p&gt;It&amp;#8217;s dead, and actually I haven&amp;#8217;t a way to replace it. So, donations of every type or access to other boxes running gentoo/freebsd 7.0 are really _appreciated_. I&amp;#8217;m asking so because gentoo/freebsd is going to be released, we&amp;#8217;re doing an huge work testing and keywording packages, and it couldn&amp;#8217;t be good if we stop it now.  If you want to donate something please drop me two lines at dav_it at g.o or leave a comment to this post.&lt;/p&gt;
&lt;p&gt;Thanks a lot&lt;/p&gt;
&lt;p&gt;not_so_happy davit&lt;/p&gt;
&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/categories/davzero.wordpress.com/30/&quot; /&gt; &lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/tags/davzero.wordpress.com/30/&quot; /&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/gocomments/davzero.wordpress.com/30/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/comments/davzero.wordpress.com/30/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/godelicious/davzero.wordpress.com/30/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/delicious/davzero.wordpress.com/30/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/gostumble/davzero.wordpress.com/30/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/stumble/davzero.wordpress.com/30/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/godigg/davzero.wordpress.com/30/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/digg/davzero.wordpress.com/30/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/goreddit/davzero.wordpress.com/30/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/reddit/davzero.wordpress.com/30/&quot; /&gt;&lt;/a&gt; &lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://stats.wordpress.com/b.gif?host=davzero.wordpress.com&amp;amp;blog=4292783&amp;amp;post=30&amp;amp;subd=davzero&amp;amp;ref=&amp;amp;feed=1&quot; /&gt;&lt;/div&gt;</description>
	<pubDate>Thu, 28 Aug 2008 21:31:13 +0000</pubDate>
	<dc:creator>Davide Italiano (dav_it)</dc:creator>
</item>
<item>
	<title>Ben de Groot: Advice To Budding Web Designers &amp;amp;amp; Developers</title>
	<guid isPermaLink="false">tag:ben.liveforge.org,2008:advice-to-budding-web-designers-amp-developers/1219925325</guid>
	<link>http://feeds.liveforge.org/~r/BitsByBen/full/atom/~3/377443879/advice-to-budding-web-designers-developers</link>
	<description>&lt;p&gt;Some solid advice for people wanting to get into web design and/or web development by &lt;a href=&quot;http://ricknunn.com/blog/2008/08/14/advice-to-budding-web-designers-developers/&quot;&gt;Rick Nunn&lt;/a&gt; and &lt;a href=&quot;http://jamazon.co.uk/web/2008/08/18/advice-for-budding-web-developers/&quot;&gt;Jamie Thompson&lt;/a&gt;. Obviously, there is lots of advice to be found on the web, but these are good places to start.&lt;/p&gt;&lt;img src=&quot;http://feeds.liveforge.org/~r/BitsByBen/full/atom/~4/377443879&quot; height=&quot;1&quot; width=&quot;1&quot; /&gt;</description>
	<pubDate>Thu, 28 Aug 2008 20:11:04 +0000</pubDate>
	<dc:creator>Ben de Groot (yngwin)</dc:creator>
</item>
<item>
	<title>Diego Pettenò: Warnings, to keep from doing the wrong thing</title>
	<guid isPermaLink="false">urn:uuid:a76db501-e683-4920-b845-245edc81974c</guid>
	<link>http://blog.flameeyes.eu/articles/2008/08/28/warnings-to-keep-from-doing-the-wrong-thing</link>
	<description>&lt;img src=&quot;http://planet.gentoo.org/images/flameeyes.png&quot; width=&quot;&quot; height=&quot;&quot; alt=&quot;&quot; align=&quot;right&quot; style=&quot;float: right;&quot;&gt;&lt;p&gt;In the IT world we&amp;#8217;re obviously full of practises that, albeit working, are very much hinted against because risky, broken on different setups or just stupid. Many of these practises are usually frequent enough either because they can be easy to apply without knowing, or because they were documented somewhere and people read and spread it.&lt;/p&gt;


	&lt;p&gt;These practices, in most compiled programming languages, when using optimising compilers, are guarded by &lt;strong&gt;warnings&lt;/strong&gt;, almost-errors that are printed on the error stream of the compiler itself when it identifies a suspect construct. If you use Gentoo, you know them very well as you certainly see lots of them (unless you have &lt;code&gt;-w&lt;/code&gt; in your &lt;span class=&quot;caps&quot;&gt;CFLAGS&lt;/span&gt;).&lt;/p&gt;


	&lt;p&gt;Lots of people ignore warnings, because either fixing them is too much work as it would require changing a huge part of the code, or because they are not stopping them from compiling. Much more rarely it happens that the code actually works fine and the warning is bogus; it&amp;#8217;s not unheard of though. Also the more advanced the warning, the more probabilities it might be implemented wrong.&lt;/p&gt;


	&lt;p&gt;On the other hand, the vast majority of warnings are put there for a good reason, and should actually be properly taken care of. These warnings could have been used to make a program 64-bit safe years before 64-bit systems started to be widespread, or might have made sure the code for a project written years before &lt;span class=&quot;caps&quot;&gt;GCC 4&lt;/span&gt;.3 were to build correctly with the latest version of the compiler. Of course they are not the one and absolute solution, as many changes might not have had warnings before (like the &lt;code&gt;std::&lt;/code&gt; namespace change), but it could have helped.&lt;/p&gt;


	&lt;p&gt;But I don&amp;#8217;t want to talk about compiler warnings today, but rather about Portage warnings. Since a few versions, thanks also to the availability of Zack and Marius, Portage started throwing warnings after a successful merge, giving you insight with possible problems with an ebuild or with the software the ebuild uses. These are pretty useful as they can catch for you if a &lt;code&gt;./configure&lt;/code&gt; switch was renamed, or removed, after a version bump; and they might tell you if the software is doing something risky and you should warn upstream about that. (Why should you warn upstream? Well, packagers often see lots more code than the daily programmer it&amp;#8217;s not uncommon that a programmer might not know about an issue that a packager might know (because of the distribution policy about the problem).&lt;/p&gt;


	&lt;p&gt;In addition to these that might be setup-dependent, &lt;code&gt;repoman&lt;/code&gt; also started warning about suspect &lt;code&gt;(R)DEPEND&lt;/code&gt; and other issues with the ebuilds. Hopefully, even if repoman will probably become slower by piling up checks in it, it will be nice to make sure developers know what they are committing in.&lt;/p&gt;


	&lt;p&gt;This is particularly important because there are quite a few sub-optimal ebuilds in the tree already, and while it&amp;#8217;s difficult to find and fix all of them, it&amp;#8217;d be quite nice if we could avoid introducing new ones.&lt;/p&gt;


	&lt;p&gt;Unfortunately, I start to worry that it might not be as feasible as I hoped, because there is a huge fault in my idea that adding warning will keep people away from the mistakes: there is lack of documentation on these problems. As much as I wish I could count my blog as a source of documentation I know this is far from the truth, but I haven&amp;#8217;t been able to start writing docs again yet because I was following this world rebuild closely, at least to understand how to follow my priorities. I know I&amp;#8217;ll be working on quite a few things in the future, especially once the hospital is just a memory, and hopefully I&amp;#8217;ll be able to write enough doc so that the warnings become clear enough that the whole tree will be safe for everybody to use under whichever circumstances.&lt;/p&gt;</description>
	<pubDate>Thu, 28 Aug 2008 20:01:00 +0000</pubDate>
	<dc:creator>Diego Pettenò (flameeyes)</dc:creator>
</item>
<item>
	<title>Ben de Groot: Preview vim colorschemes</title>
	<guid isPermaLink="false">tag:ben.liveforge.org,2008:preview-vim-colorschemes/1219928312</guid>
	<link>http://feeds.liveforge.org/~r/BitsByBen/full/atom/~3/377114708/preview-vim-colorschemes</link>
	<description>&lt;p&gt;Preview &lt;a href=&quot;http://www.cs.cmu.edu/~maverick/VimColorSchemeTest/index.html&quot;&gt;321 colorschemes&lt;/a&gt; for &lt;a href=&quot;http://www.vim.org/&quot;&gt;Vim&lt;/a&gt;. I'm currently using &lt;a href=&quot;http://www.vim.org/scripts/script.php?script_id=1778&quot;&gt;wombat&lt;/a&gt; in gVim (well, &lt;a href=&quot;http://cream.sf.net/&quot;&gt;cream&lt;/a&gt; actually).&lt;/p&gt;&lt;img src=&quot;http://feeds.liveforge.org/~r/BitsByBen/full/atom/~4/377114708&quot; height=&quot;1&quot; width=&quot;1&quot; /&gt;</description>
	<pubDate>Thu, 28 Aug 2008 12:58:34 +0000</pubDate>
	<dc:creator>Ben de Groot (yngwin)</dc:creator>
</item>
<item>
	<title>Steve Dibb: being an adult is boring</title>
	<guid isPermaLink="false">http://wonkabar.org/archives/457</guid>
	<link>http://wonkabar.org/archives/457</link>
	<description>&lt;img src=&quot;http://planet.gentoo.org/images/beandog.png&quot; width=&quot;&quot; height=&quot;&quot; alt=&quot;&quot; align=&quot;right&quot; style=&quot;float: right;&quot;&gt;&lt;p&gt;I got this unexpected windfall this week (a check from an old job that I forgot about), and honestly, one of the first things I thought about when I got it was, &amp;#8220;Oh, good, I can pay my rent early.&amp;#8221;&lt;/p&gt;
&lt;p&gt;Something has obviously gone horribly wrong.&lt;/p&gt;
&lt;p&gt;I think I need to go buy a framed poster of &lt;a href=&quot;http://www.moviegoods.com/movie_poster/small_soldiers_1998.htm&quot;&gt;Small Soldiers&lt;/a&gt; or something to make up for it.&lt;/p&gt;</description>
	<pubDate>Wed, 27 Aug 2008 14:00:43 +0000</pubDate>
	<dc:creator>Steve Dibb (beandog)</dc:creator>
</item>
<item>
	<title>Diego Pettenò: Parallel emerge versus parallel make</title>
	<guid isPermaLink="false">urn:uuid:07634d80-9fd8-4f32-8f09-dff6aade8a4e</guid>
	<link>http://blog.flameeyes.eu/articles/2008/08/27/parallel-emerge-versus-parallel-make</link>
	<description>&lt;img src=&quot;http://planet.gentoo.org/images/flameeyes.png&quot; width=&quot;&quot; height=&quot;&quot; alt=&quot;&quot; align=&quot;right&quot; style=&quot;float: right;&quot;&gt;&lt;p&gt;Since I now have a true &lt;span class=&quot;caps&quot;&gt;SMP&lt;/span&gt; system, it&amp;#8217;s obvious that I&amp;#8217;m expected to run parallel make to make use of this. Indeed, I set in my &lt;code&gt;make.conf&lt;/code&gt; to use &lt;code&gt;-j8&lt;/code&gt; where I was using &lt;code&gt;-j1&lt;/code&gt; before. This has a few problems in general and it&amp;#8217;s going to take some more work to be properly supported.&lt;/p&gt;


	&lt;p&gt;But before I start to get to those problems, I&amp;#8217;d like to provide a public, extended answer to a &lt;a href=&quot;http://www.minimalblue.com/web/&quot;&gt;friend of mine&lt;/a&gt; who asked me earlier today why I&amp;#8217;m not using Portage 2.2&amp;#8217;s parallel emerge feature.&lt;/p&gt;


	&lt;p&gt;Well, first of all, parallel emerge is helpful on &lt;span class=&quot;caps&quot;&gt;SMP&lt;/span&gt; system during a first install, a world rebuild (which is actually what I&amp;#8217;m doing now) or in a long update after some time spent offline; it is of little help when doing daily upgrades, or when installing a new package.&lt;/p&gt;


	&lt;p&gt;The reason is that you can effectively only merge in parallel packages that are independent of each other. And this is not so easy to ensure, to avoid breaking stuff, I&amp;#8217;m sure portage is taking the safe route and rather serialise instead of risking brokenness. But even this, expects the dependency tree to be &lt;em&gt;complete&lt;/em&gt;. You won&amp;#8217;t find it complete because packages building with &lt;span class=&quot;caps&quot;&gt;GCC&lt;/span&gt; are not going to depend on it. The system package set is not going to be put in the &lt;span class=&quot;caps&quot;&gt;DEPEND&lt;/span&gt; variables of each ebuilds, as it is, and this opens the proverbial vase to a huge amount of problems, in my view. (Now you can also look up &lt;a href=&quot;http://blog.flameeyes.eu/articles/2008/01/02/proposal-reduce-the-size-of-system-packages-set&quot;&gt;an earlier proposal of mine&lt;/a&gt;, and see if it had sense then already).&lt;/p&gt;


	&lt;p&gt;When doing a world rebuild, or a long-due update, you&amp;#8217;re most likely going to find long chains that can be put in parallel, which I sincerely find risky, but they don&amp;#8217;t have to be. When installing a new package, on a system that is already well installed and worked on for a few weeks even, you&amp;#8217;ll be lucky (or unlucky) to find two or three chains at all. If you&amp;#8217;re doing daily updates, finding parallel chains is also unlikely, as the big updates (gnome, kde, &amp;#8230;) are usually interdependent.&lt;/p&gt;


	&lt;p&gt;Although it&amp;#8217;s a nice feature to have, I don&amp;#8217;t find it&amp;#8217;s going to help a lot on the long run, I think parallel make is the thing that is going to make a difference in the medium term.&lt;/p&gt;


	&lt;p&gt;Okay, so what are the problems with using &lt;code&gt;-j8&lt;/code&gt; for ebuilds then?&lt;/p&gt;


	&lt;ul&gt;
	&lt;li&gt;we express the preference in term of (GNU) &lt;code&gt;make&lt;/code&gt; parameters, but not all packages in Portage are built with &lt;code&gt;make&lt;/code&gt;, let alone &lt;span class=&quot;caps&quot;&gt;GNU&lt;/span&gt;&amp;#8217;s;&lt;/li&gt;
		&lt;li&gt;ebuilds that use a non-&lt;code&gt;make&lt;/code&gt;-compatible build system will try to parse the &lt;code&gt;MAKEOPTS&lt;/code&gt; variable to find out the number of parallel jobs to execute; this does not always work right because there can be other options, like &lt;code&gt;-s&lt;/code&gt; (which I use) that might make parsing difficult;&lt;/li&gt;
		&lt;li&gt;even &lt;code&gt;-s&lt;/code&gt; option can be useful to some non-&lt;code&gt;make&lt;/code&gt;-compatible build systems, but having to translate every option &lt;em&gt;is&lt;/em&gt; tremendously pointless and boring;&lt;/li&gt;
		&lt;li&gt;some people use a high number of jobs because they have multiple box building as a cluster, using &lt;code&gt;distcc&lt;/code&gt; or &lt;code&gt;icecream&lt;/code&gt;; these won&amp;#8217;t help with linking though, or with non-compile jobs; forcing non-compile tasks to a single job is going to discontent people using &lt;span class=&quot;caps&quot;&gt;SMP&lt;/span&gt; systems, using a job count based on network hosts for non-compile tasks is going to slow down people with single-cpu and multi-host setups;&lt;/li&gt;
		&lt;li&gt;some tasks are being serialised by ebuilds when the could be ran in parallel;&lt;/li&gt;
	&lt;/ul&gt;


	&lt;p&gt;And this is not yet taking into consideration builds