Ressources documentaires pour Mandriva Linux et les Logiciels Libres

Billets dans la catégorie Linux

My ideas for Mandriva 2010.0

1 week ago, I submitted to my proposals/ideas for Mandriva 2010.0. In order to let people comment on them, I will post the list of my submissions. I was planning to add more, but unfortunately, I’m presently in holidays ( at La Baule ), and so don’t have time to do this :-). So here are my proposals :

I tried to be as exhaustive as possible, but many ideas are missing, but I’d rather wait for another release. From firsts comments and rumor, 2010.0 will be an exciting release 🙂

Why starting a KDE application with just su failed ?

Several times users where surprised by the new behavior of KDE 4 applications. Indeed, as the super-user mode for the applications doesn’t not work currently, they often have to open a terminal, and use su to start the application as another, notably root. However when just using su instead of su –, this will failed. Why ? The explication is very simple.

First it should be noted that su means Substitute User, and not Super User. Indeed su allow to switch to whatever user you want and not just to the root user. However if no user is specified, then it will used the root user. This is logic because in a Unix/linux system, there’s only one user which will normally always exist and with the same name : root. Now that this point is clarified, it should be noted that you have 2 ways to switch to another user : the light way and the heavy way. Now let’s try to explain the differences between each ways :

  • the light way : to use the light, just use the su. This will change the user, but the full environments variables of the user will not be execute, and notably, many environment variable will be inherited from the previous user. Another interesting behavior is the fact that you will stayed in the current directory. Here is an example when I will switch from the admin user to the invite user :[bash]
    [admin@info1 ~]$ whoami
    admin[admin@info1 ~]$ pwd

    [admin@info1 ~]$ env | grep -E ‘BUS|USER’

    [admin@info1 ~]$ su invite

    [invite@info1 admin]$ pwd

    [invite@info1 admin]$ env | grep -E ‘BUS|USER’

    [invite@info1 admin]$ whoami

    As you may noticed, I’m still in the in /home/techmodis/admin directory, and thus even when I switched to the invite user. Please noticed also the $DBUS_SESSION_BUS_ADDRESS environment variable. This variable tell to all applications willing to use DBUS where they can contact the DBUS server. If the variable is not defined, then they will start a new one, but if the variable is defined, then they will try to connect to the DBUS server and failed if they can’t. As normally a user is not allowed to connect to another user DBUS session, you can guess that if an application started as invite try to connect to the DBUS session of the admin user, it will failed. Please read dbus-launch manpage for further details. Now If I try to start for example dolphin, it will failed as it won’t be able to connect to DBUS because it will not have the right to connect to the admin user DBUS server :[bash]
    [invite@info1 admin]$ dolphin
    (1985)/: KUniqueApplication: Cannot find the D-Bus session server: "Did not receive
    a reply. Possible causes include: the remote application did not send a reply, the message bus security policy
    blocked the reply, the reply timeout expired, or the network connection was broken."

    (1984)/: KUniqueApplication: Pipe closed unexpectedly.[/bash]

  • The heavy way : to use the heavy way, you just need to add the switch to su. By using this switch, you will make su load the environment variables of the new user. Let’s see an example :[bash]
    [admin@info1 ~]$ whoami
    admin[admin@info1 ~]$ pwd

    [admin@info1 ~]$ su – invite

    [invite@info1 ~]$ pwd

    [invite@info1 ~]$ env | grep -E ‘BUS|USER’

    [invite@info1 ~]$ whoami

    As you can see, when switching to another user, the new current working directory will be the new user home directory. Please note also that the $DBUS_SESSION_BUS_ADDRESS variable is not defined. This means that when an application will try to contact DBUS, as the variable is not defined, it will auto-start a new DBUS session. So this time, Dolphin will be able to start successfully :[bash]
    [invite@info1 ~]$ dolphin
    dolphin(2499)/kio (KDirWatch) KDirWatchPrivate::KDirWatchPrivate: Available methods: ("Stat", "FAM",
    dolphin(2499)/kio (KDirWatch) KDirWatchPrivate::addEntry: Added File "/home/techmodis/invite/.local/share
    //user-places.xbel" for "" ["KDirWatch-1"]
    dolphin(2499)/kio (bookmarks) KBookmarkManager::KBookmarkManager: starting KDirWatch for "/home
    dolphin(2499)/kdecore (KSycoca) KSycocaPrivate::openDatabase: Trying to open ksycoca from "/var/tmp
    dolphin(2499)/kio (KDirListerCache) KDirListerCache::listDir: Listing directory: KUrl("trash:/")
    "/usr/bin/dolphin(2499)" Error in thread 3048703696 : "org.freedesktop.DBus.Error.ServiceUnknown – The
    name was not provided by any .service files"
    "/usr/bin/dolphin(2499)" Error in thread 3048703696 : "QLocalSocket::connectToServer: Invalid name"
    dolphin(2499) ::GlobalModelContainer::init: Failed to connect to Nepomuk server via local socket
    dolphin(2499)/kio (KDirListerCache) KDirListerCache::listDir: Reloading directory: KUrl("file:///home/techmodis/invite")

All of this explains why starting a KDE application with just « su » will not work. From dbus-launch manpage, it seems that one way to solve this is to add at the end of the variable the keyword autolaunch: : You can however include autolaunch in an explicit session bus address as a fallback, for example DBUS_SESSION_BUS_ADDRESS= »something:,autolaunch: » – in that case if the first address doesn’t work, processes will autolaunch. (The bus address variable contains a comma-separated list of addresses to try.). So if you know the application/script which is setting the value of$DBUS_SESSION_BUS_ADDRESS, then you can modify it to make it add autolaunch automatically at the end.

I do hope that this explanation will allow people to understand why they need to do some supplementary steps to start their KDE4 applications. The behavior of su is normal and exists since years on the different Unix systems. For further informations, please consult the su manpage.

Note : Please note that whereas PolicyKit support will allow to do administrative task in KDE Control Center ( KDM configuration for example ), this will not solve the issue which consists to run a KDE4 application under another user name. The usage of « su – » will still be required, and kdesu/kdesudo will eventually need to be ported to KDE 4 to allow to do it without using the CLI.

Community ideas proposal for Mandriva 2010.0

Some days ago, Anne Nicolas announced on Cooker ML the availability of a dedicated site to allow the community to propose ideas and wanted features for the next Mandriva release : Proposals can be sorted by environment, release, and version. People can add comments to the proposal or vote for it. Presently more than 56 ideas have been proposed. For the 2010.0 release, proposal should be submitted for cooker release. So don’t hesitate to participate, you just need to create a Mandriva account : the registration is free.
Mandriva Ideas site :

Listing initrd content with lsinitrd

The initrd used by most distribution to boot a Linux OS is most of the time a black magic box for most people. Today i’ve learn a new command from Andrey Borzenkov on the Cooker ML : lsinitrd. This command, from the nash package, allow to list the content of the initrd. For example to list the content of the default initrd used to boot your system, just do the following command as root :
[bash light= »1″]lsinitrd /boot/initrd.img[/bash]


With lsinitrd, you will be able to see the list of modules included and thus loaded at boot, or the commands executed. This is especially useful for people needed specific modules not include automatically in the initrd by mkinitrd : they will be able to check if the right modules are icluded, or the right commands used. On a Mandriva cooker system using ext3 on standard partitions ( no LVM, no software RAID, no encryption ), this give the following output :[bash]
[root@info1 boot]# lsinitrd /boot/initrd.img
-rwx—— 1 root root 2461 May 27 16:12 init
drwx—— 3 root root 0 May 27 16:12 usr
drwx—— 4 root root 0 May 27 16:12 usr/lib
-rwxr-xr-x 1 root root 801164 May 11 08:59 usr/lib/
-rwxr-xr-x 1 root root 137824 Dec 18 13:49 usr/lib/
-rwxr-xr-x 1 root root 13956 Apr 7 23:11 usr/lib/
lrwxrwxrwx 1 root root 27 May 27 16:12 usr/lib/ -> /usr/lib/
-rwxr-xr-x 1 root root 87560 Feb 20 13:31 usr/lib/
lrwxrwxrwx 1 root root 32 May 27 16:12 usr/lib/ -> /usr/lib/
-rwxr-xr-x 1 root root 21940 Apr 18 09:50 usr/lib/
-rwxr-xr-x 1 root root 106308 Apr 7 23:11 usr/lib/
lrwxrwxrwx 1 root root 31 May 27 16:12 usr/lib/ -> /usr/lib/
-rwxr-xr-x 1 root root 534584 Mar 12 17:25 usr/lib/
lrwxrwxrwx 1 root root 31 May 27 16:12 usr/lib/ -> /usr/lib/
lrwxrwxrwx 1 root root 25 May 27 16:12 usr/lib/ -> /usr/lib/
drwx—— 7 root root 0 May 27 16:12 usr/lib/directfb-1.2-0
drwx—— 2 root root 0 May 27 16:12 usr/lib/directfb-1.2-0/gfxdrivers
-rw-r–r– 1 root root 21948 Mar 25 19:53 usr/lib/directfb-1.2-0/gfxdrivers/
-rw-r–r– 1 root root 38332 Mar 25 19:53 usr/lib/directfb-1.2-0/gfxdrivers/
-rw-r–r– 1 root root 112284 Mar 25 19:53 usr/lib/directfb-1.2-0/gfxdrivers/
-rw-r–r– 1 root root 17820 Mar 25 19:53 usr/lib/directfb-1.2-0/gfxdrivers/
-rw-r–r– 1 root root 21848 Mar 25 19:53 usr/lib/directfb-1.2-0/gfxdrivers/
-rw-r–r– 1 root root 13640 Mar 25 19:53 usr/lib/directfb-1.2-0/gfxdrivers/
-rw-r–r– 1 root root 42620 Mar 25 19:53 usr/lib/directfb-1.2-0/gfxdrivers/
-rw-r–r– 1 root root 46412 Mar 25 19:53 usr/lib/directfb-1.2-0/gfxdrivers/
-rw-r–r– 1 root root 129008 Mar 25 19:53 usr/lib/directfb-1.2-0/gfxdrivers/
-rw-r–r– 1 root root 51028 Mar 25 19:53 usr/lib/directfb-1.2-0/gfxdrivers/
-rw-r–r– 1 root root 22112 Mar 25 19:53 usr/lib/directfb-1.2-0/gfxdrivers/
-rw-r–r– 1 root root 13728 Mar 25 19:53 usr/lib/directfb-1.2-0/gfxdrivers/
-rw-r–r– 1 root root 17852 Mar 25 19:53 usr/lib/directfb-1.2-0/gfxdrivers/
-rw-r–r– 1 root root 13592 Mar 25 19:53 usr/lib/directfb-1.2-0/gfxdrivers/
drwx—— 5 root root 0 May 27 16:12 usr/lib/directfb-1.2-0/interfaces
drwx—— 2 root root 0 May 27 16:12 usr/lib/directfb-1.2-0/interfaces/IDirectFBFont
-rw-r–r– 1 root root 13716 Mar 25 19:53 usr/lib/directfb-1.2-0/interfaces/IDirectFBFont/
-rw-r–r– 1 root root 9564 Mar 25 19:53 usr/lib/directfb-1.2-0/interfaces/IDirectFBFont/
-rw-r–r– 1 root root 26892 Mar 25 19:53 usr/lib/directfb-1.2-0/interfaces/IDirectFBFont/
drwx—— 2 root root 0 May 27 16:12 usr/lib/directfb-1.2-0/interfaces/IDirectFBVideoProvider
-rw-r–r– 1 root root 17816 Mar 25 19:53 usr/lib/directfb-1.2-0/interfaces/IDirectFBVideoProvider/
-rw-r–r– 1 root root 17776 Mar 25 19:53 usr/lib/directfb-1.2-0/interfaces/IDirectFBVideoProvider/
drwx—— 2 root root 0 May 27 16:12 usr/lib/directfb-1.2-0/interfaces/IDirectFBImageProvider
-rw-r–r– 1 root root 13632 Mar 25 19:53 usr/lib/directfb-1.2-0/interfaces/IDirectFBImageProvider/
-rw-r–r– 1 root root 13688 Mar 25 19:53 usr/lib/directfb-1.2-0/interfaces/IDirectFBImageProvider/
-rw-r–r– 1 root root 13676 Mar 25 19:53 usr/lib/directfb-1.2-0/interfaces/IDirectFBImageProvider/
-rw-r–r– 1 root root 9532 Mar 25 19:53 usr/lib/directfb-1.2-0/interfaces/IDirectFBImageProvider/
drwx—— 2 root root 0 May 27 16:12 usr/lib/directfb-1.2-0/wm
-rw-r–r– 1 root root 38520 Mar 25 19:53 usr/lib/directfb-1.2-0/wm/
drwx—— 2 root root 0 May 27 16:12 usr/lib/directfb-1.2-0/systems
-rw-r–r– 1 root root 51152 Mar 25 19:53 usr/lib/directfb-1.2-0/systems/
drwx—— 2 root root 0 May 27 16:12 usr/lib/directfb-1.2-0/inputdrivers
-rw-r–r– 1 root root 13700 Mar 25 19:53 usr/lib/directfb-1.2-0/inputdrivers/
-rwxr-xr-x 1 root root 173904 May 8 08:16 usr/lib/
-rwxr-xr-x 1 root root 38412 Mar 25 19:53 usr/lib/
lrwxrwxrwx 1 root root 24 May 27 16:12 usr/lib/ -> /usr/lib/
-rwxr-xr-x 1 root root 140648 Dec 21 17:40 usr/lib/
-rwxr-xr-x 1 root root 529020 Mar 25 19:53 usr/lib/
lrwxrwxrwx 1 root root 31 May 27 16:12 usr/lib/ -> /usr/lib/
lrwxrwxrwx 1 root root 33 May 27 16:12 usr/lib/ -> /usr/lib/
lrwxrwxrwx 1 root root 26 May 27 16:12 usr/lib/ -> /usr/lib/
lrwxrwxrwx 1 root root 30 May 27 16:12 usr/lib/ -> /usr/lib/
lrwxrwxrwx 1 root root 31 May 27 16:12 usr/lib/ -> /usr/lib/
lrwxrwxrwx 1 root root 28 May 27 16:12 usr/lib/ -> /usr/lib/
-rwxr-xr-x 1 root root 9576 Apr 18 09:50 usr/lib/
-rwxr-xr-x 1 root root 430348 Feb 26 16:49 usr/lib/
drwx—— 2 root root 0 May 27 16:12 usr/lib/suspend
-rwxr-xr-x 1 root root 31292 Mar 27 12:59 usr/lib/suspend/resume
-rwxr-xr-x 1 root root 88232 Mar 25 19:53 usr/lib/
drwx—— 2 root root 0 May 27 16:12 sys
drwx—— 2 root root 0 May 27 16:12 proc
drwx—— 2 root root 0 May 27 16:12 firmware
drwx—— 2 root root 0 May 27 16:12 bin
-rwxr-xr-x 1 root root 85008 Apr 7 23:11 bin/nash
lrwxrwxrwx 1 root root 13 May 27 16:12 bin/splashy_chvt -> /sbin/splashy
-rwxr-xr-x 1 root root 30748 Feb 5 15:53 bin/modprobe
-rwxr-xr-x 1 root root 5496 Apr 18 09:50 bin/splashy_update
lrwxrwxrwx 1 root root 23 May 27 16:12 bin/resume -> /usr/lib/suspend/resume
-rwxr-xr-x 1 root root 18368 Apr 18 09:50 bin/splashy
-rwxr-xr-x 1 root root 9832 Feb 5 15:53 bin/rmmod
drwx—— 3 root root 0 May 27 16:12 dev
brw——- 1 root root 1, 1 May 27 16:12 dev/ram1
crw——- 1 root root 1, 3 May 27 16:12 dev/null
lrwxrwxrwx 1 root root 4 May 27 16:12 dev/ram -> ram1
crw——- 1 root root 4, 67 May 27 16:12 dev/ttyS3
crw——- 1 root root 4, 9 May 27 16:12 dev/tty9
crw——- 1 root root 4, 6 May 27 16:12 dev/tty6
crw——- 1 root root 4, 2 May 27 16:12 dev/tty2
crw——- 1 root root 4, 7 May 27 16:12 dev/tty7
crw——- 1 root root 5, 1 May 27 16:12 dev/console
crw——- 1 root root 4, 0 May 27 16:12 dev/tty0
crw——- 1 root root 4, 8 May 27 16:12 dev/tty8
crw——- 1 root root 4, 11 May 27 16:12 dev/tty11
crw——- 1 root root 1, 5 May 27 16:12 dev/zero
brw——- 1 root root 1, 0 May 27 16:12 dev/ram0
crw——- 1 root root 4, 12 May 27 16:12 dev/tty12
crw——- 1 root root 4, 5 May 27 16:12 dev/tty5
crw——- 1 root root 4, 64 May 27 16:12 dev/ttyS0
crw——- 1 root root 4, 1 May 27 16:12 dev/tty1
crw——- 1 root root 5, 0 May 27 16:12 dev/tty
crw——- 1 root root 4, 66 May 27 16:12 dev/ttyS2
crw——- 1 root root 4, 65 May 27 16:12 dev/ttyS1
crw——- 1 root root 5, 2 May 27 16:12 dev/ptmx
drwx—— 2 root root 0 May 27 16:12 dev/mapper
crw——- 1 root root 4, 3 May 27 16:12 dev/tty3
crw——- 1 root root 4, 4 May 27 16:12 dev/tty4
crw——- 1 root root 4, 0 May 27 16:12 dev/systty
crw——- 1 root root 4, 10 May 27 16:12 dev/tty10
drwx—— 2 root root 0 May 27 16:12 mnt
drwx—— 5 root root 0 May 27 16:12 etc
drwx—— 2 root root 0 May 27 16:12 etc/blkid
drwx—— 2 root root 0 May 27 16:12 etc/
-rw-r–r– 1 root root 114 Apr 14 23:00 etc/
-rw-r–r– 1 root root 14 Mar 28 15:03 etc/
-rw-r–r– 1 root root 1817 Mar 27 12:58 etc/suspend.conf
-rw-r–r– 1 root root 2207 May 27 16:12 etc/
-rw-r–r– 1 root root 33 Apr 6 21:21 etc/
drwx—— 3 root root 0 May 27 16:12 lib
lrwxrwxrwx 1 root root 19 May 27 16:12 lib/ -> /lib/
lrwxrwxrwx 1 root root 22 May 27 16:12 lib/ -> /lib/
-rwxr-xr-x 1 root root 71380 Apr 6 21:22 lib/
-rwxr-xr-x 1 root root 9680 Apr 6 21:22 lib/
lrwxrwxrwx 1 root root 16 May 27 16:12 lib/ -> /lib/
-rwxr-xr-x 1 root root 149336 Apr 6 21:22 lib/
lrwxrwxrwx 1 root root 18 May 27 16:12 lib/ -> /lib/
-rwxr-xr-x 1 root root 202056 Jan 15 16:43 lib/
lrwxrwxrwx 1 root root 21 May 27 16:12 lib/ -> /lib/
lrwxrwxrwx 1 root root 21 May 27 16:12 lib/ -> /lib/
-rwxr-xr-x 1 root root 17960 Feb 9 19:01 lib/
-rwxr-xr-x 1 root root 46612 Dec 22 16:43 lib/
-rwxr-xr-x 1 root root 44932 Feb 9 19:01 lib/
-rwxr-xr-x 1 root root 117752 May 19 12:51 lib/
lrwxrwxrwx 1 root root 24 May 27 16:12 lib/ -> /lib/
lrwxrwxrwx 1 root root 20 May 27 16:12 lib/ -> /lib/
-rwxr-xr-x 1 root root 78152 Dec 16 18:45 lib/
lrwxrwxrwx 1 root root 25 May 27 16:12 lib/ -> /lib/
lrwxrwxrwx 1 root root 21 May 27 16:12 lib/ -> /lib/
-rwxr-xr-x 1 root root 602619 Apr 6 21:15 lib/
-rwxr-xr-x 1 root root 90656 Aug 6 2008 lib/
lrwxrwxrwx 1 root root 22 May 27 16:12 lib/ -> /lib/
-rwxr-xr-x 1 root root 26092 Feb 5 15:53 lib/
-rwxr-xr-x 1 root root 111636 Apr 6 21:21 lib/
-rwxr-xr-x 1 root root 1376436 Apr 6 21:22 lib/
drwx—— 3 root root 0 May 27 16:12 lib/modules
drwx—— 2 root root 0 May 27 16:12 lib/modules/2.6.30-desktop-0.rc7.1mnb
-rw-r–r– 1 root root 80458 May 26 03:16 lib/modules/2.6.30-desktop-0.rc7.1mnb/scsi_mod.ko.gz
-rw-r–r– 1 root root 19356 May 26 03:16 lib/modules/2.6.30-desktop-0.rc7.1mnb/sd_mod.ko.gz
-rw——- 1 root root 3941 May 27 16:12 lib/modules/2.6.30-desktop-0.rc7.1mnb/modules.alias.bin
-rw-r–r– 1 root root 13270 May 26 03:16 lib/modules/2.6.30-desktop-0.rc7.1mnb/sata_nv.ko.gz
-rw——- 1 root root 757 May 27 16:12 lib/modules/2.6.30-desktop-0.rc7.1mnb/modules.dep.bin
-rw——- 1 root root 22168 May 27 16:12 lib/modules/2.6.30-desktop-0.rc7.1mnb/modules.symbols.bin
-rw-r–r– 1 root root 90624 May 26 03:16 lib/modules/2.6.30-desktop-0.rc7.1mnb/libata.ko.gz
-rw-r–r– 1 root root 2790 May 26 03:16 lib/modules/2.6.30-desktop-0.rc7.1mnb/pata_acpi.ko.gz
-rw——- 1 root root 43 May 27 16:12 lib/modules/2.6.30-desktop-0.rc7.1mnb/modules.seriomap
-rw-r–r– 1 root root 28161 May 26 03:16 lib/modules/2.6.30-desktop-0.rc7.1mnb/jbd.ko.gz
-rw——- 1 root root 73 May 27 16:12 lib/modules/2.6.30-desktop-0.rc7.1mnb/modules.ieee1394map
-rw——- 1 root root 17149 May 27 16:12 lib/modules/2.6.30-desktop-0.rc7.1mnb/modules.symbols
-rw-r–r– 1 root root 1886 May 26 03:16 lib/modules/2.6.30-desktop-0.rc7.1mnb/ide-generic.ko.gz
-rw——- 1 root root 5741 May 27 16:12 lib/modules/2.6.30-desktop-0.rc7.1mnb/modules.pcimap
-rw——- 1 root root 74 May 27 16:12 lib/modules/2.6.30-desktop-0.rc7.1mnb/modules.ofmap
-rw——- 1 root root 442 May 27 16:12 lib/modules/2.6.30-desktop-0.rc7.1mnb/modules.dep
-rw-r–r– 1 root root 75829 May 26 03:16 lib/modules/2.6.30-desktop-0.rc7.1mnb/ext3.ko.gz
-rw-r–r– 1 root root 3031 May 26 03:16 lib/modules/2.6.30-desktop-0.rc7.1mnb/ata_generic.ko.gz
-rw——- 1 root root 4038 May 27 16:12 lib/modules/2.6.30-desktop-0.rc7.1mnb/modules.alias
-rw-r–r– 1 root root 1592 May 26 03:16 lib/modules/2.6.30-desktop-0.rc7.1mnb/crc-t10dif.ko.gz
-rw-r–r– 1 root root 14930 May 26 03:16 lib/modules/2.6.30-desktop-0.rc7.1mnb/ide-gd_mod.ko.gz
-rw-r–r– 1 root root 2332 May 26 03:16 lib/modules/2.6.30-desktop-0.rc7.1mnb/ide-pci-generic.ko.gz
-rw——- 1 root root 189 May 27 16:12 lib/modules/2.6.30-desktop-0.rc7.1mnb/modules.usbmap
-rw——- 1 root root 69 May 27 16:12 lib/modules/2.6.30-desktop-0.rc7.1mnb/modules.ccwmap
-rw——- 1 root root 81 May 27 16:12 lib/modules/2.6.30-desktop-0.rc7.1mnb/modules.isapnpmap
-rw——- 1 root root 141 May 27 16:12 lib/modules/2.6.30-desktop-0.rc7.1mnb/modules.inputmap
-rw-r–r– 1 root root 5350 May 26 03:16 lib/modules/2.6.30-desktop-0.rc7.1mnb/pata_amd.ko.gz
-rw-r–r– 1 root root 59037 May 26 03:16 lib/modules/2.6.30-desktop-0.rc7.1mnb/ide-core.ko.gz
lrwxrwxrwx 1 root root 17 May 27 16:12 lib/ -> /lib/
lrwxrwxrwx 1 root root 16 May 27 16:12 lib/ -> /lib/
lrwxrwxrwx 1 root root 14 May 27 16:12 lib/ -> /lib/
-rwxr-xr-x 1 root root 30736 Oct 19 2008 lib/
drwx—— 2 root root 0 May 27 16:12 sysroot
lrwxrwxrwx 1 root root 3 May 27 16:12 sbin -> bin
drwxr-xr-x 2 root root 0 Apr 21 11:18 etc/splashy
-rw-r–r– 1 root root 567 May 27 16:12 etc/splashy/config.xml
drwxr-xr-x 8 root root 0 Apr 18 09:49 etc/splashy/themes
drwxr-xr-x 2 root root 0 Apr 23 16:42 etc/splashy/themes/Mandriva-Powerpack-800×600
-rw-r–r– 1 root root 79193 Apr 23 15:19 etc/splashy/themes/Mandriva-Powerpack-800×600/suspend.jpg
-rw-r–r– 1 root root 3454 Apr 23 15:19 etc/splashy/themes/Mandriva-Powerpack-800×600/theme.xml
drwxr-xr-x 4 root root 0 Apr 18 09:49 usr/share/splashy
drwxr-xr-x 8 root root 0 Apr 18 09:49 usr/share/splashy/themes
-rw-r–r– 4 root root 158823 Apr 23 15:19 etc/splashy/themes/Mandriva-Powerpack-800×600/background.jpg

mount -t proc /proc /proc
echo Mounting proc filesystem
echo Mounting sysfs filesystem
mount -t sysfs /sys /sys
echo Creating /dev
mount -o mode=0755 -t tmpfs /dev /dev
mkdir /dev/pts
mount -t devpts -o gid=5,mode=620 /dev/pts /dev/pts
mkdir /dev/shm
mkdir /dev/mapper
echo Creating initial device nodes
mknod /dev/null c 1 3
mknod /dev/zero c 1 5
mknod /dev/systty c 4 0
mknod /dev/tty c 5 0
mknod /dev/console c 5 1
mknod /dev/ptmx c 5 2
mknod /dev/fb c 29 0
mknod /dev/fb0 c 29 0
mknod /dev/tty0 c 4 0
mknod /dev/tty1 c 4 1
mknod /dev/tty2 c 4 2
mknod /dev/tty3 c 4 3
mknod /dev/tty4 c 4 4
mknod /dev/tty5 c 4 5
mknod /dev/tty6 c 4 6
mknod /dev/tty7 c 4 7
mknod /dev/tty8 c 4 8
mknod /dev/tty9 c 4 9
mknod /dev/tty10 c 4 10
mknod /dev/tty11 c 4 11
mknod /dev/tty12 c 4 12
mknod /dev/ttyS0 c 4 64
mknod /dev/ttyS1 c 4 65
mknod /dev/ttyS2 c 4 66
mknod /dev/ttyS3 c 4 67
daemonize –ignore-missing /bin/plymouthd
plymouth –show-splash
echo Starting splash.
nash-if-splash splashy_chvt 8
nash-if-splash splashy boot
echo Setting up hotplug.
echo Creating block device nodes.
echo "Loading ext3 module"
modprobe -q ext3
echo "Loading crc-t10dif module"
modprobe -q crc-t10dif
echo "Loading scsi_mod module"
modprobe -q scsi_mod
echo "Loading sd_mod module"
modprobe -q sd_mod
echo "Loading libata module"
modprobe -q libata
echo "Loading sata_nv module"
modprobe -q sata_nv
echo "Loading pata_acpi module"
modprobe -q pata_acpi
echo "Loading ide-core module"
modprobe -q ide-core
echo "Loading ide-disk module"
modprobe -q ide-disk
echo "Loading ide-pci-generic module"
modprobe -q ide-pci-generic
echo "Loading ata_generic module"
modprobe -q ata_generic
echo "Loading pata_amd module"
modprobe -q pata_amd
echo "Loading ide_generic module"
modprobe -q ide_generic
echo waiting for root device UUID=8141d62a-0254-4405-be04-40b0dcb52cd1 to appear (timeout 1min)
waitdev –timeout=60000000 –rootdev UUID=8141d62a-0254-4405-be04-40b0dcb52cd1
echo Creating root device.
mkrootdev -t ext3 -o relatime,defaults,data=writeback,ro UUID=8141d62a-0254-4405-be04-40b0dcb52cd1
echo Mounting root filesystem.
mount /sysroot
echo Setting up other filesystems.
plymouth –newroot=/sysroot
echo Switching to new root and running init.
nash-if-splash splashy_update "chroot /sysroot"
echo Booting has failed.
nash-if-splash splashy_update exit
nash-if-splash splashy_chvt 1
sleep -1

Rant of the day : crappy new Gnome pulseaudio mixer

I was just willing to make a gracious rant, so here it is : new gnome mixer based on pulseaudio is so crap that I can’t believe they dare to release this and put it in a stable gnome release ! Sorry Colin, sorry pulseaudio dev ( Lennart ), but your new mixer is just utterly broken. Reinout van Schouwen or Adam already talk about it, but I will take the time to talk about this again, because I’m in trouble to fix 64 workstations running GNOME 2.26 on Mandriva 2009.1. Indeed, this week end, I’ve upgrade all the workstation at my call center to Mandriva 2009.1 Spring. The upgrade using Mandriva autoinstaller feature was smooth and easy : it was a pleasure. Now comes the hard part … It seems that by default the Front control is muted, so you end up with no sound. You must admit that a call center without sounds, notably for the supervisor who need to listen to the call records, it’s a very bad thing. So what can I do ? Pulseaudio mixer don’t let adjust the volume for each of the sound card elements. So I end up installing gnome-alsamixer package or using aumix to fix the volume control. Unfortunately, at each reboot/logout, pulseaudio seems to reset the settings back, and so I end up without sound. As the gnome-volume-control applet is no longer shipped, I have really a problem. So dear lazy web, how can I fix this on the pulseaudio front ?

Now I’m just willing to give an advice to pulseaudio dev : I do agree when you want to simplify user life by providing more simpler UI. However you should also never forget that the rule one size fit all doesn’t exists. So you need to provide a way for users to provide customs settings. By the way, If no others OS like Windows or even more Mac OS X provide a so simplified UI for the volume control, there’s must have a reason.

This was my useless rant of the day, but you may understand that this piss me off as now I have 64 angry users who have to manually restore the volume control each time.


Debugging Firefox autoconfig feature under Mandriva 2009.1

I’ve begun to test the migration of my Mandriva 2008.1 workstations to Mandriva 2009.1. While doing this, I noticed that I could no longer enforced settings on firefox : /etc/firefox.cfg was ignored. Indeed, under Mandriva, putting lockPref statements in /etc/firefox.cfg was enough, and we didn’t have to encrypt it. Now let’s try debugging this and see how we can fix this and allow Mandriva firefox to correctly support autoconfig.

When looking at this, the closest bug report I found on internet was the following : rh bug #442406 : Cannot read MCD configuration file. Indeed if I add the general.config.filename directive in for example %_libdir/xulrunner-1.9/defaults/pref/vendor.js, I will have the exact same error message : « Failed to read the configuration file. Please contact your system administrator. »

Using debugging shows that the content of vendor.js is read :

[telepro11@superviseur6 ~]$ NSPR_LOG_FILE=mcd.log NSPR_LOG_MODULES=MCD:5 AUTOCONFIG_DEBUG=1 firefox
[telepro11@superviseur6 ~]$ cat mcd.log

-1211701024[8ccf808]: general.config.filename = /etc/firefox.cfg

As advised in rh bug #442406 I do a symlink of %_libdir/xulrunner-1.9/defaults/autoconfig/ in %_libdir/firefox-3.0.8/defaults/, Whereas I still have the same error message, the debug log content is different :

[root@superviseur6 ~]# ln -s /usr/lib/xulrunner-1.9/defaults/autoconfig /usr/lib/firefox-3.0.8/defaults/
[telepro11@superviseur6 ~]$ NSPR_LOG_FILE=mcd.log NSPR_LOG_MODULES=MCD:5 AUTOCONFIG_DEBUG=1 firefox
[telepro11@superviseur6 ~]$ cat mcd.log
-1211115296[896f808]: general.config.filename = /etc/firefox.cfg
-1211115296[896f808]: evaluating .cfg file /etc/firefox.cfg with obscureValue 13
-1211115296[896f808]: error evaluating .cfg file /etc/firefox.cfg 80520001

As you can see, even using a full path won’t help. At least the general.config.obscure_value in %_libdir/xulrunner-1.9/greprefs/all.js is now correctly analyzed. If I use 0 as value, I still have the same error, but the log clearly show that 0 is used.

To allow firefox to start, I have to symlink /etc/firefox.cfg to %_libdir/firefox-3.0.8, and then everything will work fine, and the settings in firefox.cfg will be enforced/applied :

ln -s /etc/firefox.cfg /usr/lib/firefox-3.0.8/
[telepro11@superviseur6 ~]$ cat mcd.log
-1211705120[8b21808]: general.config.filename = firefox.cfg
-1211705120[8b21808]: evaluating .cfg file firefox.cfg with obscureValue 0

So, to use Firefox autoconfig features in Mandriva 2009 Spring while keeping the behavior of pre-Mandriva 2009.1 releases, you need to do the following :

  1. symlinks %_libdir/xulrunner-1.9/defaults/autoconfig/ in %_libdir/firefox-3.0.8/defaults/
  2. add in %_libdir/xulrunner-1.9/defaults/pref/vendor.js the following statements :

    pref(« general.config.filename », « firefox.cfg »);
    pref(« general.config.obscure_value », 0);
  3. symlinks /etc/firefox.cfg in %_libdir/firefox-3.0.8/

Please note that using that setting general.config.obscure_value=0 is needed, or else while Firefox will load, settings in firefox.cfg won’t be read correctly and settings like the proxies ones won’t be enforced ( the user have the ability to modify them and thus even if we use lockPref ). The following bug report have been opened ( mdv bug #50829 ).


Digg it facebook it spread it : Web 2.0 days for Mandriva

Today I spend some time reading the different reviews about Mandriva 2009 Spring. For this I use the excellent website. What can I say ? Most reviews are very positive, this is always a pleasure 🙂 So I decide to ask the Mandriva community to spread how awesome the Mandriva 2009.1 Spring release is. So I’m going to provide the links to the reviews, and then users should spread the news through social networking site :

  • Digg : This one help to promote and give visibility to blogs or websites articles. Don’t hesitate to open account and to « digg it » Mandriva articles. For those willing to add me as a friend, my account is linuxwizard, don’t hesitate to add me as a friend.
  • Reddit : Equivalent to Digg, the site code is Open Source. There’s also a french version. I don’t have an account yet, but don’t hesitate if you have one to spread the articles through reddit.
  • StumbleUpon : Another Digg like site allowing to rate articles.
  • Facebook : no need to present one of the most known social networking site in the world. So don’t hesitate to share on your Facebook’s profile page Mandriva related articles. Don’t hesitate to download the Facebook Toolbar for Firefox to share sites in one-click.
  • Twitter : The famous micro-blogging service. You can share your links on twitter too, but beware of the size limitation of your twitter posts. You may want to use something like TinyURL to shorten the articles URL.
  • : this is the equivalent Open Source equivalent of Twitter. So don’t hesitate to open an account.
  • : Once you have open an account on several social networking site, updating them and feeding them may be a consuming task. allow to update your different social networking sites at once from one place.
  • others popular social networking websites are : Mashable, Hi5

So here is the list of Mandriva 2009.1 Spring reviews :

Happy social networking 🙂


KDE 4 job notifications issues when using removable medias

One of the most useful KDE 4 feature sometimes annoy me a lot : KDE 4 job notifications.

One of the new feature of the KDE 4 desktop is the new job framework thanks to the new Kuiserver which allow to display and group all KJobs in one place. This is useful to have a central place for notification or job progress ( notably file copy, … ). By default a job dialog will be displayed during a short period, and then it will be automatically hidden in the systray.I do really appreciate this.

With KDE 4.3, we will have even further improvements like the ability to disable auto-hiding, animated job icon the systray, better grouping, etc … Please read Jobs and notifications in the plasma systray. by Scheepmaker. However i still have one issue : the handling of copies to removable devices. Let me explain.

IMHO the application should be able to tell if it the job should be auto-hidden or not. This is pretty important when copying files to removable medias ( USB keys, USB or Firewire HD, USB mass storage mucic players, … ). Indeed, when copying a file to a removable media, a user should most of the time :

  1. open dolphin on the removable media
  2. copy the files to the removable media ( normally from dolphin )
  3. when the copy is completed, select “remove safely” to ensure that files are correctly copied on the media
    then remove the media. This is equivalent to doing umount in the CLI.

This means that you need to know precisely when the copy is finished, but also you should be proposed to select the “safely remove” option if needed as you may screw your USB key/datas. Last but not least, a new user, not knowing how things are working, should not be tempted to removed unplugged the removable media before the end of the copy and without having select « safely remove ».
New users, or at least those not comfortable when using a computer, tend to have a very limited “view”. What I mean is the fact they only clearly see a tiny portion of the screen at a time, and have a bad peripheral broader view. Because of this, if you display the job window, and then hide it, then won’t be able to see where it have been hidden, and may not even noticed the icon in the notification area at the left bottom, and eventually understand its meaning. That’s why also the animation when hiding the job dialog should clearly show that the dialog is being reduced in the systray and where. Aaron Seigo already talked about these magical effects when things tend to appear or disappear suddenly as if it was a magical object. In short : you should have clear and proper transitions between the two states/locations of a dialog or widget.

Concerning our case with Kuiserver and files operations on a removable device, I think that :

  • when someone copy files from dolphin to a removable device, Dolphin should told to no hide the job by default. Now smart/advanced users could still click on “hide this job” and fall back to present default behavior ( job is hidden, progress is shown in notification area ). This will allow new users to know what’s going.
  • If not, a proper transition should be done explaining and showing that the job is not finished ad that the window is being hidden in the systray. However the issue with this is the fact that only composited environments will be able to handle this.
  • At the end of the job, we should even have the ability to “remove safely” ( umount ) the removable device directly from the job dialog. It means that applications should be able to defined customs actions to do when a job is finished and allow users to do the action or not. Of course, i guess that this can’t be some applications specific actions, except if this can be handle by DBUS calls. Most of the time it could be phonon or solid ones. This way, when the job is finished, the dialog will propose to « safely remove » to ensure data integrity. Something like :
    If you have finished copying your files to this media, don't forget to click on "safely remove" to ensure that your data have been
    correctly transfered. After this you will be able to unplugged your media safely.
    [close]                                     [safely remove]

IMHO this feature will be very welcomed notably for users not knowing Linux or computers. How many times do we have to explain to a user under Windows that he needs to click on the tiny icon in the bottom right before unplugging the USB key ? At first they don’t see the icon, then they have complicated thing to do : right click -> safely remove -> select the device ( with some duplicated entries ) -> stop -> at the end they can unplugged the media. At least they know when the copy is finished as the dialog stay on the screen, which allow to reduce the risks of data corruption as they will not normally remove the media while the copy is still running. Under KDE 4, the auto-hide feature increase the risk that the user will just remove the media whereas the copy is still not finished. Please be aware that some USB keys don’t provide a LED showing that the key is being used, or if the user hurried/rushed, he won’t noticed this ( or the Kuiserver icon in the systray ) and will just unplugged the device thinking that the copy is finished and that Linux is marvelous as the transfer/copy was so fast … In the end he ends up with corrupted data or partitions.

References :
More on kuiserver and extenders by rscheepmaker
Extender grouping and notification images by rscheepmaker
fewer magical appearances by Aaron Seigo
Jobs and notifications in the plasma systray. by rscheepmaker
Easy, Beautiful Progress Notification in the Task Bar on


Thoughts about Linux marketing #3 : Mandriva and its R D projects PR

Last time I talk about the Xtreem OS. As we could see, there were very few communication/PR about this on Mandriva website. This complete lack of communication from Mandriva about theses R&D projects is very strange. Nothing on Planet Mandriva, or in english linux news site like Linux Today,, OSNews or If you want to see the different R&D Mandriva projects, have a look at Mandriva R&D page. This page is very well hidden as you can’t see it from the Mandriva website front page. First you need to enter in the Pro section of the website, and then in little letters mostly invisible at the bottom, you will have the link to the R&D page. Don’t expect to have after dedicated pages on the Mandriva website detailing these projects, or having news or further informations notably in the PR page … only the minimum is done. So for everybody visiting the Mandriva corporate page, Mandriva is only doing a Linux distribution ( One and PowerPack ) and a Flash key ( Mandriva ).

If you look in the enterprise section, you will see things about Mandriva Corporate Server, Pulse ( is it a CLI or a GUI thing ? no screenshot ), and Mandriva Directory Server ( vs Linagora LinID ).

Suppose that you want to know the products containing Mandriva Linux products. Indeed, are the products from Mandriva use somewhere in the world ? Have a look at the OEM page … Ok, you have pretty nothing. If you want more informations you need to send an email. But do they talk about what they can provide to OEMs ? IIRC, Mandriva is able to provide support ( vs Linagora support page ) and Consulting, custom Linux distribution and UI ( Mandriva Mini, tailored systems for computers/netbook ( Mandriva mini ) but also media centers solutions ( TouchDiva ), distribution and e-commerce channel ( ). Mandriva is sold in products like Hercules eCafe, EMTEC Gdium, however you have nothing about this. If I were Mandriva, i would have done the following :

  • Reorganize the Mandriva Corporate site : End-user but also enterprise solutions should be promoted. R&D projects should be more visible and the link should be put in the front page.
  • Visual : if you browse Mandriva website, you will noticed that you have few images. No images or diagram to illustrate the Mandriva products. It’s as if you were selling a laptop or a camera without providing an image and by just providing a minimal technical sheet. Sorry but in modern world with high speed internet connection, people want to see image, video or hear audio ( podcast ) about the products you want to sell.
  • References : When looking for example at Oracle or Microsoft pages, each time and for each of their products, they have references/testimonies from customers or known IT consulting companies like Gartner. Show that your product is known, used, and that your costumers are happy. Check also Linagora website.
  • How do you compare : How does your product compare with other equivalent products ? What do you provide that others don’t have ?
  • « Veille technologique » : What do I mean by this french word ? I mean that your PR department should follow the big news sites ( Linux ones, but also general computers ones, and even news site ), but also big bloggers. A new buzz ? a FUD against Linux ? A new product ? Someone willing to ditch Linux after using distribution X ? Show how mandriva does positioned itself concerning this : react. Hype about cloud-computing ? show that Mandriva is involved in grid-computing. Linux on mobile ? Andro

KDE 4.3 enters in Mandriva Cooker : targetting Mandriva 2010.0

Now that the Mandriva 2009 Spring have been released, the Mandriva development tree for the next version is now opened. Helio Chissini de Castro, from the Mandriva KDE team, announced a few days ago that KDE 4.3 pre-release version will land in cooker. As of today, a few KDE 4.2.70 packages begin to appears on Mandriva cooker FTP repositories. Some KDE applications are being updated too, for example amarok 2.1 Beta1 just hit the repo. Please note that Qt 4.5.1 have been introduced in the repo too. KDE users are advised to wait a little as many things may break.

Others packages have been updated also, so now cookers users can enjoy : mono 2.4, bash 4.0, webkit 1.1.6, drupal 6.11, packagekit 0.4.6, openvas 2.0.1, kernel-linus, ndiswrapper 1.54, mesa 7.4.1, kdenlive-0.7.3, wine 1.1.20, nexuiz 2.5, firsts versions of btrfs userpace tools. Please note also the introduction of kernel-netbook, a kernel package with optimizations and patches intended for netbook based hardware.

I’ve just noticed than Frederik had already wrote a more detailed post about this 🙂 : Mandriva Cooker (2010.0) opened



My Tweets