<?xml version="1.0" encoding="iso-8859-15"?>
<!-- name="generator" content="blosxom/2.0" -->
<!DOCTYPE rss PUBLIC "-//Netscape Communications//DTD RSS 0.91//EN" "http://my.netscape.com/publish/formats/rss-0.91.dtd">

<rss version="0.91">
  <channel>
    <title>blino's website   </title>
    <link>http://blino.org</link>
    <description>Free software developer and more</description>
    <language>en</language>

  <item>
    <title>L'actualité internationale décryptée par Vincent Jauvert, grand reporter au Nouvel Observateur</title>
    <pubDate>Tue, 01 Jul 2008 19:49:00 GMT</pubDate>
    <link>http://blino.org/blog/politics/globe-nouvelobs.html</link>
    <description>
</description>
  </item>
  <item>
    <title>fusion-icon package</title>
    <pubDate>Wed, 16 Jan 2008 23:15:00 GMT</pubDate>
    <link>http://blino.org/blog/mandriva/packaging/fusion-icon.html</link>
    <description>&lt;p&gt;
I&amp;#39;ve finally uploaded a &lt;tt&gt;fusion-icon&lt;/tt&gt; package in Mandriva Cooker and
2008.0 &amp;#40;backports&amp;#41;. &lt;tt&gt;fusion-icon&lt;/tt&gt;
&lt;a href=&quot;http://wiki.compiz-fusion.org/CompizFusionIcon&quot;&gt;&amp;#40;wiki&amp;#41;&lt;/a&gt;
&lt;a href=&quot;http://gitweb.opencompositing.org/?p=users/crdlb/fusion-icon;a=summary&quot;&gt;&amp;#40;git&amp;#41;&lt;/a&gt;
is a panel applet that allows to start/stop
&lt;a href=&quot;http://compiz-fusion.org/&quot;&gt;compiz&lt;/a&gt; on the fly, and to change the
window decorator.

&lt;/p&gt;
&lt;p&gt;
It may not play very nicely with all compositing manager setups
&amp;#40;Xgl?&amp;#41;, because we do not use the same integration methods in
Mandriva.
But it can be quite useful for now, since I&amp;#39;ve not yet added the
ability to enable/disable compositing desktops on the fly in our
&lt;tt&gt;drak3d&lt;/tt&gt; configuration tool...
&lt;/p&gt;
</description>
  </item>
  <item>
    <title>initscripts 8.60 and SVN oddness</title>
    <pubDate>Wed, 16 Jan 2008 23:00:00 GMT</pubDate>
    <link>http://blino.org/blog/mandriva/packaging/initscripts-8.60-svn.html</link>
    <description>&lt;p&gt;
While syncing our initscripts source code with the &lt;a href=&quot;?RedHat&quot; class=&quot;empty&quot;&gt;RedHat&lt;/a&gt; 8.60
version, I experienced a weird &lt;em&gt;unsupported special file type&lt;/em&gt;
error message with the &lt;tt&gt;svn merge command&lt;/tt&gt;:

&lt;/p&gt;
&lt;pre class=&quot;formatter_pre&quot;&gt;$ svn merge \
    svn+ssh://svn.mandriva.com/svn/soft/initscripts/tags/rh_last_merge \
    svn+ssh://svn.mandriva.com/svn/soft/initscripts/branches/RedHat
U    sysconfig.txt
[...]
svn: In directory &amp;#39;.&amp;#39;
svn: &amp;#39;.svn/tmp/tempfile.10.tmp&amp;#39; has unsupported special file type &amp;#39;2007-05-15&amp;#39;
$ head -n 1 .svn/tmp/tempfile.10.tmp
2007-05-15  Bill Nottingham  &amp;lt;notting@redhat.com&amp;gt;
&lt;/pre&gt;
&lt;p&gt;
It was actually trying to merge the &lt;tt&gt;ChangeLog&lt;/tt&gt; file from the &lt;a href=&quot;?RedHat&quot; class=&quot;empty&quot;&gt;RedHat&lt;/a&gt;
branch with the &lt;tt&gt;ChangeLog&lt;/tt&gt; symlink in our checkout, which does not
work &amp;#40;upstream bugs &lt;a href=&quot;http://subversion.tigris.org/issues/show_bug.cgi?id=2472&quot;&gt;2472&lt;/a&gt;
and &lt;a href=&quot;http://subversion.tigris.org/issues/show_bug.cgi?id=2692&quot;&gt;2692&lt;/a&gt;&amp;#41;.
Still, the error message could probably be improved, not to specify
the file content as file type :-&amp;#41;
 
&lt;/p&gt;
&lt;p&gt;
As a side note, I have also removed a workaround in our &lt;tt&gt;network-up&lt;/tt&gt;
service, which was unconditionally waiting &amp;#40;and blocking boot&amp;#41; at
least 6 seconds. This was added because the link beat reported by some
network drivers could not be trusted during a short period right after the
module loading &amp;#40;&lt;a href=&quot;http://qa.mandriva.com/show_bug.cgi?id=18986&quot;&gt;#18986&lt;/a&gt; and &lt;a href=&quot;http://qa.mandriva.com/show_bug.cgi?id=31864&quot;&gt;#31864&lt;/a&gt;&amp;#41;, but we&amp;#39;d better fix the drivers if
possible.
&lt;/p&gt;
</description>
  </item>
  <item>
    <title>Manbo Labs creation</title>
    <pubDate>Wed, 16 Jan 2008 22:45:00 GMT</pubDate>
    <link>http://blino.org/blog/mandriva/manbo-labs-creation.html</link>
    <description>&lt;p&gt;
Today, we &amp;#40;&lt;a href=&quot;http://www.mandriva.com/&quot;&gt;Mandriva&lt;/a&gt;&amp;#41; have
&lt;a href=&quot;http://www.mandriva.com/enterprise/en/company/press/mandriva-and-turbolinux-announce-a-partnership-and-create-a-joint-development-lab-c&quot;&gt;announced a partnership&lt;/a&gt;
with &lt;a href=&quot;http://www.turbolinux.com/&quot;&gt;TurboLinux&lt;/a&gt;, 
initiating our new Manbo-Labs. It is not just a press release to make
some buzz, we have actually been working for a few months with
&lt;a href=&quot;?TurboLinux&quot; class=&quot;empty&quot;&gt;TurboLinux&lt;/a&gt; employees. Shinji and Kiichiro &amp;#40;from TurboLinux&amp;#41; even
stayed in our office in the meantime! \o/

&lt;/p&gt;
&lt;p&gt;
The initial goal is to merge our basesystems components, so that we
can share these same basesystem packages between Mandriva and
TurboLinux.
For example, the merged kernel package includes the &lt;a href=&quot;http://tomoyo.sourceforge.jp/&quot;&gt;Tomoyo&lt;/a&gt; security framework, and the
TurboLinux installer already uses some of the merged packages
&amp;#40;&lt;tt&gt;mkinitrd&lt;/tt&gt;, &lt;tt&gt;bootloader-utils&lt;/tt&gt;, ...&amp;#41;. We are also working on
merging &lt;tt&gt;rpm&lt;/tt&gt;, &lt;tt&gt;udev&lt;/tt&gt;, &lt;tt&gt;glibc&lt;/tt&gt; and the build chain &amp;#40;notably
&lt;tt&gt;gcc&lt;/tt&gt;&amp;#41;.

&lt;/p&gt;
&lt;p&gt;
However, this joint lab does not mean that we share the agreement with
Microsoft, Mandriva still tries to stay as free and open as possible,
as &lt;a href=&quot;http://archives.mandrivalinux.com/cooker/2008-01/msg00672.php&quot;&gt;Anne explained&lt;/a&gt;
on the cooker ML.

&lt;/p&gt;
&lt;p&gt;
It&amp;#39;s been very nice contributing with our TurboLinux teammates, and we
will undoubtedly have a whole bunch of new adventures together in the
near future. Actually, we have not just been merging packages, but
also food culture, and it would be quite villain not to share
&lt;a href=&quot;http://en.wikipedia.org/wiki/Surstr%C3%B6mming&quot;&gt;Surströmming&lt;/a&gt; with
them ;-&amp;#41; &amp;#40;Oden told us that our cans would be lethal by now, but
well...&amp;#41;
&lt;/p&gt;
</description>
  </item>
  <item>
    <title>gsynaptics</title>
    <pubDate>Fri, 11 Jan 2008 18:00:00 GMT</pubDate>
    <link>http://blino.org/blog/mandriva/packaging/gsynaptics.html</link>
    <description>&lt;p&gt;
&lt;a href=&quot;http://gsynaptics.sourceforge.jp/&quot;&gt;gsynaptics&lt;/a&gt; is now available in
cooker. It&amp;#39;s a GNOME configuration tool for Synaptics touchpads &amp;#40;the
KDE equivalent being ksynaptics&amp;#41;.

&lt;/p&gt;
&lt;p&gt;
It will be automatically installed with GNOME desktops when Synaptics
touchpads are detected.
&lt;/p&gt;
</description>
  </item>
  <item>
    <title>Idiocracy</title>
    <pubDate>Tue, 08 Jan 2008 02:32:00 GMT</pubDate>
    <link>http://blino.org/blog/movies/idiocracy.html</link>
    <description>&lt;p&gt;
Idiocracy is such a quirky movie that I could sit right next to the
classics of our workplace in Aboukir &amp;#40;such as &lt;em&gt;Came Along Polly&lt;/em&gt; and
&lt;em&gt;Flash Gordon&lt;/em&gt;&amp;#41;.
&lt;img src=&quot;http://upload.wikimedia.org/wikipedia/en/thumb/6/6b/Idiocracy_movie_poster.jpg/200px-Idiocracy_movie_poster.jpg&quot; alt=&quot;Idiocracy&quot; class=&quot;imgcenter&quot; /&gt;

&lt;/p&gt;
&lt;p&gt;
It pictures our world 500 years in the future, where almost no more
intelligence is to be found. Joe Bauers &amp;#40;the main character, played by
Luke Wilson, brother of Owen Wilson&amp;#41; wakes up in this totally silly
epoch, after being cryopreserved.

&lt;/p&gt;
&lt;p&gt;
This movie emphasises the idiosyncrasy of our time, by making TV
reality and other ill-reflected shows the main motive of the society,
the president of the USA being a champion wrestler. It also pushes the
consumer society to its climax, with the overbranded Brawndo being the
only drink on the market &amp;#40;even replacing the so passe water&amp;#41;.

&lt;/p&gt;
&lt;p&gt;
This future population also became quite crude, where popular shows
are &lt;em&gt;Ow, my balls!&lt;/em&gt; and &lt;em&gt;Rehabilation&lt;/em&gt; competitions made of giant
phallic trucks, and where STAR8UCK5 offers massage together with a
latte...


&lt;/p&gt;
&lt;p&gt;
But to be straight, all these inanities are extremly funny, and
masterfully depicted in Idiocracy :-&amp;#41;

&lt;/p&gt;
&lt;p&gt;
Actually, this world is not so far away, since STAR8UCK5 T-shirts are
available
&lt;a href=&quot;http://www.vintagecotton.com/shirt/str8uck5_idiocracy/male&quot;&gt;&amp;#40;vintagecotton&amp;#41;&lt;/a&gt;,
and the famous &lt;a href=&quot;http://www.brawndo.com/&quot;&gt;Brawndo&lt;/a&gt; drink is now
&lt;a href=&quot;http://www.dead-frog.com/blog/entry/one_step_closer_to_idiocracy_brawndo_to_be_a_real_drink/&quot;&gt;available for real&lt;/a&gt;,
with electrolytes!

&lt;/p&gt;
&lt;p&gt;
In the movie, President Camacho is actually named Dwayne Elizondo
Mountain Dew Herbert Camacho, maybe as reference to the
&lt;a href=&quot;http://en.wikipedia.org/wiki/Mountain_Dew&quot;&gt;Mountain Dew&lt;/a&gt; drink, which
looks like a cheap kind of Brawndo :-p

&lt;/p&gt;
&lt;p&gt;
It may not be worth watchnig thrice in a row, but my DVD is available,
for non-&lt;em&gt;free.fr&lt;/em&gt; users that don&amp;#39;t have a &lt;em&gt;TV perso&lt;/em&gt; service ;-&amp;#41;

&lt;/p&gt;
&lt;p&gt;
Links:
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://www.filmstew.com/ShowArticle.aspx?ContentID=14739&quot;&gt;The Ignominy of Idiocracy &amp;#40;filmstew&amp;#41;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Idiocracy&quot;&gt;Idiocracy &amp;#40;wikipedia&amp;#41;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
  </item>
  <item>
    <title>iotop package: display I/O usage of processes in a top like UI</title>
    <pubDate>Tue, 18 Dec 2007 11:00:00 GMT</pubDate>
    <link>http://blino.org/blog/mandriva/packaging/iotop.html</link>
    <description>&lt;p&gt;
&lt;a href=&quot;http://guichaz.free.fr/misc/#iotop&quot;&gt;iotop&lt;/a&gt; is a python tool that shows
how much I/O happens on the system.
It&amp;#39;s a lot more interesting than the &lt;tt&gt;vmstat 1&lt;/tt&gt; command, since it can
display per-process I/O, thanks to the per-task storage I/O accounting
feature in latest kernels
&lt;a href=&quot;http://master.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=7c3ab7381e79dfc7db14a67c6f4f3285664e1ec2;hp=47694bb86af3648d4ec34c7afd46653cefc9b359&quot;&gt;&amp;#40;commit&amp;#41;&lt;/a&gt;.

&lt;/p&gt;
&lt;p&gt;
I&amp;#39;ve upload an &lt;tt&gt;iotop&lt;/tt&gt; package in cooker, but our cooker kernels
don&amp;#39;t have &lt;tt&gt;TASK_IO_ACCOUNTING&lt;/tt&gt; enabled, maybe we could have it in
one of our contrib kernel packages.
&lt;/p&gt;
</description>
  </item>
  <item>
    <title>Decoding saved web forms from Firefox session file</title>
    <pubDate>Mon, 17 Dec 2007 00:00:00 GMT</pubDate>
    <link>http://blino.org/blog/mandriva/decoding_saved_web_forms.html</link>
    <description>&lt;p&gt;
My computer keeps crashing because of some hardware issue, which is
not really nice when I&amp;#39;m typing long messages on
&lt;a href=&quot;http://www.facebook.com/&quot;&gt;Facebook&lt;/a&gt;. It would have been quite painful
to lose the hundreds of words just waiting to be submitted.

&lt;/p&gt;
&lt;p&gt;
Mozilla Firefox has a nice session store feature, which constantly
saves open tabs as well as data in forms, allowing to restore them
easily after a crash.

