Your SlideShare is downloading. ×
  • Like
Develop and Maintain a Distro with Open Build Service
Upcoming SlideShare
Loading in...5

Thanks for flagging this SlideShare!

Oops! An error has occurred.


Now you can save presentations on your phone or tablet

Available for both IPhone and Android

Text the download link to your phone

Standard text messaging rates apply

Develop and Maintain a Distro with Open Build Service



Published in Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads


Total Views
On SlideShare
From Embeds
Number of Embeds



Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

    No notes for slide


  • 1. Develop and Maintain a Distro with Open Build Service Gary Lin Software Engineer, SUSE Labs
  • 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. Basic IdeaSource codePatches Package OBS (RPM, DEB, ...)Changelog Whatever
  • 4. Supported Distributions
  • 5. Supported Architectures● i586● x86-64● PowerPC 32● PowerPC 64● IA64● ARMv7● ARMv5
  • 6. How OBS works
  • 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. Frontend – Web UI
  • 9. Frontend - Commandline
  • 10. Frontend to BackendFrontend Requests Create a package/project Query packages/projects Check in/modify sources Backend Servers Delete a package ... Submit changes
  • 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. Collaboration
  • 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. submitrequestProject A home:userA:branches:ProjectA Package Package Package Diff Diff Diff Diff
  • 15. Real-life case: openSUSE
  • 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. 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. 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. 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. Try it!openSUSE Build Service
  • 21. Questions?
  • 22. Thank You!
  • 23. ReferencesOpen Build System system comparison Service Backend Key Components Build System Maintenance Setup
  • 24. Backup Slides
  • 25. Other Build Systems● Fedora “Koji”● Ubuntu “Launchpad”● Mandriva Build System● Project Build● Build Bot● Poky
  • 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. 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. copypacProject A Project B Package Package Package Package Change
  • 29. linkpacProject A Project B Package Package (Package) Diff Diff
  • 30. Tumbleweed● Tumbleweed is a project based on the current release and the “stable” projects.● Tumbleweed is initiated and maintained by Greg KH.
  • 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