Mer/Build/Processes

OBS Project structure and promotion
The Mer projects on OBS look like this: Maemo:Mer:Stable Maemo:Mer:Stable:HW:Beagle Maemo:Mer:Stable:HW:N8x0

This means all devices will have the main 'Stable' repository and an appropriate HW repository.

The development area is expanded slightly: Maemo:Mer:Devel:Apps Maemo:Mer:Devel:Base Maemo:Mer:Devel:MaemoCommon Maemo:Mer:Devel:MaemoCommon:L10n Maemo:Mer:Devel:UI Maemo:Mer:Devel:HW:Beagle:Devel Maemo:Mer:Devel:HW:N8x0:Devel

Packages in each of these Devel subproject areas can be hacked on and then, when they're kinda working they are consolidated into the :Devel area (which is used as a build target for the :Devel:* subprojects) Maemo:Mer:Devel Maemo:Mer:Devel:HW:N8x0 Maemo:Mer:Devel:HW:Beagle

Packages are placed in :Testing with the intention of including them in the next release subject to QA and bug fixes

Maemo:Mer:Testing Maemo:Mer:Testing:HW:Beagle Maemo:Mer:Testing:HW:N8x0

Once :Testing is ready a release of all packages to a numbered version is made: Maemo:Mer:0.13 Maemo:Mer:0.13:HW:Beagle Maemo:Mer:0.13:HW:N8x0

Note that the :HW promotion process is slightly different: Maemo:Mer:Devel:HW:N8x0:Devel -> Maemo:Mer:Devel:HW:N8x0 -> Maemo:Mer:Testing:HW:N8x0 -> Maemo:Mer:Stable:HW:N8x0

Maemo:Mer:Devel:Apps
Mer Applications and Applets

Packaged applications included in Mer
 * advanced-backlight
 * advanced-power
 * advanced-power-monitor
 * blueman
 * extras-repository
 * finefm
 * galculator
 * homeip
 * maemopadplus
 * midori
 * mirage
 * mplayer
 * osso-xterm
 * vte
 * personal-launch
 * wpeditor

Maemo:Mer:Devel:Base
Mer system base

Packages which deals with the underlying functionality of Mer that isn't directly presented to the user, such as booting, networking, logging, rescue, generic X support
 * apt
 * alsa-plugins
 * circular-syslogd
 * core-pattern
 * evkey
 * base64
 * hal
 * network-manager
 * cnetworkmanager
 * pulseaudio
 * sudo
 * tslib
 * upstart
 * utelnetd
 * waitdbus
 * xserver-xorg-input-evdev
 * xresponse-visualize
 * xkeyboard-config
 * xf86-input-tslib

Maemo:Mer:Devel:MaemoCommon
Maemo and Hildon Packages

These packages should ideally be unmodified from the upstream Maemo and hildon projects
 * alarmd
 * clinkc
 * certman
 * clipboard-manager
 * dbus-glib
 * epeg
 * alarmd
 * gail
 * gconf2
 * glib2.0
 * gnome-vfs-filechooser-backend
 * gstreamer0.10-ffmpeg-osso
 * gtk+2.0
 * gtkhtml
 * hildon-application-manager
 * hildon-control-panel
 * hildon-input-method
 * hildon-input-method-framework
 * icd2-osso-ic-dev
 * hildon-thumbnail
 * hildon-theme-tools
 * hildon-theme-cacher
 * hildon-games-wrapper
 * libconbtui
 * libconic
 * libdb1
 * libhildon
 * libhildonfm
 * libhildonhelp
 * libhildonmime
 * libosso
 * maemo-launcher
 * maemopad
 * mce-dev
 * osso-af-settings
 * osso-af-utils
 * osso-gnome-vfs2
 * osso-gnomevfs2-extra
 * osso-gwconnect
 * osso-gwobex
 * osso-systemui-dbus-dev
 * osso-uri-l10n-public
 * sapwood
 * screenshot-tool
 * tablet-browser-interface

Maemo:Mer:Devel:MaemoCommon:L10n
L10n shared with Maemo

Packages with translation strings which we share with Maemo
 * marketing-release-public
 * gtk20-l10n
 * hildon-application-manager-l10n-public
 * hildon-common-strings-l10n-public
 * hildon-control-panel-l10n-public
 * hildon-fm-l10n-public
 * hildon-libs-l10n-public
 * ke-recv-l10n-public
 * maemo-af-desktop-l10n-public
 * osso-applet-tasknavigator-l10n-public

