KAFS: Systems are online!

January 29th, 2007

I haven’t been able to blog since my Linux birthday last January 7, 2007. I’ve been busy. Really, I have. Last week was probably one of the busiest and most stressful, but that rant deserves another post of its own. The one for today is extra special.

I mentioned that I was going to do a special project to do on my first Linux birthday. And I did! And it was a success. It wasn’t a 100% success, but at least about 95% of it worked. And so far, I’m happy with it since the problems are not critical. So what was my project?

K.A.F.S.

What is KAFS? KAFS stands for “Kubuntu/KDE *Almost* From Scratch“. It is basically a Kubuntu system, except that uses KDE compiled from KDE’s SVN instead of Kubuntu’s own packaged KDE. What I did was to install a command-line Kubuntu system, install the core X system packages, and install everything I need to be able to get source code from SVN (subversion) and compile those (build-essential, autoconf, automake, etc.). Then I checkout (the term and command used to download source code from svn) the modules (groups of source code/apps) from KDE’s SVN repository. Then I compile those modules one by one, in a certain order. This sequential compilation is necessary, because some modules require that another module already be compiled and installed.

This way of doing things was inspired partly by conversations with some KDE devs, partly by Source Mage GNU/Linux, partly by a desire to learn new things, and partly from just plain kraziness! It’s definitely not a beginner project, although I can’t consider myself on the level of an expert already, having only used Linux for just barely over a year now. So as not to give krazy ideas to innocent bystanders and newbies, I’m not going to give detailed instructions on how I did this. It’s basically just a modified process based on available guides on compiling KDE, found here and here. The only difference would be that I started from just a barebones command line system (no X server) and that I installed it on my primary user, as my main KDE system. In some ways, it’s similar to Gentoo, from what I’ve heard. Gentoo installs a base system that allows you to compile from source code, fetches the source packages, applies build rules, and compiles. Unlike Gentoo, however, I didn’t have the luxury of ebuilds and portage. KAFS is also almost similar to the Linux From Scratch, except that not everything is from scratch. The kernel, the compiler, the base system needed to be able to properly boot, are all installed from Kubuntu’s packages. That’s why it’s *almost* from scratch.

What are the advantages of this KAFS System? Well, in a way, it meets some of my needs:

  1. Lets me easily make and apply patches to source code, without conflicting with the packages from Kubuntu. This is the primary and most attractive reason for this project for me, specially since I can test patches/changes in real time. Of course, I could have just made this KAFS system on a separate user, but like I said, it was a krazy project, too.
  2. Let’s me get familiar with some aspects of the development process of my favorite free desktop environment, KDE. Thanks to the Subversion (SVN) revision control system (RCS), it’s easy to update, apply my own changes, revert to a previous state, etc. It allows me to compile KDE software from source, but with the safety net of SVN. I’m beginning to think that an RCS is the next best thing since bread.
  3. It’s a great learning experience, specially for a developer wanna-be like me. I also learn which packages are on my system, which options or features I enable during compilation, etc So I could proudly say that I have taken into account more than 75% of the things installed on my system and I know what they are for. Well, at least the basics.

Of course, there are disadvantages, which might actually be outweighing the advantages:

  1. Lack of support. I’m basically on my own, most of the time. I’m not using Kubuntu packages, so asking for help in Kubuntu is slightly inappropriate. But asking in KDE support channels is also a bit difficult, since not everybody compiles their KDE from SVN/Source. So support would have to come from very few people who have had experience in doing something similar to this, and this means very few people. So I’m basically left to research, or wait for people to come online, when I encounter problems. Which brings me to point #2.
  2. There are, and will be, problems. Unmet dependencies, missing libraries or headers, incorrect source code, or just plain “won’t build”. There will be a lot of problems along the way. I don’t have the advantage of a systematized package management nor of the pooled wisdom of developers. Good thing Google is here…
  3. It takes resources. Time and hard disk space, specially if you compile with full debugging capabilities, which is very much recommended for developing. It took more than half a day to build just the core KDE modules (kdelibs and kdebase). So if you need a system that just works *now*, then this is definitely not for you.

My KAFS system has basically been up and running for more more than 2 weeks now. It’s running *almost* perfectly, except for a few relatively minor, but annoying, issues. It’s a path I decided to take, and I’m happy with it, but not completely. For one, I’m having a bit of a problem on how to “reconcile” this system with my goal of helping in Kubuntu development, because I basically don’t have any KDE-related Kubuntu package installed. It sort of makes it hard to test and package Kubuntu stuff, although I’m sure it’s possible. I just haven’t gotten around to learning how. Sometimes I think of completely erasing this and installing a default Kubuntu again, if just for developing. I’m still in a dilemma about it and will see how things progress in the next few days.

Until then, KAFS is here to stay.

One Response to “KAFS: Systems are online!”

  1. Freddy Says:

    Congrats on that new membership. I’m glad to see you developing more and more. Thank you once again for showing up and cheering me on.

Leave a Reply