&lt;/p&gt;
&lt;p&gt;
But somehow, my saved form was not restored correctly, while it was
present in the &lt;tt&gt;~/.mozilla/firefox/*/sessionstore.js&lt;/tt&gt; session state
file. Fortunately, I was able to find the form content in the
&lt;tt&gt;sessionstore.bak&lt;/tt&gt; file. Though, my writing was URI-encoded
&amp;#40;&lt;a href=&quot;http://www.ietf.org/rfc/rfc2396.txt&quot;&gt;RFC 2396&lt;/a&gt;&amp;#41; in the state file, it
required some trickery to paste back in the Firefox form.

&lt;/p&gt;
&lt;p&gt;
Thanks to the &lt;a href=&quot;http://www.perlhowto.com/encode_and_decode_url_strings&quot;&gt;encode and decode url strings&lt;/a&gt;
Perl howto, I found the &lt;tt&gt;URI::Escape&lt;/tt&gt; module that can decode such
strings. It worked almost out of the box, I just needed an additional
call to &lt;tt&gt;utf8::decode&lt;/tt&gt; to handle the UTF8 characters:

&lt;/p&gt;
&lt;pre class=&quot;formatter_pre&quot;&gt;$ perl -MURI::Escape -Mutf8 -e &amp;#39;my $s = uri_unescape&amp;#40;&amp;lt;&amp;gt;&amp;#41;; utf8::decode&amp;#40;$s&amp;#41;; print $s&amp;#39;
j&amp;#39;ai%20mang%C3%A9%20une%20ch%C3%A2taigne

j&amp;#39;ai mangé une châtaigne
&lt;/pre&gt;
</description>
  </item>
  <item>
    <title>DKMS rebuild quest (and modem tales)</title>
    <pubDate>Wed, 03 Oct 2007 00:45:00 GMT</pubDate>
    <link>http://blino.org/blog/mandriva/dkms-rebuild-quest.html</link>
    <description>&lt;p&gt;
So, we want to have a better dkms support in 2008.0, to make kernel
updates happen smoothly regarding external kernel modules &amp;#40;mainly
proprietary video drivers&amp;#41;, as detailled in &lt;a href=&quot;http://qa.mandriva.com/show_bug.cgi?id=30907&quot;&gt;#30907&lt;/a&gt;.

&lt;/p&gt;
&lt;p&gt;
A part of this long endeavor is to make dkms packages &amp;#40;both source
dkms and prebuilt dkms&amp;#41; have &lt;tt&gt;kmod&amp;#40;&amp;lt;modname&amp;gt;&amp;#41;&lt;/tt&gt; rpm Provides, so that
other packages, install and configuration tools can request a specific
module.

&lt;/p&gt;
&lt;p&gt;
I patched rpm-mandriva-setup some weeks ago to automatically generate
these kmod provides &amp;#40;heavily based on Danny&amp;#39;s work&amp;#41;. But this requires
all dkms packages to be resubmitted, since a part of this automatic
provides scripts acts on the &lt;tt&gt;dkms.conf&lt;/tt&gt; files, which are part of the
dkms source packages.

&lt;/p&gt;
&lt;p&gt;
I used the new mdvsys features to do that:
&lt;/p&gt;
&lt;pre class=&quot;formatter_pre&quot;&gt;mdvsys update --message &amp;#34;rebuild for kmod provides&amp;#34; &amp;lt;package list&amp;gt;
&lt;/pre&gt;
&lt;p&gt;
It mostly worked, but a perl operator priority bug
prevented my message argument to be used, and will make me a fool in
the changelogs &amp;#40;they read &amp;#34;update to new version&amp;#34;&amp;#41;.

&lt;/p&gt;
&lt;p&gt;
I &amp;#40;dearly&amp;#41; hate guillomovitch for that.

&lt;/p&gt;
&lt;p&gt;
After some usual build system troubles, I finally got most of the
source dkms package rebuilt, only a few don&amp;#39;t build, as my &amp;#40;clearly
not optimized&amp;#41; scriptlet shows:

&lt;/p&gt;
&lt;pre class=&quot;formatter_pre&quot;&gt;$ for p in /RPMS/{main,contrib,non-free}/release/dkms-*; do \
   rpm -qp --provides $p | grep -q kmod || rpm -qp --qf &amp;#39;%{SOURCERPM}\n&amp;#39; $p \
   | perl -ne &amp;#39;/^&amp;#40;.*&amp;#41;-[^-]+-[^-]+/ and print &amp;#34;$1\n&amp;#34;&amp;#39;; \
  done | sort -u | grep -v &amp;#39;^dkms$&amp;#39;
cluster
openc
&lt;/pre&gt;
&lt;p&gt;
At this point, it only means that the packages containing the module
source code are fine, and not that the source code inside will build
fine...

&lt;/p&gt;
&lt;p&gt;
For example, while testing some 56k modems, I noticed that
hsfmodem/hcfpcimodem did not build anymore. An upgrade to the upstream
versions was not enough, it fixed some build issues, but not the
weirdest one... The &lt;tt&gt;kernelcompiler.sh&lt;/tt&gt; scripts that tried to detect
the gcc version what running &lt;tt&gt;gcc -v&lt;/tt&gt; and tried to make it match some
pattern. But well, it didn&amp;#39;t work very well with french locale :-p
&amp;#40;using &lt;tt&gt;LC_ALL=C&lt;/tt&gt; fixed it&amp;#41;.

&lt;/p&gt;
&lt;p&gt;
On the next laptop I tried, there was a modem on top of HDA &amp;#40;High
Definition Audio&amp;#41; bus, with a Si3054 codec. It does not work with the
proprietary &lt;tt&gt;slamr&lt;/tt&gt; modules, and may work with the ALSA
&lt;tt&gt;snd-hda-intel&lt;/tt&gt; one. While looking for user reports, I stumbled upon
a patch from Claudio:
&lt;a href=&quot;http://helllabs.org/blog/20070710/slmodem-period-size-48-not-supported/&quot;&gt;Slmodem: period size 48 not supported&lt;/a&gt;.
It was worth being committed in the distro, I wonder why Claudio
didn&amp;#39;t :-/

&lt;/p&gt;
&lt;p&gt;
Still, no luck with this particular modem, we&amp;#39;d need to investigate
more.

&lt;/p&gt;
&lt;p&gt;
The scanModem utility &amp;#40;from &lt;a href=&quot;http://linmodems.technion.ac.il/&quot;&gt;Linmodems support&lt;/a&gt;&amp;#41;
proved to be very useful for these tests, it detects a lot of modem
chipsets, which helps to find the correct dirver. But unfortunately,
its license is unclear, I can&amp;#39;t package it in the distro right now.

&lt;/p&gt;
&lt;p&gt;
Anyway, I&amp;#39;m not done with my quest yet &amp;#40;and it&amp;#39;s only the &amp;#34;rebuild
packages&amp;#34; part of it...&amp;#41;. Our source dkms packages have to be rebuilt
for each of our kernel packages, so that users can install prebuilt
dkms packages, without requiring the whole toolchain to build kernel
modules.

&lt;/p&gt;
&lt;p&gt;
To accomplish that, I still need to baby-sit
&lt;a href=&quot;http://www.warly.org/&quot;&gt;Warly&lt;/a&gt;&amp;#39;s powerful Iurt &amp;#40;the rebuild bot&amp;#41;, and
probably fight against the build system some more times /o\
&lt;/p&gt;
</description>
  </item>
  <item>
    <title>Registering as misc device in vboxadd kernel module</title>
    <pubDate>Wed, 03 Oct 2007 00:35:00 GMT</pubDate>
    <link>http://blino.org/blog/mandriva/kernel/register_vboxadd_device.html</link>
    <description>&lt;p&gt;
I&amp;#39;ve been recently playing a bit with VirtualBox to debug my One live
systems, and got a bit involved in VirtualBox packaging in the
meantime. Our Mandriva package was missing the guest additions, so I
added them recently &amp;#40;the packages are &lt;tt&gt;x11-driver-input-vboxmouse&lt;/tt&gt;,
&lt;tt&gt;x11-driver-video-vboxvideo&lt;/tt&gt;, &lt;tt&gt;dkms-vboxadd&lt;/tt&gt;, &lt;tt&gt;dkms-vboxvfs&lt;/tt&gt; and
&lt;tt&gt;virtualbox-guest-additions&lt;/tt&gt;&amp;#41;.
They basically allow a better integration of mouse and X11 &amp;#40;clipboard&amp;#41;
with the host, and to share files more easily, thanks to a &lt;tt&gt;vboxvfs&lt;/tt&gt;
module and a &lt;tt&gt;vboxfs&lt;/tt&gt; mount helper.

&lt;/p&gt;
&lt;p&gt;
But the vboxadd kernel module required some integration, since
&lt;tt&gt;/dev/vboxadd&lt;/tt&gt; was not created automatically. Upstream has an
initscript to create it, but it&amp;#39;s quite a weird trick to parse
&lt;tt&gt;/proc/devices&lt;/tt&gt; to get the major and create the device &amp;#34;a la main&amp;#34;
with &lt;tt&gt;mknod&lt;/tt&gt;.

&lt;/p&gt;
&lt;p&gt;
A better solution is to make the kernel module send an uevent &amp;#40;with
&lt;tt&gt;kobject_uevent&amp;#40;&amp;#41;&lt;/tt&gt;&amp;#41; when the device is registered in the kernel
module, so that &lt;tt&gt;udev&lt;/tt&gt; creates the device node automatically.

&lt;/p&gt;
&lt;p&gt;
This can be done through the &lt;tt&gt;device_create&amp;#40;&amp;#41;&lt;/tt&gt; function
&amp;#40;from &lt;tt&gt;drivers/base/core.c&lt;/tt&gt;&amp;#41;, but it requires a kernel class as
argument, and we don&amp;#39;t necessarily need to create one for &lt;tt&gt;vboxadd&lt;/tt&gt;.

&lt;/p&gt;
&lt;p&gt;
A simpler solution is to replace the original char device creation,
&lt;tt&gt;register_chrdev&amp;#40;&amp;#41;&lt;/tt&gt; &amp;#40;from &lt;tt&gt;fs/char_dev.c&lt;/tt&gt;&amp;#41;, by using a misc
character device. &lt;tt&gt;misc_register&amp;#40;&amp;#41;&lt;/tt&gt; &amp;#40;from &lt;tt&gt;drivers/char/misc.c&lt;/tt&gt;&amp;#41;
takes care of the character device registration and of sending the
uevent to userspace.

&lt;/p&gt;
&lt;pre class=&quot;formatter_pre&quot;&gt;#include &amp;lt;linux/miscdevice.h&amp;gt;

...

static struct miscdevice vbox_dev =
{
    .minor      = MISC_DYNAMIC_MINOR,
    .name       = &amp;#34;vboxadd&amp;#34;,
    .fops       = &amp;#38;vbox_fops,
};

...

    if &amp;#40;vbox_major &amp;gt; 0&amp;#41; {
        err = register_chrdev&amp;#40;vbox_major, &amp;#34;vboxadd&amp;#34;, &amp;#38;vbox_fops&amp;#41;;
    } else {
        err = misc_register&amp;#40;&amp;#38;vbox_dev&amp;#41;;
    }

...

    if &amp;#40;vbox_major &amp;gt; 0&amp;#41; {
        unregister_chrdev&amp;#40;vbox_major, &amp;#34;vboxadd&amp;#34;&amp;#41;;
    } else {
        misc_deregister&amp;#40;&amp;#38;vbox_dev&amp;#41;;
    }
&lt;/pre&gt;
&lt;p&gt;
The final touch is to make the device node reachable by end-users,
which is made easy since Mandriva uses &lt;tt&gt;pam_console&lt;/tt&gt;.
&lt;tt&gt;pam_console_apply&lt;/tt&gt; is called for every device node created by udev,
so we just need to add a rule to make vboxadd devices owned by the
console user &amp;#40;i.e. the user physically logged on the system&amp;#41;.

&lt;/p&gt;
&lt;pre class=&quot;formatter_pre&quot;&gt;$ cat /etc/security/console.perms.d/60-vboxadd.perms
&amp;lt;vboxadd&amp;gt;=/dev/vboxadd*
&amp;lt;console&amp;gt; 0600 &amp;lt;vboxadd&amp;gt; 0600 root
&lt;/pre&gt;
</description>
  </item>
  <item>
    <title>Debugging udev ATTRS/ATTR</title>
    <pubDate>Wed, 03 Oct 2007 00:30:00 GMT</pubDate>
    <link>http://blino.org/blog/mandriva/udev/udev-attrs-debug.html</link>
    <description>&lt;p&gt;
When multiple display modules matching the same device are loaded at
startup by udev coldplug, we can get in a situation where X doesn&amp;#39;t
start &amp;#40;&lt;a href=&quot;http://qa.mandriva.com/show_bug.cgi?id=32030&quot;&gt;#32030&lt;/a&gt;&amp;#41;.
This can happen when different versions of nvidia modules &amp;#40;nvidia,
, nvidia96xx, nvidia71xx&amp;#41; are installed, which is the case
on our live &lt;a href=&quot;?CDs&quot; class=&quot;empty&quot;&gt;CDs&lt;/a&gt;.

&lt;/p&gt;
&lt;p&gt;
To prevent all these modules from being loaded by udev, we can
explicitely exclude devices from the display PCI class, like we do for
storage controllers:

&lt;/p&gt;
&lt;pre class=&quot;formatter_pre&quot;&gt;# modprobe pci devices on cold plug except for:
#  PCI_BASE_CLASS_STORAGE          0x01
ACTION==&amp;#34;add&amp;#34;, SUBSYSTEM==&amp;#34;pci&amp;#34;, ENV{STARTUP}==&amp;#34;1&amp;#34;, SYSFS{modalias}==&amp;#34;?*&amp;#34;, \
        ATTRS{class}!=&amp;#34;0x01*&amp;#34;, \
        RUN+=&amp;#34;/sbin/modprobe %s{modalias}&amp;#34;
&lt;/pre&gt;
&lt;p&gt;
But adding another match to exclude the display class
&amp;#40;PCI_BASE_CLASS_DISPLAY is 0x03 in &lt;tt&gt;/usr/include/pci/header.h&lt;/tt&gt;&amp;#41;
did not always work: &lt;tt&gt;ATTRS{class}!=&amp;#34;0x03*&amp;#34;&lt;/tt&gt; fails on PCI-Express
devices.

&lt;/p&gt;
&lt;p&gt;
That&amp;#39;s because the &lt;tt&gt;ATTRS{class}!=&amp;#34;value&amp;#34;&lt;/tt&gt; rule walks every parent
devices to check that each of them has a class different from &amp;#34;value&amp;#34;,
while one could think it would match if only one of them has a
different value. Thus, when the tested device has a parent device,
like with PCI Express devices, the negative &lt;tt&gt;ATTRS&lt;/tt&gt; check is likely
to fail.

&lt;/p&gt;
&lt;p&gt;
So, the solution is to use &lt;tt&gt;ATTR{class}!=&amp;#34;value&amp;#34;&lt;/tt&gt;, which checks only
the current device, without walking the parent tree.

&lt;/p&gt;
&lt;p&gt;
To debug this, I built udev with &lt;tt&gt;DEBUG=true&lt;/tt&gt;, and added a
&lt;tt&gt;ENV{FOO}=BAR&lt;/tt&gt; operation in the rule I tested, to know quickly if it
mached &amp;#40;in the output of &lt;tt&gt;udevmonitor --env&lt;/tt&gt;&amp;#41;.

&lt;/p&gt;
&lt;pre class=&quot;formatter_pre&quot;&gt;# udevd --daemon --debug-trace --verbose &amp;#38;&amp;gt;udevd-debug.log
# udevcontrol log_priority=debug
# udevcontrol env STARTUP=1
# udevmonitor --env
&lt;/pre&gt;
&lt;p&gt;
Then, testing the rule of my video adapter device is just a matter of
writting in the &lt;tt&gt;uevent&lt;/tt&gt; file in sysfs:

&lt;/p&gt;
&lt;pre class=&quot;formatter_pre&quot;&gt;$ lspci | grep VGA
01:00.0 VGA compatible controller: ATI Technologies Inc Unknown device 94c3
# echo 1 &amp;gt; /sys/devices/pci0000:00/0000:01:00.0/uevent
&lt;/pre&gt;
</description>
  </item>
  <item>
    <title>Auto-mounting LUKS devices</title>
    <pubDate>Mon, 24 Sep 2007 19:00:00 GMT</pubDate>
    <link>http://blino.org/blog/mandriva/udev/udev-lvm-luks.html</link>
    <description>&lt;p&gt;
For a few releases, auto-mount of LUKS devices has been broken in
Mandriva &amp;#40;bugs &lt;a href=&quot;http://qa.mandriva.com/show_bug.cgi?id=27259&quot;&gt;#27259&lt;/a&gt; and &lt;a href=&quot;http://qa.mandriva.com/show_bug.cgi?id=30115&quot;&gt;#30115&lt;/a&gt;&amp;#41;, because we had the following udev
rule as default:
&lt;/p&gt;
&lt;pre class=&quot;formatter_pre&quot;&gt;KERNEL==&amp;#34;dm-[0-9]*&amp;#34;, OPTIONS=&amp;#34;ignore_device&amp;#34;
&lt;/pre&gt;
&lt;p&gt;
This rule existed because &lt;tt&gt;lvm2&lt;/tt&gt; setup got broken when &lt;tt&gt;udev&lt;/tt&gt; tried
to run &lt;tt&gt;vol_id&lt;/tt&gt; on dm devices &amp;#40;see
&lt;a href=&quot;http://www.redhat.com/archives/linux-lvm/2006-October/msg00105.html&quot;&gt;Let udev play with snapshots&lt;/a&gt;
thread on linux-lvm ML&amp;#41;.
This has been fixed ages ago &amp;#40;in lvm2-2.02.13&amp;#41; with the following
change: &lt;em&gt;When adding snapshot leave cow LV mapped device active after zeroing&lt;/em&gt;
&lt;a href=&quot;http://sources.redhat.com/cgi-bin/cvsweb.cgi/LVM2/tools/lvcreate.c.diff?r1=1.128&amp;#38;r2=1.129&amp;#38;cvsroot=lvm2&quot;&gt;&amp;#40;commit&amp;#41;&lt;/a&gt;.

&lt;/p&gt;
&lt;p&gt;
So, the &amp;#34;ignore dm devices&amp;#34; workaround has been removed from our udev
rules, and LUKS devices should now be auto-mounted by default on
modern desktops \o/ &amp;#40;GNOME users, enjoy&amp;#41;
&lt;/p&gt;
</description>
  </item>
  <item>
    <title>Translating strings in HTML documents with intltool</title>
    <pubDate>Wed, 19 Sep 2007 23:00:00 GMT</pubDate>
    <link>http://blino.org/blog/mandriva/intltool-html.html</link>
    <description>&lt;p&gt;
Since we use HTML in our
&lt;a href=&quot;http://svn.mandriva.com/cgi-bin/viewvc.cgi/soft/mandriva-galaxy/trunk/&quot;&gt;first time desktop wizard&lt;/a&gt;
&amp;#40;and in the new first boot wizard&amp;#41;, it may be useful to use standard
translations methods such as xgettext and po files.

&lt;/p&gt;
&lt;p&gt;
intltool comes handy here, since it can handle XML files
&amp;#40;&lt;a href=&quot;http://gould.cx/ted/blog/2005/Dec/07&quot;&gt;Translating Custom XML&lt;/a&gt;&amp;#41;.
This also works with HTML files, it just requires translatables
strings to be enclosed in tags with an &amp;#39;_&amp;#39; prefix.

&lt;/p&gt;
&lt;pre class=&quot;formatter_pre&quot;&gt;$ cat &amp;gt; foo.html.in
&amp;lt;html&amp;gt;
&amp;lt;head&amp;gt;&amp;lt;_title&amp;gt;Oy&amp;lt;/_title&amp;gt;&amp;lt;/head&amp;gt;
&amp;lt;body&amp;gt;&amp;lt;_span&amp;gt;w00t&amp;lt;/_span&amp;gt;&amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;

$ intltool-extract --type=gettext/xml foo.html.in 
Generating C format header file for translation.
Wrote foo.html.in.h

$ mkdir po
$ xgettext -a foo.html.in.h -o po/foo.pot
$ cp -a po/foo.pot po/fr.po

$ emacs po/fr.po # edit po/fr.po

$ intltool-merge --xml-style -m po foo.html.in foo.html
Merging translations into foo.html.
CREATED fr/foo.html
CREATED foo.html

$ cat fr/foo.html
&amp;lt;?xml version=&amp;#34;1.0&amp;#34; encoding=&amp;#34;UTF-8&amp;#34;?&amp;gt;
&amp;lt;html&amp;gt;
&amp;lt;head&amp;gt;&amp;lt;title xml:lang=&amp;#34;fr&amp;#34;&amp;gt;Moyoto&amp;lt;/title&amp;gt;&amp;lt;/head&amp;gt;
&amp;lt;body&amp;gt;&amp;lt;span xml:lang=&amp;#34;fr&amp;#34;&amp;gt;\o/&amp;lt;/span&amp;gt;&amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;
&lt;/pre&gt;
</description>
  </item>
  <item>
    <title>Using pipes as serial port for VirtualBox</title>
    <pubDate>Sat, 15 Sep 2007 23:00:00 GMT</pubDate>
    <link>http://blino.org/blog/mandriva/virtualbox-pipe.html</link>
    <description>&lt;p&gt;
While trying to reproduce and debug
&lt;a href=&quot;http://www.am-utils.org/project-unionfs.html&quot;&gt;UnionFS&lt;/a&gt; bugs with
&lt;a href=&quot;http://www.virtualbox.org/&quot;&gt;VirtualBox&lt;/a&gt;, I needed to extract a copy of
the call traces.

&lt;/p&gt;
&lt;p&gt;
&lt;a href=&quot;http://people.mandriva.com/~blino/screenshots/unionfs-vbox/&quot;&gt;Screenshots&lt;/a&gt;
are not easily usable, so I tried the &amp;#34;serial ports&amp;#34; feature of
VirtualBox.

&lt;/p&gt;
&lt;p&gt;
An &amp;#34;Host Pipe&amp;#34; mode is available, to redirect serial port output to a
pipe.
But it didn&amp;#39;t work by using a named pipe, created with &lt;tt&gt;mkfifo&lt;/tt&gt;.
Actually, if set to create the pipe, VirtualBox will create a UNIX
local domain socket.

&lt;/p&gt;
&lt;pre class=&quot;formatter_pre&quot;&gt;$ file /tmp/vbox-pipe 
/tmp/vbox-pipe: socket
&lt;/pre&gt;
&lt;p&gt;
The &amp;#34;pipe&amp;#34; name is a bit ambiguous, it&amp;#39;s easy to understand it as a
fifo, not a socket &amp;#40;and actually, the Windows implementation uses a
named pipe in VirtualBox...&amp;#41;

&lt;/p&gt;
&lt;p&gt;
This is all explained in VirtualBox&amp;#39;s manual
&lt;a href=&quot;http://virtualbox.org/download/UserManual.pdf&quot;&gt;&amp;#40;PDF&amp;#41;&lt;/a&gt;
&amp;#40;section 3.7.9: Serial ports&amp;#41;, which even mentions the nice
&lt;tt&gt;socat&lt;/tt&gt; utility.

&lt;/p&gt;
&lt;p&gt;
So, to get serial output to stdout, one can use:
&lt;/p&gt;
&lt;pre class=&quot;formatter_pre&quot;&gt;socat /tmp/vbox-pipe -
&lt;/pre&gt;
&lt;p&gt;
Or to keep serial output in a log file:
&lt;/p&gt;
&lt;pre class=&quot;formatter_pre&quot;&gt;socat -u /tmp/vbox-pipe GOPEN:vbox.log
tail -f vbox.log
&lt;/pre&gt;
&lt;p&gt;
Sometimes, the connection to the socket fails with &lt;tt&gt;ECONNREFUSED&lt;/tt&gt;, so
it can be better to create it with &lt;tt&gt;socat&lt;/tt&gt;, before starting the
virtual machine:
&lt;/p&gt;
&lt;pre class=&quot;formatter_pre&quot;&gt;socat unix-listen:/tmp/vbox-pipe -
&lt;/pre&gt;
&lt;p&gt;
Now, I just need to add &lt;tt&gt;console=ttyS0&lt;/tt&gt; as kernel command line option
when booting my live system, and I have no excuse not to report the
bugs. I could even try to fix them.
&lt;/p&gt;
</description>
  </item>
  <item>
    <title>Compiz, gconf plugin, r300 chipsets, mesa and gcc optimization</title>
    <pubDate>Tue, 07 Aug 2007 22:30:00 GMT</pubDate>
    <link>http://blino.org/blog/mandriva/composited-desktop/compiz-gconf-mesa-gcc.html</link>
    <description>&lt;p&gt;
Since recent compiz updates in cooker, we have a &amp;#34;small&amp;#34; issue: the
window &lt;tt&gt;decoration&lt;/tt&gt; plugin is not enabled correctly if the &lt;tt&gt;gconf&lt;/tt&gt;
plugin is loaded in compiz, which we do by default &amp;#40;&lt;a href=&quot;http://qa.mandriva.com/show_bug.cgi?id=32251&quot;&gt;#32251&lt;/a&gt;&amp;#41;.

&lt;/p&gt;
&lt;p&gt;
Actually, it&amp;#39;s a bug in the compiz part that initializes plugins.
It maintains a list of loaded plugins, and fills it at startup after
each successful plugin load. The problem is that the &lt;tt&gt;gconf&lt;/tt&gt; plugin
also updates this list when initializing.

&lt;/p&gt;
&lt;p&gt;
It happens this way: compiz first loads the glib plugin, adds it to
the plugins list, then loads the &lt;tt&gt;gconf&lt;/tt&gt; plugin, which reads GConf
settings and notably loads the &lt;tt&gt;active_plugins&lt;/tt&gt; GConf key in the
plugins list. And since the &lt;tt&gt;gconf&lt;/tt&gt; plugin is loaded, compiz adds it
to the plugin list, but to the wrong place: it doesn&amp;#39;t handle the fact
that a plugin could have modified the current plugins list
&lt;a href=&quot;http://www.mail-archive.com/compiz@lists.freedesktop.org/msg02257.html&quot;&gt;&amp;#40;more details in my post on the compiz ML&amp;#41;&lt;/a&gt;.

&lt;/p&gt;
&lt;p&gt;
I wrote a quick patch &amp;#40;see previous link&amp;#41; to make compiz handle the
fact that a plugin modifies the active plugins list, and it makes
compiz loads the &lt;tt&gt;decoration&lt;/tt&gt; plugin fine. It has an unfortunate side
effect: the &lt;tt&gt;gconf&lt;/tt&gt; plugin is not added in the active plugins list
anymore, and it make compiz segfaults when it is stopped.

&lt;/p&gt;
&lt;p&gt;
To debug it further, I would have made gdb not stop on the SIGINT
signal and allow it to pass the signal to the debugged program
&lt;a href=&quot;http://sourceware.org/gdb/current/onlinedocs/gdb_6.html#SEC44&quot;&gt;&amp;#40;gdb doc about signals&amp;#41;&lt;/a&gt;:
&lt;/p&gt;
&lt;pre class=&quot;formatter_pre&quot;&gt;&amp;#40;gdb&amp;#41; handle SIGINT nostop
&amp;#40;gdb&amp;#41; handle SIGINT pass
&lt;/pre&gt;
&lt;p&gt;
But I wasn&amp;#39;t really able to catch the segfault this way, so I kinda
gave up. Anyway, this bug is not much important, we used to load the
&lt;tt&gt;gconf&lt;/tt&gt; plugin by default, to make the default plugins stored in
gconf and to use the deprecated &lt;tt&gt;gset-compiz&lt;/tt&gt; frontend. Now,
the default plugins list has been added by
&lt;a href=&quot;http://colin.guthr.ie/&quot;&gt;coling&lt;/a&gt; in the &lt;tt&gt;core.xml&lt;/tt&gt; file, so this is
not very useful anymore. &amp;#40;Hey, no, this wasn&amp;#39;t a waste of time!&amp;#41;

&lt;/p&gt;
&lt;p&gt;
Ok, there is a bug and I haven&amp;#39;t issued a proper fix, but well, it
won&amp;#39;t obsess me much. Furthermore, my
&lt;a href=&quot;http://www.piepalace.ca/blog/2007/07/asperger-test-aq-test.html&quot;&gt;Asperger Quotient&lt;/a&gt;
is only 14, I&amp;#39;m not even up the so-called &amp;#34;average women&amp;#34; quotient.
So, why bother with this buglet? :-p

&lt;/p&gt;
&lt;p&gt;
At that time, yesterday night, I thought that my day at the office was
offer, and that I could gently modify the compiz package from home,
not to load the &lt;tt&gt;gconf&lt;/tt&gt; plugin by default. So, a bit later, I
leisurely updated my laptop at home with latest cooker, and prepared
to test my update package.

&lt;/p&gt;
&lt;p&gt;
That was kinda naive, I should have known by now that the world is
full of bugs, and that they have a special kinship with me.
Of course, compiz didn&amp;#39;t start correctly. Worse, it made my system
hard lock.

&lt;/p&gt;
&lt;p&gt;
A quick look on freedesktop&amp;#39;s bugzilla shows a bug with a close
description:
&lt;a href=&quot;https://bugs.freedesktop.org/show_bug.cgi?id=11380&quot;&gt;r300 DRI misrenders 3D objects &amp;#40;bug 11380&amp;#41;&lt;/a&gt;.
In this report, the bug impacts blender. Ok, it&amp;#39;s maybe a really long
shot. This bug seems to involve gcc and the &lt;tt&gt;-O2&lt;/tt&gt; build optimization,
especially the &lt;tt&gt;-ftree-vrp&lt;/tt&gt; one
&lt;a href=&quot;http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32544&quot;&gt;&amp;#40;upstream gcc bug 32544&amp;#41;&lt;/a&gt;.
Yep, building with &lt;tt&gt;-O0&lt;/tt&gt; solves my bug \o/

&lt;/p&gt;
&lt;p&gt;
Still, I couldn&amp;#39;t let this miscompilation with &lt;tt&gt;-O2&lt;/tt&gt; unsolved.
So, the day after &amp;#40;today&amp;#41;, I had a closer look to the incriminated
Mesa source code &amp;#40;&lt;tt&gt;src/mesa/drivers/dri/r300/r300_state.c&lt;/tt&gt;&amp;#41;.
Let&amp;#39;s try the &lt;tt&gt;-fno-tree-vrp&lt;/tt&gt; option mentionned in the bug report.
It works as well \o/

&lt;/p&gt;
&lt;p&gt;
I extracted the code of the &lt;tt&gt;r300SetupPixelShader&amp;#40;&amp;#41;&lt;/tt&gt; function in a
separate &lt;tt&gt;r300_pixelshader.c&lt;/tt&gt; file to make debugging
easier, since Bero already noticed it was the culprit &amp;#40;in the gcc bug
report&amp;#41;.

&lt;/p&gt;
&lt;p&gt;
First, the preprocessed files are the same:
&lt;/p&gt;
&lt;pre class=&quot;formatter_pre&quot;&gt;gcc -O2 &amp;lt;options&amp;gt; r300_pixelshader.c -E -o r300_pixelshader.i
gcc -O2 -fno-tree-vrp &amp;lt;options&amp;gt; r300_pixelshader.c -E -o r300_pixelshader.notreevrp.i
&lt;/pre&gt;
&lt;p&gt;
Then, we can compare the generated assembly code &amp;#40;using
&lt;tt&gt;-fverbose-asm&lt;/tt&gt; to get some hints&amp;#41;:
&lt;/p&gt;
&lt;pre class=&quot;formatter_pre&quot;&gt;gcc -fverbose-asm -O2 &amp;lt;options&amp;gt; r300_pixelshader.c -S -o r300_state.s
gcc -fverbose-asm -O2 -fno-tree-vrp &amp;lt;options&amp;gt; r300_pixelshader.c -S -o r300_state.s
&lt;/pre&gt;
&lt;p&gt;
It differs, maybe &lt;tt&gt;-fno-inline&lt;/tt&gt; could have helped as well to reduce the diff,
but here I&amp;#39;m lost &amp;#40;see preprocessed diff on the freedesktop bug report&amp;#41;.

&lt;/p&gt;
&lt;p&gt;
Strangly enough, building with the &lt;tt&gt;-O3&lt;/tt&gt; optimize option instead of
&lt;tt&gt;-O2&lt;/tt&gt; also makes the r300 driver run fine.
According to the gcc manpage, &lt;tt&gt;-O3&lt;/tt&gt; is equivalent to
&lt;tt&gt;-O2 -finline-functions -funswitch-loops -fgcse-after-reload&lt;/tt&gt;
A quick look at gcc&amp;#39;s source code &amp;#40;&lt;tt&gt;decode_options&amp;#40;&amp;#41;&lt;/tt&gt; in &lt;tt&gt;gcc/opts.c&lt;/tt&gt;&amp;#41;
seems to confirm that, but actually, a lot more options are enabled.
For example, some bits of loops unroll &amp;#40;from &lt;tt&gt;tree_complete_unroll&amp;#40;&amp;#41;&lt;/tt&gt;
in &lt;tt&gt;gcc/tree-ssa-loop.c&lt;/tt&gt;&amp;#41; are enabled if optimize level is greater or
equal to 3. Building with
&lt;tt&gt;-O2 -finline-functions -funswitch-loops -fgcse-after-reload -funroll-loops&lt;/tt&gt;
also made it work.

&lt;/p&gt;
&lt;p&gt;
By the way, the code also runs fine when built with gcc 4.3.
This is all very interesting, but it does not help to find what&amp;#39;s
breaking it between &lt;tt&gt;-00&lt;/tt&gt; and &lt;tt&gt;-O2&lt;/tt&gt;, and it does not change the fact
that I&amp;#39;m lost /o\
&lt;br /&gt;
Pixel, our beloved gcc maintainer in law, has helped me a lot so far,
and we were able to extract a not so big code portion &amp;#40;the assembly
diff is about 150 lines&amp;#41; that triggers the bug.
So let&amp;#39;s give him the hot potato ;-&amp;#41;

&lt;/p&gt;
&lt;p&gt;
Now, I&amp;#39;m sort of out of the loop, Pixel handles this fine. He has a
very small testcase &amp;#40;dozen of lines&amp;#41; that involves union variables and
Value Range Propagation &amp;#40;VRP&amp;#41; on trees, which can be debugged using
&lt;tt&gt;-fdump-tree-vrp&lt;/tt&gt;, and gdb...

&lt;/p&gt;
&lt;p&gt;
For now, I&amp;#39;m uploading a Mesa package built with &lt;tt&gt;-fno-tree-vrp&lt;/tt&gt; in
cooker, we&amp;#39;ll get a proper fix later if possible.
I can now focus on &amp;#34;desktop&amp;#34; features, expect a new drak3d soon!
&lt;/p&gt;
</description>
  </item>
  <item>
    <title>Avivo driver and r610</title>
    <pubDate>Mon, 06 Aug 2007 14:30:00 GMT</pubDate>
    <link>http://blino.org/blog/mandriva/X11/avivo-r610.html</link>
    <description>&lt;p&gt;
This week-end, I decided to buy a new PCI-E video card, with a passive
cooling solution, since the default ATI fan of my 
&lt;a href=&quot;http://www.asus.com/products.aspx?l1=2&amp;#38;model=1192&amp;#38;modelmenu=1&quot;&gt;ASUS EAX550&lt;/a&gt;
was really noisy.
So, it took my rollers to go
&lt;a href=&quot;http://www.rue-montgallet.com/&quot;&gt;rue Montgallet&lt;/a&gt; and find a silent one.
The first shop tried to sell me the exact same card as silent, but of
course, I didn&amp;#39;t &amp;#34;bought&amp;#34; it :-p

&lt;/p&gt;
&lt;p&gt;
Most shops only had passive cooling cards from Nvidia, but I preferred
to get an ATI one, since they&amp;#39;re usually better supported by
free-software drivers. Finally, I bought a cheap &amp;#40;55 euros&amp;#41;
&lt;a href=&quot;http://global.msi.com.tw/index.php?func=proddesc&amp;#38;prod_no=1248&amp;#38;maincat_no=130&amp;#38;cat2_no=137&quot;&gt;MSI RX2400PRO&lt;/a&gt;
card, with a big heat sink, but also with 256MB of memory and a lot of
HDTV features that I&amp;#39;ll probably never use...

&lt;/p&gt;
&lt;p&gt;
Though, at first boot, harddrake automatically configured the card to
use the fbdev driver, which was not a good sign regarding support in
free-software drivers /o\

&lt;/p&gt;
&lt;p&gt;
X didn&amp;#39;t start with the free &lt;tt&gt;radeon&lt;/tt&gt; driver, and it even failed with
&lt;a href=&quot;http://ati.amd.com/support/drivers/linux/linux-radeon.html&quot;&gt;ATI&amp;#39;s proprietary fglrx driver&lt;/a&gt;
&amp;#40;8.39.4&amp;#41;.
&lt;a href=&quot;http://archives.mandrivalinux.com/cooker/2007-08/msg00228.php&quot;&gt;Adam&amp;#39;s post on cooker&lt;/a&gt;
reminded me about the
&lt;a href=&quot;http://gitweb.freedesktop.org/?p=avivo/xf86-video-avivo.git&quot;&gt;avivo driver&lt;/a&gt;.
It supports r5xx chipsets only, while mine is a &lt;tt&gt;r610&lt;/tt&gt; HD 2400
chipset &amp;#40;device ID &lt;tt&gt;0x94c3&lt;/tt&gt;&amp;#41;.
According to the avivo developpers, it should be
possible to make this driver support r6xx cards
&lt;a href=&quot;http://www.fooishbar.org/blog/tech/x/donations-2007-06-15-00-09.html&quot;&gt;&amp;#40;daniels post&amp;#41;&lt;/a&gt;.

&lt;/p&gt;
&lt;p&gt;
This post also mentions how to further debug the driver, using these tools:
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;avivotool&lt;/li&gt;
&lt;li&gt;xresprobe &amp;#40;hacked by &lt;a href=&quot;http://airlied.livejournal.com/&quot;&gt;airlied&lt;/a&gt;&amp;#41;&lt;/li&gt;
&lt;li&gt;valgrind &amp;#40;&lt;a href=&quot;http://www.fooishbar.org/blog/tech/x/valgrind-2007-03-12-22-39.html&quot;&gt;hacked version&lt;/a&gt;&amp;#41;, &amp;#40;it has to be patched to build with glibc-2.6, for example with a rediffed version of the &lt;a href=&quot;http://sources.gentoo.org/viewcvs.py/*checkout*/gentoo-x86/dev-util/valgrind/files/valgrind-3.2.3-glibc-2.6.patch?rev=1.1&quot;&gt;gentoo patch&lt;/a&gt;&amp;#41;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
An &lt;a href=&quot;http://www.phoronix.com/scan.php?page=article&amp;#38;item=773&amp;#38;num=3&quot;&gt;article on Phoronix &amp;#40;AMD Radeon HD 2000 Series &amp;#38; Linux&amp;#41;&lt;/a&gt;
showed that it won&amp;#39;t be that easy to get r6xx support in
avivo. Following the same track, I patched the avivo driver to list my
chipset device ID, but I got the same error message when starting X:
&lt;/p&gt;
&lt;pre class=&quot;formatter_pre&quot;&gt;xf86MapVidMem: Could not mmap framebuffer &amp;#40;0xb0000000,0x0&amp;#41; &amp;#40;Invalid argument&amp;#41;
&lt;/pre&gt;
&lt;p&gt;
So, I hopped in the &lt;a href=&quot;http://dri.egore911.de/&quot;&gt;#dri-devel&lt;/a&gt; channel to
bug the driver developpers &amp;#40;mainly Jerome Glisse&amp;#41;.
The initial advice was that the radeon memory size register was not at
the same offset in the BIOS anymore.
Eek.
And that I could grep for the memory size in a BIOS dump.
Eek.

