Open Build Service · 2011. 8. 12. · 2 Intro • The Open Build Service – Formerly known as the...

20
August 7, 2011 Open Build Service Cross-Distribution Packaging Sascha Peilicke <[email protected]>

Transcript of Open Build Service · 2011. 8. 12. · 2 Intro • The Open Build Service – Formerly known as the...

Page 1: Open Build Service · 2011. 8. 12. · 2 Intro • The Open Build Service – Formerly known as the 'openSUSE Buildservice' – It's a cross-distribution collaboration platform to

August 7, 2011

Open Build ServiceCross-Distribution Packaging

Sascha Peilicke<[email protected]>

Page 2: Open Build Service · 2011. 8. 12. · 2 Intro • The Open Build Service – Formerly known as the 'openSUSE Buildservice' – It's a cross-distribution collaboration platform to

2

Intro

• The Open Build Service

– Formerly known as the 'openSUSE Buildservice'

– It's a cross-distribution collaboration platform to build

> Packages for all major distros,

> Distributions (like openSUSE),

> ISO's, appliances or VM's

– Currently 29100 registered developers 149000 packages in 30800 repositories

– Logo (WIP):

Page 3: Open Build Service · 2011. 8. 12. · 2 Intro • The Open Build Service – Formerly known as the 'openSUSE Buildservice' – It's a cross-distribution collaboration platform to

3

Features

• Takes care of dependency changes, rebuild as needed

• Automagically creates download repositories

• Publish to world-wide mirroring infrastructure

• Can pull from Git, SVN, ...

• Supports semi-automatic package generation and update

• Allows local development

Page 4: Open Build Service · 2011. 8. 12. · 2 Intro • The Open Build Service – Formerly known as the 'openSUSE Buildservice' – It's a cross-distribution collaboration platform to

4

Features

• Instances can connect

• Consists of

– a web interface

– command-line client (osc)

– public API interface> HTTP, XML, REST, ...

• Android client

• (Mostly) test driven

• Something for everyone:

– Perl, Python, Ruby (Rails), Shell, C, HTML, CSS, JavaScript, SQL, XML, XPath, ...

Page 5: Open Build Service · 2011. 8. 12. · 2 Intro • The Open Build Service – Formerly known as the 'openSUSE Buildservice' – It's a cross-distribution collaboration platform to

5

The big picture

Web UICommand

LineClient

Installer(YaST,etc.)

OBS API (api.opensuse.org)

Users, Auth, Database, Search, ...

Storage

BuildHost

Your Tool

MirrorInterface

BuildHost

BuildHost

BuildHost

BuildHost

BuildHost

Backend

HermesWeb UI

NotificationServer

Page 6: Open Build Service · 2011. 8. 12. · 2 Intro • The Open Build Service – Formerly known as the 'openSUSE Buildservice' – It's a cross-distribution collaboration platform to

6

Web interface

Page 7: Open Build Service · 2011. 8. 12. · 2 Intro • The Open Build Service – Formerly known as the 'openSUSE Buildservice' – It's a cross-distribution collaboration platform to

7

Web interface - Statistics

Page 8: Open Build Service · 2011. 8. 12. · 2 Intro • The Open Build Service – Formerly known as the 'openSUSE Buildservice' – It's a cross-distribution collaboration platform to

8

Creating a package

• Want to package an awesome app™

• Let's take choqok as an example!

Page 9: Open Build Service · 2011. 8. 12. · 2 Intro • The Open Build Service – Formerly known as the 'openSUSE Buildservice' – It's a cross-distribution collaboration platform to

9

Creating a package - Files

• Requirements:– Source tarball (ha, easy!)

– Build recipe (balls needed...)> Spec file for RPMs

> Debian control files

– Patience

Page 10: Open Build Service · 2011. 8. 12. · 2 Intro • The Open Build Service – Formerly known as the 'openSUSE Buildservice' – It's a cross-distribution collaboration platform to

10

Creating a package – The inevitable

• You have to write spec files

• Can be automated:– cpanspec

– gem2rpm

– py2pack

– obs generator(blogs.kde.org/node/4177)

• Helpful tools:– spec cleaner

– rpmlint

Page 11: Open Build Service · 2011. 8. 12. · 2 Intro • The Open Build Service – Formerly known as the 'openSUSE Buildservice' – It's a cross-distribution collaboration platform to

11

Creating a package – Waiting

• Once built locally, upload to OBS...

• Wait for dependencies or other packages...

• Find some bugs locally...

Page 12: Open Build Service · 2011. 8. 12. · 2 Intro • The Open Build Service – Formerly known as the 'openSUSE Buildservice' – It's a cross-distribution collaboration platform to

12

Creating a package – Fetch it, use it

• Finally, the masterpiece compiled

• So, you wanna download and distribute it...

Page 13: Open Build Service · 2011. 8. 12. · 2 Intro • The Open Build Service – Formerly known as the 'openSUSE Buildservice' – It's a cross-distribution collaboration platform to

13

More download options...

Page 14: Open Build Service · 2011. 8. 12. · 2 Intro • The Open Build Service – Formerly known as the 'openSUSE Buildservice' – It's a cross-distribution collaboration platform to

14

Creating a package – Sharing

• You should send it somewhere:– BTW. how about

openSUSE:Factory?

– Has fierce reviewers...

– Gets you lot'sa cudos

– (Actually a devel project is needed first)

Page 15: Open Build Service · 2011. 8. 12. · 2 Intro • The Open Build Service – Formerly known as the 'openSUSE Buildservice' – It's a cross-distribution collaboration platform to

15

How it ends up – A request

Page 16: Open Build Service · 2011. 8. 12. · 2 Intro • The Open Build Service – Formerly known as the 'openSUSE Buildservice' – It's a cross-distribution collaboration platform to

16

Piles of packages - “My Work”

Page 17: Open Build Service · 2011. 8. 12. · 2 Intro • The Open Build Service – Formerly known as the 'openSUSE Buildservice' – It's a cross-distribution collaboration platform to

17

KDE and Gnome in the OBS

Page 18: Open Build Service · 2011. 8. 12. · 2 Intro • The Open Build Service – Formerly known as the 'openSUSE Buildservice' – It's a cross-distribution collaboration platform to

18

Coming up next...

• OBS 2.3 (beta2)

– Maintenance

– Groups

– Reviews

– Security improvements

– (Issue tracker integration)

• (Hot) Summer of Code

– Arch Linux support

– More (browser) testing!

– Android client

– New CLI

Page 19: Open Build Service · 2011. 8. 12. · 2 Intro • The Open Build Service – Formerly known as the 'openSUSE Buildservice' – It's a cross-distribution collaboration platform to

19

Want more?

• build.opensuse.org

– The most prominent Build Service instance. Also contains links to documentation and source code

• en.opensuse.org/Build_Service

– OBS wiki portal

• features.opensuse.org

– Feature tracker

[email protected]

– The mailing list for discussing the Build Service.

• #opensuse-buildservice on Freenode

– Our IRC channel

Page 20: Open Build Service · 2011. 8. 12. · 2 Intro • The Open Build Service – Formerly known as the 'openSUSE Buildservice' – It's a cross-distribution collaboration platform to