Tuesday, June 23, 2009

Branch 5: A work in progress

About 3 weeks ago i started work on branch 5 for Sabayon 5 and i must say that i made good progress! So i hear you ask, what it means a "branch" well let me try to explain how it all works.

Branches...chroots..snapshots?

The chroots:

As you might already know, Sabayon Linux is based on Gentoo Linux.
Now in Italy we have this huge computer that hosts basically 2 enormous Gentoo installs, we call these "chroots". It's 2 chroots because we support 2 architectures amd64 and x86. So as you might guessed, yes all packaging that goes into entropy is done twice. These 2 chroots form one branch.

How i do it? Well I simply login the Italian server and connect to one of the chroots. When I log in to a chroot ( yes its the chroot command, but we saved them in screen sessions to get access to them quickly ) I use all the commands any Gentoo user would. I operate my make.conf, package.use and package.mask files to have my enormous tree compiled to be best performing for a great amount of machines and people. Day to day i check for relevant packages that we want to have updated in e.g. Entropy. When i'm done emerging those updates and their depends i use tools written by Fabio Erculiani aka "Lxnay" to create packages. This is done fully automatically and there is nothing difficult about that really. So once its all packaged and i did my quality checks its all ready to get pushed out to the people as I say. From the server in Italy things get uploaded to the distribution server from where everything, again automatically, gets spread to servers world wide. Pretty cool huh?

Branches :

So we have these chroots I'm working on day 2 day and at a certain point there are some important updates that require allot of packages to be recompiled. Think of a new python version, new xorg version and some other lower-level stuff like the compiler itself.
At some point it just makes sense to stop doing the day 2 day updates, copy the whole thing and from the copy do the important updates and the heavy recompiling. This new copy would be the new branch. Does it mean that the previous branch is closed? Well basicly from my side it is, i only do updates on it when there are security risks involved, we are Linux and we want to keep people safe. The goal is to keep the old branch available to users for at least a year. This will give them the time to migrate to the new branch. (By either installing a new DVD release or use equo hop to jump into the new branch.) So yeah, its possible to keep on working on the same system and just hop into the new branch.

Snapshots:

When a new branch is created and the first disc is released there are already newer updates almost everyday. At some point it would be enough to trigger like 300 updates after a new install on a users pc. This can be even within 6 weeks or so. At some point we create a new snapshot which is basically as much as : Take Release 1, equo upgrade it to the latest available packages, put is all on a disc.

So yeah, we are a true rolling distribution!