Saturday, May 28, 2005

Ubuntu – Getting better but not quite there yet!

It's 3AM in the morning now. I honestly did try to sleep but my room is so damn hot right now! Tried listening to some music on the computer but that didn't work either! Instead of putting me to sleep, my AMD64 box that was playing music was also putting out a considerable amount of extra heat. Finally after several unsuccessful attempts at sleeping I came to the obvious conclusion --- I needed to install Ubuntu.

Now don't get me wrong! Ubuntu is cool distro, but not cool! -- not cool enough to beat the heatwave thats hit my room. This is not why I went about installing Ubuntun, but rather because I've made some honest but rude comments about Ubuntu 4.x, so much so as to even calling it worse than RedHat. Consider this article, giving Ubuntu a second chance.

The Installation



So I set about installing the new version (5.04), to replace the older version 4. The installation went pretty much smoothly except at one place it hung trying to communicate with the gateway, where I wasn't connected to the LAN. I waited patiently for about a minute, hoping that there would be a timeout and the installer would continue/skip, but that didn't seem to happen. I ended up using the busybox console to bring down eth0, which resulted in the installer resuming. From a new user's standpoint this sort of glitch is unacceptable – there should at least be a 30-45 sec. time out, preferably with a count down.

While the text installer has its benefits such as speed, stability and portability across multiple platforms, these are all reasons why its a great installer for Debian and not Ubuntu. From the new user's point of view – a text based installer sucks! Sure winD0Ze installer is also an ugly blue screen text installer, but who wants to be like them! Mandrake, Fedora, Mepis, SUSE all have better installers than anything the Windoze guys have ever experienced and to be frank most new users of these Oses never installed it them selves thanks to OEMS.

As the machine booted it again got stuck trying to synchronize the hardware clock using an ntp server at Ubuntu, even though I wasn't connected to the net. Good thing I knew that I can just press Ctrl + C to continue the boot process, but this process should have gone into the background so as to not stall the boot process. Once the machine booted it took another couple of minutes for system finish completing the installation (similar to debian).

The Applications



The boot up GDM splash screen is elegant and polished. The logon sound is so relaxing and soothing that I could go into a trans. Once on the desktop, I thought the application menu was too simple and boring with only a very few application entries. This viewpoint is probably influenced by my preference for KDE over GNOME, which has a cluttered (in a good way) menu, so we'll leave it at that.

synaptic_easy One of the first improvement that I noticed was the removal of the annoying “spacial browsing” -- a fancy name for a win95 technology! I was also impressed with the speed at which applications such as Openoffice loaded without the help of any external loaders. Synaptic, the graphical front end for the package management system had improved quite a lot since I last had a look at it. It now had two modes, where one resembled an idiot proof Redhat/Fedora like package selection via an Add/Remove dialog box and the other had the more advanced legacy synaptic interface. I was very much surprised to discover that the downlodable version of Ubuntu had offcial drivers for the Nvidia graphic card, which other distros don't distributed with the downloadable version. All I had to do was to tick the package and apply to install the drivers directly from the CD. Updating the xorg.conf need not be done manually anymore – all you needed was to execute ...


$ sudo nvidia-glx-config enable


and restart X. Then came the biggest shock of all! Almost so that I was about to fall out of the chair. This was the first time, I had seen the inclusion of a language pack for Sinhala in any distro! Even though the package didn't actually contain any Sinhala translations or fonts, its encouraging to see that Ubuntu has actually allocated a guy called Martin Pitt to work on brining Sinhala support to Ubuntu. This is definitely a guy LKLUGErs should support and work with.

synaptic_sinhala

Ubuntu still falls behind



While I agree that Ubuntu has somewhat improved, it still lacks some vital multimedia features that GNU/Linux user's have come to expect from a distro that is targeted at new users, migrating from the dark side. Since testing the previous version of Ubuntu, the bottom line is that I still cant play DVDs (encrypted or unencrypted), divX, ogm, mpg and other popular movie formats, mp3 etc. Other interesting desktop applications such as Blender (3D animation), K3b (Nero like CD burning), Amarok (funky Mp3 player) or Sribus. While for there are alternative GNOME applications that are included for some of these, I think its a bad idea to rule or all KDE apps from inclusion, especially the popular ones. The same goes for ruling out any popular GNOME apps from Kubuntu (KDE based).

Other features I'd like to see include the creation of automatic mount points to access other partitions, specially any windoze partitions and some desktop icons for god sake! I also think its a mistake for Ubuntu to recompile all the Debian packages, thus potentially breaking binary compatibility with all those existing Debian mirrors. While its true that it really really sucks that Debian still doesn't have xorg, while all the other distros have pretty much migrated, this is still not a good enough reason to recompile everything. I am keen to hear from anyone who might be able to give me a better insight as to why Ubuntu had to take this drastic measure and cut itself loose from Debian.

