Linux kernel development thoughts

One week ago, kernel hacker Ingo Molnar reviewed Con Kolivas’ swap prefetch patches and approved them to be added to the official Linux kernel. Swap prefetching is a technique, which will load swapped out memory pages back in memory if the system is idle and memory has become available. This is useful for people starting temporary jobs which use a lot of memory, which makes other processes move to swap. Once the memory hungry process is finished, swap prefetching will kick in and slowly reload the swapped out pages back to memory, so that the system potentially does not need to do this anymore when the user again uses one of the swapped out processes. Tjos functionality can be enabled and disabled at will during compilation of the kernel.

Swap prefetching has been available for a long time in Con Kolivas patch set, and was also added to the mm development kernels some time ago. In that period, no bugs have been reported, and it seems people are happy with this feature. So it was hoped that the push by Ingo Molnar, would finally make swap prefetching available for all Linux users in version 2.6.22.

Developer Nick Piggin seemed rather critical of the swap prefetching feature. I I have understood the thread correctly, he discovered a problem (actually swap prefetching did not seem to work anymore because of some unrelated changes in Linux), and there was some serious disagreement how it should be dealt with. Con Kolivas’ got fed up with the unreasonable objections to the patch and proposed to dump the patch completely. So this is yet another performance improving feature we won’t be seeing in the Linux kernel for some time…

Update 12 May 2007: Con Kolivas posted an updated version of swap prefetch, addressing some problems, and the patch has not been dropped from the mm kernel. Maybe things do not look so bad after all?

This whole story makes me remind of the recent RSDL/SD scheduler. Con Kolivas implements a feature which is clearly working very good for most people, and then someone comes up who vetoes it for whatever reason, and in the case of SD other implementations are started (which still do not have the same maturity as SD). In the end a lot of work seems to duplicated and interesting features are delayed or even cancelled completely. Is it me, or is the behaviour of some kernel developers really hurting Linux development?

Also in related news, kernel hacker Adrian Bunk decided to not track regressions anymore. He was tired of Linux 2.6.21 being released with lots of known regressions. It seems Linux kernel development has really some issues these days…

Mandriva work this week

This week I was contacting the mailing lists for various upstream projects to find fixes for some problems.

First there was the problem that F-Spot does not automatically handle the upgrade from sqlite2 to sqlite3. In the past, F-spot used sqlite2 as its database, today it uses sqlite3 by default, but you can still continue to use your sqlite2 database. That is, if sqlite2 libraries are installed on your system. And one can imagine that in the future, distributions will stop shipping sqlite2, because it is not maintained anymore and because sqlite3 is far superior. It is possible to upgrade from sqlite2 to sqlite3 by upgrading the db at the command line, but we really cannot expect normal users to do this, do we?

In Pan, I had the problem that new headers were not appearing in a newsgroup, until I killed the “get new headers”-task by hand. I found out it was caused by a news server I had configured in Pan, which was not reachable. I filed a bug.

I experienced a crash in ogginfo when some wrongly encoded characters are found in the Vorbis tag, for which I found a patch with Google. I filed a bug but I’ll need to investigate if the tag is really invalid: Easytag shows it correctly without any problem.

Another problem I experienced already some time ago, but which I never really investigated, was that Amarok did not add files on a read-only Samba share to its library. Thanks to Debian changelog mailing list, I discovered today that there was a patch for libtag fixing this. This is a real serendipity!

I did again some testing with Kaffeine. I contact its mailing list for the problem that it copied everything to ~/tmp when using system:/ URI in Konqueror. I found a fix now, but I’m still not impressed by Kaffeine’s stability. For now, you’re better of continuing to use kmplayer.

I contacted Mandriva’s web discuss mailing list (which does not seem to be archived unfortunately) for a new structure of the End user documentation on the Mandriva wiki and posted a proposed for some documentation about the tmb kernel. I’m a bit disappointed by the reactions: like this we won’t succeed in creating a very active wiki community with lots of useful user documentation. I’ll try to implement a proposal in my sandbox this weekend: practical work is often better than theoretical discussion

Linux kernel: The battle of the CPU schedulers