&lt;/p&gt;
&lt;p&gt;
Actually, I just had to use the
&lt;a href=&quot;http://gitweb.freedesktop.org/?p=users/glisse/radeondump.git;a=summary&quot;&gt;radeondump tool&lt;/a&gt;
&amp;#40;&lt;a href=&quot;http://tirdc.livejournal.com/3766.html&quot;&gt;radeondump HOWTO&lt;/a&gt;&amp;#41;, and search
for my memory size in the registers. It appeared to be in kB, so I
grepped &lt;tt&gt;0x00040000&lt;/tt&gt; &amp;#40;256*1024, since the card has 256MB&amp;#41; in the dump.
It gave a few hits, and &lt;tt&gt;0x168&lt;/tt&gt; was apparently the correct offset.

&lt;/p&gt;
&lt;pre class=&quot;formatter_pre&quot;&gt;&amp;#40;II&amp;#41; avivo&amp;#40;0&amp;#41;: No connector table in BIOS
&amp;#40;EE&amp;#41; avivo&amp;#40;0&amp;#41;: No valid modes.
&lt;/pre&gt;
&lt;p&gt;
Trying &lt;tt&gt;./avivotool/avivotool romtables&lt;/tt&gt; shows the same &lt;tt&gt;No connector table in BIOS&lt;/tt&gt;
error message &amp;#40;after fixing avivotool check for &lt;tt&gt;mmap&amp;#40;&amp;#41;&lt;/tt&gt; return code&amp;#41;.
Even if the BIOS header reads &lt;tt&gt;ATOM&lt;/tt&gt;, it seems that the format is
different from other r4xx/r5xx chipsets.
So, a new video BIOS format, fun in prospect!