Maemo:Mer:Devel:UI
Mer User interface &amp; Behaviour

Packages which deals with presenting the Hildon Desktop and the Mer UI, and generic functionality across platforms
 * zenity
 * powerlaunch
 * ubuntulooks
 * first-boot-wizard
 * hildon-desktop
 * hildon-desktop-env
 * hildon-desktop-layout-alpha
 * hildon-home-weather
 * hildon-initscripts
 * hildon-icons
 * hildon-theme-layout-mer
 * hildon-theme-liberty-mer
 * hildon-theme-selector
 * hildon-cpa-dummy
 * liberty-sounds-ui
 * marquee-plugins
 * matchbox-window-manager
 * libmatchbox1
 * network-manager-applet
 * hildon-input-method-plugins-example
 * hildon-plugins-settings
 * pygtk
 * python-conic
 * python-hildon
 * python-hildondesktop
 * python-osso
 * load-applet

Maemo:Mer:Devel:HW:Beagle:Devel
Development area for Beagle specific code

Maemo:Mer:Devel:HW:N8x0:Devel
Development area for N8x0 specific code
 * dsme-tools
 * kernel-diablo
 * kernel-diablo-modules-fbcon
 * cx3110x-module
 * cx3110x-module-src
 * cx3110x-umac-module
 * n810-slideout-kbd-xmodmap
 * mer-omapfb-splash
 * mer-rescue-menu
 * nit-bootmenu-compat
 * nit-kernel-compat
 * nokia-n8x0-firmware
 * nokia-tablets-pointercal
 * omap-fb-console
 * omap-fb-tools
 * x11proto-xsp
 * libxsp
 * usbnet-emergency-telnetd

Promotion Tasks
To promote a package: osc copypac    eg: osc copypac Maemo:Mer:Devel glib2.02 Maemo:Mer:Testing

Ensure that: osc meta prjconf  is copied to the  conf. This may contain things like package selection preferences. Currently the prjconf is: Prefer: hildon-fm-l10n-mr0 Ignore: hildon-fm-l10n-mr

To Promote :Devel To :Testing
First pipe over the project metadata: osc meta prjconf Maemo:Mer:Devel | osc meta prjconf Maemo:Mer:Testing -F -

Then run: for i in $(osc ls Maemo:Mer:Devel); do echo $i; osc copypac Maemo:Mer:Devel $i Maemo:Mer:Testing ; done for HW in HW:N8x0 HW:SmartQ HW:Freerunner HW:Beagle; do   for i in $(osc ls Maemo:Mer:Devel:$HW); do echo $i; osc copypac Maemo:Mer:Devel:$HW $i Maemo:Mer:Testing:$HW ; done done

To Promote :Testing to :Stable
The process here is to create a versioned repo; eg :0.13

export STABLE=0.13

First pipe over the project metadata: osc meta prjconf Maemo:Mer:Testing | osc meta prjconf Maemo:Mer:$STABLE -F -

Then run: for i in $(osc ls Maemo:Mer:Testing); do echo $i; osc copypac Maemo:Mer:Testing $i Maemo:Mer:$STABLE ; done for HW in HW:N8x0 HW:SmartQ HW:Freerunner HW:Beagle; do for i in $(osc ls Maemo:Mer:Testing:$HW); do echo $i; osc copypac Maemo:Mer:Testing:$HW $i Maemo:Mer:$STABLE:$HW ; done done

Then, once it's built and stable, use _aggregate to link each package to :Stable

First clean out :Stable for i in $(osc ls Maemo:Mer:Stable); do osc deletepac Maemo:Mer:Stable $i ; done for HW in HW:N8x0 HW:SmartQ HW:Freerunner HW:Beagle; do   for i in $(osc ls Maemo:Mer:Stable:$HW); do echo $i; osc deletepac Maemo:Mer:Stable:$HW $i; done done

for i in $(osc ls Maemo:Mer:$STABLE); do osc aggregatepac Maemo:Mer:$STABLE $i Maemo:Mer:Stable; done for HW in HW:N8x0 HW:SmartQ HW:Freerunner HW:Beagle; do   for i in $(osc ls Maemo:Mer:$STABLE:$HW); do echo $i; osc aggregatepac Maemo:Mer:$STABLE:$HW $i Maemo:Mer:Stable:$HW; done done

Note that :Stable project must be setup to publish and to build

Linking
To link to a source create a _link file containing: 

optionally: 

Sadly these patches apply to the files in the source; so this means you need to apply the diff to the maemo-ised diff file.