Build Your Own Distribution . . . during lunch break

Michal Hruˇseck´y openSUSE Community Multiplier Team mhrusecky@.cz Creating a distribution Distributions characteristics

What we need to create our own distribution: Installation wizard Configuration utilities Branding Default configuration Package management Packages and their settings ...

3/20 c Inc. All Right Reserved How to create distribution

We want it fast and we don’t want to work hard

Let’s use the others !!!

And let’s start with LiveCD

4/20 c Novell Inc. All Right Reserved Work to do

What can we skip: Installation wizard Configuration utilities Package management Not necessary for LiveCD.

What we need: Branding Default configuration Packages and their settings

5/20 c Novell Inc. All Right Reserved Closer look

Branding: Just a different default theme We need to adjust/add packages Default configuration: We need to adjust packages Packages and their settings. . .

=⇒ Everything is about packages

6/20 c Novell Inc. All Right Reserved Conclusion

We need quite a lot packages but we don’t want to work on them by ourself. =⇒ Let’s fork

Here it comes, let’s use work done by somebody else So we need to get a lot of packages, maintain them easily and to be able to collaborate with other packagers =⇒ openSUSE Build Service

And we need something to create our LiveCD from our packages =⇒ SUSE Studio

7/20 c Novell Inc. All Right Reserved openSUSE Build Service Build Service

To build and publish packages...

free and open platform for building packages for various distributions like openSUSE, Fedora, Ubuntu,... RPM and DEB packages are supported crossbuild for various hardware platforms (PPC, MIPS, arm) is also possible provide web based interface provide HTTP(S) based API provide command line client osc in Python

9/20 c Novell Inc. All Right Reserved Collaboration Features

Project or package owners can grant write access to the others. However it has some disadvanatges: Unknown contributors have no write access Even people with write access might want a review of their changes People with write access to the project can change any package in project

Anybody can send any request requests can create/delete/modify package request are rewieved by project maintainers and accepted/declined anybobody can contribute

10/20 c Novell Inc. All Right Reserved Modifying package

osc linkpac server:database mysql home:-miska- osc co home:-miska- mysql cd home:-miska-/mysql quilt setup mysql.spec quilt push -a quilt new mysql-5.1.36-superfast-patch.patch quilt add mysys/mf_keycache.c quilt refresh -p0 osc add mysql-5.1.36-awesome-patch.patch osc commit osc sr

11/20 c Novell Inc. All Right Reserved Usefull osc commands

linkpac agregatepac branch add rm build maintainer sr

12/20 c Novell Inc. All Right Reserved Contributing to the Factory Contributing to the Factory

Factory is open =⇒ anybody can contribute 1 Choose package 2 Create/modify it in your own branch 3 Send submit request to the appropriate devel project 4 Build reputation 5 Get maintainership of your package in devel project 6 After fullfiling all project dependent rules, submit package to the factory 7 Fix all problems reported 8 Go to 6 9 Congratulation, you are maintaining package in factory

14/20 c Novell Inc. All Right Reserved SUSE Studio Purpose

Web based application for creating custom images. Creating a tuned server appliance Creating a live CD or DVD with your packages and software Creating a ready-to-run Creating a live USB key and carry your Linux system with you wherever you go Creating custom/specialized deployable image ... Advantages: User friendly and easy to use Simple but powerfull

16/20 c Novell Inc. All Right Reserved Example of usage - openSUSE Rescue CD

Let’s get back to making our own distribution.

We know how to maintain our own packages/repositories

=⇒All that is left is to create our own distribution

Let’s create openSUSE Rescue CD!!!

Using openSUSE Buildservice and SUSE Studio

17/20 c Novell Inc. All Right Reserved openSUSE Rescue CD - Basic Idea

How will openSUSE Rescue CD look like. . . We’ve don’t have any resources In fact we’ve got one end user and his lunch break ⇒ Let’s base it on openSUSE 11.1 We want something different ⇒ Let’s include applications we may need ⇒ Let’s use Contrib for some additional packages ⇒ Let’s use different splash screen as a branding As we’ve got an ordinary end user we need a simple way how to create it ⇒ Let’s use SUSE Studio

18/20 c Novell Inc. All Right Reserved Getting account

Login using OpenID No additional account Registration still needed Registration takes some time as resources are limited 15GB available for appliances Appliances older then 7 days may be deleted

Let’s see how it works !!!

19/20 c Novell Inc. All Right Reserved Questions?

20/20 c Novell Inc. All Right Reserved