Thursday, April 15, 2010

Scripting with the Entropy codebase

I'm not a python developer myself at all, but I was just curious about the great codebase that Fabio wrote and documented.

Knowing I have the repository database on my hard disc I figured it should be simple to let it list the last 100 changed packages.
This is how its done:

# -*- coding: iso-8859-1 -*-
from entropy.client.interfaces import Client
import time

client = Client()
repo = client.open_repository("")
cur = repo._cursor().execute

for row in repo._cursor().execute('SELECT `extrainfo`.`datecreation`,`baseinfo`.`atom` FROM `baseinfo`,`extrainfo` WHERE `baseinfo`.`idpackage` = `extrainfo`.`idpackage` ORDER BY `extrainfo`.`datecreation` DESC LIMIT 100'):
my_time = float(row[0])
human_time = time.strftime("%a, %d %b %Y %H:%M:%S +0000", time.localtime(my_time))
print human_time,' ',row[1]


If you want to know about the table layout, visually, you can use dev-db/sqlitebrowser

The database is located here:
or here

Friday, March 19, 2010

Sabayon 5.2 (soon to be released) on macbook 5.2

For the record I want to explain how to get 5.2 (as soon its out) can be installed successfully on a macbook 5.2 .

I take it one knows about refit, if not RTFM.

The first thing todo when booting the LiveDVD is edit the boot parameters and append: maxcpus=1 . Otherwise the kernel will panic (acpi issue).
Alternatively you can just disable all acpi but this will not do any good for day2day usage of the macbook.

Ok we start installer and we create 1 partition /dev/sda3 I used ext4, works just fine.
In the installer you need to check a box for advanced grub options and
select to NOT install it in MBR but in /dev/sda3 instead.
Personally I think this step actually is a bit buggy because after a
succesfull installation and syncing partition tables in refit you will
get a message that there is no operating system found if you try to
boot the linux partition. This is because it seems that grub2 actually
didn't install there at all.

To fix this I booted live again to manually install grub here are the
excact steps todo it:

open a terminal, become root

- mkdir sabayon && mount /dev/sda3 sabayon
- mount -o bind /proc sabayon/proc
- chroot sabayon
- grub2-install /dev/sda3 --force (I guess its this step where it went /dev/null during installation process)
- equo update && equo install grub (this will auto generate the shiny
sabayon grub2 theme and detect the kernels)
- exit

Now reboot and there it is. Keep in mind that you still might need to append the maxcpus=1 flag to your line, to perm edit that line you can have a look in /boot/grub/grub.cfg

Wednesday, December 30, 2009

KDE 4.4 beta2 in Limbo now

This version will eventually never make it in the main repositories.

It can have some bugs and crashes. If you want to give it a try just do with limbo attached equo install kde-meta.

Incase you get a masked package remember that you can unmask packages like this:

echo "media-libs/gluon-9999" >> /etc/entropy/packages/package.unmask

(this post was written in Blogilo, a program that ships with KDE 4.4)

Friday, December 4, 2009

Creating Entropy sets

You use your Sabayon Desktop to your taste and you kinda always want to install the same thing when you freshly install Sabayon. Taken this idea there are sets you can create yourself or use the provided ones from entropy.

Here is an example how to make one for e.g. Gnome on a Core install. (or on a KDE install)

all sets are stored in /etc/entropy/packages/sets , so in my example I'll use what will be our stock Gnome set for Core:

create an empty file:
touch /etc/entropy/packages/sets/gnome

and put in these atoms:


Save the file and do this:

equo install @gnome

The example set will actually be available in Entropy by default so there will be no need for creating this one, but I can imagine that you install Core and only want to install apache, PHP, MySQL and perhaps some additional packages. For such thing I encourage you to write a set and keep it stored somewhere safe in case you ever do a fresh install again.

Friday, September 18, 2009

Sabayon 5.0 update

Its been a little while since I posted on this blog but let me tell you in short whats going to happen very soon:

- Sabayon 5.0 Release Candidate 1 will be released for testing.

The Sabayon testing team went through 2 beta stages to get here so it should be fine for most people to check out. If the RC1 makes it through testing team it will be marked as 5.0.

- Chromium is here! No not only the chromium-bin version, but the chromium version build against our tree. (Entropy) and yes it works with flash!

- You can migrate to Sabayon branch 5 now using the following procedure:

  • Make sure you have latest entropy version on branch 4
  • equo hop 5
  • equo update
  • equo upgrade
Keep in mind that there is NO more support for KDE 3.x If your system has KDE 3.x installed don't expect it to work after you've migrated to branch 5.

- We've migrated to latest libxcb-1.4

- Sabayon 5 will be more bleeding edge then ever! And we are planning keeping things updated daily using a testing repository. On the next release (5.1) all packages from testing repository will flow into the mainline repository.

- Latest beta 9.10 ATI fglrx are in entropy

- Kernel 2.6.31

So expect all off this coming to you very soon.

Monday, July 13, 2009

Jumping into Branch 5

At this point of writing it feels like the branch is fairly in shape enough. I've added KDE 4.3 RC2 from kde-testing overlay to work towards the final KDE 4.3 release.

As we speak a migration tool is being written to handle certain things that must be done after you hop into branch 5. If you are a little dare devil and want to jump into branch 5 ( equo hop 5 ) you need to keep in mind these steps.

  • Do I realise that I'm about to download 800 - 1000 packages and I have enough free disc space to survive that operation.
  • It's important, since its a binary tree, that you complete equo upgrade (or what we used to call equo world)
  • I'm not sure when the migration tools will be implemented but since we jumped to Python 2.6 you need to check eselect python list and see if its set to this.
  • You will most likely need to equo install gcc and run gcc-config and set it to the latest gcc version
  • You need to run binutils-config to manauly select a profile.
  • The lowest kernel is a 2.26.30 you need to check with eselect kernel if its set to it and maybe manualy add the entry in /boot/grub/grub.conf
  • Right now there is no new artwork available in branch 5 so it will kinda look the same.
If none of above stop you from trying the new branch, well its there for you.

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.


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.


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!