Task:Maemo OBS

Contents

Goals

To move the current Fremantle autobuilder to maemo.org OBS. Probably Diablo and Chinook as secondary goals.


This project enables the following:

To provide e a single community OBS that includes Harmattan, Fremantle and Diablo as targets to faciliate the development of applications that work on all platforms.

To collaborate with Mer/Nemo to share the costs of maintaining and operating community OBS.

Issues

Build dependencies

Maemo SDK ships what is called a rootstrap with many packages preinstalled. Developers usually do not explicitly mention those packages in their build dependencies because they're already preinstalled.

OBS doesn't accept rootstraps. Each builder process starts with an empty virtual machine, and from there a fixed set of packages is installed onto it.

Therefore, the packages that do not explicitly list the in-rootstrap packages in their build-dependencies fail to build.

Solutions to consider

  1. Manually go through all build failures and add the missing build-dependencies to the packages. Hard to contact all the package maintainers.
  2. Manually go through all build failures and add the missing build-dependencies to the fixed list of packages that are preinstalled when the VM starts. Each package on this list adds to the build time of all packages...
  3. Investigate the use of an actual rootstrap (maybe with SB2 it is possible?)

Scratchboxisms

A scratchboxism happens when a developer assumes something that is only true when running under Scratchbox(1). It might be a special environment variable, special directory, the behavior of certain commands, the fact that is actually x86, or the use of a custom Scratchbox devkit.

Many packages have scratchboxisms. The exact number is yet to be determined. Hopefully, not large.

Solutions to consider

  1. SB2 might help here.
  2. Manually fix the packages. The hard way. Most build problems are trivial, but even then this might require quite some time.
  3. ... Emulate those Scratchboxisms in some other way?