&lt;/p&gt;
&lt;p&gt;
I saved the BIOS rom in a file to make debugging easier:
&lt;/p&gt;
&lt;pre class=&quot;formatter_pre&quot;&gt;$ lspci | grep VGA
01:00.0 VGA compatible controller: ATI Technologies Inc Unknown device 94c3
# cp /sys/bus/pci/devices/0000:01:00.0/rom r610.rom
# ./avivotool/avivotool romtables r610.rom
&lt;/pre&gt;
&lt;p&gt;
Besides the source code of avivotool, I used some other
&lt;a href=&quot;http://bios.egore911.de/&quot;&gt;Radeon BIOS dumps&lt;/a&gt; &amp;#40;r420, r520, r530, r580&amp;#41;
as examples to guess the BIOS format, and notably to find where the
connector table is hidden in my BIOS.
The &lt;a href=&quot;http://www.x.org/wiki/Development/Documentation/HowVideoCardsWork&quot;&gt;HowVideoCardsWork article&lt;/a&gt;
from Xorg wiki was quite handy to get basic information about CRTC and
connectors, since I&amp;#39;m a total n00b here.

&lt;/p&gt;
&lt;p&gt;
I had to do some hex maths, so I used bc as hexadecimal calculator
&lt;a href=&quot;http://ergo.rydlr.net/?p=52&quot;&gt;&amp;#40;tips about base modes&amp;#41;&lt;/a&gt;
&lt;a href=&quot;http://nixshell.wordpress.com/2007/01/29/simple-maths-in-the-unix-shell/&quot;&gt;&amp;#40;more tips about hexadecimal&amp;#41;&lt;/a&gt;.
Maybe I could have used &lt;a href=&quot;http://www.gnu.org/software/emacs/calc.html&quot;&gt;emacs-calc&lt;/a&gt;,
or &lt;a href=&quot;http://www.chez.com/prigaux/hexedit.html&quot;&gt;pixel&amp;#39;s hexedit&lt;/a&gt;, but
anyway I ended writting a lot of debug code to show hex numbers in the
format I wanted to guess connectors offset.
But so far, I have not found any relevant pattern :-/

&lt;/p&gt;
&lt;p&gt;
Yesterday, I knew nothing about all this stuff, and here I am, parsing
hex numbers &amp;#40;and again following
&lt;a href=&quot;http://lists.freedesktop.org/pipermail/xorg/2007-May/024575.html&quot;&gt;warly&amp;#39;s steps&lt;/a&gt; :-p&amp;#41;...
I can&amp;#39;t believe me, I should really take a break.
Someday.
&lt;/p&gt;
</description>
  </item>
  <item>
    <title>Making splashy work with directfb in cooker</title>
    <pubDate>Mon, 23 Jul 2007 01:00:00 GMT</pubDate>
    <link>http://blino.org/blog/mandriva/splashy_directfb.html</link>
    <description>&lt;p&gt;
I wish this week had been as fun as the previous one, which included
RMLL meetings + some other &amp;#40;really nice&amp;#41; meetings. But it seems I&amp;#39;m
now kinda out of luck or cursed, core system tools are now haunting me
:-/

&lt;/p&gt;
&lt;p&gt;
This week-end, it was
&lt;a href=&quot;http://splashy.alioth.debian.org/wiki/&quot;&gt;splashy&lt;/a&gt;
that was bothering me again. Since we are considering its inclusion in
&lt;a href=&quot;http://wiki.mandriva.com/en/Releases/Mandriva/2008.0&quot;&gt;Mandriva Linux 2008.0&lt;/a&gt;,
to replace the &lt;a href=&quot;http://www.bootsplash.org/&quot;&gt;bootsplash&lt;/a&gt; kernel patch, I
had to try it.

&lt;/p&gt;
&lt;p&gt;
The version I packaged in Mandriva Cooker was not really functional
&amp;#40;it segfaulted...&amp;#41;,
so I had to debug it. The initial segfault was
quite easy to debug &amp;#40;after making splashy not fork at startup&amp;#41;, a
couple of checks about directfb initialization were missing
&lt;a href=&quot;http://svn.mandriva.com/cgi-bin/viewvc.cgi/packages/cooker/splashy/current/SOURCES/splashy-0.3.3-checkvideo.patch?revision=54313&amp;#38;view=markup&quot;&gt;&amp;#40;patch&amp;#41;&lt;/a&gt;.

&lt;/p&gt;
&lt;p&gt;
That was rather not a good sign, splashy really needs
&lt;a href=&quot;http://www.directfb.org/&quot;&gt;DirectFB&lt;/a&gt; to work.
Looking further in the execution with &lt;tt&gt;gdb&lt;/tt&gt; showed that
&lt;tt&gt;dfb_system_lookup&amp;#40;&amp;#41;&lt;/tt&gt; failed to find a directfb &amp;#34;system&amp;#34;.
Actually, the &lt;tt&gt;direct_modules_explore_directory&amp;#40;&amp;#41;&lt;/tt&gt; does not even
bother to look in the modules directories when statically build
&amp;#40;i.e. when built with &lt;tt&gt;-DPIC&lt;/tt&gt;, passed by libtool&amp;#41;, which seems
logical.

&lt;/p&gt;
&lt;p&gt;
So, how does it works with static builds? Actually, each directfb
system uses a macro in its source code to register the module at
program initialization, using a
&lt;a href=&quot;http://gcc.gnu.org/onlinedocs/gcc/Function-Attributes.html&quot;&gt;constructor attribute&lt;/a&gt;,
which allows to run functions before even entering &lt;tt&gt;main&amp;#40;&amp;#41;&lt;/tt&gt;:

&lt;/p&gt;
&lt;pre class=&quot;formatter_pre&quot;&gt;#define DFB_CORE_SYSTEM&amp;#40;shortname&amp;#41;                          \
__attribute__&amp;#40;&amp;#40;constructor&amp;#41;&amp;#41; void directfb_##shortname&amp;#40;&amp;#41;;   \
void directfb_##shortname&amp;#40;&amp;#41; {                               \
     direct_modules_register&amp;#40; &amp;#38;dfb_core_systems,            \
                              DFB_CORE_SYSTEM_ABI_VERSION,  \
                              #shortname, &amp;#38;system_funcs &amp;#41;;  \
}
&lt;/pre&gt;
&lt;p&gt;
For this to work, splashy need to be linked with at least with one
directfb system, which is not included in the main directfb static
archive. So, to use fbdev, I&amp;#39;ve added &lt;tt&gt;--system=fbdev&lt;/tt&gt; to the
&lt;tt&gt;directfb-config&lt;/tt&gt; call in the Makefile.

&lt;/p&gt;
&lt;p&gt;
But, again, it&amp;#39;s not that simple when linking with static archives,
objects from an archive are not used if they don&amp;#39;t resolve any symbol
&lt;a href=&quot;http://gcc.gnu.org/ml/gcc-help/2003-04/msg00135.html&quot;&gt;&amp;#40;mail on gcc-help&amp;#41;&lt;/a&gt;.
A trick is to force a symbol contained in an object to be resolved, by
marking it unresolved using the &lt;tt&gt;-u&lt;/tt&gt; option of the &lt;tt&gt;ld&lt;/tt&gt; linker.
In my case, I added &lt;tt&gt;-Wl,-udirectfb_fbdev&lt;/tt&gt; in the Makefile to pick
the fbdev directfb system at linking.

&lt;/p&gt;
&lt;p&gt;
That&amp;#39;s better, but splashy still does not work. It needs a few more
systems to be initialized, and it was a pain to debug with &lt;tt&gt;gdb&lt;/tt&gt;,
because directfb does not build with &lt;tt&gt;-O0&lt;/tt&gt;, and building with &lt;tt&gt;-O1&lt;/tt&gt;
makes it a bit more difficult. Eventually, I found out that directfb
required a few more modules to be started correctly, such as a
keyboard one and a wm one. Adding &lt;tt&gt;-Wl,-udirectfb_keyboard&lt;/tt&gt; and
&lt;tt&gt;-Wl,-udirectfbwm_default&lt;/tt&gt; made the trick
&lt;a href=&quot;http://svn.mandriva.com/cgi-bin/viewvc.cgi/packages/cooker/splashy/current/SOURCES/splashy-0.3.3-dfblink.patch?revision=54314&amp;#38;view=markup&quot;&gt;&amp;#40;final patch&amp;#41;&lt;/a&gt;.

&lt;/p&gt;
&lt;p&gt;
And finally, it starts \o/

&lt;/p&gt;
&lt;p&gt;
Now, we need to integrate splashy in our initscripts, which should
just be a matter of calling &lt;tt&gt;splashy_update &amp;#34;progress &amp;lt;percent&amp;gt;&amp;#34;&lt;/tt&gt;.
We also have to provide a solution to keep background in tty &amp;#40;like
the bootsplash kernel patch provided&amp;#41;. A small daemon using directfb
could do the trick. Hopefully.
&lt;/p&gt;
</description>
  </item>
  <item>
    <title>Fun with OpenOffice.org langs support in Mandriva Flash</title>
    <pubDate>Fri, 20 Jul 2007 12:30:00 GMT</pubDate>
    <link>http://blino.org/blog/mandriva/flash/openoffice_langs.html</link>
    <description>&lt;p&gt;
I&amp;#39;m currently working on an upgrade DVD that will allow to upgrade a
Mandriva Flash 2007 4G to Mandriva Flash 2007 Spring.
Sounds great, right?

&lt;/p&gt;
&lt;p&gt;
But it&amp;#39;s not as easy as it seemed, I had a bunch of i18n-related
problems. For example, OpenOffice.org would only &amp;#34;see&amp;#34; the English
language. Quite bad for a distribution that aims to support as many
languages as possible.

&lt;/p&gt;
&lt;p&gt;
So, what&amp;#39;s wrong? Missing packages? Missing files? I&amp;#39;m doing some
not-really-kosher things with the rpm packages, breaking the rpm
database by splitting files from the same rpm in different compressed
loopbacks, it could explain. But no, everything looks ok.

&lt;/p&gt;
&lt;p&gt;
I tried to reproduce with a Mandriva One 2007 Spring live CD, but
there was no problem there. Stracing it &amp;#40;&lt;tt&gt;strace -e file&lt;/tt&gt;&amp;#41; showed
that it runs
&lt;tt&gt;stat&amp;#40;&amp;#34;/live/distrib/usr/lib/ooo-2.1/share/registry/modules/org/openoffice/Setup/Langpack-fr.xcu&amp;#34;&amp;#41;&lt;/tt&gt;
at some point. Which is fine in the One live CD, since there was only
one loopback containing all compressed files &amp;#40;mounted as
&lt;tt&gt;/live/distrib&lt;/tt&gt;&amp;#41;, mounted by UnionFS together with a writable
tmpfs.
But in the new Flash version, we have split lang files into different
loopbacks, to easily build different regions of Mandriva Flash.
So, for example, the french translation files are mounted in the
&lt;tt&gt;/live/modules/i18n-fr&lt;/tt&gt; root, which obviously is not contained in
&lt;tt&gt;/live/distrib&lt;/tt&gt;.

