maemo 4.0 Chinook API break and Nokia N800 support

2007-07-17 12:35 UTC by Quim Gil

maemo 4.0 Chinook is the next stable release in our plans after the recently released maemo 3.2 Bora. Even if this is a major release bringing deep changes and enhancements, it is fully supported by the Nokia N800 Internet Tablet hardware. It is also confirmed that Diablo, the next release after Chinook, will be also supported by the Nokia N800. We will provide compatibility details about Elephanta and next releases as soon as we confirm them.

Platform stability and compatibility are a top priority in the current maemo roadmapping process. There are still some obstacles in order to get a consolidated platform aligned with upstream development, these are the main reason of the maemo 4.0 API break. After Chinook, the default setting is to provide API compatibility with an emphasis in backward compatibility in new maemo versions.

There might be still exceptions in the mid term, due to deep hardware related challenges and upstream decisions, but we will make our best announcing them as soon as possible, providing details, tools and time for developers to react. Our aim is to provide a platform as stable and compatible as PC developers are used to in the main operating systems. The fact is, though, that PC hardware and core PC software components have a longer history and in many cases a less constrained environment than the Internet Tablets. We deal with this young and demanding context, we understand the direct comparisons and we do our best to match these expectations. It is not a simple task, though.

Reasons for an API break in Chinook

As announced previously, Chinook is a major release that will bring an API break mainly to align with two key upstream components: GTK+ and Glibc. Other libraries tagged as DEPRECATED in previous releases will be dropped, pushing the applications still using them to the new versions in order to be compatible with maemo 4.0. All in all the upgrade offers many improvements (also in the way we are handling it) compared to the past maemo 3.0 API break.

As opposed to that break, the main reasons in Chinook are external. Alignment with the GNOME & Linux baseline is a top priority for us, and this is why maemo is moving to GTK+ 2.10 and Glibc 2.5.

The move to GTK+ 2.10 brings better code and more functionality to the platform. It also puts maemo where the current development happens. maemo's GTK+ 2.6 is heavily patched and in fact it keeps us away from the upstream developers, forcing us to backport relevant improvements.

By breaking the maemo API compatibility we gain GTK+ API compatibility, and this benefits developers in the short and long run. At a platform level it is easier to receive from the community and give back. At an application level life is easier for desktop developers porting to maemo and the GNOME Mobile context. The move forward opens also the door to the integration of all the wow effects provided by Cairo.

Time to prepare the upgrade 

We are making public the decision and the details about the API break months in advance, as soon as the first and unstable developments are released. The GTK+ API break was visible first through Sardine and the Hildon documentation. “maemo 4.0 Chinook” and the API break was communicated in LinuxTag in June. We are doing the full announcement now during GUADEC, providing technical details and tools, right after the 3.2 release.

We have just released the maemo 4.0 alpha SDK, with partial functionality. It's still not functional to port/develop completely but it is a useful tool for developers to figure out where are the focus of attention in their applications. Connected with Sardine, the SDK puts developers in the current 4.0 baseline (as for today on the desktop components only, though).

Hildon information publicly available 

The Hildon project, where most of the changes happen in maemo 4.0, has already released extensive documentation for developers and a tool to audit your code and detect use of obsolete API. Glibc 2.5 brings multithreads to the maemo platform, but this change is very likely to affect only a minority of applications.

We welcome any feedback to and the maemo-developers list to improve this documentation and tools. This is the main reason why we are releasing now the alpha SDK, so beta testers in the future will get already a well consolidated path for porting to and developing for Chinook.


There have been no comments so far.


You must be logged in to make comments.