Mer/Build/Processes

From Maemo Wiki
Revision as of 11:49, 14 June 2009 by imported>lbt (added --map-repo to :Stable migration)
Jump to navigationJump to search

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

NOTE The following uses -m in osc which is not accepted upstream yet. It will not work unless you have lbt's osc patches.

 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 -m MerStable_Debian_5.0=Mer${STABLE}_Debian_5.0,MerStable_Ubuntu_9.04=Mer${STABLE}_Ubuntu_9.04 Maemo:Mer:${STABLE}:HW:N8x0 $i Maemo:Mer:Stable:HW:N8x0
   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.