Tag Archives: rBuilder

Interview with Ken VanDine of Foresight Linux

A few weeks ago, I saw that Foresight Linux was going to be pre-loaded onto Shuttle computers at an amazing price – just $199. “That’s interesting, another Linux distribution I haven’t heard of.”

The last time this “I’ve never heard of distro X” thing happened to me was when I got an email advertisement for the “gOS developer kit” – I ended up looking into gOS, and they started selling computers in Walmart shortly after I scored an interview with David Liu. That was a pretty big deal, if you haven’t heard about it. By the way, I’m HUGE in Japan.

I was able to catch up with the very busy creator of Foresight, Ken VanDine. He’s got some really interesting answers to thing plaguing my mind, like which pie is best – I only hope that you can also appreciate the internal debate that’s finally been settled by this fine gentleman.

Without more from me, here’s Ken.

Tell me a little bit about yourself.
– I am a dog person, *NOT* a cat person. I grew up on the outer banks of North Carolina, spent 6 years in the US Air Force. After getting out I spent some time in the Bay area, San Diego, and Los Angeles before finding my way back to NC. I am now an engineering lead with rPath, Inc. I am also the proud parent of two great kids, and married to a wonderful woman that allows me the time to spend my evenings working on Foresight :-D

The deal with Shuttle appears to be a huge win for Foresight Linux. How did it come about? Who were the major players?kpc.png
– Back in September 2007 I was talking to someone from on-disk.com about selling the future versions of Foresight 2. Then in January, she was contacted by Shuttle looking for suggestions for a disro to go with. She got us talking, and things progressed quickly. The first time I talked to them, I tried to get a feel for what they wanted, hard to do with a brief phone call. I then spent an hour customizing Foresight, changing the syslinux menu, splashy theme, gdm login theme, default wallpaper and changed the gtk theme. And… drum roll, I had installable isos available for them to test. The tools we use to maintain the distro, are designed from the ground up to make managing derivative distros easy.

Would you say that Linux (in general) is making good progress towards becoming a household name?
– PC makers and systems integrators letting Linux play with the big boys.

Which is better philosophically: Apple, Pecan or Pudding Pie?
– Apple pie

What is the relationship between rPath and Foresight?
– Foresight was created just over 3 years ago, using tools developed by rPath. Foresight was actually the first distro derived using the tools. Since then, I have joined the rPath team as an engineering lead. Foresight is great for rPath, it proves the tools work and gets plenty of exposure. rPath doesn’t control Foresight, but does benefit from it.

Foresight Linux seems to have an interesting release cycle, can you explain it in-depth?
– Our package manager, Conary, follows many of the principles found in version control systems. Not only does it maintain the source of our packages in the same place as the binaries created, but there are branches. So we have development, QA, and release branches. We are able to do our development on the development branch, without affecting our users. We then promote packages to our QA branch, and test them as a group. The entire operating system is defined in a group, and the packages are built together for optimal compatibility. We test the group of packages together, as a whole, when the QA cycle is complete the entire group is promoted to the release label for user consumption.

When did you come to realize that Foresight Linux was needed?
– Well mostly frustration with existing distros. At the time I was working for a large enterprise where we managed a very large scale linux infrastructure. We struggled with maintenance and deployment issues, as well as the “we have to customize red hat mentality”. I always hated rpm spec files, and hated that our environment was never easily reproducable. At the same time, I was involved in GNOME Marketing and was frustrated at how long it took distros to provide never releases of GNOME to their users. We would get lots of hype over a new release, but the buzz was over by the time people that didn’t want to build all of GNOME from source could actually use it. Using Conary, I was able to very quickly build a distro that was made up of what I defined as of proper desktop OS using the latest GNOME. There was also some emerging technologies that really improved usuability of the desktop, specifically related to hardware. HAL and udev to name a couple, relative new comers to the scene and being included in distros already, they weren’t really heavily relied on yet and no where near current. Foresight intregrated the absolute latest versions of many things like these and made a really great OS (imho). Desktop Linux has been emerging so quickly, and improving even more rapidly. Six, eight, or even 12 month release cycles just can’t cut it for a desktop. We need continuous improvement, so a rolling release distro is the way to go. Releases for Foresight is really just deciding when we want new isos to cut down on the number of updates a new install my get.

How important are bug reports for open source developers?
– We couldn’t survive without them. Fact is, we don’t have a team of professional QA folks beating on our work reporting bugs. So we rely on the community to file issues. We do try to encourage people to run our QA branch of Foresight and report bugs before people running the stable branch see them.