Since some time already, different patches are being written for the Linux kernel, which improve the CPU scheduler. The CPU scheduler, is that part of the kernel, that’s responsible for assigning CPU time to the different task running on your system. If you sometimes experience problems with sound stuttering or your mouse becoming jerky while running other CPU intensive tasks, then this is definitely a problem caused by the task scheduler.

Con Kolivas has been maintaining an alternative scheduler for some time. His Staircase scheduler was designed with interactivity in mind, especially for desktop systems, where people want their system to be quickly responsive under all kinds of workloads. This scheduler has been optimized a lot through the years, and as such is very stable. Still there are some rare cases where “starvation” is possible.

At the start of March, Con Kolivas published a new scheduler, which was called RSDL (Rotating Staircase DeadLine scheduler) at first, and has been renamed to SD (Staircase Deadline) afterwards. Based on the experience Con Kolivas gathered with his Staircase scheduler, SD is a more general purpose scheduler, trying to give absolute fairness to the different running tasks, without favouring any process (for example lots of other schedulers favour X). This way, no starvation issues should be possible with this scheduler. A lot of discussion followed after his announcement, and it became quickly clear that a lot of people were not happy with the current scheduler in Linux. Important kernel developers like Mike Galbraith, Nick Piggin, Ingo Molnar, Willy Tarreau and Andrew Morton joined the discussion and also posted other scheduler patches, sometimes not without some trolling and flaming as sometimes happen on such mailing lists. Con Kolivas’ scheduler was added to Andrew Morton’s mm kernel tree to get some more testing. The development of RDSL/SD went up and down sometimes, because of Con Kolivas’ health problems.