&lt;/p&gt;
&lt;p&gt;
But why is it looking in the &lt;tt&gt;/live/distrib&lt;/tt&gt; root, shouldn&amp;#39;t that be
plain &lt;tt&gt;/&lt;/tt&gt;?
Looking for first occurence of this root in strace output shows that
&lt;tt&gt;readlink&amp;#40;&amp;#34;/proc/self/exe&amp;#34;&amp;#41;&lt;/tt&gt; returns
&lt;tt&gt;/live/distrib/usr/lib/ooo-2.1/program/soffice.bin&lt;/tt&gt;.
Actually, there is a known misfeature in old unionfs,
it does &lt;a href=&quot;http://www.am-utils.org/docs/unionfs-tos/unionfs.html&quot;&gt;not handle /proc/self/exe correctly&lt;/a&gt;.

&lt;/p&gt;
&lt;p&gt;
Hmm, but who tries to do that with &lt;tt&gt;/proc/self/exe&lt;/tt&gt;?
Let&amp;#39;s see OpenOffice source code. Our rpm source package looks
weird, it contains plenty of tarballs &amp;#40;and a &lt;tt&gt;unowinreg.dll&lt;/tt&gt; file ??&amp;#41;,
and untaring them takes a dozen of minutes.
But no luck grepping for &lt;tt&gt;/proc/self/exe&lt;/tt&gt; in the code...

&lt;/p&gt;
&lt;p&gt;
After looking more closely at strace output, it shows that right after
using &lt;tt&gt;/proc/self/exe&lt;/tt&gt;, it runs &lt;tt&gt;access&amp;#40;&amp;#34;/etc/ld.so.preload&amp;#34;&amp;#41;&lt;/tt&gt;.
Ok, so it&amp;#39;s a glibc thing. &amp;#40;excuse-me someone? I just wanted to have
translations in OOo!&amp;#41;

&lt;/p&gt;
&lt;p&gt;
Grepping through glibc source code shows that the &amp;#34;culprit&amp;#34; is
&lt;tt&gt;_dl_get_origin&amp;#40;&amp;#41;&lt;/tt&gt; from &lt;tt&gt;sysdeps/unix/sysv/linux/dl-origin.c&lt;/tt&gt;.
So, someone is trying to use the &lt;tt&gt;$ORIGIN&lt;/tt&gt; DST &amp;#40;which reminds me I
have to write some notes about Dynamic String Tokens&amp;#41;, substituted by
the glibc ELF loader.

&lt;/p&gt;
&lt;p&gt;
Back to OpenOffice source code, we can find that most Makefiles for
Unix set &lt;tt&gt;LINKFLAGSRUNPATH*=-Wl,-rpath,\&amp;#39;&amp;#39;$$ORIGIN&amp;#39;\&amp;#39;&lt;/tt&gt; as link flags.
Oh, brilliant.

&lt;/p&gt;
&lt;pre class=&quot;formatter_pre&quot;&gt;$ objdump -p /usr/lib/ooo-2.2/program/soffice.bin | grep RPATH
RPATH       $ORIGIN
&lt;/pre&gt;
&lt;p&gt;
But you don&amp;#39;t exactly need a
&lt;a href=&quot;http://en.wikipedia.org/wiki/Rpath_&amp;#40;linking&amp;#41;&quot;&gt;rpath&lt;/a&gt; here,
since the &lt;tt&gt;/usr/lib/ooo-2.1/program/soffice&lt;/tt&gt; wrapper already exports
&lt;tt&gt;LD_LIBRARY_PATH&lt;/tt&gt; to its basename.
Let&amp;#39;s check that by removing the rpath:
&lt;/p&gt;
&lt;pre class=&quot;formatter_pre&quot;&gt;chrpath -d /usr/lib/ooo-2.1/program/soffice.bin
&lt;/pre&gt;
&lt;p&gt;
At this point, I could have expected quite more trouble, but finally
some luck here, OpenOffice gets translated \o/

&lt;/p&gt;
&lt;p&gt;
God &amp;#40;if you exists&amp;#41;, what did I do to deserve this? I mean, seriously?!
&lt;/p&gt;
</description>
  </item>
  <item>
    <title>Mandriva Flash for GUADEC 2007</title>
    <pubDate>Thu, 19 Jul 2007 14:00:00 GMT</pubDate>
    <link>http://blino.org/blog/mandriva/flash/flash_guadec2007.html</link>
    <description>&lt;p&gt;
So, yet another
&lt;a href=&quot;http://www.mandriva.com/individuals/products/flash&quot;&gt;Mandriva Flash&lt;/a&gt;
version \o/

&lt;/p&gt;
&lt;p&gt;
This time, we&amp;#39;ve build one for &lt;a href=&quot;http://2007.guadec.org/&quot;&gt;GUADEC 2007&lt;/a&gt;,
where Mandriva offers 2GB Flash USB keys to GNOME developers.
And like for aKademy, it&amp;#39;s quite a neat key, with a lot of new
things.

&lt;/p&gt;
&lt;p&gt;
First, it runs GNOME &amp;#40;it&amp;#39;s the first Mandriva Flash with a non-KDE
desktop ever&amp;#41;, we obviously don&amp;#39;t want to mess with excited GNOME
developers discovering a KDE desktop :-p
The full distribution is customized with a special GUADEC theme, and
the USB keys are tagged with a GUADEC logo &amp;#40;keep them safe, they&amp;#39;re
collector!&amp;#41;.

&lt;/p&gt;
&lt;p&gt;
Besides some videos/demos/code/tools
&lt;a href=&quot;http://svn.gnome.org/viewcvs/guadec-web/trunk/2007.guadec.org/&quot;&gt;&amp;#40;svn&amp;#41;&lt;/a&gt;
from GUADEC sponsors, this Flash edition contains some special apps,
such as the &lt;a href=&quot;http://gstreamer.freedesktop.org/&quot;&gt;gstreamer&lt;/a&gt;-enabled
version of &lt;a href=&quot;http://www.gnome.org/projects/totem/&quot;&gt;totem&lt;/a&gt;, and
Fluendo&amp;#39;s &lt;a href=&quot;http://elisa.fluendo.com/&quot;&gt;Elisa&lt;/a&gt; media center.

&lt;/p&gt;
&lt;p&gt;
Oh, and it&amp;#39;s also the first Mandriva Flash version running
&lt;a href=&quot;http://www.mandriva.com/linux/spring&quot;&gt;2007 Spring&lt;/a&gt;, our latest
distribution &amp;#40;non-GNOME users, don&amp;#39;t worry, a classical Flash 2007
Spring version is on its way&amp;#41;.

&lt;/p&gt;
&lt;p&gt;
We already have
&lt;a href=&quot;http://www.figuiere.net/hub/blog/?2007/07/19/544-mandriva-flash&quot;&gt;some nice posts about Flash&lt;/a&gt;
on &lt;a href=&quot;http://planet.gnome.org/&quot;&gt;Planet GNOME&lt;/a&gt;, I hope everyone
enjoys it, between some
&lt;a href=&quot;http://bugzilla.gnome.org/show_bug.cgi?id=405821#c6&quot;&gt;patches/beer reviews&lt;/a&gt; :-p

&lt;/p&gt;
&lt;p&gt;
Thanks to
&lt;a href=&quot;http://hadessuk.blogspot.com/&quot;&gt;Bastien&lt;/a&gt; for
&lt;a href=&quot;http://hadessuk.blogspot.com/2007/07/my-3-guadec-tasks.html&quot;&gt;taking care of the project on the GNOME side&lt;/a&gt;,
and to &lt;a href=&quot;http://twinpeaks.dyndns.org/blog/&quot;&gt;fcrozat&lt;/a&gt; for the Mandriva part!
&amp;#40;but did you really need to test it that much? I&amp;#39;m totally burnt-out now!&amp;#41;

&lt;/p&gt;
&lt;p&gt;
Happy GUADEC meeting GNOME guys and gals!
&amp;#40;and hi &lt;a href=&quot;http://twinpeaks.dyndns.org/blog/&quot;&gt;fcrozat&lt;/a&gt;,
&lt;a href=&quot;http://fasmz.org/~pterjan/blog/&quot;&gt;pterjan&lt;/a&gt;, Sara \o/&amp;#41;
&lt;/p&gt;
</description>
  </item>
  <item>
    <title>OpenArena 0.7.0</title>
    <pubDate>Tue, 17 Jul 2007 23:00:00 GMT</pubDate>
    <link>http://blino.org/blog/mandriva/games/openarena-0.7.0.html</link>
    <description>&lt;p&gt;
&lt;a href=&quot;http://openarena.ws/&quot;&gt;OpenArena&lt;/a&gt; version 0.7.0 is now available in
cooker, with a bunch of new maps and models \o/

&lt;/p&gt;
&lt;p&gt;
Ok, there was some initial flounderings in the packaging, because
files were moved from the &lt;tt&gt;openarena&lt;/tt&gt; package to the new
&lt;tt&gt;openarena-data&lt;/tt&gt; package and a directory was replaced by a symlink to
make it smooth. But rpm failed to do the upgrade with a &amp;#34;cpio failed&amp;#34;
error &amp;#40;&lt;a href=&quot;http://qa.mandriva.com/show_bug.cgi?id=31885&quot;&gt;#31885&lt;/a&gt;&amp;#41;, it can&amp;#39;t upgrade a directory to a symlink.
This pointed out a small bug in urpmi, it exits with success code and
removes the rpm file from cache if cpio fails &amp;#40;&lt;a href=&quot;http://qa.mandriva.com/show_bug.cgi?id=31907&quot;&gt;#31907&lt;/a&gt;&amp;#41;.

&lt;/p&gt;
&lt;p&gt;
A &amp;#34;tiny&amp;#34; hack
&lt;a href=&quot;https://lists.dulug.duke.edu/pipermail/rpm-devel/2007-April/002259.html&quot;&gt;&amp;#40;rpm-devel discussion&amp;#41;&lt;/a&gt;
in a &lt;tt&gt;%pretrans&lt;/tt&gt; scriptlet allows to workaround the directory to
symlink conversion, by doing it &amp;#34;à la main&amp;#34;&amp;#40;!&amp;#41; before rpm extracts the
new package:
&lt;/p&gt;
&lt;pre class=&quot;formatter_pre&quot;&gt;%pretrans
if [ -d %{gamelibdir}/baseoa ]; then
   mv %{gamelibdir}/baseoa{,.rpmsave}
   ln -s baseoa.rpmsave %{gamelibdir}/baseoa
fi
&lt;/pre&gt;
&lt;p&gt;
And now, just come hurt me plenty!
&lt;/p&gt;
</description>
  </item>
  <item>
    <title>Installer obstacle course to include ide-disk module</title>
    <pubDate>Tue, 17 Jul 2007 22:00:00 GMT</pubDate>
    <link>http://blino.org/blog/mandriva/drakx/installer-obstacle-course-ide-disk.html</link>
    <description>&lt;p&gt;
So, some weeks ago, we have switched to modular IDE in the cooker kernel.

&lt;/p&gt;
&lt;p&gt;
The spadework was mostly done for tmb kernels, since &lt;tt&gt;mkinitrd&lt;/tt&gt; was
already able to cope with modular IDE. Though, it&amp;#39;s quite a premiere
for our DrakX installer.

&lt;/p&gt;
&lt;p&gt;
Last week, Pixel added some support in our &lt;tt&gt;bootloader-config&lt;/tt&gt;
utility that is called in kernel post-install. Now, it automatically
adds an &lt;tt&gt;ide-controller&lt;/tt&gt; alias &amp;#40;actually, an &lt;tt&gt;install&lt;/tt&gt; directive&amp;#41; in
&lt;tt&gt;/etc/modprobe.conf&lt;/tt&gt; if needed. Titi also made the installer
automatically load the IDE modules on the fly.

&lt;/p&gt;
&lt;p&gt;
Nice, but it turns out it&amp;#39;s not enough, and both of Pixel and Titi
left on vacations...
And now I have the QA team &amp;#40;excuse me, I meant &amp;#34;Enabling&amp;#34; team&amp;#41; on my
back, especially my dear &lt;a href=&quot;http://www.damsweb.net/&quot;&gt;Damien&lt;/a&gt; /o\

&lt;/p&gt;
&lt;p&gt;
After all, it shouldn&amp;#39;t be that difficult. Arnaud mentionned that we
have to load the &lt;tt&gt;ide-disk&lt;/tt&gt; module &amp;#40;of course, we really want to use
the disks&amp;#41;, it should be a piece of cake.
Ok, so
&lt;a href=&quot;http://svn.mandriva.com/cgi-bin/viewvc.cgi/soft/drakx/trunk/kernel/list_modules.pm?r1=224040&amp;#38;r2=224875&quot;&gt;make the ide-disk module included in drakx-installer-images&lt;/a&gt;,
then &lt;a href=&quot;http://svn.mandriva.com/cgi-bin/viewvc.cgi/soft/drakx/trunk/mdk-stage1/tools.c?r1=224241&amp;#38;r2=224876&quot;&gt;make the stage1 part load the ide-disk module&lt;/a&gt;
&amp;#40;in the rare case the installer uses ISO images or mirror tree from disk&amp;#41;,
and finally make the installer
&lt;a href=&quot;http://svn.mandriva.com/cgi-bin/viewvc.cgi/soft/drakx/trunk/perl-install/modules.pm?r1=224041&amp;#38;r2=224879&quot;&gt;load the ide-disk module when probing IDE controllers&lt;/a&gt;.

&lt;/p&gt;
&lt;p&gt;
That&amp;#39;s it, I&amp;#39;m done. It&amp;#39;s about minor modifications, don&amp;#39;t even bother
test them, just submit! No?

&lt;/p&gt;
&lt;p&gt;
Grmpf, it does not build.
Our init-like part of the stage1 installer used a
&lt;a href=&quot;http://svn.mandriva.com/cgi-bin/viewvc.cgi/soft/drakx/trunk/mdk-stage1/minilibc.h?revision=208153&amp;#38;view=markup&amp;#38;pathrev=224896&quot;&gt;minilibc&lt;/a&gt;
&amp;#40;borrowed from Redhat a long time ago&amp;#41;, which made use of &lt;tt&gt;_syscallX&amp;#40;&amp;#41;&lt;/tt&gt;
macros, allowing to wrap system calls. But these have been
&lt;a href=&quot;http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=56142536868a2be34f261ed8fdca1610f8a73fbd&quot;&gt;hidden from user view&lt;/a&gt;
in upstream kernel, and then
&lt;a href=&quot;http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=f5738ceed46782aea7663d62cb6398eb05fc4ce0&quot;&gt;completely removed&lt;/a&gt;,
userspace applications having to use the &lt;tt&gt;syscall&amp;#40;&amp;#41;&lt;/tt&gt; function.

&lt;/p&gt;
&lt;p&gt;
But it&amp;#39;s quite different when you&amp;#39;re buidling a libc...
And RedHat|Fedora&amp;#39;s &lt;a href=&quot;http://fedoraproject.org/wiki/Anaconda&quot;&gt;Anaconda&lt;/a&gt;
does not use &lt;tt&gt;minilibc&lt;/tt&gt; anymore.
Ok, I don&amp;#39;t want to reinvent the wheel, some other minimal libc such
as &lt;a href=&quot;http://uclibc.org/&quot;&gt;uClibc&lt;/a&gt; and
&lt;a href=&quot;http://www.fefe.de/dietlibc/&quot;&gt;dietlibc&lt;/a&gt; have an implementation of the
&lt;tt&gt;syscall&amp;#40;&amp;#41;&lt;/tt&gt; function
&lt;a href=&quot;http://uclibc.org/cgi-bin/viewcvs.cgi?view=rev&amp;#38;root=svn&amp;#38;rev=16821&quot;&gt;&amp;#40;commit of _syscallX&amp;#40;&amp;#41; removal in uClibc&amp;#41;&lt;/a&gt;.

&lt;/p&gt;
&lt;p&gt;
And since we already use dietlibc in the plain stage1, that was the
way to go. Even if we are losing 6K in the resulting binary, poor of
us ;-&amp;#41;
Then we just need to link with &lt;tt&gt;libcompat.a&lt;/tt&gt; to use the
&lt;tt&gt;syscall&amp;#40;&amp;#41;&lt;/tt&gt; function:

&lt;/p&gt;
&lt;pre class=&quot;formatter_pre&quot;&gt;-static inline _syscall3&amp;#40;int, syslog, int, type, char *, bufp, int, len&amp;#41;;
-static inline _syscall3&amp;#40;int, reboot, int, magic, int, magic2, int, flag&amp;#41;;
+#include &amp;lt;sys/syscall.h&amp;gt;
+#define syslog&amp;#40;...&amp;#41; syscall&amp;#40;__NR_syslog, __VA_ARGS__&amp;#41;
+#define reboot&amp;#40;...&amp;#41; syscall&amp;#40;__NR_reboot, __VA_ARGS__&amp;#41;
&lt;/pre&gt;
&lt;p&gt;
I also used the occasion to update our dietlibc package to
0.30. It didn&amp;#39;t build out of the box, because of a small typo
&amp;#40;&lt;a href=&quot;http://www.sisyphus.ru/srpm/dietlibc/patches/4&quot;&gt;patch from ALT Linux&lt;/a&gt;, seriously?&amp;#41;.

&lt;/p&gt;
&lt;p&gt;
Finally, a day and a half after the initial rants, IDE disks can be
used in the Cooker installer \o/