How does Conary differ to other popular package management systems (such as dkpg, Portage, and Yum) and why is it a better method of doing things?
– Whew… where to start :) Conary does so much more than legacy packaging systems such as apt(dpkg) and yum(rpm). Conary melds version control concepts into package management. Not only on the build/packaging side of things, but even for system maintenance. Conary stores sources with the binaries, in the same package, supports branching, merging, etc. On the flip side of that, Conary does some other very nice things. For example, every operation is a transaction. So you can actually rollback your last update or even all the way back to when the system was installed. And, these rollbacks contain local changes that get merged. Also being transactional, Conary breaks updates into smaller “jobs”. These jobs are dep complete, so if at anytime an update fails Conary will rollback to the previous job leaving your system dep complete and fully functional.

Conary also breaks packages down into manageable components, :runtime, :lib, :devel, :devellib, :doc, etc. So unlike other packaging systems, where you might have 2 packages, firefox and firefox-devel, Conary would have one package with the devel headers split into firefox:devel. This is a great thing, you no longer end up installing -devel packages from random repos in your sources.list just because it looks like a newer version. The devel headers are just part of the same package, you just don’t have to have them installed. These components combined with rich dependancy information really shines. If you need to install an application that needs to be able to talk to a mysql database, only mysql:lib would get brought in as a dependancy. Not all of the mysql package, so you just get the libraries. Not the command line client, etc. You get just enough for your app to work. Apply this concept to say a dependancy that might have an initscript to start a service, you now have less services running. The initscript to start a service would be in the :runtime component which wouldn’t be installed (unless it is needed).

Could you explain a scenario in detail where Conary is a better solution?
– Of course as I described above, Conary is extremely powerful and works well in many situations. Let me touch on something I didn’t mention above, deriving. Lets say you have a need for customizing Linux systems for a large deployment, personal use, corporate standards, etc. You could very easily derive the distro and only maintain your changes and define exactly what packages you want included. The tools make this very easy, as I described the situation with Shuttle. You can also control when updates go out to the users. By deriving, you not only have the flexibility to change the distro, but you can control releasing updates. You can test updates we push out along with your changes on your own devel or qa branches. When you are ready to push these changes out you simple “promote” the group that defines your distro. This is a single atomic operation that puts the updated packages on your release branch for users to update from.

Do you smoke a pipe or have a beard?
– I do have a “Van Dyke”, usually confused with the term goattee. My former boss pointed that out when I was interviewing, and sure enough he was right.

rBuilder and rMake are important pieces of the puzzle. How do they work? What other tools are used in creating a platform?
– rBuilder is what hosts our software repositories, builds installable and live images, hosts our downloads, and much more. rMake is a build tool we use to build the distro. It builds packages in a pristine environment, specifically your target environment. We can do very large builds, even the entire distro and rMake will determine the build order and do the right thing. rMake can then take the resulting build and commit it to a repository in one operations.

rBuilder Online seems very interesting. What does it do?
– It is the online (public) version of rBuilder. rBuilder online is free for use for anything that you can freely redistribute. Our repositories are on rBO, we manage our user accounts (for committers), build images, and provides downloads all via rBO.

Does Foresight Linux fall into any “niches”? Is it for end users who are familiar with Linux? First time users?
– This is a tough question, I really want that niche to be new Linux users. I try very hard to push things down the path of “it just works”. I think we are there now, which makes me quite happy. Foresight is of course ultimately configurable for those power users… you know how Linux users [are].

Where do you see Foresight headed in the future?
– Shipped pre-loaded by more vendors and of course used.

Lastly, how can interested parties get in touch and lend their support?
– IRC and our mailing lists, http://foresightlinux.org/contact.html

Thanks for your time Ken, it is appreciated!

I’ve tried out Foresight Linux 2.0 which was very recently released. It’s pretty damn fantastic, if I say so myself. The entire 1.1GB DVD was a really fast installation, thanks to their new TAR-based installation. After answering the basic installation questions, it was completely setup and ready to reboot in about 6 minutes flat – that’s freakin FAST for an installation! I remember reading awhile back that Windows Vista was supposed to have something like this, they called it an “disc image based installer,” but last time I installed on this same machine it must have taken 45 minutes to complete.

If you’re looking for a user-friendly distro that your uninitiated father, mother, boyfriend, girlfriend, or best friend can use, I agree with Ken that Foresight should be on your short list of distributions to consider. If you’re interested in specs and ordering a Shuttle KPC pre-loaded with Foresight Linux for yourself or someone you love, hit the Newegg banner on the top right, and search for “Shuttle KPC”

shuttle-kpc.png