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 & 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 <SOURCEPRJ> <SOURCEPAC> <DESTPRJ>
eg:
osc copypac Maemo:Mer:Devel glib2.02 Maemo:Mer:Testing
Ensure that:
osc meta prjconf <SOURCE>
is copied to the <TARGET> 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.14
export STABLE=0.14
Create the projects (copied from 0.13):
osc meta prj Maemo:Mer:0.13 | sed "s/0.13/$STABLE/" |osc meta prj Maemo:Mer:$STABLE -F - for HW in HW:N8x0 HW:SmartQ HW:Freerunner HW:Beagle; do osc meta prj Maemo:Mer:0.13:$HW | sed "s/0.13/$STABLE/" |osc meta prj Maemo:Mer:$STABLE:$HW -F - done
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:
<link project="linked project name" package="linked package name">
optionally:
<patches> <apply name="name of the first patch" /> </patches>
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.