&lt;/p&gt;
&lt;p&gt;
&amp;#40;and I don&amp;#39;t mention the other projects I&amp;#39;m working on, neither the
other installer build problems caused by new kernel headers, new
glibc, new whatever, current buildsystem, whatever...&amp;#41;

&lt;/p&gt;
&lt;p&gt;
Oh, and that was the &amp;#34;trivial&amp;#34; part, I expect migration to libata PATA
drivers to be a lot more fun!
&lt;/p&gt;
</description>
  </item>
  <item>
    <title>Forbidding IDE coldplug</title>
    <pubDate>Mon, 16 Jul 2007 22:30:00 GMT</pubDate>
    <link>http://blino.org/blog/mandriva/udev/forbidding-ide-coldplug.html</link>
    <description>&lt;p&gt;
Now that the Mandriva kernel has both legacy IDE and libata PATA drivers
enabled &amp;#40;and modularized&amp;#41;, we may experience some issues because of PCI
coldplugging, which is enabled by default in Mandriva. It would load
both IDE drivers,
&lt;a href=&quot;http://lkml.org/lkml/2007/7/9/406&quot;&gt;probably leading to strange things&lt;/a&gt;.

&lt;/p&gt;
&lt;p&gt;
Thus, I&amp;#39;ve modified our udev rules to ignore IDE controllers at
coldplug. These controllers can be matched by their
PCI class &amp;#40;&lt;tt&gt;PCI_CLASS_STORAGE_IDE&lt;/tt&gt; is &lt;tt&gt;0x0101&lt;/tt&gt;, from
&lt;tt&gt;&amp;lt;pci/header.h&amp;gt;&lt;/tt&gt;&amp;#41;.
To differentiate between coldplug and hotplug &amp;#40;ok, not very likely for
IDE controllers&amp;#41;, the &lt;tt&gt;STARTUP&lt;/tt&gt; environment variable is set by
&lt;tt&gt;/sbin/start_udev&lt;/tt&gt; before calling &lt;tt&gt;/sbin/udevtrigger&lt;/tt&gt;.

&lt;/p&gt;
&lt;p&gt;
The new udev rule for automatic PCI modules loading looks this way:
&lt;/p&gt;
&lt;pre class=&quot;formatter_pre&quot;&gt;# modprobe pci devices on cold plug except for:
#  PCI_CLASS_STORAGE_IDE           0x0101
ACTION==&amp;#34;add&amp;#34;, SUBSYSTEM==&amp;#34;pci&amp;#34;, ENV{STARTUP}==&amp;#34;1&amp;#34;, SYSFS{modalias}==&amp;#34;?*&amp;#34;, \
        SYSFS{class}!=&amp;#34;0x0101*&amp;#34;, \
        RUN+=&amp;#34;/sbin/modprobe %s{modalias}&amp;#34;
# modprobe pci devices on hot plug
ACTION==&amp;#34;add&amp;#34;, SUBSYSTEM==&amp;#34;pci&amp;#34;, ENV{STARTUP}!=&amp;#34;1&amp;#34;, SYSFS{modalias}==&amp;#34;?*&amp;#34;, \
        RUN+=&amp;#34;/sbin/modprobe %s{modalias}&amp;#34;
&lt;/pre&gt;
&lt;p&gt;
It can be easily tested this way:
&lt;/p&gt;
&lt;pre class=&quot;formatter_pre&quot;&gt;rmmod &amp;lt;some pci module&amp;gt;
/sbin/udevcontrol env STARTUP=1
udevtrigger
udevsettle
/sbin/udevcontrol env STARTUP=
head /proc/modules
&lt;/pre&gt;
&lt;p&gt;
For the record, here&amp;#39;s the crazy command line I used to list IDE
modules &amp;#40;requiring ide-core&amp;#41; and their matching class &amp;#40;from
modaliases&amp;#41;, just out of curiosity:
&lt;/p&gt;
&lt;pre class=&quot;formatter_pre&quot;&gt;egrep
  `grep ide-core /lib/modules/$&amp;#40;uname -r&amp;#41;/modules.dep
   | perl -ne &amp;#39;print join&amp;#40;&amp;#34;|&amp;#34;, map { m|&amp;#40;[^/]*&amp;#41;.ko| &amp;#38;&amp;#38; $1 ne &amp;#34;generic&amp;#34; ? $1 : &amp;#40;&amp;#41; } &amp;lt;&amp;gt;&amp;#41; . &amp;#34;\n&amp;#34;&amp;#39;`
  /lib/modules/$&amp;#40;uname -r&amp;#41;/modules.alias
| grep -v &amp;#39;bc\*&amp;#39;
&lt;/pre&gt;
&lt;p&gt;
&amp;#40;yes, I&amp;#39;m insane&amp;#41;

&lt;/p&gt;
&lt;p&gt;
It&amp;#39;s a little step that was necessary for current Cooker, but it can
also help to switch to PATA drivers in a simple way &amp;#40;by just modifying
the driver in our pcitable&amp;#41;. And we will probably do so soon, as
&lt;a href=&quot;http://lkml.org/lkml/2007/7/3/255&quot;&gt;Alan Cox&amp;#39;s libata PATA status&lt;/a&gt;
looks quite encouraging.
&lt;/p&gt;
</description>
  </item>
  <item>
    <title>Mandriva Flash for aKademy 2007</title>
    <pubDate>Wed, 11 Jul 2007 00:30:00 GMT</pubDate>
    <link>http://blino.org/blog/mandriva/flash/flash_aKademy2007.html</link>
    <description>&lt;p&gt;
Lately, I&amp;#39;ve been quite busy building a lot of various
&lt;a href=&quot;http://www.mandriva.com/individuals/products/flash&quot;&gt;Mandriva Flash&lt;/a&gt;
versions.

&lt;/p&gt;
&lt;p&gt;
We recently
&lt;a href=&quot;http://www.mandriva.com/en/company/press/pr/kde_developers_receive_mandriva_flash_linux_keys_at_akademy_2007&quot;&gt;offered Mandriva Flash keys to KDE developpers&lt;/a&gt;,
and this was a special version of the latest Flash 2007, not just a
random one that we got on stock :-p

&lt;/p&gt;
&lt;p&gt;
Of course, it contained a special Mandriva/aKademy theme &amp;#40;background
images and bootsplash&amp;#41;, but this is not the more exciting feature.

&lt;/p&gt;
&lt;p&gt;
This Flash key can be
&lt;a href=&quot;http://www.mandriva.com/out/akademy2007/add-ons.php&quot;&gt;extended to run a KDE4 desktop&lt;/a&gt;,
by putting an additionnal KDE4 module on the key. It contains a KDE4
desktop snapshot &amp;#40;basically alpha 2&amp;#41; with
&lt;a href=&quot;http://blog.mandriva.com/2007/07/05/mandriva-adds-a-semantic-layer-to-the-kde-4-desktop/&quot;&gt;Nepomuk&lt;/a&gt;
features. It is roughly made of KDE4 packages from Cooker rebuilt
for 2007.0, with only a few hacks, and a custom background
&amp;#40;&lt;a href=&quot;http://www.mandriva.com/en/media/files/company/press/mandriva_linux_logo_zip&quot;&gt;our logo&lt;/a&gt;
with &lt;a href=&quot;http://gug.sunsite.dk/tutorials/cmarshall2/&quot;&gt;drop shadows&lt;/a&gt;, using
gimp which now works on Cooker!&amp;#41;.

&lt;/p&gt;
&lt;p&gt;
This was quite the first time that we did such an additionnal module
&amp;#40;there is already some support for lang modules in the next Flash 2007
Spring version, but that&amp;#39;s secret :-p&amp;#41;.
To make it short, creating this module was about mounting the Flash
loopback and a temporary directory using unionfs, chroot inside the
union, install KDE4 packages, cleaning a bit, and compress the
temporary directory into a new squashfs loopback.

&lt;/p&gt;
&lt;p&gt;
Nothing really extra-ordinary, but I was amazed by how fast we did it,
the KDE4 packages from Helio &amp;#40;almost&amp;#41; worked out of the box, and the
build process of the Flash module went quite smoothly.

&lt;/p&gt;
&lt;p&gt;
So, thank you &lt;a href=&quot;http://www.kdedevelopers.org/&quot;&gt;KDE hackers&lt;/a&gt; for all your
work, I hope you have enjoyed &lt;a href=&quot;http://akademy2007.kde.org/&quot;&gt;aKademy 2007&lt;/a&gt;
as well as our special release!
&lt;/p&gt;
</description>
  </item>
  <item>
    <title>Feedback welcome</title>
    <pubDate>Wed, 11 Jul 2007 00:15:00 GMT</pubDate>
    <link>http://blino.org/blog/feedback.html</link>
    <description>&lt;p&gt;
Inspired by
&lt;a href=&quot;http://tservice.net.ru/~s0mbre/blog/devel/other/2007_07_07.html&quot;&gt;Evgeniy Polyakov&lt;/a&gt;,
I decided to try the
&lt;a href=&quot;http://hecker.org/blosxom/feedback&quot;&gt;feedback plugin&lt;/a&gt; to allow comments
and trackbacks here.

&lt;/p&gt;
&lt;p&gt;
I guess I can mostly call this place a blog now :-&amp;#41;
&lt;/p&gt;
</description>
  </item>
  <item>
    <title>Editing chestnuts with gimp</title>
    <pubDate>Wed, 13 Jun 2007 12:21:00 GMT</pubDate>
    <link>http://blino.org/blog/mandriva/gimp-chestnuts-editing.html</link>
    <description>&lt;p&gt;
This week-end, I wanted to edit a chestnut image, to put some
brightness on this blog &amp;#40;and I love doing chestnut things&amp;#41;. So, I
fired up cooker&amp;#39;s &lt;a href=&quot;http://www.gimp.org/&quot;&gt;gimp&lt;/a&gt;.
But I didn&amp;#39;t really expect this marathon...

&lt;/p&gt;
&lt;p&gt;
First, gimp 2.317 is not really usable, as explained on the release
notes, mainly because of a
&lt;a href=&quot;http://bugzilla.gnome.org/show_bug.cgi?id=441878&quot;&gt;segfault on selection copy&lt;/a&gt;.
So, I backported 
&lt;a href=&quot;http://svn.gnome.org/viewcvs/gimp?view=revision&amp;#38;sortby=date&amp;#38;revision=22643&quot;&gt;revision 22643&lt;/a&gt;
patch from Gimp, and rebuilt the package. It still again. After the
backport of several more patches that make proper use of &lt;tt&gt;g_slice&lt;/tt&gt;, gimp
still failed to run properly.

&lt;/p&gt;
&lt;p&gt;
But this time, it was because of a mysterious Xlib error.
On IRC, Liam pointed me to
&lt;a href=&quot;http://bugzilla.gnome.org/show_bug.cgi?id=445376&quot;&gt;an upstream report that incrimates Xlib&lt;/a&gt;.
The crash appearing in the latest 1.1.2 libX11 release.

&lt;/p&gt;
&lt;p&gt;
So, I had to run a bisection on about
&lt;a href=&quot;http://gitweb.freedesktop.org/?p=xorg/lib/libX11.git;a=shortlog&quot;&gt; 24
commits&lt;/a&gt;. I did that by rebuilding a snaphost of each revision and the
rpm package &amp;#40;adding &lt;tt&gt;automake -a&lt;/tt&gt; and &lt;tt&gt;autoheader&lt;/tt&gt; calls to build
from raw tarball&amp;#41;.

&lt;/p&gt;
&lt;pre class=&quot;formatter_pre&quot;&gt;$ git clone git://anongit.freedesktop.org/git/xorg/lib/libX11
$ cd libX11/
$ git-bisect start
$ git-bisect bad
$ git bisect good libX11-1.1.1

# &amp;#40;note to self, do not forget the trailing slash in prefix...&amp;#41;
$ git archive --format=tar --prefix=libX11-1.1.2/
 f93849dcc68bd5042ea0884e5190dc7c35b31d68 | bzip2 &amp;gt;
 /home/blino/vc/mandriva/packages/cooker/libx11/SOURCES/libX11-1.1.2.tar.bz2
$ git bisect good f93849dcc68bd5042ea0884e5190dc7c35b31d68
# try next suggested commit
$ git archive --format=tar --prefix=libX11-1.1.2/
 95523387d619af5b400748898d722e080b5ce1a6 | bzip2 &amp;gt;
 /home/blino/vc/mandriva/packages/cooker/libx11/SOURCES/libX11-1.1.2.tar.bz2
$ git bisect bad 95523387d619af5b400748898d722e080b5ce1a6
# and so on...
$ git bisect good 605d357074d556a05a3fba2e85cbea36a3204248
 a48386ce6b5f8fd2d9dc11a966c9bf5da59f3831 is first bad commit
 commit a48386ce6b5f8fd2d9dc11a966c9bf5da59f3831
 Author: Magnus Kessler &amp;lt;Magnus.Kessler@gmx.net&amp;gt;
 Date:   Tue May 1 15:20:08 2007 +0200

   Switched function definitions from K&amp;#38;R to ANSI style.

 :040000 040000 78bcf3e9c54ff02d77c2e590e10d36bbe00610b4da6cdb57564533f1084b2ea2b9888c12884b151e M      src
&lt;/pre&gt;
&lt;p&gt;
Unfortunately, this &amp;#34;codestyle&amp;#34; patch was about 3000 lines long, let&amp;#39;s
go for another bisection round...

&lt;/p&gt;
&lt;pre class=&quot;formatter_pre&quot;&gt;$ git log -p a48386ce6b5f8fd2d9dc11a966c9bf5da59f3831 &amp;gt;
 /home/blino/vc/mandriva/packages/cooker/libx11/SOURCES/libX11-1.1.2-codestyle.patch

# revert patch on libX11 1.1.1
&amp;#40;cd BUILD/libX11-1.1.2/; patch -p1 &amp;lt; ../../SOURCES/libX11-1.1.2-codestyle.patch&amp;#41;
# edit patch and remove some hunks, using manual bisection /o\
&amp;#40;cd BUILD/libX11-1.1.2/; patch -R -p1 &amp;lt; ../../SOURCES/libX11-1.1.2-codestyle.patch &amp;#38;&amp;#38; make -j4&amp;#41; &amp;#38;&amp;#38;
  bm -l -i   --short-circuit &amp;#38;&amp;#38; bm -l -b --short-circuit
# try testcase
&lt;/pre&gt;
&lt;p&gt;
After half a dozen of tries, I found
&lt;a href=&quot;http://gitweb.freedesktop.org/?p=xorg/lib/libX11.git;a=blobdiff;h=2aa6c1a6b4a901765a80c3c91e51e9deae9e0427;hp=e332ecfebc5e83a4b65b291b0cffb29b66194bd6;hb=a48386ce6b5f8fd2d9dc11a966c9bf5da59f3831;f=src/GetMoEv.c&quot;&gt;the culprit&lt;/a&gt;,
where &lt;a href=&quot;?XGetMotionEvents&quot; class=&quot;empty&quot;&gt;XGetMotionEvents&lt;/a&gt;&amp;#40;&amp;#41; arguments order was not corrected during the
codestyle update.

&lt;/p&gt;
&lt;p&gt;
The fix was a
&lt;a href=&quot;https://bugs.freedesktop.org/attachment.cgi?id=10243&amp;#38;action=view&quot;&gt;trivial patch&lt;/a&gt;
that I submitted in an &lt;a href=&quot;https://bugs.freedesktop.org/show_bug.cgi?id=11222&quot;&gt;upstream bug report&lt;/a&gt;.

&lt;/p&gt;
&lt;p&gt;
Finally, gimp works \o/ but my initial photograph is barely usable,
the poor chestnuts being incomplete or too dark :-/
&amp;#40;and I was too tired to proceed with crafty tactics...&amp;#41;

&lt;/p&gt;
&lt;p&gt;
I also submitted a 2.3.17 gimp package with my backports in cooker,
but the build system was borked &amp;#40;for a change&amp;#41;.
And gimp 2.3.18 has been released in the meantime, gee!
&lt;/p&gt;
</description>
  </item>
  <item>
    <title>PowerTOP</title>
    <pubDate>Sat, 12 May 2007 18:30:00 GMT</pubDate>
    <link>http://blino.org/blog/mandriva/power-management/powertop.html</link>
    <description>&lt;p&gt;
Yesterday, Intel
&lt;a href=&quot;http://www.bughost.org/pipermail/power/2007-May/000001.html&quot;&gt;released&lt;/a&gt;
the &lt;a href=&quot;http://www.linuxpowertop.org/&quot;&gt;PowerTOP&lt;/a&gt; utility. It allows to
monitor closely the power consumption and to diagnose what software is
using the most power.

&lt;/p&gt;
&lt;p&gt;
It requires &amp;#40;at least&amp;#41; a 2.6.21 kernel with &lt;tt&gt;/proc/timer_stat&lt;/tt&gt;
&amp;#40;enabled through CONFIG_TIMER_STATS,
[&lt;a href=&quot;http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=82f67cd9fca8c8762c15ba7ed0d5747588c1e221&quot;&gt;commit&lt;/a&gt;]&amp;#41;.

