Presentation is loading. Please wait.

Presentation is loading. Please wait.

From Source Code to Packages for Various Distributions

Similar presentations


Presentation on theme: "From Source Code to Packages for Various Distributions"— Presentation transcript:

1 From Source Code to Packages for Various Distributions
Andreas Jaeger Program Manager openSUSE

2 Software Packaging is solved – is it?
How to reach many users with working software packages? How to build for different distributions? different locations for config files, libraries etc. How to build for different versions of a distribution? How to build for different architectures? How to build in such a way that local modifications of build machine will not effect the built package? Note: RPM, Deb are considered the solved part – question is how to create them

3 OBS is the Rescue build binary packages for many distributions and platforms make them available for download make them available in your own OBS repository

4 Build Service Demo

5 Background

6 Packages and Projects All packages are part of a project
Multiple developers can work on a project and/or a package Projects define the target distributions Packages can be build for all or only a subset of defined target distributions

7 Automatic Dependency Rewriting
Problem: packages get renamed or are named different for different distributions. Example: package containing shared libraries for canna SUSE: canna-libs Fedora: Canna-libs Mandriva: libcanna1 Debian: libcanna1g Project can specify per repository dependency rewrite rules: Substitute: <package> <replacement packages>

8 Adding Specials to Spec Files
Used statements: %if 0%{?suse_version} < do something %endif %if 0%{?mandriva_version} Name: libopensync %else Name: opensync %endif

9 Automatic Rebuilding Automatic rebuild (configurable) of package if dependent packages change avoids ABI incompatibilities avoids dependency on library that has been removed catches some changes in behavior of scripts/apps during build

10 OBS via command line - osc
osc add – add file to package osc build – build on local machine osc results – show build results from server osc co – checkout package osc ci – checkin package osc branch – branch package for own development osc submitrequest – request package checkin in another project osc request – show and modify requests Don't explain everything, just say that you can do everything this way

11 OBS is... Open Source under GPLv2
Developed by engineers from Novell, Cray, Intel, Nokia, … and individuals Used by Cray, Dell, Intel, Nokia, LinuxFoundation, MeeGo,... Used to create LiveCDs to demo products Integrated in SUSE Studio and allows easy appliance creation with custom packages Not working without packaging skills ;-)

12 Your Own OBS? At you can build Open Source packages online for Debian, Fedora, Mandriva, openSUSE, Red Hat Enterprise Linux, SUSE Linux Enterprise,... Alternative: install your own instance of OBS Available as source, ready-to-run appliance (virtual image) and installation media Support for additional architectures Quality of service, faster rebuild Instances can connect with each other - reference packages and repositories, e.g. the full openSUSE distribution on build.o.o

13 Integration with Forges
(planned - needs work by forges) Integration with Forges like SourceForge, Berlios, KDE-Apps Build package from the forge show on forge project page list of binaries Screenshot is from kde-apps Build service delivers xml file that needs to be parsed and displayed Xml file makes it easy to download packages

14 Unique Features of OBS Building for multiple distributions
Automatic rebuilding on dependency change Open System – nice integration with IDEs, Forges and tools Easy to install

15 New in OBS 2.1 Source services, checkout from svn/git Enhanced WebUI:
Source handing Revision control Source services editing Create submit requests Source history

16 Try it! to build packages for Debian, Fedora, Mandriva, openSUSE, Red Hat Enterprise Linux, SUSE Linux Enterprise,... Source code: Documentation incl. local installation instructions: Communication: #opensuse-buildservice, IRC freenode

17

18 Unpublished Work of Novell, Inc. All Rights Reserved.
This work is an unpublished work and contains confidential, proprietary, and trade secret information of Novell, Inc. Access to this work is restricted to Novell employees who have a need to know to perform tasks within the scope of their assignments. No part of this work may be practiced, performed, copied, distributed, revised, modified, translated, abridged, condensed, expanded, collected, or adapted without the prior written consent of Novell, Inc. Any use or exploitation of this work without authorization could subject the perpetrator to criminal and civil liability. General Disclaimer This document is not to be construed as a promise by any participating company to develop, deliver, or market a product. It is not a commitment to deliver any material, code, or functionality, and should not be relied upon in making purchasing decisions. Novell, Inc. makes no representations or warranties with respect to the contents of this document, and specifically disclaims any express or implied warranties of merchantability or fitness for any particular purpose. The development, release, and timing of features or functionality described for Novell products remains at the sole discretion of Novell. Further, Novell, Inc. reserves the right to revise this document and to make changes to its content, at any time, without obligation to notify any person or entity of such revisions or changes. All Novell marks referenced in this presentation are trademarks or registered trademarks of Novell, Inc. in the United States and other countries. All third-party trademarks are the property of their respective owners.

19

20


Download ppt "From Source Code to Packages for Various Distributions"

Similar presentations


Ads by Google