Mer/Build/Processes

(Broken out of Build)
({{Mer}})
 
(15 intermediate revisions not shown)
Line 1: Line 1:
 +
{{Mer}}
 +
== OBS Project structure and promotion ==
== OBS Project structure and promotion ==
Line 16: Line 18:
  Maemo:Mer:Devel:HW:Beagle:Devel
  Maemo:Mer:Devel:HW:Beagle:Devel
  Maemo:Mer:Devel:HW:N8x0:Devel
  Maemo:Mer:Devel:HW:N8x0:Devel
 +
 +
Details of packages in each area is given in the[[Mer/Packages|Packages]] pages.
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)
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)
Line 36: Line 40:
Note that the :HW promotion process is slightly different:
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: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 ===
=== Promotion Tasks ===
Line 213: Line 46:
   osc copypac <SOURCEPRJ> <SOURCEPAC> <DESTPRJ>
   osc copypac <SOURCEPRJ> <SOURCEPAC> <DESTPRJ>
eg:
eg:
-
   osc copypac Maemo:Mer:Devel glib2.02 Maemo:Mer:Testing
+
   osc copypac -k Maemo:Mer:Devel glib2.02 Maemo:Mer:Testing
 +
The <code>-k</code> ensures that the maintainer info is preserved.
Ensure that:
Ensure that:
 +
<nowiki>
   osc meta prjconf <SOURCE>
   osc meta prjconf <SOURCE>
 +
</nowiki>
is copied to the <TARGET> conf. This may contain things like package selection preferences.
is copied to the <TARGET> conf. This may contain things like package selection preferences.
Currently the prjconf is:
Currently the prjconf is:
-
  Prefer: hildon-fm-l10n-mr0
+
Prefer: hildon-fm-l10n-mr0
-
  Ignore: hildon-fm-l10n-mr
+
Ignore: hildon-fm-l10n-mr
 +
Prefer: notify-osd
 +
Ignore: initramfs:initramfs-tools,udev,blueman
 +
Ignore: libmbca0:bluez-gnome
 +
Ignore: libgtk2.0-common:libgtk2.0-0
 +
Ignore: libgtk2.0-bin:libgtk2.0-0
 +
# Added following for claws-mail. "have choice for libdb-dev needed by libetpan-dev: libdb4.2-dev libdb-dev"
 +
Prefer: libdb-dev
== To Promote :Devel To :Testing ==
== To Promote :Devel To :Testing ==
Line 226: Line 69:
First pipe over the project metadata:
First pipe over the project metadata:
   osc meta prjconf Maemo:Mer:Devel  | osc meta prjconf Maemo:Mer:Testing -F -  
   osc meta prjconf Maemo:Mer:Devel  | osc meta prjconf Maemo:Mer:Testing -F -  
 +
 +
Clean out :Testing
 +
  for i in $(osc ls Maemo:Mer:Testing); do echo $i; osc rdelete Maemo:Mer:Testing $i ; done
 +
  for HW in HW:N8x0 HW:N900 HW:SmartQ HW:Freerunner HW:Beagle; do
 +
    for i in $(osc ls Maemo:Mer:Testing:$HW); do echo $i; osc rdelete Maemo:Mer:Testing:$HW $i; done
 +
  done
 +
Then run:
Then run:
 +
  osc wipebinaries --all Maemo:Mer:Testing
   for i in $(osc ls Maemo:Mer:Devel); do echo $i; osc copypac Maemo:Mer:Devel $i Maemo:Mer:Testing ; done
   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 HW in HW:N8x0 HW:N900 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
+
    osc wipebinaries --all Maemo:Mer:Testing:$HW
 +
     for i in $(osc ls Maemo:Mer:Devel:$HW); do echo $i; osc copypac -k Maemo:Mer:Devel:$HW $i Maemo:Mer:Testing:$HW ; done
   done
   done
== To Promote :Testing to :Stable ==
== To Promote :Testing to :Stable ==
-
The process here is to create a versioned repo; eg :0.13
+
The process here is to create a versioned repo; eg :0.14
-
   export STABLE=0.13
+
   export STABLE=0.14
 +
  export OLD=0.13
-
First pipe over the project metadata:
+
Create the projects (copied from $OLD):
 +
  osc meta prj Maemo:Mer:$OLD | sed "s/$OLD/$STABLE/" |osc meta prj Maemo:Mer:$STABLE -F -
 +
  for HW in HW:N8x0 HW:N900 HW:SmartQ HW:Freerunner HW:Beagle; do
 +
    osc meta prj Maemo:Mer:$OLD:$HW | sed "s/$OLD/$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 -  
   osc meta prjconf Maemo:Mer:Testing  | osc meta prjconf Maemo:Mer:$STABLE -F -  
Then run:
Then run:
   for i in $(osc ls Maemo:Mer:Testing); do echo $i; osc copypac Maemo:Mer:Testing $i Maemo:Mer:$STABLE ; done
   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 HW in HW:N8x0 HW:N900 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
+
    for i in $(osc ls Maemo:Mer:Testing:$HW); do echo $i; osc copypac -k Maemo:Mer:Testing:$HW $i Maemo:Mer:$STABLE:$HW ; done
   done
   done
 +
 +
Allow to build.
 +
 +
<hr>
Then, once it's built and stable, use _aggregate to link each package to :Stable
Then, once it's built and stable, use _aggregate to link each package to :Stable
First clean out :Stable
First clean out :Stable
-
   for i in $(osc ls Maemo:Mer:Stable); do osc deletepac Maemo:Mer:Stable $i ; done
+
   for i in $(osc ls Maemo:Mer:Stable); do echo $i; osc rdelete Maemo:Mer:Stable $i ; done