&lt;/p&gt;
&lt;p&gt;
I&amp;#39;ve just made this tool available in Mandriva Cooker, in the
&lt;tt&gt;powertop&lt;/tt&gt; package.
I&amp;#39;m afraid it will unearth some very bad habits from net_applet...
&amp;#40;will try as soon as we have a 2.6.21 kernel ready for Cooker&amp;#41;
&lt;/p&gt;
</description>
  </item>
  <item>
    <title>Media days</title>
    <pubDate>Sat, 12 May 2007 13:30:00 GMT</pubDate>
    <link>http://blino.org/blog/mandriva/media_days.html</link>
    <description>&lt;p&gt;
These days, there have been quite some media occurences about my
contribution in Mandriva.

&lt;/p&gt;
&lt;p&gt;
First, there was my interview for
the &lt;a href=&quot;http://www.01net.com/article/347388.html&quot;&gt;01net article about compiz/beryl merge&lt;/a&gt;
&amp;#40;which seems to happen as planned, expect packages soon!&amp;#41;

&lt;/p&gt;
&lt;p&gt;
My &lt;a href=&quot;http://blino.org/blog/mandriva/specs/mdv2008/technical.html&quot;&gt;early technical specs for Mandriva 2008&lt;/a&gt; 
also got me some nice quotes in
&lt;a href=&quot;http://distrowatch.com/weekly.php?issue=20070430#news&quot;&gt;DistroWatch Weekly, Issue 200, 30 April 2007&lt;/a&gt;
and 
&lt;a href=&quot;http://lwn.net/Articles/231900/&quot;&gt;LWN.net Weekly Edition for May 3, 2007&lt;/a&gt;
&amp;#40;as well as in
&lt;a href=&quot;http://www.beranger.org/index.php?page=diary&amp;#38;2007/05/09/10/20/08-while-i-was-silent-part-2-&quot;&gt;Beranger&amp;#39;s blog&lt;/a&gt;
\o/&amp;#41;

&lt;/p&gt;
&lt;p&gt;
Next, we have been
&lt;a href=&quot;http://corp.mandriva.com/webteam/2007/05/04/mandriva-stars/&quot;&gt;interviewed at Mandriva by a Radio Canada TV crew&lt;/a&gt;,
about Mandriva Flash and its &amp;#40;hopefully brilliant&amp;#41; future.