Ingo Molnar, which was rather critical of some of the ideas in the new scheduler at first, also recently began the development of CFS (Completely Fair Scheduler, which actually is based on the same basic concept of fairness. Con Kolivas announced that he would stop development of the RD scheduler, because of his health problems, and because his ideas would now continue to be used in the CFS scheduler. But things came out differently, and Con Kolivas continued development in the end. The result is that the SD scheduler is now at its 46’th version (v. 0.46), and it seems most problems have been fixed. Based on all the testing done on the kernel mailing list, it seems SD 0.46 is more mature than CFS 6. Even Willy Tarreau, maintainer of the 2.4 Linux kernel tree, said that thanks to SD, he did make Linux 2.6 the default kernel on his laptop, as he found the scheduler in mainline 2.6 too bad compared to 2.4. It’s unclear however which of these schedulers will be integrated in linux finally, and when this will happen.

Personally I think SD 0.46 should be integrated now in Linux 2.6.22 pre-releases. There has been a lot of testing and bug fixing, and it seems there are no serious bugs open anymore now. I also hope that Mandriva 2008 will come out with one of these new schedulers. The tmb kernel in Mandriva Cooker, already uses the SD scheduler now. People interested in this discussion, can subscribe to the ck mailing list where a lot of the discussion is happening. Sites like LWN.net and Kerneltrap also often post about the progress of this subject.

Testing KDE video players, setting up backups and a cluster, cleaning up poppler and sqlite stuff

Today I tried Kaffeine 0.8.4 with XCB support. It is supposed to fix the stability issues when playing embedded videos in Konqueror, so I wanted to verify if it is a real contender to KMPlayer. Kaffeine indeed does not seem to cause instabilities in Konqueror anymore. That’s good. I tried viewing videos on vrtnieuws.net and this worked fine. Unfortunately, trying to view an Apple movie trailer failed, while KMPlayer (with mplayer back-end) worked fine. When double clicking on local video files while browsing system:/home in Konqueror, Kaffeine still copies the whole file to a temporary directory. Actually the default use of system:/home instead of /home/login by Konqueror is completely braindead, but I do not understand why Kaffeine needs to copy the whole file, while KMplayer does not need to do this. So for now, I still recommend KMPlayer.

At work, I started to install a cluster system, consisting of about 6 (IIRC) computers. I will try Kerrighed on Debian Etch. It seems an interesting project: more actively developed than OpenMosix with a clear roadmap for the future. And it does not seem too difficult to install. I’ll post my experiences soon.

Also at work, I recently discovered the rdiff-backup and backupninja projects. These programs really rule for making backups on free hard drive space. For tape back-ups I like Bacula, but it is not that easy to configure. For simple backups on hard drives, nothing beats the simplicity of rdiff-backup and backupninja. I should definitely check whether these good backuptools are also included in the Mandriva repositories.

Some things I have on my personal TODO list: I want to find out which programs still depend on xpdf, or have their proper xpdf code included in the source. We should maximise the use of poppler instead, because it is a shared library. If all PDF programs use poppler, all programs will easily benefit from improvements to poppler. And it will make security updates for all these programs much easier. And we will gain some space, which is always interesting for the One live CDs. Because now, a lot of packages have to be separately updated which is a PITA. I would like to do the same for sqlite. Seems like a lot of packages still depend on the old sqlite 2 instead of the more modern version 3, and some programs still use their own private copy. Let’s hunt these packages down, and see if we can compile them with the sqlite 3 shared library. If not, bug reports should be opened upstream so this gets fixed.

Mandriva 2007 Spring released, looking forward to 2008

Now that Mandriva 2007 Spring has been released and the corrupted Mandriva Cooker subversion repository has been fixed, development for Mandriva 2008 has started now.

Some things which I have on my wishlist for Mandriva 2008:

  • New kernel, Linux 2.6.22 or later which I hope will give us these things: CFQ IO scheduler as default (since Linux 2.6.18), better task scheduler, probably CFS, better wireless drivers (bcm43xx is stable in 2.6.20, but it’s not in Mandriva’s 2.6.17, finally good Ralink drivers: complete documentation exists, but drivers are still not production quality)
  • Mandriva still uses OSS drivers for some sound cards which are perfectly supported with Alsa (for example for some Intel ICH2 810 AC97 cards, which was not fixed in 2007.1 as far as I know). This is annoying as OSS does not have sound mixing, and can cause applications complain about occupied /dev/dsp and it also causes missing sound in Flash. Fedora even does not ship OSS anymore for some time already. A maximum of cards should be switched to Alsa now early in Cooker development , so that things get tested.
  • slocate is still being installed by default by rpmsrate instead of the much performance friendlier mlocate (already in 2007.1 Main). We should make the switch now in rpmsrate so it’s the default in 2008.
  • Almost a year ago, I proposed a new program menu structure for Mandriva. According to Gnome and menu maintainer Frédéric Crozat, it would be implemented for 2008. Let’s hope this becomes true, as it will make the menu at the same time friendly for new users, and more practical for power users. Unfortunately, I lost the complete original document (what a shame!). If somebody still has it somewhere, I would be grateful if you could send it to me!
  • Drop esound, and use Pulseaudio instead. Pulseaudio is a more modern and actively maintained sound server. There was some discussion about it some time ago, and I still hope Pulseaudio will not be forced on all users (personally I prefer not to use a sound server, and let all the mixing be done by Alsa. For this reason, I still hope more and more applications will use GStreamer, as GStreamer makes it easy to choose your preferred output method, such as Alsa or Pulseaudio for all applications. But Pulseaudio should certainly replace esound in main.
  • Test new Kaffeine: In Mandriva 2007.0, Kaffeine was replaced by kmplayer as the default video player in KDE, because Kaffeine was unstable paying embedded videos in Konqueror. Now that both Xine and Kaffeine support XCB, this problem should be fixed. We should test if it is indeed stable now, and if Kaffeine plays supports all kinds of embedded videos in web pages like kmplayer. If this is the case, we should consider moving back to Kaffeine, as its interface is a bit better than KMplayer’s.
  • Mandriva’s net_applet and mdkonline system tray utilities still poll too much, which causes unnecessary CPU usage, and which also eats battery life on laptops. These applications should be scrutinized a bit more, so they are completely idle most of the time.
  • Up to date printing support: Unfortunately printing support did not really advance in Mandriva 2007 Spring. The drivers are mostly still the same as in 2007.0, and some newer printer models supported by newer versions of hpijs and other models which appeared on linuxprinting.org, are not support in 2007 Spring. Mandriva 2008 should really have up to date printing support, like was always the case in previous versions.
  • Cleaning up the repositories: the Main repository now contains a lot of programs which are not used by a lot of people (things like flphoto, uucp, uw-imapd, xpdf,…). On the other hand, some very interesting packages are in Contribs (Transmission, dovecot,…). The contents of both repositories should be looked at, in order to clean up, and put packages in the appropriate repository.
  • We need a simple application installation program: rpmdrake has improved a lot in 2007.0 and now in 2007.1 Spring. Still it is too complex for new users. Suppose a user wanting to search a DTP application. He should easily find Scribus. Well, Scribus does not even appear in the Publishing category in rpmdrake. Instead, these category contains mostly technnical console programs not suitable for beginners. We should have something like Ubuntu’s gnome-app-install which only shows userfriendly graphical applications.
  • More and easier to find documentation: Mandriva already comes with a lot of documentation, but the included handbooks are difficult to find (being hidden in More Applications). They should be in a more obvious place. On the other hand, we should make sure more documentation becomes available in different languages on the wiki, and the wiki should be easy to find (include a link on the desktop?). This way, users will know where to look for help.
  • Related to the menu structure and the reorganization of the repositories, we should constantly be evaluating which applications should be in the default installation and which not. We had such discussion shortly before 2007.1 Spring went out, but this was a bit too little too late. We should make sure we start with this process before the first beta is released, so we have more time to evaluate and stress test programs.

Currently I already started by taking a quick look at the contents of the main repository. Maybe other people are interested in participating in this effort, so that it can happen a bit more organized?

Struggling with Linux’ OOM killer when building RPMs

Last two weeks, I have created a lot of updated packages for Mandriva 2007.1. I packaged Gnome 2.18.1, and also updated subversion snaphots of kdepim and kdegraphics. Kdepim, because it has received a lot of bug fixing love the last two months, and kdegraphics, because it contains kpdf using new xpdf code, which should be compatible with PDF 1.6 and 1.7 specifications. In kdepim, they also removed the kitchensynk tool, which offered synchronization options with external devices. Apparently it was too buggy to be really useful. I have the impression that Kmail is indeed also more stable than in 3.5.6. I could not reproduce yet the hangs I sometimes experienced with 3.5.6.

Compiling kdepim on an AMD64 system, seems to require a huge amount of memory (much more than on x86 32 bit). 1 GB of RAM and about 250 MB of swap did not prevent g++ eating up all of my memory (even when no other services were active!). Unfortunately, this made Linux become completely unstable: the hard drive started thrashing the whole time, and the system was completely unresponsive. I could only stop it by doing a hard reset. I am clearly not the only one hating this stupid Linux behaviour.

In the Mandriva Cooker channel (irc.freenode.org, -cooker), couriousous suggested to execute

# echo 2 > /proc/sys/vm/overcommit_memory

The default value is 0: when an application asks more memory than is available, Linux will still try to allocate it, even if chances exist that it won’t be available. This seems to be done because some applications ask more memory than what they will really use. If in the end, no more memory or swap is availed, Linux’ OOM killer will kill some (random) processes to free up memory. By setting overcommit_memory to 2, the allocation of too much memory will fail immediately. The application can then react itself to the fact that not enough memory is available. The result was that instead of bringing my system to death, the g++ compiler just exited with the message that I was out of memory. Much nicer! I found a complete technical explanation about memory allocation in Linux on the web. To make this setting default, I put vm.overcommit_memory = 2 in my /etc/sysctl.conf. I do not understand why it is not the default value, making a system unresponsive for several (tens of) minutes does not seem very friendly…

Update 16 april 2007: It seems like this setting has severe problems as well. On my system with 384 MB RAM, which I use as server and desktop, several applications randomly crashed because they did not get the memory they wanted (Evolution, Tilda,…). Changing the setting back to 0, made these applications work correctly again. I suppose playing with the overcommit_ratio value as explained in the article which I mentioned above, can improve this behaviour. But anyway, it sucks that such things are so difficult to get right. This should really be working nicely out of the box

Anyway, in the end I got kdepim compiled on AMD64 by adding some more swap. From now on, I’ll be creating bigger swap partitions is Linux, it can realy be useful, even when you think you have enough memory…

I also built a freetype 2.3.4 RPM for Mandriva. Font rendering on my flat panel is now much nicer comparing with freetype 2.3.1 which is included in Mandriva 2007.1! Not that it was ugly before, but it’s a nice surprise to still see such big improvements, especially from a minor update.

OpenSolaris, ForeSight Linux, Mandriva 2007.1

Today I received the OpenSolaris Starter Kit package in my letter box! To promote OpenSolaris, Sun decided to start a free delivery program of the OS. The kit contains two DVDs: the first one contains live versions of OpenSolaris distributions Belenix, Schillix and Nexenta, while the second CD contains Sun’s own Solaris Express Community Edition. I thought to try it out quickly in VMWare, but apparently it needs 768 MB of Ram! Ouch, that’s huge, just for installing an OS! I’ll try to test out the live distributions maybe this weekend.

Today I also downloaded Foresight Linux. It seems to be a nice Gnome based distribution. I would like to try it out soon. I hope it won’t be a disappointment like Frugalware recently.

Another thing I would really need to do is write an extensive Mandriva 2007.1 final review. Yes, it is not yet officially announced, but the final 2007.1 tree is already available. It seems ISO images are currently distributed to early Bittorrent seeders, so maybe already tomorrow we can expect the official announcement.

Seems like I planned to do a lot this weekend. And I’m pretty sure I will never finish all these plans, because it’s becoming very hot again in Belgium, and then I like not to spend too much time on my computer :-) Forecasts said temperature would rise to 27 degrees during the next days. And that in April in Belgium?! I mean, fifteen years ago we used to say it was already very hot if it was 27 degrees in summer time… After one of the hottest summer ever last year (maximum of 37 degrees), an unusual hot winter (breaking several day and month records), now an extremely hot Spring… Global warming is clearly not an inconvenient threat for the future, it is already reality. Time to wake up those world leaders who still think it’s not necessary to do something.

Why I do not like Apple computers and Mac OS X

Since a few months, I got an Apple Powerbook Pro from my employer. It’s not one of those new Intel based machines, but it still has a G4 1.5 Ghz PowerPC processor, and 1 GB of RAM and it runs Mac OX 10.4 Tiger. This is my first Mac. Before, I always worked with DOS, Windows and Linux.

Mac fans always say it’s the best and most intuitive OS on the market today. I do not agree with this opinion at all, as I found some things in Mac OS X very unintuitive compared to Windows, KDE and Gnome desktops.

Let’s take for example the dock. When you have several instances of the same application open (e.g. different terminal windows), you have to click for a second on the icon, to get the list of all open instances. I only discovered this by accident. I think the Windows, KDE and Gnome way, to automatically show the list of open instances when you click normally on the item in the taskbar, is much more natural. I have the impression that Exposé is actually only a “hack” to fix this unintuiveness: actually, in KDE and Gnome I never felt the need for somethiing like Exposé, and I do not miss it at all when I’m back in Linux from a Mac OS X session.

About Exposé itself: actually it was not intuitive to find. I had to search on the web to actually learn how I could activate it. If I had never read about it before on the Internet, maybe I would not even have discovered it. Same with the show desktop functonality, which was much harder to find that in KDE and Gnome, which have a visible button on the panel to activate it. Another functionality which I often use in KDE and Gnome is locking my session. Again, I had to search on the web how I could get a similar functionality in Mac OS X, as there is no such option in the menus.

When you close certain application windows, the window is closed, but the application stays active in memory, and are not remove from the dock. To close them completely, you have to close them by using the top level menu. I think this is strange too, as people could be surprised that over some time, their system becomes slower and slower, because applications they started once, are still eating up memory.

Typical Mac OS X browsers (Safari and Camino) have the habbit of saving all files (such as PDF files) on the desktop. It’s extremely annoying, because after an hour of web browsing, my desktop is cluttered with files which do not interest my anymore. And did you know that tabbed browsing in Safari, is actually a configurable option, which is disactivated by default?

Installing software is sometimes confusing too. Sometimes you get a real installer program like you have in Windows, where you choose the drive where you want to install, and several options. Other times, you get an image which contains the application which you just have to drag to the Applications folder. And sometimes it contains a complete directory, which has to be dragged to Applications. Especially the difference between these last two cases is not always clear. I already ended up just copying the application executable, while in fact I had to copy the whole directory to Applications. And in the beginning, I just had the downloaded image file on my desktop and started the application from the mounted image. I did not even know that I had to copy it to drag the executable file to Applications.

Actually I think Mac OS X also lacks a nice application menu. Most of the time, I end up starting applications by typing their name in Spotlight or Quicksilver (which of course means you have to know the application’s name first), but then again I prefer just browsing a standard, well structured application menu like in KDE and Gnome. I see the fact that things like Spotlight and QuickSilver are must haves to launch applications in Mac OS X, as a proof that things are not that well organised by default.

And what annoys me the most of all: the keyboard. Apple keyboards use a lay-out which is not completely the same as normal PC keyboards. Especially the Belgian keyboards are a disaster. A lot of special characters used in a console (for example: { } | @ ^ [ ] ~ ), have to be called with the Alt-Gr key on normal Belgian PC keyboards. Most of these characters, do not even appear at all on a Belgian Apple keyboard! To type a | on a Belgian Apple keyboard, you have to type Ctrl+Alt+l. {, [, } and ] can also be typed with some key combinations with Ctrl, Alt ( and ). And the ~? I don’t even know yet how to type this one. The keyboard on my Powerbook does not have a Delete key, it only has a Backspace key. And I learned that in my preferred shell (which is iTerm, as the default Apple Terminal does not seem to have tabs), it sometimes worked as a Delete key instead of a Backspace key. With some Googling, I could change this. Another problem in iTerm was that the Alt key was not working like I expected in irssi, so again I had to google how to change that. And now the best of all: since I fixed the behaviour of the Alt key for irssi, the special combinations like Ctrl-Alt-l to get the pipe symbol | does not work anymore in iTerm! *Sigh*… And knowing that on a normal PC (either Windows or Linux) all this works out of the box without any configuration…

So most of the time I use Linux on my Apple machine where I have configured my keyboard as a classic PC keyboard (also not a perfect solution, as I have to type all these special characters blind now). Unfortunately not a lot of distributions do support PowerPC anymore these days, such as my preferred distro Mandriva. I installed Ubuntu, but only shortly after my installation, Ubuntu also decided not to officially support PowerPC anymore. It will continue to live as long as the community maintains it. I guess Debian will be my best bet in the future…

smb4k, Amarok and Kontact

I was having fun with some upstream problems tonight.

First, I reported the two issues I had encountered earlier when testing smb4k: it still uses the deprecated smbfs instead of cifs by default, and it does not get the right character set from your locale settings.

Another problem which annoyed me already for some time: when I put new files in the directory defined in my Amarok collection, they did not show up. I asked about the problem on Amarok’s IRC channel, and eeanm helped finding me the real culprit. My files are on a seperate file system, mounted as /mnt/Music. Apparently, Amarok uses the directory’s modification time to detect changes, but when you change something in /mnt/Music, the modification time of the directory Music apparently does not change when it’s a mount point. When you put something in a subdirectory of the mount point, it should work. And I was using the noatime mount option on the XFS file system. I removed that, and then when putting a file in a subdirectory of /mnt/Music, Amarok detected the file automagically! Thanks eeanm!

And another disturbing problem: Kontact (well, actually KMail) is unstable on IMAP. It has always been like that. In the latest versions, it became more stable, but I still have it occasionally hanging when opening an IMAP folder (changing folders is enough to fix this), or an occasional crash. Unfortunately the backtraces are unusable, for example:

0x00002afc8171c2e1 in nanosleep () from /lib64/libc.so.6
#0  0x00002afc8171c2e1 in nanosleep () from /lib64/libc.so.6
#1  0x00002afc8171c0e9 in sleep () from /lib64/libc.so.6
#2  0x00002afc7ca649bc in KCrash::startDrKonqi ()
   from /usr/lib64/libkdecore.so.4
#3  0x00002afc7ca77c34 in KCrash::defaultCrashHandler ()
   from /usr/lib64/libkdecore.so.4
#4  0x00002afc816b6da0 in QWidget::setUpdatesEnabled () from /lib64/libc.so.6
#5  0x0000000000000000 in ?? ()

These kind of occasional, apparently random crashes, are the reason why we need something like apport.

Anyway, it’s a known problem that IMAP and KMail do not go well together. Some SuSE developers finally started taking a look at the various IMAP problems in KMail. Unfortunately, too late for Mandriva 2007.1 :-(

Instead Mandriva KDE maintainers decided to focus on KDE 4, but IMO this was much too early, and I would be surprised if KDE 4 will really be stable and feature complete enough to have it as default in 2008.0. Fortunately, several of my earlier reported KDE problems are fixed now, but other problems still seem to be ignored completely without any clear reason. Oh well, I’ve reported them, and I decided not to continue restating these issues again and again; I’m a bit tired of it. I’ll wait for final release now, and then start focussing on suggesting improvements for Mandriva 2008.

Mandriva 2007.1: KDE vs. Gnome

Mandriva 2007.1 RC3 is out since this weekend, so we are really near the final release now. If you have some spare time, and some bandwidth, please grab one of the ISO images or start a network install via FTP with the boot.iso and report your findings!

After all the Gnome testing I did for Mandriva 2007.1, I thought it was time to do some ultimate testing with KDE. Actually, I’m very deceived: where Mandriva 2007.1 is very polished, the default KDE install is terrible. Really, not just bad, but plain terrible. Here’s an overview.

  • Image viewers:: Finally, it seems kuickshow has been removed from the default KDE installation. There is still gwenview, kview and showfoto (digikam) though. KView is really superfluous. GWenview does all what KView does, and more. Why keep it?
  • VoIP applications: It seems the marketing team has decided that VoIP will be the killer application for 2007.1. Great, but why does KDE need 3 VoIP applications?! There is KPhone, OpenWengo and Ekiga. Ekiga is without doubt the best Gnome VoIP application, but it really does not belong in KDE. OpenWengo is there, probably because of some agreement between Mandriva and the Wengo company. It seems like the best free (as in free speech) KDE VoIP application for now, as it’s actively developed. KPhone is not a dead project, but still I have rarely heard of it, and I’m wondering if there are really enough people using it. I never saw somebody on the cooker mailing list reporting about it or opening a bug report, which gives me the impression that this application is not very well tested in Mandriva. Why not just go with Wengophone? Wengophone can connect to any SIP service, so that does not seem to be a valid reason.

    Update 02 april 2007: The default VoIP application choice has changed today: KPhone is no longer installed by default in KDE, neither is Ekiga (excellent!). Skype was added for powerpack installs. Although I think Skype + Wengophone is still too much for Powerpack, the current situation is a huge improvement.
  • IRC and other network applications: Mandriva now installs all of kdenetwork by default. This includes the unmaintained and feature-lacking IRC client ksirc, as the program ksig. ksig seems to be a manager of signatures for your e-mail client. But: it does not seem to work together with KMail, KDE’s own e-mail client, as KMail seems to do its own signature management. I do not know a lot of people who are using so many different signatures that they need a seperate management application, and if it does not work together with KDE’s own mail client, I do not see why this is interesting to have. On the other hand, Konversation is also installed by default (while it still has not been moved to Main repository, which is also a problem). Konversation, contrarely to ksirc, and Kopete (which is also installed by default) is a great IRC client. So now we have two (actually even three counting Kopete) applications which can do IRC: again too much duplication.

    Update 02 april 2007: Today, first Konversation was removed (strange decision), now it has been added back. We are back at square one here. Actually the real problem here is not rpmsrate, it is task-kde which is the culprit, because it requires the kdenetwork metapackage, which installs ksirc and ksig by default, although they do not have high enough priority in rpmsrate. And Konversation still has not been moved to main :-(
  • Office suites: Mandriva 2007.1 installs two complete office suites in KDE. There’s the obligatory OpenOffice.org, but in 2007.1 we also see the complete KOffice suite now. That means two word processors, two spreadsheet applications, two presentation packages, etc… And that while KOffice are not very good in importing MS Office documents, and generally have a less extensive feature set. In 2007.0 there was the much better choice to install OpenOffice.org by default, and only a few of the KOffice applications which do not overlap too much with OpenOffice.org, like Krita, Kivio and Kexi.

    Update 02 april 2007: All of KOffice will not be installed anymore from now on. This issue has been fixed.
  • New kicker lay-out: The new kicker lay-out is very unhandy. The height of the panel has been reduced, so that there’s only one line available for open windows in the task list. Unfortunately a lot of space is wasted with four virtual desktops in the kicker bar. Together with 4 application icons and 4 items active by default in the system tray, this leaves way too less space for open windows. Already starting from three open windows on a 1024×768 monitor, the task list becomes too crowded to be pleasant. When changing the height of the panel back to the normal size, the Mandriva button becomes too big, that it’s not very beautiful anymore. Already several people asked on the cooker list how they can change the icon back to the previous one: it’s clear that this question will come back only more the moment Mandriva 2007.1 is released. A graphical configuration option was not possible for this release, due to a lack of time. A huge mistake if you ask me.
  • Fax programs: Actually this is also a problem present in the default Gnome installation, but in Gnome, this problem is not really visible, as it seems there are not graphical Gnome fax programs installed. In KDE this is worse: kdeprintfax, kfaxviewer and kfaw clutter the Office menu. This is especially visible when you use Discovery menus. As not a lot of people are using their computer as a fax today (most people don’t even have the hardware, either because they don’t have a modem, either because most modems are softmodems which do not work in Linux), this should not be installed by default.

    Update 02 april 2007: KFax will not be installed anymore from now on. Still there is kdeprintfax in default installation, which is still to much in my opinion.
  • Default digicam application: When you plug in a digital camera, you get a window asking what you want to do. The first and by default selected action is “Open in a new window”. Unfortunately this option does not work: it only shows you an empty Konqueror window. You have to manually choose the second option to open it in Digikam. But if you’ve never started Digikam before, even this option does not work flawlessly: digikam is opened, and asks where you want to create your picture collection, but it does not start the import dialog, like it does correctly the second time.
  • KDE file chooser opens in .mdk-folders: By default all KDE applications open and save their documents in /home/username/.mdk-folders/Documents. This is highly confusing, as this directory is not visible in for example Konqueror. There is actually the /home/username/Documents link to that directory. This is the name which should be shown in the KDE file chooser to not confuse users. This problem has already been reported months ago, but has been ignored

    Update 02 april 2007: This issue is currently under investigation by the Mandriva developers. Let’s hope for a fix soon.
  • Default settings in smb4k: KDE includes smb4k, a network browser for the SMB protocol, which enables users to easily connect to Windows shares. This is a fantastic application but unfortunately its default settings are not ideal: first of all, it still mounts the shares with the smbfs file system, which is obsolete now. It should be configured to use the actively maintained CIFS instead. And then I had charset problems. Connecting from a Mandriva 2007.1 system to another Mandriva 2007.1 system, both using UTF-8 locales, all special characters were lost. I had to manually configure smb4k to also use the UTF-8 file system.
  • Too much Gnome applications: We talked about Ekiga being installed by default in KDE, but that’s not all. There is also Gnucash (KMyMoney apparently is a good alternative), gnome-media (just to have a simple sound recorder, but how many people really use that?) and all of Gnome’s accessibility applications like Orca and Dasher. I can understand that one or two Gnome applications could be useful in KDE too, here it seems Mandriva is really exaggerating. For example Gnome does not include any KDE application by default (and one QT application: Scribus).
  • Klamav: Mandriva still includes the Klamav on-demand anti-virus program in KDE. This is really useless. Not only does it integrate bad with the back-end clamav (as Klamav does not use the virus databases downloaded by Clamav’s Freshclam, futhermore such an application is not very useful in a Linux desktop. Clamav is great for virus scanning on your mail gateway, but an anti-virus application for Linux itself is not necessary for now.

    Update 02 april 2007: Klamav will not be installed by default anymore.

Personally I use both KDE and Gnome, and always encouraged people to test the two, and see what they like better (if they really have any preference). Both have their advantages and disadvantages. But for now, I’ll be recommending Gnome to new Mandriva users. Mandriva’s KDE install is currently too bad to be recommended to new users. Mandriva’s Gnome installation on the other hand, is not perfect, but already very polished.