-
   for HW in HW:N8x0 HW:SmartQ HW:Freerunner HW:Beagle; do
+
   for HW in HW:N8x0 HW:N900 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
+
     for i in $(osc ls Maemo:Mer:Stable:$HW); do echo $i; osc rdelete Maemo:Mer:Stable:$HW $i; done
   done
   done
-
   for i in $(osc ls Maemo:Mer:$STABLE); do osc aggregatepac Maemo:Mer:$STABLE $i Maemo:Mer:Stable; done
+
*** ALSO wipebinaries next time ***
-
   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
+
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 echo $i; osc aggregatepac Maemo:Mer:$STABLE $i Maemo:Mer:Stable; done
 +
   for HW in HW:N8x0 HW:N900 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 $i Maemo:Mer:Stable:$HW
 +
    done
   done
   done
 +
 +
 +
Note that :Stable project must be setup to publish and to build
Note that :Stable project must be setup to publish and to build
 +
 +
== Linking to :Extras ==
 +
In order to allow people to develop applications/packages for :Extras they need to setup their home area on OBS as in [[Mer/Build/Application_Building|Building Applications]]. Once the package is built it can be linked to Maemo:Mer:Extras:Devel
 +
  osc linkpac -f -c home:tomaszd84 leafpad Maemo:Mer:Extras:Devel
 +
 +
<code>-c</code> ensures that the version is pinned so when user tomaszd84 changes his package, it doesn't change in :Extras:Devel unless it is relinked.
 +
<code>-f</code> forces an existing link to be updated.
== Linking ==
== Linking ==
Line 274: Line 153:
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.
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.
-
 
-
 
-
[[Category:Mer]]
 

Latest revision as of 09:30, 22 September 2010

Image:Mer infobox icon.png
Mer is back : Please visit http://www.merproject.org to learn more about this news.


Contents

[edit] 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

Details of packages in each area is given in thePackages pages.

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

[edit] Promotion Tasks

To promote a package:

 osc copypac <SOURCEPRJ> <SOURCEPAC> <DESTPRJ>

eg:

 osc copypac -k Maemo:Mer:Devel glib2.02 Maemo:Mer:Testing

The -k ensures that the maintainer info is preserved.

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
Prefer: notify-osd
Ignore: initramfs:initramfs-tools,udev,blueman
Ignore: libmbca0:bluez-gnome
Ignore: libgtk2.0-common:libgtk2.0-0
Ignore: libgtk2.0-bin:libgtk2.0-0
# Added following for claws-mail. "have choice for libdb-dev needed by libetpan-dev: libdb4.2-dev libdb-dev"
Prefer: libdb-dev

[edit] To Promote :Devel To :Testing

First pipe over the project metadata:

 osc meta prjconf Maemo:Mer:Devel  | osc meta prjconf Maemo:Mer:Testing -F - 

Clean out :Testing

 for i in $(osc ls Maemo:Mer:Testing); do echo $i; osc rdelete Maemo:Mer:Testing $i ; done
 for HW in HW:N8x0 HW:N900 HW:SmartQ HW:Freerunner HW:Beagle; do
   for i in $(osc ls Maemo:Mer:Testing:$HW); do echo $i; osc rdelete Maemo:Mer:Testing:$HW $i; done
 done


Then run:

 osc wipebinaries --all Maemo:Mer:Testing
 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:N900 HW:SmartQ HW:Freerunner HW:Beagle; do
   osc wipebinaries --all Maemo:Mer:Testing:$HW
   for i in $(osc ls Maemo:Mer:Devel:$HW); do echo $i; osc copypac -k Maemo:Mer:Devel:$HW $i Maemo:Mer:Testing:$HW ; done
 done

[edit] To Promote :Testing to :Stable

The process here is to create a versioned repo; eg :0.14

 export STABLE=0.14
 export OLD=0.13

Create the projects (copied from $OLD):

 osc meta prj Maemo:Mer:$OLD | sed "s/$OLD/$STABLE/" |osc meta prj Maemo:Mer:$STABLE -F -
 for HW in HW:N8x0 HW:N900 HW:SmartQ HW:Freerunner HW:Beagle; do
   osc meta prj Maemo:Mer:$OLD:$HW | sed "s/$OLD/$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:N900 HW:SmartQ HW:Freerunner HW:Beagle; do
   for i in $(osc ls Maemo:Mer:Testing:$HW); do echo $i; osc copypac -k Maemo:Mer:Testing:$HW $i Maemo:Mer:$STABLE:$HW ; done
 done

Allow to build.


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 echo $i; osc rdelete Maemo:Mer:Stable $i ; done
 for HW in HW:N8x0 HW:N900 HW:SmartQ HW:Freerunner HW:Beagle; do
   for i in $(osc ls Maemo:Mer:Stable:$HW); do echo $i; osc rdelete Maemo:Mer:Stable:$HW $i; done
 done
      • ALSO wipebinaries next time ***

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 echo $i; osc aggregatepac Maemo:Mer:$STABLE $i Maemo:Mer:Stable; done
 for HW in HW:N8x0 HW:N900 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 $i Maemo:Mer:Stable:$HW
   done
 done



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

[edit] Linking to :Extras

In order to allow people to develop applications/packages for :Extras they need to setup their home area on OBS as in Building Applications. Once the package is built it can be linked to Maemo:Mer:Extras:Devel

 osc linkpac -f -c home:tomaszd84 leafpad Maemo:Mer:Extras:Devel

-c ensures that the version is pinned so when user tomaszd84 changes his package, it doesn't change in :Extras:Devel unless it is relinked. -f forces an existing link to be updated.

[edit] 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.