&lt;/p&gt;
&lt;p&gt;
Finally, my articles about Mandriva 2007 Spring have been published in
a new magazine,
&lt;a href=&quot;http://www.linuxidentity.com/html/index.php?name=News&amp;#38;file=article&amp;#38;sid=4&quot;&gt;Linux Identity&amp;#39;s Mandriva 2007 Spring Kit&lt;/a&gt;.
This includes:
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;3D desktop environments in Mandriva [&lt;a href=&quot;http://www.linuxidentity.com/html/index.php?name=Downloads&amp;#38;req=viewdownload&amp;#38;cid=1&quot;&gt;PDF article &amp;#40;in French&amp;#41;&lt;/a&gt;]&lt;/li&gt;
&lt;li&gt;System virtualization technologies: VirtualBox, VMware, Xen and QEMU with KVM&lt;/li&gt;
&lt;li&gt;Laptop support: enhanced power management, stand by and hibernation modes&lt;/li&gt;
&lt;li&gt;Package management: installation, deinstallation and updates&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
Looks very much like &lt;a href=&quot;http://www.mandriva.com/linux/spring&quot;&gt;Spring&lt;/a&gt;
announces Mandriva&amp;#39;s revival \o/
&lt;/p&gt;
</description>
  </item>
  <item>
    <title>My technical specs proposals for Mandriva 2008</title>
    <pubDate>Thu, 26 Apr 2007 15:00:00 GMT</pubDate>
    <link>http://blino.org/blog/mandriva/specs/mdv2008/technical.html</link>
    <description>&lt;h1&gt;Basesystem&lt;/h1&gt;
&lt;h2&gt;udev&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;do PCI coldplug&lt;/li&gt;
&lt;li&gt;drop udevstart and use udevtrigger &amp;#40;+ Fedora&amp;#39;s start_udev&amp;#41;&lt;/li&gt;
&lt;li&gt;migrate conf.d hooks in start_udev&lt;/li&gt;
&lt;li&gt;migrate &amp;#40;and merge?&amp;#41; sound and alsa services in udev rules&lt;/li&gt;
&lt;li&gt;use upstream helpers for persistent rules &amp;#40;net + block&amp;#41;, port useful features from our scripts in these helpers and send upstream&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;mkinitrd&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;maybe switch to mkinitramfs &amp;#40;see with Luca Berra&amp;#41;&lt;/li&gt;
&lt;li&gt;allow to use initrd scriptlets in a hooks directory &amp;#40;for live initrd generation&amp;#41;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;Hardware detection&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;drop most of pcitable and use modalias + pci.ids for modules detection &amp;#40;need to modify ldetect and drakx&amp;#39;s detect_devices&amp;#41;&lt;/li&gt;
&lt;li&gt;drop usbtable by auto-extracting modaliases from pre-built dkms packages, and merging them in an additionnal modalias file &amp;#40;maybe &lt;tt&gt;/etc/modprobe.d/dkms-aliases.conf&lt;/tt&gt;&amp;#41;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;Kernel drivers&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;use dkms packages for most thirdparty drivers &amp;#40;mostly thinking about network drivers such as ndiswrapper, ralink and rfswitch modules, but also lirc, lufs&amp;#41;&lt;/li&gt;
&lt;li&gt;create virtual &lt;tt&gt;-latest&lt;/tt&gt; packages for pre-built dkms drivers &amp;#40;to allow auto-upgrade of these pre-built drivers&amp;#41;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;Graphical splash&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;drop bootsplash patch? &amp;#40;and &lt;a href=&quot;http://lkml.org/lkml/2006/8/11/165&quot;&gt;losing TTY background picture&lt;/a&gt;?&amp;#41;&lt;/li&gt;
&lt;li&gt;consider alternatives:&lt;/li&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://splashy.alioth.debian.org/wiki/doku.php&quot;&gt;splashy&lt;/a&gt; &amp;#40;Debian&amp;#41;, it has TTY background support and GL support in its roadmap&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://dev.gentoo.org/~spock/projects/gensplash/&quot;&gt;gensplash&lt;/a&gt; &amp;#40;Gentoo&amp;#41;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://packages.ubuntu.com/feisty/misc/usplash&quot;&gt;usplash&lt;/a&gt; &amp;#40;Ubuntu&amp;#41;&lt;/li&gt;
&lt;/ul&gt;&lt;/ul&gt;

&lt;h2&gt;Power management&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;push pm-utils modifications upstream&lt;/li&gt;
&lt;li&gt;better splash integration&lt;/li&gt;
&lt;li&gt;hybrid suspend mode &amp;#40;disk + RAM&amp;#41;&lt;/li&gt;
&lt;/ul&gt;

&lt;h1&gt;Network&lt;/h1&gt;
&lt;h2&gt;Drivers&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;use &lt;a href=&quot;http://intellinuxwireless.org/?p=iwlwifi&quot;&gt;iwlwifi&lt;/a&gt; for Intel Wireless 3945ABG&lt;/li&gt;
&lt;li&gt;consider switching to &lt;a href=&quot;http://rt2x00.serialmonkey.com/&quot;&gt;rt2x00&lt;/a&gt; drivers&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;Tools&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;WPA-EAP support in drakx-net &amp;#40;login + pass, certificates&amp;#41;&lt;/li&gt;
&lt;li&gt;finish network-center&lt;/li&gt;
&lt;/ul&gt;

&lt;h1&gt;Live&lt;/h1&gt;
&lt;ul&gt;
&lt;li&gt;use squashfs + lzma &amp;#40;requires a special squashfs kernel module&amp;#41;, it allows live &lt;a href=&quot;?CDs&quot; class=&quot;empty&quot;&gt;CDs&lt;/a&gt; to be about 100 MB smaller&lt;/li&gt;
&lt;li&gt;use readahead + loopback ordering to speed up boot &amp;#40;&amp;#34;reloaded&amp;#34; spec&amp;#41;, maybe use a kernel module to log file access order &amp;#40;code is already written&amp;#41;&lt;/li&gt;
&lt;li&gt;improve modules detection &amp;#40;&amp;#34;reloaded&amp;#34; edition as well&amp;#41; not to bruteforce by loading all modules anymore: could be done using either drakx&amp;#39;s stage1, or some a la udevstart detection &amp;#40;&amp;#34;a la main&amp;#34; in &lt;tt&gt;/sys&lt;/tt&gt;, or ship udevd + udevtrigger in initrd&amp;#41;&lt;/li&gt;
&lt;li&gt;allow to select packages and langs to be installed during live install&lt;/li&gt;
&lt;li&gt;maybe allow to run live from Windows &amp;#40;through qemu&amp;#41;&lt;/li&gt;
&lt;/ul&gt;

&lt;h1&gt;3D desktop&lt;/h1&gt;
&lt;ul&gt;
&lt;li&gt;come along potential compiz + beryl merge&lt;/li&gt;
&lt;li&gt;consider input transformation applications&lt;/li&gt;
&lt;/ul&gt;

&lt;h1&gt;Games&lt;/h1&gt;
&lt;ul&gt;
&lt;li&gt;SecondLife: add OpenAL support &amp;#40;by coding it&amp;#41;&lt;/li&gt;
&lt;li&gt;Wiimote: use new cwiid features &amp;#40;per-application configuration&amp;#41; and integrate it in games packages&lt;/li&gt;
&lt;li&gt;create a drakjoy joystick calibration tool&lt;/li&gt;
&lt;/ul&gt;

&lt;h1&gt;Virtualization&lt;/h1&gt;
&lt;ul&gt;
&lt;li&gt;improve Xen packaging &amp;#40;fix network issues, automate initrd creation, maybe merge xen0 and xenU kernels&amp;#41;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;drakvirt&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;consider relying on virt-manager for guest creation functions&lt;/li&gt;
&lt;li&gt;add basic features such as installing to a device or running a random install &amp;#40;not only Mandriva&amp;#41;&lt;/li&gt;
&lt;li&gt;copy &lt;tt&gt;/lib/modules/&amp;lt;version&amp;gt;&lt;/tt&gt; in the installed guest if needed&lt;/li&gt;
&lt;li&gt;network configuration support&lt;/li&gt;
&lt;li&gt;allow to run a graphical Xen VM&lt;/li&gt;
&lt;li&gt;qemu support&lt;/li&gt;
&lt;/ul&gt;
</description>
  </item>
  <item>
    <title>Compiz, beryl, and me on 01net</title>
    <pubDate>Thu, 26 Apr 2007 14:00:00 GMT</pubDate>
    <link>http://blino.org/blog/mandriva/composited-desktop/compiz_beryl_01net.html</link>
    <description>&lt;p&gt;
This week, I&amp;#39;ve been interviewed &amp;#40;together with Vincent Guardiola and
Frederic Crozat&amp;#41; by the &lt;a href=&quot;http://www.01net.com/&quot;&gt;01net&lt;/a&gt; online magazine
about 3D desktops in Mandriva, especially about the ongoing
&lt;a href=&quot;http://compiz.org/&quot;&gt;compiz&lt;/a&gt; and &lt;a href=&quot;http://www.beryl-project.org/&quot;&gt;beryl&lt;/a&gt;
merge.

&lt;/p&gt;
&lt;p&gt;
Here it is &amp;#40;in French&amp;#41;:
&lt;a href=&quot;http://www.01net.com/editorial/347388/systeme-d-exploitation/les-interfaces-3d-de-linux-ne-font-plus-qu-un/&quot;&gt;Les interfaces 3D de Linux ne font plus qu&amp;#39;un&lt;/a&gt;
&lt;/p&gt;
</description>
  </item>
  <item>
    <title>Dummy Apache's internal connections</title>
    <pubDate>Tue, 10 Apr 2007 10:15:00 GMT</pubDate>
    <link>http://blino.org/blog/mandriva/dummy_apache_internal_connections.html</link>
    <description>&lt;p&gt;
Lately, I experienced some freezes during night, which revealed to
happen when a cron job rotated the apache logs and tried to restart
httpd with an USR1 signal.

&lt;/p&gt;
&lt;p&gt;
This makes Apache 2.0 run
&lt;a href=&quot;http://valery.bgit.net/blog-en/2007/02/01/apache-internal-dummy-connection/&quot;&gt;&amp;#34;internal dummy connection&amp;#34; sub-requests&lt;/a&gt;
on its child processes:
&lt;/p&gt;
&lt;pre class=&quot;formatter_pre&quot;&gt;127.0.0.1 - - [07/Apr/2007:04:07:39 +0200] &amp;#34;GET / HTTP/1.0&amp;#34; 200 8145 &amp;#34;-&amp;#34;
&amp;#34;Apache/2.2.4 &amp;#40;Mandriva Linux/PREFORK-6mdv2007.1&amp;#41; &amp;#40;internal dummy connection&amp;#41;&amp;#34;
&lt;/pre&gt;
&lt;p&gt;
In my case, I use the &lt;a href=&quot;http://httpd.apache.org/docs/2.0/mod/prefork.html&quot;&gt;Prefork MPM&lt;/a&gt;,
and there were hundreds of sub-requests triggered in a few minutes,
my home page being handled by blosxom and running a perl interpreter
for each request...
After a few minutes, this internal &lt;a href=&quot;?DoS&quot; class=&quot;empty&quot;&gt;DoS&lt;/a&gt; made my box quite unresponsive,
and never came back to normal &amp;#40;maybe there&amp;#39;s also a bug in my 2.6.17
kernel&amp;#41;.

&lt;/p&gt;
&lt;p&gt;
A workaround has beeen to use a
&lt;a href=&quot;http://httpd.apache.org/docs/2.0/mod/mod_rewrite.html&quot;&gt;mod_rewrite&lt;/a&gt;
rule to use static content for &lt;tt&gt;/&lt;/tt&gt;, as suggested
&lt;a href=&quot;http://www.mail-archive.com/users@httpd.apache.org/msg11511.html&quot;&gt;on the upstream ML&lt;/a&gt;
and &lt;a href=&quot;http://www.fi.muni.cz/~kas/blog/index.cgi/computers/graceful-reload.html&quot;&gt;by other users&lt;/a&gt;:
&lt;/p&gt;
&lt;pre class=&quot;formatter_pre&quot;&gt;RewriteEngine on
RewriteCond %{HTTP_USER_AGENT} internal\ dummy\ connection
RewriteRule ^/$ /static/style.css [L]
&lt;/pre&gt;
&lt;p&gt;
A solution is &lt;a href=&quot;http://www.mail-archive.com/dev@httpd.apache.org/msg35799.html&quot;&gt;being worked at upstream&lt;/a&gt;,
it could be using an &lt;tt&gt;OPTIONS *&lt;/tt&gt; request instead of &lt;tt&gt;GET /&lt;/tt&gt;, but it
seems it has not been implemented yet...
&lt;/p&gt;
</description>
  </item>
  <item>
    <title>My Flash is bigger than yours</title>
    <pubDate>Sun, 08 Apr 2007 16:30:00 GMT</pubDate>
    <link>http://blino.org/blog/mandriva/flash/flash4G.html</link>
    <description>&lt;p&gt;
On Thursday, we
&lt;a href=&quot;http://www.mandriva.com/en/company/press/pr/mandriva_today_launches_the_4gb_version_of_mandriva_flash&quot;&gt;launched&lt;/a&gt;
a new 4GB version of &lt;a href=&quot;http://www.mandriva.com/linux/2007/flash&quot;&gt;Mandriva Flash&lt;/a&gt;.

&lt;/p&gt;
&lt;p&gt;
It is not only twice bigger than the first version, but it also
add some useful features, such as the ability to resize the system
space at first boot. You can choose to allocate from 150M to 3GB to
the system space &amp;#40;which includes /home and modifications to the root
filesystem&amp;#41;, the remaining space on the FAT partition being used to
share documents with other operating systems.

&lt;/p&gt;
&lt;p&gt;
Of course, it also includes all the 2007.0 bugfixes available at the
build time of this new image, and some additional Flash-related fixes:
the infamous Xkb bug under Xgl is no more &amp;#40;the patch was roughly a
&lt;tt&gt;chmod 1777 /var/tmp&lt;/tt&gt;&amp;#41;, and the loopback filesystem check at boot is
more automated. Furthermore, the new Flash will fallback to a tmpfs
filesystem if the ext2 loopback happens to be corrupted.

&lt;/p&gt;
&lt;p&gt;
To conclude, I&amp;#39;ll let myself quote myself from the press release :-&amp;#41;

&lt;/p&gt;
&lt;p&gt;
&amp;#34;On this upgraded Mandriva Flash version, the space allocated to the
system files can be chosen at first boot. This makes possible to
install more updates and additional packages, in response to user
feedback we got on the initial version&amp;#34;
&lt;/p&gt;
</description>
  </item>
  <item>
    <title>fglrx driver and X server restart</title>
    <pubDate>Sun, 08 Apr 2007 16:00:00 GMT</pubDate>
    <link>http://blino.org/blog/mandriva/drakx/harddrake/fglrx_restart_server.html</link>
    <description>&lt;p&gt;
This week, one of the most critical bug left in our 2007 Spring
release candidate was about the fglrx proprietary driver for ATI
cards. It made the screen turn black when resetting an Xsession,
making the system unusable locally &amp;#40;&lt;a href=&quot;http://qa.mandriva.com/show_bug.cgi?id=29550&quot;&gt;#29550&lt;/a&gt;&amp;#41;.

&lt;/p&gt;
&lt;p&gt;
Worse, during the first boot of a Mandriva One after installation, it
made the first X session unusable...

&lt;/p&gt;
&lt;p&gt;
To workaround this, we used the same workaround that had to be used in
Mandriva 2007.1 for
&lt;a href=&quot;http://wiki.mandriva.com/en/Releases/Mandriva/2007/Errata#AIGLX_and_repeat_logins&quot;&gt;repeat logins with AIGLX&lt;/a&gt;,
which is to restart the X server instead of resetting it.
I&amp;#39;ve
&lt;a href=&quot;http://svn.mandriva.com/cgi-bin/viewvc.cgi/config/One/trunk/patches/xconfig-fglrx-restart.patch?view=markup&quot;&gt;patched our DrakX libs&lt;/a&gt;
so that harddrake and XFdrake set the correct options in kdm and gdm
configuration files when the fglrx driver is used.

&lt;/p&gt;
&lt;p&gt;
Maybe the
&lt;a href=&quot;https://a248.e.akamai.net/f/674/9206/0/www2.ati.com/drivers/linux/linux_8.35.5.html#184284&quot;&gt;8.35.5 release of the fglrx driver&lt;/a&gt;
would solve that, the changelog shows a bugfix for a similar issue,
but we were to close from release to switched to a new fglrx driver.

&lt;/p&gt;
&lt;p&gt;
Too bad we still need proprietary drivers for high-end ATI cards :-/
&lt;/p&gt;
</description>
  </item>
  <item>
    <title>Big Mandriva party next week in Paris</title>
    <pubDate>Sun, 18 Mar 2007 14:30:00 GMT</pubDate>
    <link>http://blino.org/blog/mandriva/parties/libre_en_fete_200703.html</link>
    <description>&lt;p&gt;
Next Thursday, Mandriva is organizing a party in Paris, mostly about
Mandriva and free software, together with
&lt;a href=&quot;http://www.libre-en-fete.net/&quot;&gt;Libre en fete&lt;/a&gt;.

&lt;/p&gt;
&lt;p&gt;
For example, we will play the DDR game &lt;a href=&quot;http://www.stepmania.com/&quot;&gt;StepMania&lt;/a&gt;,
demo the 3D creation suite &lt;a href=&quot;http://www.blender.org/&quot;&gt;blender&lt;/a&gt; &amp;#40;that
will remind me very old souvenirs&amp;#41;, and show a lot of free-software
releated videos.

&lt;/p&gt;
&lt;p&gt;
Of course, it wouldn&amp;#39;t really be a Mandriva event if it wasn&amp;#39;t totally
open, so you will be able to enjoy an open-bar &amp;#40;no kidding!&amp;#41;, as well
as a nice buffet.

&lt;/p&gt;
&lt;p&gt;
It&amp;#39;s taking place at the &lt;a href=&quot;http://www.jet-lag.fr/&quot;&gt;Jet Lag&lt;/a&gt;, a nice
restaurant in the very center of Paris, and it&amp;#39;s 25 euros for the
whole party &amp;#40;open drinks + meal + total fun&amp;#41;.
And we will have the whole restaurant for us \o/

&lt;/p&gt;
&lt;p&gt;
Hurry up, it&amp;#39;s March 22, next week!

&lt;/p&gt;
&lt;p&gt;
Please see
&lt;a href=&quot;http://club.mandriva.com/xwiki/bin/view/Main/LibreEnFete&quot;&gt;LibreEnFete on Club&lt;/a&gt;
for more info about the party and subscription details.
And thanks Emilie for the organization :-&amp;#41;
&lt;/p&gt;
</description>
  </item>
  <item>
    <title>Dell opens a Linux survey</title>
    <pubDate>Wed, 14 Mar 2007 10:00:00 GMT</pubDate>
    <link>http://blino.org/blog/mandriva/dell_linux_survey.html</link>
    <description>&lt;p&gt;
After a buzzy &lt;a href=&quot;http://www.dellideastorm.com/&quot;&gt;idea storm&lt;/a&gt;, Dell is
starting a &lt;a href=&quot;http://www.dell.com/linuxsurvey&quot;&gt;survey about Linux&lt;/a&gt;.

&lt;/p&gt;
&lt;p&gt;
It still does not include &lt;a href=&quot;http://www.mandriva.com/&quot;&gt;Mandriva&lt;/a&gt;, even after
&lt;a href=&quot;http://www.dellideastorm.com/article/show/63828/OpenSuse_or_Mandriva_Linux_Preinstalled&quot;&gt;some&lt;/a&gt;
&lt;a href=&quot;http://www.dellideastorm.com/article/show/62988/Add_Mandriva_to_the_list&quot;&gt;popular&lt;/a&gt;
&lt;a href=&quot;http://www.dellideastorm.com/article/show/62633/Linux_with_Corporate_Support_Mandriva_Linux&quot;&gt;Mandriva requests&lt;/a&gt;
on their Digg-like blog.

&lt;/p&gt;
&lt;p&gt;
Well, this time, there is an entry box to specify your preferred Linux
distribution, don&amp;#39;t forget Mandriva :-&amp;#41;
&lt;/p&gt;
</description>
  </item>
  <item>
    <title>Mandriva Flash on linutop</title>
    <pubDate>Mon, 12 Mar 2007 00:00:00 GMT</pubDate>
    <link>http://blino.org/blog/mandriva/linutop.html</link>
    <description>&lt;p&gt;
&lt;img src=&quot;http://linutop.com/images/linutop_ACDC_USBs.jpg&quot; alt=&quot;image&quot; /&gt;

&lt;/p&gt;
&lt;p&gt;
Today, we got a &lt;a href=&quot;http://www.linutop.com/&quot;&gt;linutop&lt;/a&gt; box at Mandriva, it
is a small Linux-based diskless computer. It comes with a 1 GB USB
key, containing a Xubuntu distribution &amp;#40;thus running &lt;a href=&quot;?XFce&quot; class=&quot;empty&quot;&gt;XFce&lt;/a&gt;&amp;#41;.

&lt;/p&gt;
&lt;p&gt;
Without surprise, it is
&lt;a href=&quot;http://www.linutop.com/wiki/index.php?title=Compatible#Mandriva&quot;&gt;Mandriva compatible&lt;/a&gt;,
since your &lt;a href=&quot;http://www.mandriva.com/individuals/products/flash&quot;&gt;Mandriva Flash&lt;/a&gt;
USB key boots smoothly on it.

&lt;/p&gt;
&lt;p&gt;
The boot process is a bit slow, probably because of the
&lt;a href=&quot;http://en.wikipedia.org/wiki/Geode_&amp;#40;processor&amp;#41;&quot;&gt;Geode processor&lt;/a&gt;, but
once KDE is loaded, it looks usable &amp;#40;provided you don&amp;#39;t run OpenOffice
:-p&amp;#41;.

&lt;/p&gt;
&lt;p&gt;
I&amp;#39;ll try to get the
&lt;a href=&quot;http://www.linutop.com/wiki/index.php/Graphic_Driver&quot;&gt;AMD Geode Xorg driver&lt;/a&gt;
in the 2007.1 release before the freeze &amp;#40;which is now /o\&amp;#41;.
&lt;/p&gt;
</description>
  </item>
  <item>
    <title>Hardening my games</title>
    <pubDate>Sat, 10 Mar 2007 23:00:00 GMT</pubDate>
    <link>http://blino.org/blog/mandriva/hardening_my_games.html</link>
    <description>&lt;p&gt;
&lt;a href=&quot;http://maniadrive.raydium.org/&quot;&gt;Maniadrive&lt;/a&gt;, a cool racing game that
unfortunately uses &lt;a href=&quot;http://www.php.net/&quot;&gt;php&lt;/a&gt;, has been broken recently
in cooker, because of the
&lt;a href=&quot;http://www.hardened-php.net/suhosin/index.html&quot;&gt;suhosin&lt;/a&gt; php hardening
solution.

&lt;/p&gt;
&lt;p&gt;
It did not break because suhosin is enabled, that is not a problem,
but because it tried to hook functions and call them even if
&lt;tt&gt;NULL&lt;/tt&gt;...
A &lt;a href=&quot;http://svn.mandriva.com/cgi-bin/viewvc.cgi/packages/cooker/php-suhosin/current/SOURCES/suhosin-0.9.18-noservervar.patch?view=markup&quot;&gt;simple patch&lt;/a&gt;
fixes it.

&lt;/p&gt;
&lt;p&gt;
I love hardening &amp;#34;features&amp;#34; &amp;#40;RSBAC, anyone? :-p&amp;#41;
&lt;/p&gt;
</description>
  </item>
  <item>
    <title>Spring colors</title>
    <pubDate>Sun, 04 Mar 2007 23:00:00 GMT</pubDate>
    <link>http://blino.org/blog/mandriva/theme/spring.html</link>
    <description>&lt;p&gt;
It&amp;#39;s not spring yet, even if it&amp;#39;s getting warmer these days, but you
can get a preview of what it&amp;#39;s gonna be in Mandriva Cooker.

&lt;/p&gt;
&lt;p&gt;
After having fought with the warly&amp;#39;s legacy in the mandriva-theme
package, I&amp;#39;ve successfully merged the neat artwork from Hélène in our
theme packages.

&lt;/p&gt;
&lt;p&gt;
&lt;a href=&quot;/blog/mandriva/theme/mandriva-spring.png&quot;&gt;&lt;img src=&quot;/blog/mandriva/theme/mandriva-spring-mini.png&quot; alt=&quot;MandrivaSpring&quot; class=&quot;imgcenter&quot; /&gt;&lt;/a&gt;

&lt;/p&gt;
&lt;p&gt;
Some &amp;#34;hibernation&amp;#34; images are included as well, they will soon be
integrated in the splash scripts to be used during hibernate.
&lt;/p&gt;
</description>
  </item>
  <item>
    <title>KDE window decorator for compiz</title>
    <pubDate>Sun, 04 Mar 2007 17:00:00 GMT</pubDate>
    <link>http://blino.org/blog/mandriva/composited-desktop/compiz-decorator-kde.html</link>
    <description>&lt;p&gt;
The KDE window decorator for compiz is now built in the cooker
package. Decorators have been splitted in their own sub-packages
&amp;#40;&lt;tt&gt;compiz-decorator-gtk&lt;/tt&gt; and &lt;tt&gt;compiz-decorator-kde&lt;/tt&gt;&amp;#41;, so that KDE libs
are not pulled if KDE is not installed.

&lt;/p&gt;
&lt;p&gt;
A &lt;tt&gt;compiz-window-decorator&lt;/tt&gt; wrapper auto-selects the most suitable
window decorator, based on the running desktop and on the available
decorators.

&lt;/p&gt;
&lt;p&gt;
This will notably fix the famous &lt;tt&gt;Alt+F2&lt;/tt&gt; bug in KDE desktops &amp;#40;even if
I have a pending fix to automatically adjust this shortcut for older
versions of compiz&amp;#41;.
&lt;/p&gt;
</description>
  </item>
  <item>
    <title>The end of something</title>
    <pubDate>Sat, 17 Feb 2007 01:42:00 GMT</pubDate>
    <link>http://blino.org/blog/mandriva/end-of-something.html</link>
    <description>&lt;p&gt;
So, that&amp;#39;s it, &lt;a href=&quot;http://daily.warly.org/&quot;&gt;warly&lt;/a&gt;
is gone &amp;#40;from &lt;a href=&quot;http://www.mandriva.com/&quot;&gt;Mandriva&lt;/a&gt;&amp;#41;.

&lt;/p&gt;
&lt;p&gt;
Tonight, we had his departure party, which was really nice, it&amp;#39;s
probably the best celebration we have done for months: almost all the
company was here, even sage gurus and missed co-workers that left the
company came back to &amp;#34;celebrate&amp;#34; the event with us.

&lt;/p&gt;
&lt;p&gt;
warly prepared a lot of food and drinks &amp;#40;actually more than
reasonable&amp;#41;, and his most dedicated right hand men baked some nice
&amp;#40;well, maybe not so nice for mine&amp;#41; delicacies. Too bad everybody was
frightened to open the surströmming we&amp;#39;ve kept growing for years now
&amp;#40;thanks oden!&amp;#41;.

&lt;/p&gt;
&lt;p&gt;
As usual, it was also a lot of fun! We even played DDR, thanks to the
&lt;a href=&quot;http://club.mandriva.com/xwiki/bin/view/Main/MandrivaOne2007Gaming&quot;&gt;Gaming DVD&lt;/a&gt;
I prepared earlier for the &lt;a href=&quot;http://club.mandriva.com/xwiki/bin/view/Main/&quot;&gt;Club&lt;/a&gt;.
It has been a bit tricky to get additionnal &amp;#40;non-free&amp;#41; songs, but we
managed to do it, live. Congratulations to leeloo who defeated me and
most of the people more than we would have hopped!
&lt;a href=&quot;http://blino.org/sylvie.and.blino/&quot;&gt;Sylvie&lt;/a&gt; is still an awesome
competitor as well :-p

&lt;/p&gt;
&lt;p&gt;
Still, it&amp;#39;s sad to imagine that next week I won&amp;#39;t see warly again in
front of my desk, while he has been my boss for more or less 3
years. I think all the company will miss him, both professionally and
personally.

&lt;/p&gt;
&lt;p&gt;
He has often been blamed &amp;#40;by contributors, co-workers&amp;#41; for many
things. But if we have a look at the big long-term picture, his
decisions were quite always sensible, and he helped us by making
compromises. warly was sort of our super-jack-bauer guy :-&amp;#41;

&lt;/p&gt;
&lt;p&gt;
We used to rely a lot on him, probably too much, and it will be
different &amp;#40;not to say hard&amp;#41; to prepare the next Mandriva release
without him. warly has done a lot in his final weeks at Mandriva to
share his knowledge, explain his projects, and distribute his workload
among co-workers, so it&amp;#39;s up to us now. Though, don&amp;#39;t worry too much,
we will all work hard&amp;#40;er&amp;#41; to build an amazing realease, with more
features, a stable core basesystem, and neat artwork.

&lt;/p&gt;
&lt;p&gt;
I&amp;#39;d like to thank warly for all the things he did for Mandriva, and
me in particular. I owe my job pretty much to him
&amp;#40;and &lt;a href=&quot;http://www.gptg.org/&quot;&gt;Fred&lt;/a&gt;&amp;#41;, and he has always been
a brilliant leader, very valuable, strong, wise, understanding
&amp;#40;and weird enough for us :-p&amp;#41;.

&lt;/p&gt;
&lt;p&gt;
We had great moments together: roller rides, strange culinary artistic
experiences &amp;#40;some would say experimentations&amp;#41;, trips abroad,
&lt;a href=&quot;http://www.warly.org/files/patriarche/index.html&quot;&gt;enjoying reads&lt;/a&gt;, and
much more... His departure does not make our friendship over, and I
guess we will have a lot of occasions to outperform all that :-&amp;#41;

&lt;/p&gt;
&lt;p&gt;
Well, good bye dear manager dude, the family will miss you.
&lt;/p&gt;
</description>
  </item>
  <item>
    <title>Bluetooth passkey agent</title>
    <pubDate>Tue, 13 Feb 2007 01:00:00 GMT</pubDate>
    <link>http://blino.org/blog/mandriva/bluetooth/passkey-agent.html</link>
    <description>&lt;p&gt;
Lately, Helio and I fixed bluetooth pairing by backporting a patch
from kmobiletools that allows the sample passkey agent to run a user
helper on D-Bus events, and by starting it at X11 session startup
&amp;#40;&lt;a href=&quot;http://qa.mandriva.com/show_bug.cgi?id=24359&quot;&gt;#24359&lt;/a&gt;&amp;#41;.

&lt;/p&gt;
&lt;p&gt;
I got broken in Cooker recently, during the switch to Bluez 3.9
&amp;#40;&lt;a href=&quot;http://qa.mandriva.com/show_bug.cgi?id=28555&quot;&gt;#28555&lt;/a&gt;&amp;#41;, but it should now be back to normal.

&lt;/p&gt;
&lt;p&gt;
Hopefully, this will help to get bluetooth dial-up networking work
out-of-the-box for both GPRS and CDMA in next beta release ;-&amp;#41;
&lt;/p&gt;
</description>
  </item>
  </channel>
</rss>