Freitag, 20. August 2010

gPodder running in the MeeGo Handset UX for N900

Three days ago, a new MeeGo Handset UX image has been released for the N900. I wanted to try out gPodder on it to see how far I could come without any coding...

It was quite easy to get things going: Download the image, dd it to a MicroSD card, boot the kernel (detailed instructions) and set up USB networking. After that, I could ssh into the environment (the root password is meego) and have a look around.

Instead of using apt-cache and apt-get to search for and install packages, I utilized yum to search for and install PyGTK. Then, I used rsync to copy my Git checkout of gPodder to the device. There are two additional dependencies for gPodder that aren't yet available in the MeeGo repositories, namely feedparser and mygpoclient, so I just copied the Python modules from my Laptop into the src/ folder of the gPodder checkout. Then, just switch to the MeeGo user (su - meego), make sure that the DISPLAY variable is set (export DISPLAY=:0) and start gPodder from the source folder (with bin/gpodder - it automatically loads the modules from the right path) - gPodder says hello MeeGo.

The basic functions work, it's just that the Desktop UI isn't suited for mobile devices (the MeeGo compositor/decorator also has several problems, but that seems to be a more general problem). Python bindings for Hildon aren't (yet ?) available, so I could not test the Maemo 4 or Maemo 5 UIs, but I would like to do a proper Qt/MeeGo Touch-based UI for gPodder, anyway. Let's hope the PyMaemo or PySide teams are quick to release bindings and make them available in the MeeGo repositories, so Python developers can create usable UIs for MeeGo handsets :) Oh, and two MeeGo-Python facts: It comes pre-installed in the N900 image, and the version shipped is 2.6.

In short: Apart from the UI framework, everything is already in place (and working) for Python on MeeGo. With the recent release of Qt Mobility for PySide, let's hope that MeeGo Touch bindings are not that far away.


Anonym hat gesagt…

Cool... Even though the UI really isn't what you'd initially expect, I'm happy to see it running at all. ;)

Could you elaborate a bit more on the "the basic functions work"-part? Are there things that really don't work because MeeGo is "too different"... or does this part of your post only refer to the UI?

thp hat gesagt…

With "the basic functions work" I mean that all the functions of gPodder like handling SQLite databases, OPML files, parsing feeds using feedparser and downloading episodes work.

The UI is a bit more complicated: gPodder today provides three different UIs: One for the Desktop (what you would use on a "normal" computer - also seen in these MeeGo screenshots), one for Maemo 4 (N8x0) and one for Maemo 5 (N900).

All three UIs build on top of GTK+, the Maemo 4 version is basically the Desktop version with the UI modified to be suitable on tablets, and the Maemo 5 version already makes heavy use of Hildon 2.2. Hildon isn't available on MeeGo yet, and I don't know how well it will be supported (if at all).

The logical step forward is Qt or MeeGo Touch. In order to write applications against these libraries in Python, PySide is needed. PySide already provides bindings for libraries such as Qt Mobility, but no packages are yet available in the MeeGo repositories (I suppose they will be available soon - the PySide examples repository already has a MeeGo Touch hello world app:

After MeeGo Touch bindings are available, it's just a matter of designing and implementing the UI and wiring it with the already toolkit-agnostic underpinnings of gPodder (podcast management, synchronization and downloading, etc..).

Until this happens, one could run the Desktop UI of gPodder on MeeGo (with suboptimal usability), or (if Hildon 2.2 becomes available first) run the much more usable Maemo 5 UI on MeeGo.

Anonym hat gesagt…

gPodder is great! One of the few applications that survives in my N800. I'm looking forward to keep using it when we manage to port MeeGo to it. :)

guyr34 hat gesagt…

Do you try to run alien (deb2rpm) on gPodder from N900 and rpm it on meego ?