Download odp - Building For Mer

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
    Drawbacks
    • 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
      Then any dependendent packages are rebuilt Status overview provided Live Logs

11. Using OBS to Build Locally

    • Install:
      • apt-get install osc qemu
      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
    • home:lbt:Extras
    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
    • bash, gzip, make, tar,
    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
    • isn't on Novell service
    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