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

<channel>
	<title>Guy Rutenberg &#187; Gentoo</title>
	<atom:link href="http://www.guyrutenberg.com/tag/gentoo/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.guyrutenberg.com</link>
	<description>Keeping track of what I do</description>
	<lastBuildDate>Sat, 14 Jan 2012 11:30:25 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Missing *.la files</title>
		<link>http://www.guyrutenberg.com/2011/07/16/missing-la-files/</link>
		<comments>http://www.guyrutenberg.com/2011/07/16/missing-la-files/#comments</comments>
		<pubDate>Sat, 16 Jul 2011 18:14:34 +0000</pubDate>
		<dc:creator>Guy</dc:creator>
				<category><![CDATA[Tips]]></category>
		<category><![CDATA[Gentoo]]></category>

		<guid isPermaLink="false">http://www.guyrutenberg.com/?p=842</guid>
		<description><![CDATA[Sometimes when you compile a package it fails and complains it can&#8217;t find an *.la file for some library that is installed. Recently I had it when compiling dev-libs/gobject-introspection which complained about missing libpng14.la. The solution for this is to run: sudo lafilefixer --justfixit It won&#8217;t create the .la file, but it will fix the [...]]]></description>
			<content:encoded><![CDATA[<p>Sometimes when you compile a package it fails and complains it can&#8217;t find an <code>*.la</code> file for some library that is installed. Recently I had it when compiling <code>dev-libs/gobject-introspection</code> which complained about missing <code>libpng14.la</code>. The solution for this is to run:</p>

<div class="wp_syntax"><div class="code"><pre class="text" style="font-family:monospace;">sudo lafilefixer --justfixit</pre></div></div>

<p>It won&#8217;t create the <code>.la</code> file, but it will fix the <code>libtool</code> references so nothing points to it so packages will compile fine.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.guyrutenberg.com/2011/07/16/missing-la-files/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>search_for_updates 0.2</title>
		<link>http://www.guyrutenberg.com/2011/05/10/search_for_updates-0-2/</link>
		<comments>http://www.guyrutenberg.com/2011/05/10/search_for_updates-0-2/#comments</comments>
		<pubDate>Tue, 10 May 2011 09:02:00 +0000</pubDate>
		<dc:creator>Guy</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Gentoo]]></category>

		<guid isPermaLink="false">http://www.guyrutenberg.com/?p=815</guid>
		<description><![CDATA[This is a small update to my search_for_updates script which have been laying around. The script allows to search for updates from portage without resolving dependencies. Thus, it&#8217;s much faster than emerge -pvu world The new version lists the best version available for each package which can be updated using the --verbose flag. You can [...]]]></description>
			<content:encoded><![CDATA[<p>This is a small update to my <a href="/2010/09/19/searching-for-updates-without-emerge/"><code>search_for_updates</code></a> script which have been laying around. The script allows to search for updates from portage without resolving dependencies. Thus, it&#8217;s much faster than</p>

<div class="wp_syntax"><div class="code"><pre class="text" style="font-family:monospace;">emerge -pvu world</pre></div></div>

<p>The new version lists the best version available for each package which can be updated using the <code>--verbose</code> flag. You can download the new version from here: <a href="/wp-content/uploads/2011/05/search_for_updates-0.2">search_for_updates-0.2</a>. </p>
]]></content:encoded>
			<wfw:commentRss>http://www.guyrutenberg.com/2011/05/10/search_for_updates-0-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Kernel Configuration and nvidia-drivers</title>
		<link>http://www.guyrutenberg.com/2010/11/19/kernel-configuration-and-nvidia-drivers/</link>
		<comments>http://www.guyrutenberg.com/2010/11/19/kernel-configuration-and-nvidia-drivers/#comments</comments>
		<pubDate>Fri, 19 Nov 2010 14:41:28 +0000</pubDate>
		<dc:creator>Guy</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Tips]]></category>
		<category><![CDATA[Gentoo]]></category>
		<category><![CDATA[Kernel]]></category>

		<guid isPermaLink="false">http://www.guyrutenberg.com/?p=777</guid>
		<description><![CDATA[This is more of a note to myself, as I keep forgetting this. The propriety NVIDIA drivers, provided by the x11-drivers/nvidia-drivers dislikes alternatives. It will refuse to build against a kernel with the rivafb (CONFIG_FB_RIVA) and nvidiafb (CONFIG_FB_NVIDIA) built in or built as modules. Both can be found (and unset) under: Device Drivers -&#62; Graphics [...]]]></description>
			<content:encoded><![CDATA[<p>This is more of a note to myself, as I keep forgetting this. The propriety NVIDIA drivers, provided by the <code>x11-drivers/nvidia-drivers</code> dislikes alternatives. It will refuse to build against a kernel with the <code>rivafb</code> (<code>CONFIG_FB_RIVA</code>) and <code>nvidiafb</code> (<code>CONFIG_FB_NVIDIA</code>) built in or built as modules. Both can be found (and unset) under:</p>

<div class="wp_syntax"><div class="code"><pre class="text" style="font-family:monospace;">Device Drivers
-&gt; Graphics support
   -&gt; nVidia Framebuffer Support
   -&gt; nVidia Riva support</pre></div></div>

]]></content:encoded>
			<wfw:commentRss>http://www.guyrutenberg.com/2010/11/19/kernel-configuration-and-nvidia-drivers/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>sudo for X Programs</title>
		<link>http://www.guyrutenberg.com/2010/11/12/sudo-for-x-programs/</link>
		<comments>http://www.guyrutenberg.com/2010/11/12/sudo-for-x-programs/#comments</comments>
		<pubDate>Fri, 12 Nov 2010 09:15:04 +0000</pubDate>
		<dc:creator>Guy</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Tips]]></category>
		<category><![CDATA[Gentoo]]></category>
		<category><![CDATA[X11]]></category>

		<guid isPermaLink="false">http://www.guyrutenberg.com/?p=773</guid>
		<description><![CDATA[By default (at least on my machine), it wasn&#8217;t possible to open X applications using sudo. For example sudoing xclock resulted in the following error: $ sudo xclock No protocol specified Error: Can't open display: :0.0 The same error appeared even when I executed xclock after running sudo su. Apperantly, by default the X server [...]]]></description>
			<content:encoded><![CDATA[<p>By default (at least on my machine), it wasn&#8217;t possible to open X applications using <code>sudo</code>. For example <code>sudo</code>ing <code>xclock</code> resulted in the following error:</p>

<div class="wp_syntax"><div class="code"><pre class="text" style="font-family:monospace;">$ sudo xclock
No protocol specified
Error: Can't open display: :0.0</pre></div></div>

<p>The same error appeared even when I executed <code>xclock</code> after running <code>sudo su</code>.<br />
<span id="more-773"></span><br />
Apperantly, by default the X server doesn&#8217;t allow anyone else besides you to open windows on the display. While it&#8217;s generally a good thing, it&#8217;s annoying if you&#8217;re trying to preform some GUI stuff as root. You can use the <code>xauth</code> utility to grant permissions to other users. For example:</p>

<div class="wp_syntax"><div class="code"><pre class="text" style="font-family:monospace;">$ xhost local:root
non-network local connections being added to access control list</pre></div></div>

<p>Allows <code>root</code> user connecting from the local machine (like <code>sudo</code>) to access the X display for your user. You can see the current access list by simply typing <code>xhost</code>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.guyrutenberg.com/2010/11/12/sudo-for-x-programs/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Searching for Updates without emerge</title>
		<link>http://www.guyrutenberg.com/2010/09/19/searching-for-updates-without-emerge/</link>
		<comments>http://www.guyrutenberg.com/2010/09/19/searching-for-updates-without-emerge/#comments</comments>
		<pubDate>Sun, 19 Sep 2010 21:19:52 +0000</pubDate>
		<dc:creator>Guy</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Gentoo]]></category>

		<guid isPermaLink="false">http://www.guyrutenberg.com/?p=739</guid>
		<description><![CDATA[The normal way to see which installed packages have available updates on Gentoo is running $ emerge -puv world And then you usually select the packages you really want to update and emerge them. However this workflow has several downsides: It&#8217;s slow. When portage checks for updates this way it fully resolves all the dependencies. [...]]]></description>
			<content:encoded><![CDATA[<p>The normal way to see which installed packages have available updates on Gentoo is running</p>

<div class="wp_syntax"><div class="code"><pre class="text" style="font-family:monospace;">$ emerge -puv world</pre></div></div>

<p>And then you usually select the packages you really want to update and emerge them. However this workflow has several downsides:</p>
<ol>
<li>It&#8217;s slow. When portage checks for updates this way it fully resolves all the dependencies. This process is unnecessary, as in many cases you aren&#8217;t interested in updating all the packages, furthermore in their dependencies.</li>
<li>It may fail. When portage fails to resolve the dependencies, it will either complain or completely fail. If it complains, it isn&#8217;t really that bad, except for the time used for resolving the unanswered dependencies. Sometimes it fails completely (usually when masking is involved) and won&#8217;t display any of the available packages, hence leaving the user in the dark (except for some dependency error message).</li>
<li>It displays lot&#8217;s of output. Many times you&#8217;re not interesting in seeing the dependencies that will be updated if you emerge every package in the world file. It&#8217;s just confusing and distract you from the interesting updates for packages in the world file.</li>
</ol>
<p>The following scripts tries to work around these problems. It works by querying the portage API for the best version available for each package in the world file. If that version isn&#8217;t installed it reports that there are updates waiting for that package. The script runs faster then <code>emerge -pvu world</code> and only displays the packages from the world file. If you find a package that you want to upgrade you can emerge it separately to see the required dependencies.</p>
<p><span id="more-739"></span></p>

<div class="wp_syntax"><div class="code"><pre class="python" style="font-family:monospace;"><span style="color: #808080; font-style: italic;">#! /usr/bin/env python</span>
&nbsp;
<span style="color: #808080; font-style: italic;">#   Copyright 2010 Guy Rutenberg</span>
&nbsp;
<span style="color: #808080; font-style: italic;">#   This program is free software: you can redistribute it and/or modify</span>
<span style="color: #808080; font-style: italic;">#   it under the terms of the GNU General Public License as published by</span>
<span style="color: #808080; font-style: italic;">#   the Free Software Foundation, either version 3 of the License, or</span>
<span style="color: #808080; font-style: italic;">#   (at your option) any later version.</span>
&nbsp;
<span style="color: #808080; font-style: italic;">#   This program is distributed in the hope that it will be useful,</span>
<span style="color: #808080; font-style: italic;">#   but WITHOUT ANY WARRANTY; without even the implied warranty of</span>
<span style="color: #808080; font-style: italic;">#   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the</span>
<span style="color: #808080; font-style: italic;">#   GNU General Public License for more details.</span>
&nbsp;
<span style="color: #808080; font-style: italic;">#   You should have received a copy of the GNU General Public License</span>
<span style="color: #808080; font-style: italic;">#   along with this program.  If not, see &lt;http://www.gnu.org/licenses/&gt;.</span>
&nbsp;
&nbsp;
<span style="color: #ff7700;font-weight:bold;">import</span> portage
<span style="color: #ff7700;font-weight:bold;">import</span> <span style="color: #dc143c;">logging</span>
<span style="color: #ff7700;font-weight:bold;">import</span> <span style="color: #dc143c;">subprocess</span>
<span style="color: #ff7700;font-weight:bold;">from</span> <span style="color: #dc143c;">optparse</span> <span style="color: #ff7700;font-weight:bold;">import</span> OptionParser
&nbsp;
<span style="color: #ff7700;font-weight:bold;">class</span> MainApp:
    <span style="color: #ff7700;font-weight:bold;">def</span> <span style="color: #0000cd;">__init__</span><span style="color: black;">&#40;</span><span style="color: #008000;">self</span>,args=<span style="color: #008000;">None</span><span style="color: black;">&#41;</span>:
        usage = <span style="color: #483d8b;">&quot;Usage: %prog [options]&quot;</span>
        version = <span style="color: #483d8b;">&quot;0.1&quot;</span>
        <span style="color: #dc143c;">parser</span> = OptionParser<span style="color: black;">&#40;</span>usage,version=version<span style="color: black;">&#41;</span>
        <span style="color: #dc143c;">parser</span>.<span style="color: black;">add_option</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;&quot;</span>,<span style="color: #483d8b;">&quot;--kde&quot;</span>, dest=<span style="color: #483d8b;">&quot;kde&quot;</span>,default=<span style="color: #008000;">False</span>,
                          action=<span style="color: #483d8b;">&quot;store_true&quot;</span>,
                          <span style="color: #008000;">help</span>=<span style="color: #483d8b;">&quot;Post a notification with the number of update&quot;</span><span style="color: black;">&#41;</span>
        <span style="color: #dc143c;">parser</span>.<span style="color: black;">add_option</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;-q&quot;</span>,<span style="color: #483d8b;">&quot;--quiet&quot;</span>, dest=<span style="color: #483d8b;">&quot;quiet&quot;</span>,default=<span style="color: #008000;">False</span>,
                          action=<span style="color: #483d8b;">&quot;store_true&quot;</span>,
                          <span style="color: #008000;">help</span>=<span style="color: #483d8b;">&quot;Make as little output as possible&quot;</span><span style="color: black;">&#41;</span>
        <span style="color: black;">&#40;</span><span style="color: #008000;">self</span>.<span style="color: black;">options</span>, <span style="color: #008000;">self</span>.<span style="color: black;">args</span><span style="color: black;">&#41;</span> = <span style="color: #dc143c;">parser</span>.<span style="color: black;">parse_args</span><span style="color: black;">&#40;</span>args=args<span style="color: black;">&#41;</span>
&nbsp;
    <span style="color: #ff7700;font-weight:bold;">def</span> run<span style="color: black;">&#40;</span><span style="color: #008000;">self</span><span style="color: black;">&#41;</span>:
        <span style="color: #008000;">self</span>.<span style="color: black;">updatable</span> = <span style="color: #008000;">set</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>
        <span style="color: #ff7700;font-weight:bold;">for</span> atom <span style="color: #ff7700;font-weight:bold;">in</span> <span style="color: #008000;">self</span>.<span style="color: black;">get_world_entries</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>:
            <span style="color: #ff7700;font-weight:bold;">if</span> <span style="color: #008000;">self</span>.<span style="color: black;">get_best_version</span><span style="color: black;">&#40;</span>atom<span style="color: black;">&#41;</span> <span style="color: #ff7700;font-weight:bold;">not</span> <span style="color: #ff7700;font-weight:bold;">in</span> <span style="color: #008000;">self</span>.<span style="color: black;">get_installed_versions</span><span style="color: black;">&#40;</span>atom<span style="color: black;">&#41;</span>:
                <span style="color: #008000;">self</span>.<span style="color: black;">updatable</span>.<span style="color: black;">add</span><span style="color: black;">&#40;</span>atom<span style="color: black;">&#41;</span>
                <span style="color: #ff7700;font-weight:bold;">print</span> atom
        <span style="color: #ff7700;font-weight:bold;">if</span> <span style="color: #008000;">self</span>.<span style="color: black;">options</span>.<span style="color: black;">kde</span>:
            <span style="color: #008000;">self</span>.<span style="color: black;">notify_kde</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>
        <span style="color: #ff7700;font-weight:bold;">if</span> <span style="color: #ff7700;font-weight:bold;">not</span> <span style="color: #008000;">self</span>.<span style="color: black;">options</span>.<span style="color: black;">quiet</span>:
            <span style="color: #ff7700;font-weight:bold;">print</span> <span style="color: #483d8b;">&quot;Total:&quot;</span>,<span style="color: #008000;">len</span><span style="color: black;">&#40;</span><span style="color: #008000;">self</span>.<span style="color: black;">updatable</span><span style="color: black;">&#41;</span>
&nbsp;
    <span style="color: #ff7700;font-weight:bold;">def</span> notify_kde<span style="color: black;">&#40;</span><span style="color: #008000;">self</span><span style="color: black;">&#41;</span>:
        <span style="color: #ff7700;font-weight:bold;">if</span> <span style="color: #008000;">len</span><span style="color: black;">&#40;</span><span style="color: #008000;">self</span>.<span style="color: black;">updatable</span><span style="color: black;">&#41;</span>:
            text = <span style="color: #483d8b;">&quot;There are %i updates&quot;</span> <span style="color: #66cc66;">%</span> <span style="color: #008000;">len</span><span style="color: black;">&#40;</span><span style="color: #008000;">self</span>.<span style="color: black;">updatable</span><span style="color: black;">&#41;</span>
        <span style="color: #ff7700;font-weight:bold;">else</span>:
            text = <span style="color: #483d8b;">&quot;There are no updates&quot;</span>
        <span style="color: #dc143c;">subprocess</span>.<span style="color: black;">call</span><span style="color: black;">&#40;</span><span style="color: black;">&#91;</span><span style="color: #483d8b;">&quot;kdialog&quot;</span>, <span style="color: #483d8b;">&quot;--passivepopup&quot;</span>, text, <span style="color: #483d8b;">&quot;--title&quot;</span>, <span style="color: #483d8b;">&quot;Portage Updates&quot;</span><span style="color: black;">&#93;</span><span style="color: black;">&#41;</span>
&nbsp;
    @<span style="color: #008000;">staticmethod</span>
    <span style="color: #ff7700;font-weight:bold;">def</span> get_world_entries<span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>:
        <span style="color: #483d8b;">&quot;&quot;&quot;
        parses the world file and returns a set of all the atoms
        &quot;&quot;&quot;</span>
        f = <span style="color: #008000;">open</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;/&quot;</span>+portage.<span style="color: black;">WORLD_FILE</span>, <span style="color: #483d8b;">&quot;r&quot;</span><span style="color: black;">&#41;</span>
        atoms = <span style="color: #008000;">set</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>
        <span style="color: #ff7700;font-weight:bold;">for</span> line <span style="color: #ff7700;font-weight:bold;">in</span> f.<span style="color: black;">readlines</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>:
            atom = line<span style="color: black;">&#91;</span>:-<span style="color: #ff4500;">1</span><span style="color: black;">&#93;</span>
            <span style="color: #ff7700;font-weight:bold;">if</span> portage.<span style="color: black;">isvalidatom</span><span style="color: black;">&#40;</span>line<span style="color: black;">&#91;</span>:-<span style="color: #ff4500;">1</span><span style="color: black;">&#93;</span><span style="color: black;">&#41;</span>:
                atoms.<span style="color: black;">add</span><span style="color: black;">&#40;</span>atom<span style="color: black;">&#41;</span>
        f.<span style="color: black;">close</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>
        <span style="color: #ff7700;font-weight:bold;">return</span> atoms
&nbsp;
    @<span style="color: #008000;">staticmethod</span>
    <span style="color: #ff7700;font-weight:bold;">def</span> get_installed_versions<span style="color: black;">&#40;</span>atom<span style="color: black;">&#41;</span>:
        <span style="color: #ff7700;font-weight:bold;">return</span> portage.<span style="color: black;">db</span><span style="color: black;">&#91;</span><span style="color: #483d8b;">'/'</span><span style="color: black;">&#93;</span><span style="color: black;">&#91;</span><span style="color: #483d8b;">'vartree'</span><span style="color: black;">&#93;</span>.<span style="color: black;">dbapi</span>.<span style="color: black;">match</span><span style="color: black;">&#40;</span>atom<span style="color: black;">&#41;</span>
&nbsp;
    @<span style="color: #008000;">staticmethod</span>
    <span style="color: #ff7700;font-weight:bold;">def</span> get_best_version<span style="color: black;">&#40;</span>atom<span style="color: black;">&#41;</span>:
        <span style="color: #483d8b;">&quot;&quot;&quot;
        Returns the best available version taking into account masking and
        keywords
        &quot;&quot;&quot;</span>
        available = portage.<span style="color: black;">db</span><span style="color: black;">&#91;</span><span style="color: #483d8b;">'/'</span><span style="color: black;">&#93;</span><span style="color: black;">&#91;</span><span style="color: #483d8b;">'porttree'</span><span style="color: black;">&#93;</span>.<span style="color: black;">dbapi</span>.<span style="color: black;">match</span><span style="color: black;">&#40;</span>atom<span style="color: black;">&#41;</span>
        <span style="color: #ff7700;font-weight:bold;">return</span> portage.<span style="color: black;">best</span><span style="color: black;">&#40;</span>available<span style="color: black;">&#41;</span>
&nbsp;
&nbsp;
<span style="color: #ff7700;font-weight:bold;">if</span> __name__ == <span style="color: #483d8b;">&quot;__main__&quot;</span>:
    app = MainApp<span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>
    app.<span style="color: black;">run</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>
&nbsp;
&nbsp;
<span style="color: #808080; font-style: italic;"># vim: filetype=python ai ts=5 sts=4 et sw=4</span></pre></div></div>

]]></content:encoded>
			<wfw:commentRss>http://www.guyrutenberg.com/2010/09/19/searching-for-updates-without-emerge/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Using MusicBrainz when Ripping CDs in KDE</title>
		<link>http://www.guyrutenberg.com/2010/01/09/using-musicbrainz-when-ripping-cds-in-kde/</link>
		<comments>http://www.guyrutenberg.com/2010/01/09/using-musicbrainz-when-ripping-cds-in-kde/#comments</comments>
		<pubDate>Sat, 09 Jan 2010 08:37:29 +0000</pubDate>
		<dc:creator>Guy</dc:creator>
				<category><![CDATA[Tips]]></category>
		<category><![CDATA[Gentoo]]></category>
		<category><![CDATA[KDE]]></category>
		<category><![CDATA[MusicBrainz]]></category>

		<guid isPermaLink="false">http://www.guyrutenberg.com/?p=610</guid>
		<description><![CDATA[I guess this tip is Gentoo specific. By default KDE uses FreeDB for getting CD info when ripping CDs. If you want to use MusicBrainz native service (not via their FreeDB proxy), there are several steps you&#8217;ll need to take. First, you should compile kde-base/libkcddb with the musicbrainz use-flag turned on. Next you should go [...]]]></description>
			<content:encoded><![CDATA[<p>I guess this tip is Gentoo specific. By default KDE uses FreeDB for getting CD info when ripping CDs. If you want to use MusicBrainz native service (not via their FreeDB proxy), there are several steps you&#8217;ll need to take.<br />
<span id="more-610"></span><br />
First, you should compile <code>kde-base/libkcddb</code> with the <code>musicbrainz</code> use-flag turned on. Next you should go to System Settings->Advanced->CDDB Retrieval and check the &#8220;Enable MusicBrainz lookup&#8221; box. From my experience MusicBrainz is not a complete replacement for FreeDB as some CDs aren&#8217;t recognized by it (but recognized by FreeDB). </p>
]]></content:encoded>
			<wfw:commentRss>http://www.guyrutenberg.com/2010/01/09/using-musicbrainz-when-ripping-cds-in-kde/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Upgrading All QT Modules in Gentoo</title>
		<link>http://www.guyrutenberg.com/2009/11/21/upgrading-all-qt-modules-in-gentoo/</link>
		<comments>http://www.guyrutenberg.com/2009/11/21/upgrading-all-qt-modules-in-gentoo/#comments</comments>
		<pubDate>Sat, 21 Nov 2009 20:01:06 +0000</pubDate>
		<dc:creator>Guy</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Gentoo]]></category>
		<category><![CDATA[QT]]></category>

		<guid isPermaLink="false">http://www.guyrutenberg.com/?p=594</guid>
		<description><![CDATA[Upgrading minor versions QT seems to be a hassle, as each version blocks the previous and because of inter-dependencies, Gentoo can&#8217;t understand by itself how to solve them. The solution is to tell it to specifically upgrade all installed modules. sudo emerge -avu1 $&#40;qlist -IvC /qt- &#124; grep 4. &#124; sed s/-4.*//&#41; This will allow [...]]]></description>
			<content:encoded><![CDATA[<p>Upgrading minor versions QT seems to be a hassle, as each version blocks the previous and because of inter-dependencies, Gentoo can&#8217;t understand by itself how to solve them. The solution is to tell it to specifically upgrade all installed modules.<br />
<span id="more-594"></span></p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">sudo</span> emerge <span style="color: #660033;">-avu1</span> $<span style="color: #7a0874; font-weight: bold;">&#40;</span>qlist <span style="color: #660033;">-IvC</span> <span style="color: #000000; font-weight: bold;">/</span>qt- <span style="color: #000000; font-weight: bold;">|</span> <span style="color: #c20cb9; font-weight: bold;">grep</span> <span style="color: #000000;">4</span>. <span style="color: #000000; font-weight: bold;">|</span> <span style="color: #c20cb9; font-weight: bold;">sed</span> s<span style="color: #000000; font-weight: bold;">/</span>-<span style="color: #000000;">4</span>.<span style="color: #000000; font-weight: bold;">*//</span><span style="color: #7a0874; font-weight: bold;">&#41;</span></pre></div></div>

<p>This will allow Gentoo to solve the dependencies by uninstalling the old versions, unlike if you only try to upgrade a single package like <code>x11-libs/qt-core</code></p>
]]></content:encoded>
			<wfw:commentRss>http://www.guyrutenberg.com/2009/11/21/upgrading-all-qt-modules-in-gentoo/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Upgrading All KDE Related Packages in Gentoo</title>
		<link>http://www.guyrutenberg.com/2009/06/08/upgrading-all-kde-related-packages-in-gentoo/</link>
		<comments>http://www.guyrutenberg.com/2009/06/08/upgrading-all-kde-related-packages-in-gentoo/#comments</comments>
		<pubDate>Mon, 08 Jun 2009 06:24:01 +0000</pubDate>
		<dc:creator>Guy</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Tips]]></category>
		<category><![CDATA[Gentoo]]></category>
		<category><![CDATA[KDE]]></category>

		<guid isPermaLink="false">http://www.guyrutenberg.com/?p=376</guid>
		<description><![CDATA[Yesterday, Gentoo marked KDE 3.5.10 as stable on amd64. I looked for a way to upgrade all of the KDE related packages, without manually specifying each one of them. Normally one could do emerge -avu world but I encountered some nasty conflicts that I didn&#8217;t have time, nor will, to resolve at that time. So [...]]]></description>
			<content:encoded><![CDATA[<p>Yesterday, Gentoo marked KDE 3.5.10 as stable on amd64. I looked for a way to upgrade all of the KDE related packages, without manually specifying each one of them. Normally one could do</p>

<div class="wp_syntax"><div class="code"><pre class="text" style="font-family:monospace;">emerge -avu world</pre></div></div>

<p>but I encountered some nasty conflicts that I didn&#8217;t have time, nor will, to resolve at that time. So I&#8217;ve looked for a different solution. To my rescue came <code>qlist</code> for the great <code>app-portage/portage-utils</code> package. This package provides a set of very fast utilities to query <code>portage</code>. I&#8217;ve used <code>qlist</code> to list all of my installed packages, <code>grep</code>&#8216;ed the list and piped the result as arguments to <code>emerge</code> using <code>xargs</code>.<br />
<span id="more-376"></span></p>

<div class="wp_syntax"><div class="code"><pre class="text" style="font-family:monospace;"> qlist -I --nocolor | grep kde | xargs emerge -pvu1</pre></div></div>

<p>Take a look at the package list that will be merged. If everything looks fine, then do the actual merging.</p>

<div class="wp_syntax"><div class="code"><pre class="text" style="font-family:monospace;"> qlist -I --nocolor | grep kde | xargs sudo emerge -vu1</pre></div></div>

<p>The <code>--nocolor</code> is important, or else <code>emerge</code> will complain about the benign looking atoms such as <code>dev-util/kdevelop</code>  because there are invisible terminal formating characters around them.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.guyrutenberg.com/2009/06/08/upgrading-all-kde-related-packages-in-gentoo/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>phpMyAdmin + Lighttpd in Gentoo</title>
		<link>http://www.guyrutenberg.com/2009/01/20/phpmyadmin-lighttpd-in-gentoo/</link>
		<comments>http://www.guyrutenberg.com/2009/01/20/phpmyadmin-lighttpd-in-gentoo/#comments</comments>
		<pubDate>Tue, 20 Jan 2009 16:14:57 +0000</pubDate>
		<dc:creator>Guy</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[Gentoo]]></category>
		<category><![CDATA[Lighttpd]]></category>
		<category><![CDATA[phpMyAdmin]]></category>

		<guid isPermaLink="false">http://www.guyrutenberg.com/?p=248</guid>
		<description><![CDATA[Usually installing software in Gentoo is a piece of cake. Just emerge what you want and (with the right USE flags) and everything will be ready for you. However, as today I&#8217;ve found out today, installing phpMyAdmin with Lighttpd isn&#8217;t trivial as it should be. In this post I&#8217;ll try to walk you through the [...]]]></description>
			<content:encoded><![CDATA[<p>Usually installing software in Gentoo is a piece of cake. Just <code>emerge</code> what you want and (with the right USE flags) and everything will be ready for you. However, as today I&#8217;ve found out today, installing phpMyAdmin with Lighttpd isn&#8217;t trivial as it should be.</p>
<p>In this post I&#8217;ll try to walk you through the necessary steps to install phpMyAdmin with Lighttpd in Gentoo.<br />
<span id="more-248"></span></p>
<h3>Installing Lighttpd and PHP</h3>
<p>Before installing Lighttpd and PHP you&#8217;ll need to enable some USE flags. For Lighttpd you&#8217;ll need to at least enable the <code>php</code> and <code>fastcgi</code> USE flags. For PHP enable the <code>cgi</code>, <code>crypt</code>, <code>ctype</code>, <code>pcre</code>, <code>session</code>, <code>unicode</code>. The first one is required for working with Lighttpd, while the others are required for phpMyAdmin.</p>
<p>See the <a href="http://www.gentoo.org/doc/en/handbook/handbook-x86.xml?part=2&#038;chap=2">handbook</a> for information about enabling USE flags.</p>
<p>Now install the packages</p>

<div class="wp_syntax"><div class="code"><pre class="text" style="font-family:monospace;">emerge -av lighttpd php</pre></div></div>

<p>After installation is complete, start the Lighttpd process</p>

<div class="wp_syntax"><div class="code"><pre class="text" style="font-family:monospace;">/etc/init.d/lighttpd start</pre></div></div>

<p>and you should have a working Lighttpd server with PHP support.</p>
<h3>Installing phpMyAdmin</h3>
<p>phpMyAdmin depends on a package called <code>webapp-config</code>. While usually we let Portage take care of dependencies, this time we&#8217;ll have to install <code>webapp-config</code> manually before we install phpMyAdmin, so we can change its configuration for suit Lighttpd.</p>

<div class="wp_syntax"><div class="code"><pre class="text" style="font-family:monospace;">emerge -av --oneshot webapp-config</pre></div></div>

<p>After installation is done edit using your favourite editor the <code>/etc/vhosts/webapp-config</code> and change the line:</p>

<div class="wp_syntax"><div class="code"><pre class="text" style="font-family:monospace;">vhost_server=&quot;apache&quot;</pre></div></div>

<p>to</p>

<div class="wp_syntax"><div class="code"><pre class="text" style="font-family:monospace;">vhost_server=&quot;lighttpd&quot;</pre></div></div>

<p>Now we are ready to install phpMyAdmin.</p>

<div class="wp_syntax"><div class="code"><pre class="text" style="font-family:monospace;">emerge -av phpmyadmin</pre></div></div>

<p>After installation is complete, you&#8217;ll need to create a phpMyAdmin configuration file</p>

<div class="wp_syntax"><div class="code"><pre class="text" style="font-family:monospace;">cp /var/www/localhost/htdocs/phpmyadmin/config.sample.inc.php /var/www/localhost/htdocs/phpmyadmin/config.inc.php</pre></div></div>

<p>Now open the newly created configuration file and edit the line with the <code>blowfish_secret</code> (at the top of the file) as explained in it. An easy way to generate the password would be to use <a href="http://www.guyrutenberg.com/2008/05/04/spass-11-secure-password-generator/"><code>spass</code></a>.</p>
<p>Now if you use the default Lighttpd configurations you&#8217;re done. You can access the phpMyAdmin via <code>http://localhost/phpmyadmin</code>. If however you&#8217;ve changed the document root, there is one more step for you. Enable the <code>mod_alias</code> module in <code>/etc/lighttpd/lighttpd.conf</code> and append to the file</p>

<div class="wp_syntax"><div class="code"><pre class="text" style="font-family:monospace;">alias.url += (&quot;/phpmyadmin&quot; =&gt; &quot;/var/www/localhost/htdocs/phpmyadmin&quot;)</pre></div></div>

<p>and don&#8217;t forget to restart the Lighttpd server after making the changes.</p>
<p>You should have by now everything installed and configured to work. If you have any further questions don&#8217;t hesitate to comment.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.guyrutenberg.com/2009/01/20/phpmyadmin-lighttpd-in-gentoo/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

<!-- Dynamic Page Served (once) in 0.445 seconds -->

