building for mer
DESCRIPTION
Since Fremantle Extras applications will eventually be submitted to the Mer builder it may be a good idea to introduce it. We use the openSuse Open Build Service; a GPL service that provides an emulated, pristine (yes, I'm looking at you autobuilder and scratchbox), dependency driven build environment. I'll talk about the processes around Mer builds, access controls, managing integration with our DVCS (git), acceleration tricks and generally how to make good use of things you find lying about on the web. This slideset has useful notes - see tab next to 'Comments'TRANSCRIPT
- 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
- Oriented towards full builds not compile+test Lots of:sEmulation-mode compile.... for the momentaccelerated compilation
6. Using OBS
- Screenshot:
7. Using OBS
- Screenshot:
8. Using OBS
- Screenshot:
9. Using OBS
- Screenshot:
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
- Like an old-fashioned centralised VCS
11. Using OBS to Build Locally
-
- Install:
- apt-get install osc qemu
- osccoMaemo:Mer:Testing/qtablet
- oscbuildMaemo:Mer:Testingarmv5elqtablet_0.1.dsc
- Copy .deb to tablet and install
- 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
- Ubuntu 9.04 armv5el / i586 Debian 5.0 armv5el / i586
14. Developing for Mer
- 'Core' Structure
- Maemo:Mer:Devel&: Maemo:Mer:Testing Maemo:Mer:0.15 Maemo:Mer:Stable
- :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
- :Devel and :Testing and :Stable Ubuntu and Debian i586 and armel
16. Developing for Mer
- Home project
- home:lbt:Extras
- :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
- bash, gzip, make, tar,
29. Issues for Mer
- Patents...
- the Novell service won't accept mp3 software
- isn't on Novell service
- 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