- 1. Building Mer David Greaves / lbt
2. Building Mer OBS 3. What is OBS?
- Open Build System: Source->Binary->Package->
Repository Fully GPL Huge thanks to Suse / Novell for creating OBS
in an open manner OBS ..... Suse / Novell(cf Qt ..... Nokia)
4. What is OBS? OBS Scratchbox cf 5. What is OBS?
- Benefits
- Developers Maintainers Maemo Community
Drawbacks
- Oriented towards full builds not compile+test Lots
of:sEmulation-mode compile.... for the momentaccelerated
compilation
6. Using OBS
7. Using OBS
8. Using OBS
9. Using OBS
10. Using OBS Service to Build Remotely
- Remotely
- Like an old-fashioned centralised VCS
- When you check-in a package it's scheduled and built All target
repositories and architectures
Then any dependendent packages are rebuilt Status overview provided
Live Logs
11. Using OBS to Build Locally
-
- Install:
Checkout :
- osccoMaemo:Mer:Testing/qtablet
Build:
- oscbuildMaemo:Mer:Testingarmv5elqtablet_0.1.dsc
..........................Coffee
- Copy .deb to tablet and install
12. Packaging
- Maemo packaging process Modify, compile, test, build locally
Update debian/changelog debuild -Sto create updated .diff and .dsc
osc addremove and osc commit
13. OBS Projects, Packages and Repositories
- An OBS Project is a collection of packages and has a number of
repositories A repository defines the base package collection used
to satisfy build dependencies Two kinds:
- Other projects Download on demand
Key Download on demand:
- Ubuntu 9.04 armv5el / i586 Debian 5.0 armv5el / i586
Names like Maemo:Mer:Devel:UI/MerDevel_Ubuntu9.04 armv5el
14. Developing for Mer
- 'Core' Structure
- Maemo:Mer:Devel&: Maemo:Mer:Testing Maemo:Mer:0.15
Maemo:Mer:Stable
HW Specifics in each project:
- :HW:N8x0 :HW:Freerunner :HW:SmartQ :HW:Marvell :HW:HTC
:HW:Beagle
15. Developing for Mer
- Submit to autobuilder and it goes into 'Extras' Structure
- Maemo:Mer:Extras:Devel Maemo:Mer:Extras:Testing
Maemo:Mer:Extras:Stable
Each builds 12x .... against
- :Devel and :Testing and :Stable Ubuntu and Debian i586 and
armel
Independent release cycle... per package
16. Developing for Mer
- Home project
Has repositories for:
- :Devel and :Testing and :Stable i586 and armel
17. osc commands
- osc
-
- co Checkout a package or project
- 18. add / rm / addremove Add a dsc or tar.gz or a diff.gz
- 19. commit Send new files to server
20. up Update - get changes 21. build Download build-deps,
create chroot, run dpkg-buildpkg 22. repos Show the available repos
to build 23. ls List packages 24. meta pkg/proj/...Add/remove
dis/enable packages & build targets 25. Gitorious and Branches
26. Gitorious and Branches 27. Gitorious and Branches 28.
Acceleration
- Qemu is used to emulate on a binary-by-binary level using
binfmt-misc Be nice to replace qemu binaries with i586 binaries
Problem with .so library paths fixed with patchelf / chrpath
Toolchain replaced with a slightly modified gcc-cross If we install
these binaries in a chroot we get 5x to 10x performance increase
Same source as if using arm binaries unlike scratchbox
29. Issues for Mer
- Patents...
- the Novell service won't accept mp3 software
Ubuntu universe
Access control
- No fine grained control over packages
30. Talk to Us IRC #mer on freenode.net Microblogging..... Mer
Chatter [email_address] highlights of 'interesting' activities
Summaryat http://wiki.maemo.org/Mer/Build 31. Thanks
- Carsten Munk Martin Mohringer (ScriptRipper), Adrian Schrter
(AdrianS) Marcus Rckert (darix) Jan-Simon Mller (dl9pf) Riku Voipio
(suihkulokki) rest of the teams testers, documenters,
community