Your SlideShare is downloading. ×
0
Develop and Maintain a Distro with              Open Build Service                      Gary Lin                      Soft...
Open Build Service?Open Build Service (OBS) is an open sourceproject initiated by SUSE to create a genericbuild system to ...
Basic IdeaSource codePatches                    Package                   OBS      (RPM,                           DEB, .....
Supported Distributions
Supported Architectures●   i586●   x86-64●   PowerPC 32●   PowerPC 64●   IA64●   ARMv7●   ARMv5
How OBS works
Project and Package●   Project    –   Each project contains the resources needed to build        one or more packages.    ...
Frontend – Web UI
Frontend - Commandline
Frontend to BackendFrontend Requests   Create a package/project    Query packages/projects    Check in/modify sources     ...
Backend Components          scheduler              scheduler                  publish            i586                  x86...
Collaboration
branch  Project A               home:userA:branches:ProjectA Project Settings Project Settings                Project Sett...
submitrequestProject A           home:userA:branches:ProjectA Package Package                      Package   Diff   Diff  ...
Real-life case: openSUSE
Current Release●   All packages are in the release project and the    update project, e.g. openSUSE:12.1 and    openSUSE:1...
Maintenance ProcessopenSUSE 12.1:Update openSUSE 12.1:Update              openSUSE:Maintenance:IDXXX                      ...
Next Release●   The packages for the next release are in the    “factory” project, e.g. openSUSE:Factory.●   All developme...
openSUSE FactoryNext Release                            openSUSE:Factory                             openSUSE:FactoryDevel...
Try it!openSUSE Build Servicehttp://build.opensuse.org
Questions?
Thank You!
ReferencesOpen Build Systemhttp://www.open-build-service.org/Build system comparisonhttp://en.opensuse.org/openSUSE:Build_...
Backup Slides
Other Build Systems●   Fedora “Koji”●   Ubuntu “Launchpad”●   Mandriva Build System●   Project Build●   Build Bot●   Poky
Comparison       Name         Multi-      Build for other Package formats Create Images                 Architecture    di...
Package Build Build Server             Local Build   Sources   Sources                   Sources                          ...
copypacProject A             Project B Package Package               Package                       Package                ...
linkpacProject A             Project B Package Package               (Package)                          Diff              ...
Tumbleweed●   Tumbleweed is a project based on the current    release and the “stable” projects.●   Tumbleweed is initiate...
TumbleweedTumbleweed                        openSUSE:Tumbleweed                         openSUSE:TumbleweedStable Projects...
Upcoming SlideShare
Loading in...5
×

Develop and Maintain a Distro with Open Build Service

1,833

Published on

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
1,833
On Slideshare
0
From Embeds
0
Number of Embeds
9
Actions
Shares
0
Downloads
17
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Transcript of "Develop and Maintain a Distro with Open Build Service"

  1. 1. Develop and Maintain a Distro with Open Build Service Gary Lin Software Engineer, SUSE Labs glin@suse.com
  2. 2. Open Build Service?Open Build Service (OBS) is an open sourceproject initiated by SUSE to create a genericbuild system to build and distribute packagesfrom sources in an automatic, consistent andreproducible way.
  3. 3. Basic IdeaSource codePatches Package OBS (RPM, DEB, ...)Changelog Whatever
  4. 4. Supported Distributions
  5. 5. Supported Architectures● i586● x86-64● PowerPC 32● PowerPC 64● IA64● ARMv7● ARMv5
  6. 6. How OBS works
  7. 7. Project and Package● Project – Each project contains the resources needed to build one or more packages. – These resources include source archives, patch files, spec files, etc. – The project defines the build architectures and the general settings.● Package – The packages are the build targets of the project. – The package format could be any supported output format, e.g. RPM or DEB.
  8. 8. Frontend – Web UI
  9. 9. Frontend - Commandline
  10. 10. Frontend to BackendFrontend Requests Create a package/project Query packages/projects Check in/modify sources Backend Servers Delete a package ... Submit changes
  11. 11. Backend Components scheduler scheduler publish i586 x86_64 s job descriptions nteve dispatcher srcserver publisher s rce s ck age jobs sou pa download worker rep server server warden dep packages signer ... ... ... build results download worker rep server server
  12. 12. Collaboration
  13. 13. branch Project A home:userA:branches:ProjectA Project Settings Project Settings Project Settings Project SettingsBuild ArchitecturesBuild Architectures Build Architectures Build Architectures Package Package (Package) Diff Diff
  14. 14. submitrequestProject A home:userA:branches:ProjectA Package Package Package Diff Diff Diff Diff
  15. 15. Real-life case: openSUSE
  16. 16. Current Release● All packages are in the release project and the update project, e.g. openSUSE:12.1 and openSUSE:12.1:Update.● Each package update must be reviewed by the maintenance team and then be submitted to the update project.● In general, every update has to be tracked by a bugzilla entry.
  17. 17. Maintenance ProcessopenSUSE 12.1:Update openSUSE 12.1:Update openSUSE:Maintenance:IDXXX openSUSE:Maintenance:IDXXX packageA patchInfo packageA m br mr an ch home:userA:branches: home:userA:branches: openSUSE 12.1 openSUSE 12.1 openSUSE:12.1:Update openSUSE:12.1:Update packageA patchInfo packageA
  18. 18. Next Release● The packages for the next release are in the “factory” project, e.g. openSUSE:Factory.● All developments are happened in the “devel” projects.● The package updates are reviewed by the devel project maintainers.● Any modification is allowed as long as the maintainer agrees.
  19. 19. openSUSE FactoryNext Release openSUSE:Factory openSUSE:FactoryDevel Projects Base:System Base:System Gnome:Factory Gnome:Factory Gnome:Apps Gnome:Apps X11:XOrg X11:XOrg ...User Branches sr branch home:userA:branches: home:userA:branches: Gnome:Factory Gnome:Factory
  20. 20. Try it!openSUSE Build Servicehttp://build.opensuse.org
  21. 21. Questions?
  22. 22. Thank You!
  23. 23. ReferencesOpen Build Systemhttp://www.open-build-service.org/Build system comparisonhttp://en.opensuse.org/openSUSE:Build_Service_comparisonBuild Service Backend Key Componentshttp://en.opensuse.org/openSUSE:Build_Service_Backend_Key_ComponentsopenSUSE Build Systemhttps://build.opensuse.org/openSUSE Maintenance Setuphttp://doc.opensuse.org/products/draft/OBS/obs-reference-guide_draft/cha.obs.maintenance_setup.html
  24. 24. Backup Slides
  25. 25. Other Build Systems● Fedora “Koji”● Ubuntu “Launchpad”● Mandriva Build System● Project Build● Build Bot● Poky
  26. 26. Comparison Name Multi- Build for other Package formats Create Images Architecture distributionsFedora Koji N N rpm YUbuntu Y N deb NLaunchpadMandriva Build Y N rpm TODOSystem deb, rpm, ebuild,Project Build Y Y N pkgBuild Bot Y N N/A NPoky Y N rpm, deb, ipg, tgz YOpen Build rpm, deb, tgz, Y Y YService exe[*]* experimental
  27. 27. Package Build Build Server Local Build Sources Sources Sources SourcesDependenciesDependencies Dependencies DependenciesBase PackagesBase Packages Base Packages Base PackagesBase SystemBase System chroot chroot qemu qemu
  28. 28. copypacProject A Project B Package Package Package Package Change
  29. 29. linkpacProject A Project B Package Package (Package) Diff Diff
  30. 30. Tumbleweed● Tumbleweed is a project based on the current release and the “stable” projects.● Tumbleweed is initiated and maintained by Greg KH.
  31. 31. TumbleweedTumbleweed openSUSE:Tumbleweed openSUSE:TumbleweedStable Projects Current ReleaseGnome:Stable:3.2 KDE:Release:48 ...Gnome:Stable:3.2 KDE:Release:48 Virtualization Virtualization openSUSE:12.1 openSUSE:12.1
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×