Finally ...



In conclusion, Ubuntu seems to be making slow but steady progress as far as improving its distro, but making leaps and bounds as far as popularizing itself. With Canonical, the company behind Ubuntu, sponsering the “Software Freedom's day”, that will happen on the 10th of September, with a lot of free Ubuntu CD giveaways things can only get better for them. I am looking forward to reviewing Kubuntu, if and when I get a chance to try that out.

Thursday, May 12, 2005

Upgrading to kde 3.4 -- differently

I've been waiting to upgrade to kde 3.4 some time now, ever since it was released. Kde is one of the most popular desktop environments available on GNU/Linux mostly due innovative features being added with an overall speed improvement between releases.

Within a matter of hours after releasing kde 3.4, it was (as one would expect) available on Gentoo. But the package was masked for testing as usually the case with most new packages, before it is deemed stable with the distribution.

So I waited and waited, checking to see if it was marked as stable almost daily until..... I ran out of patience. After about a month of waiting, I finally decided it was time to make the switch after reading a review article on kde 3.4 and its new features and improvements.

Installing something as huge as kde using sources, as the case with Gentoo, requires hours and hours of painstaking compilation. Things get worse when there are updates to a few applications contained in a large packages that must be recompiled when ever there are such changes. To solve this Gentoo has recently started using split packages starting with the 3.4 branch. This introduces sub packages that consists of 270+ individual kde applications packaged separately and meta packages that are used to group split packages. (you can read more on this here). This makes it easier to upgrade in the future but with a price to pay -- initial compilation takes even longer than the old method. I wanted to try the new method but didn't want to wait 20-25% longer.

Reader discretion : The following content might lead to dizziness or vomit feelings due to explicit g(r)eek content. Continue reading at your own risk...

Day 1: Welcome to distributed compilation



Initially I wanted to just speedup the compilation process and read that it can be done via a compiler preprocessor (cpp) cacher called ccache. This was good and it seemed to improve things (I didn't bother benchmarking), but I knew it was going to take a long time to compile some 270+ packages. There was another solution by the same good old people who developed ccache and samba called distributed cc (C compiler) or in short distcc.

Distcc is a neat method where you can use a couple of machines in a compiler farm to speed up the compilation process by distributing some of the work to others. Getting distcc to work was a bit challenging in the beginning when I tried to use my desktop machine running Debian Sarge for distcc. The problem was it would compile a small part only to fail miserably stating that i686-pc-li nux-gnu-g++ was missing. This was puzzling me for a while since according to the documentation all you needed was just the same gcc compiler version on all participating nodes and nothing more. After following and failing that avenue, instead, I decided to use a friend's Gentoo box, that was running inside a Vmware session. That finally seemed to work as I felt a fresh breath of relief.

I couldn't complete the compilation of all the packages, since I was spending more time learning and experimenting on the technology. I found myself coming home with another 175 packages left to compile. After getting home, I found myself with a new dilemma. Since my home machine ran a 64bit version of Gentoo, now not only did I need to use distcc but also had to do it using a cross compiler. The cross compiling instructions looked way too complex to try after a long day so I kept trying other things and digging the net until I came across an article written by someone who went through a similar experience. It seemed like I had to emerge a package called emul-linux-x86-compat and recompile gcc and glibc with support for multilib, but it was already too late (2:45AM) by now so instead I decided to call it a day and hit the sack.

Day 2 : The saga continues



I hit the jackpot with the sarge box after I followed an intutive feeling to try to create a symlink called i686-pc-linux-gnu-g++ that pointed to the g++ binary. After that worked, I created another for i686-pc-linux-gnu-gcc.

I spent most of the time trying to optimize the compilation process further by changing parameters. First I tried changing the order of the hosts that was participating with distcc by placing the more powerful Sarge machine as the first entry, followed by localhost and the at last the Vmware Gentoo box. After reading the IBM's article on distcc, I decided to increase the -j option that is used to specify how many sources to compile at once.

By the time I was leaving for home, there was only another 70 packages left. I didn't feel like spending time to fix the cross compiling issue with the 64bit barebone, so instead left the machine to compile the rest on its own and watched a movie instead. All the kde 3.4 packages had finally finished compiling and all though it still did take a long time when compared to compiling the official large kde source packages, this was mainly due to various interruptions and experimentations I did in between.

I look forward to the next kde release, just so that I can feel good about myself for not killing time upgrading it.