blino's website

Free software developer and more

I'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?

But it's not as easy as it seemed, I had a bunch of i18n-related problems. For example, would only "see" the English language. Quite bad for a distribution that aims to support as many languages as possible.

So, what's wrong? Missing packages? Missing files? I'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.

I tried to reproduce with a Mandriva One 2007 Spring live CD, but there was no problem there. Stracing it (strace -e file) showed that it runs stat("/live/distrib/usr/lib/ooo-2.1/share/registry/modules/org/openoffice/Setup/Langpack-fr.xcu") at some point. Which is fine in the One live CD, since there was only one loopback containing all compressed files (mounted as /live/distrib), 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 /live/modules/i18n-fr root, which obviously is not contained in /live/distrib.

But why is it looking in the /live/distrib root, shouldn't that be plain /? Looking for first occurence of this root in strace output shows that readlink("/proc/self/exe") returns /live/distrib/usr/lib/ooo-2.1/program/soffice.bin. Actually, there is a known misfeature in old unionfs, it does not handle /proc/self/exe correctly.

Hmm, but who tries to do that with /proc/self/exe? Let's see OpenOffice source code. Our rpm source package looks weird, it contains plenty of tarballs (and a unowinreg.dll file ??), and untaring them takes a dozen of minutes. But no luck grepping for /proc/self/exe in the code...

After looking more closely at strace output, it shows that right after using /proc/self/exe, it runs access("/etc/"). Ok, so it's a glibc thing. (excuse-me someone? I just wanted to have translations in OOo!)

Grepping through glibc source code shows that the "culprit" is _dl_get_origin() from sysdeps/unix/sysv/linux/dl-origin.c. So, someone is trying to use the $ORIGIN DST (which reminds me I have to write some notes about Dynamic String Tokens), substituted by the glibc ELF loader.

Back to OpenOffice source code, we can find that most Makefiles for Unix set LINKFLAGSRUNPATH*=-Wl,-rpath,\''$$ORIGIN'\' as link flags. Oh, brilliant.

$ objdump -p /usr/lib/ooo-2.2/program/soffice.bin | grep RPATH

But you don't exactly need a rpath here, since the /usr/lib/ooo-2.1/program/soffice wrapper already exports LD_LIBRARY_PATH to its basename. Let's check that by removing the rpath:

chrpath -d /usr/lib/ooo-2.1/program/soffice.bin

At this point, I could have expected quite more trouble, but finally some luck here, OpenOffice gets translated \o/

God (if you exist), what did I do to deserve this? I mean, seriously?!

So, yet another Mandriva Flash version \o/

This time, we've build one for GUADEC 2007, where Mandriva offers 2GB Flash USB keys to GNOME developers. And like for aKademy, it's quite a neat key, with a lot of new things.

First, it runs GNOME (it's the first Mandriva Flash with a non-KDE desktop ever), we obviously don'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 (keep them safe, they're collector!).

Besides some videos/demos/code/tools (svn) from GUADEC sponsors, this Flash edition contains some special apps, such as the gstreamer-enabled version of totem, and Fluendo's Elisa media center.

Oh, and it's also the first Mandriva Flash version running 2007 Spring, our latest distribution (non-GNOME users, don't worry, a classical Flash 2007 Spring version is on its way).

We already have some nice posts about Flash on Planet GNOME, I hope everyone enjoys it, between some patches/beer reviews :-p

Thanks to Bastien for taking care of the project on the GNOME side, and to fcrozat for the Mandriva part! (but did you really need to test it that much? I'm totally burnt-out now!)

Happy GUADEC meeting GNOME guys and gals! (and hi fcrozat, pterjan, Sara \o/)

Lately, I've been quite busy building a lot of various Mandriva Flash versions.

We recently offered Mandriva Flash keys to KDE developpers, and this was a special version of the latest Flash 2007, not just a random one that we got on stock :-p

Of course, it contained a special Mandriva/aKademy theme (background images and bootsplash), but this is not the more exciting feature.

This Flash key can be extended to run a KDE4 desktop, by putting an additionnal KDE4 module on the key. It contains a KDE4 desktop snapshot (basically alpha 2) with Nepomuk features. It is roughly made of KDE4 packages from Cooker rebuilt for 2007.0, with only a few hacks, and a custom background (our logo with drop shadows, using gimp which now works on Cooker!).

This was quite the first time that we did such an additionnal module (there is already some support for lang modules in the next Flash 2007 Spring version, but that's secret :-p). 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.

Nothing really extra-ordinary, but I was amazed by how fast we did it, the KDE4 packages from Helio (almost) worked out of the box, and the build process of the Flash module went quite smoothly.

So, thank you KDE hackers for all your work, I hope you have enjoyed aKademy 2007 as well as our special release!

On Thursday, we launched a new 4GB version of Mandriva Flash.

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 (which includes /home and modifications to the root filesystem), the remaining space on the FAT partition being used to share documents with other operating systems.

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 (the patch was roughly a chmod 1777 /var/tmp), 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.

To conclude, I'll let myself quote myself from the press release :-)

"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"

The movie was great, but well, nevermind, I am just here to talk about a neat product we just released today.

Mandriva Flash is, basically, a 2GB USB key containing a Mandriva distribution which can be run live from this USB key. Of course, it saves the settings, system modifications, and home directories (in a 400MB loopback image), and also offers a 800MB share partition.

I will not make a speech about how great the product it, telling it is a name-brand USB key, designed by Dane-Elec, with a 5-year warranty, or that it is an extremily mobile product you can fit in a pocket, or possibly that it includes in a fast media the greatest Mandriva 2007.0 features, such as the top-notch 3D desktop stuff (well, not Metisse, but remember, it's not a 3D desktop). No, I will not give your this marketing kind of speech, it's not my style.

Technically, it is quite similar to the Mandriva One live system: it is a compressed loopback of the distribution created by my draklive tool, and mounted as root filesystem using unionfs. The main difference is that Mandriva Flash uses the USB key as writable filesystem, while the Mandriva One used the system RAM as temporary writable filesystem (losting modifications at shutdown).

Flash also comes with some extra engineering and QA, and includes the latest Mandriva 2007.0 updates.

In a nutshell, it's Mandriva 2007.0 sumed up in your pocket \o/

Ideal to take some vacations together with the cows in the wild country, without taking the laptop. I will use it this way, really, but you are free to give it more ambitious usages :-P

blosxom Optimised for standards.
Olivier Blin (2005)