The SSU nightmare

In the Maemo domain, there’s a concept called SSU, Seamless Software Updates, which is the mean to update the whole operative system without reflashing the device.

This concept is relatively new in the mobile device domain, where reflashing has been the common upgrade path. But this idea is as old as GNU/Linux distributions.

Maemo uses the Debian format packages and dpkg /APT for their handling.

Meanwhile in Debian we are used to the dist-upgrade command in APT to upgrade to the new OS release, in Maemo is not the case because each OS release has a specific hardware target, so there is no need to handle complex dependency handling.

And that is the historical reason that the Hildon Application Manager does not use the APT algorithms for dependency handling. Instead of that, it use custom chicken-like algorithms: if the dependencies are not fulfilled without any foreseen problem, the package installation, upgrade or removal is rejected.

The Maemo OS upgrades are done through a meta-packages, which is merely a list of package dependencies to conform the new release. And this is all the magic in the famous SSU.

But this approach posses a couple drawbacks, which, in Fremantle, had grown disproportionally given the dimensions of the project.

First, the number of packages which conform a new release is so big, that the package section in the list file is bigger than the buffer size allocated by APT to parse it. We already filed a bug in Debian about this matter. It seems the problem is an integer overflow.

Second. It is quite easy to break the SSU process: if you install a third party application with a hard dependency to an OS package, the meta-package of the next release will fail, given the chicken-like nature of H-A-M when solving dependencies problems.

The adopted solution is impose a dependency policy for third party packages, which current implementation had triggered a community discussion.

The other proposed solution, use the tiger-like algorithms available in APT, was discarded given the risk of the needed changes in the apt-worker versus the available time frame.

No, there is not conclusion yet about the third party policy issue.


Given the Igalia’s OLPI program (One Laptop Per Igalian) I got a new Thinkpad, the x301. I chose this one just because Alex chose it too, and I trust in the Alex judgement, and I don’t regret it: it’s a great machine.

All my computers had receive a name. The first computer I bought with my own resources was named Rowena. I still like that name. My first laptop was named Angelina. Meanwhile my third desktop computer was named Toaster.

So, in order to not break the tradition, I named the new laptop, and its name is lit 🙂

lit as noun is the contraction of literature. As adjective is the contraction of illuminated or lighted. Also, in French means bed.

I took a different approach to work with this laptop. First of all, I installed Debian Squeeze on it. Not Ubuntu, nor Gentoo. The reason of this is follow the starndard Igalia’s software stack.

The second difference is an reinforce in my console orientation 🙂 Instead of using Evolution, I’m trying Mutt; instead of XChat, IRSSI; right now I’m testing Newbeuter as feed reader, all of them in a single terminal using GNU/Screen. Besides, I’m continuing with my Emacs dependency curve.

And, if you’re wondering, I’m not going to use RatPoison or any other minimalistic window manager, and maybe never will.

Here’s a screenshot of my current desktop:


10 blast moments at GCDS

  1. When Edu played Gimme the power in the Gnome party
  2. When we rented a car to pass an afternoon in Maspalomas
  3. When Owen Taylor showed a picture with me and others as if we were the
    authors of GnomeShell 🙂
  4. The Robert Lefkowitz keynote
  5. That actually my talk in GUADEC-ES had public!
  6. The girls taking the sun in the beaches
  7. The hacking sessions at hotel’s lobby
  8. Met Jürg Billeter at Collabora’s party
  9. Gossip with Marius
  10. The weather… (it didn’t rain!)

GCDS ramblings

The last two years the GUADEC has been pushing the geographical limits of Europe: in 2008 in Istambul, more near to Asia, and now, in 2009, in Canarias, more near to Africa. And that’s OK, I like it actually, is better than repeating the old hosts of the conference.

Comparing my impressions with that two last GUADECs, I found something interesting: In Istambul the new ideas were boiling the environment, bold proposals: the seminal concepts for Gnome Shell, Zeitgeist, Gnome 3.0, and so on. And now, in Gran Canaria, the spirit was an evaluation the development of those ideas, a revision of where the project is and what’s missing to achieve the goals.

In Istambul, the hackers takeoff. In Gran Canaria, the hackers landed.

Nokia stepped back from GTK+ in their products and announced their official support to its recently acquired Qt framework. And that announcement staggered the gnome mobile gang, forcing to rethink their objectives.

The online desktop died and from its rotten corpse a new flower appeared: Gnome Shell: The desktop is a canvas driven by javascript applets, just like the Web 2.0. Moblin also adopted that idea, and many other are going in that path.

The Federico’s crazy idea about a chronological desktop evolved into Zeitgeist, which is taking over as the Tracker user interface for Gnome.

The furor unleashed in Istambul with the announce of the efforts for Gtk+-3.0 had been diminished in this time. Nevertheless, Garnacho showed in the GUADEC-ES some of his unfinished branches, some of them quite amazing, but unmerged into mainstream yet.

Almost of the attention was hogged by Clutter, and the Moblin guys are using this to push the rest of their framework. I guess that everybody is waiting a miraculous merge among Gtk+ and Clutter, but that’s really hard to happen.

Vincent is still pushing for Gnome 3.0. And I really wish for that to happen. And Gnome 3 means GnomeShell, Zeitgeist, and possible Gtk+ 3.0 and GStreamer 1.0. Those new versions doesn’t mean necessary new features, but more clean ups in the code.

What excited me the most was the discussion towards GStreamer 1.0. There’s plenty of work to do. Hopefully I’d find a spot to collaborate on it.

Also I went the ConMan talk and a couple about WebKit, DBus, and a couple more.