Marco's Blog

All content strictly personal opinions.
en eo

Developing for Maemo - Fremantle VirtualBox Image

2010-04-22 3 min read Electronics Anonymous marco

So I’ve been playing around with the Fremantle VirtualBox image that provides on their web site. The idea is great: you get the image, run it in a virtualization environment, and you don’t have to set up anything.

Great idea, poor implementation. First of all, the image doesn’t come pre-loaded with instructions. I would have expected a big icon to show on the desktop after launch, telling me what to do next. Instead, there were icons for the VM native software, as well as for the development environment.

Next thing, I start the environment. It’s the standard Eclipse, optimized and configured for Maemo. Nice. I decide to create a test project. Easy enough. Let’s make it simple, let’s create a Python project. Easy enough.

Give it some default values and you are ready to go. We are going to create a PyQt4 project that displays a Hello, World! app. My goodness, could it be any simpler?

You get a wizard that asks you a bunch of questions. Nicely done. Then it tells you it is going to create the project. It merrily starts doing stuff, a progress bar moves back and forth, bouncing left and right. A half hour later, the bouncy bar is still merrily swinging, and I start getting the impression something is wrong. I try to kill the wizard, but it won’t die. I open a terminal and kill the thing.

I start looking at the reason for the issue. I try to isolate the problem, but I can’t seem to make anything work. All other project types have the same issue. The wizards just hang. WTF?

I read and read and read, and finally I find amongst the myriad pages on the subject one that says that the scratchbox environment isn’t initialized properly and that the resolv.conf needs to be updated before starting. Now, maybe you know what scratchbox is, maybe you don’t. Maybe you know what resolv.conf does, maybe you don’t. I knew both things and also knew that they would cause the behavior I saw, so I manually ran the update, and lo and behold, the project was created.

Next thing I notice is that the image is ancient. It is running Intrepid, two releases of Ubuntu behind. That wouldn’t be much of a problem. It does also have targets for the Diablo release, the old version of Maemo that runs on the 810s. That’s worse. Finally, the Qt libraries are not installed on the Fremantle targets/boxes, and the keys are not in the apt repository.

Now, I know how to fix all of that, after working with Linux for almost two decades. I’ll address that in time. But the real question is: why isn’t that already in the image? Why would anyone have to spend a day just to configure something that really should run out of the box, and that it would take only hours to configure correctly? Why do I have to download 1.5G of image just to have something that isn’t configured properly.

Methinks this project is not going to go anywhere if nobody starts paying more attention.