Cross-Distribution Packaging Made Easy OSDC 2011, Canberra

Slides:



Advertisements
Similar presentations
Version Control System Sui Huang, McMaster University Version Control SystemSui Huang, McMaster University Version Control System -- base on Subversion.
Advertisements

G51FSE Version Control Naisan Benatar. Lecture 5 - Version Control 2 On today’s menu... The problems with lots of code and lots of people Version control.
Perforce (Version Control Software). Perforce is an enterprise version management system in which users connect to a shared file repository. Perforce.
Linux Operations and Administration
Basics of Web Databases With the advent of Web database technology, Web pages are no longer static, but dynamic with connection to a back-end database.
Welcome to the 3 rd Junior Session Prepared by Eslam Mohammed Diaa El-Din Twitter
EMT 2390L Lecture 1 Dr. José M. Reyes Álamo. Outline About Linux Install Linux in a Virtual Machine.
Git – versioning and managing your software L. Grewe.
April 30, 2007 openSUSE.org Build Service a short introduction Moiz Kohari VP Engineering.
Copyright © 2015 – Curt Hill Version Control Systems Why use? What systems? What functions?
Image Generation and Management on FutureGrid CTS Conference 2011 Philadelphia May Geoffrey Fox
Team 708 – Hardwired Fusion Created by Nam Tran 2014.
Library 2.06 February 2009 Linux for Librarians Nishtha Anilkumar Librarian Physical Research Laboratory Ahmedabad.
March 11, 2008 USCMS Tier-2 Workshop Oh Dear God Alain made a PowerPoint presentation 1.
IT320 OPERATING SYSTEM CONCEPTS Unit 3: Welcome to Linux June 2011 Kaplan University 1.
IT320 OPERATING SYSTEM CONCEPTS Unit 3: Welcome to Linux September 2012 Kaplan University 1.
 Linux Mint is a computer operating system designed to work on most modern systems, including typical x86 and x64 PC’s. Linux Mint can be thought of.
Anubha Gupta | Software Engineer Visual Studio Online Microsoft Corp. Visual Studio Enterprise Leveraging modern tools to streamline Build and Release.
07/21/97 MOSS Project Introduction and Definition -Senior Project-
Cloud Computing – UNIT - II. VIRTUALIZATION Virtualization Hiding the reality The mantra of smart computing is to intelligently hide the reality Binary->
A Brief Introduction to Linux Cheng-Han Du. History.
A Brief Introduction to Linux Cheng-Han Du. History.
Collaborative Git An introduction to Git with others
Installing Software Part 1 Kevin B. O'Brien Washtenaw Linux Users Group
GIT Version control. Version Control Sharing code via a centralized DB Also provides for Backtracking (going back to a previous version of code), Branching.
Getting Started in RPM Packaging Izhar Firdaus / KageSenshi Contributor Fedora Project
The firmware-tools project Matt Domsch Michael Brown.
From Source Code to Packages for Various Distributions Andreas Jaeger Program Manager openSUSE
April 1st, 2009 Cobbler Provisioning Made Easy Jasper Capel.
VirtualBox Introduction:
Computer Technology Project
GNU and Linux.
IT320 Operating System Concepts
CS5220 Advanced Topics in Web Programming Version Control with Git
DISTRIBUTED SYSTEMS Principles and Paradigms Second Edition ANDREW S
Development Environment
CSC227: Operating Systems
Configuration Management
Build process of ovirt-node and the plugins
From Source Code to Packages for Various Distributions
From Source Code to Packages and even whole distributions
Business Directory REST API
Jason Bury Dylan Drake Rush Corey Watt
Progress on NA61/NA49 software virtualisation Dag Toppe Larsen Wrocław
How to download premium android apps and games
Selected topic in computer science (1)
GIT AND GITHUB WORKSHOP
PERL.
Version Control with Subversion (SVN)
Introduction to Open Build Service SUSE Studio
Linux Introduction ITIS 2110.
HISTORY Of API.
Development and Deployment
Software Engineering for Data Scientists
A Guide on Top Linux Distribution in 2016
Spacewalk and Koji at Fermilab
More Scripting & Chapter 11
Getting Started With Linux
5 SYSTEM SOFTWARE CHAPTER
Part 1: Editing and Publishing Files
5 SYSTEM SOFTWARE CHAPTER
Different types of Linux installation
How to Improve Releasing Efficiency via i18N/L10n Test Automation.
A Short Intro to Go CS 240 – Fall 2018 Rec. 1.
Planning and Storyboarding a Web Site
Patrick Cozzi University of Pennsylvania CIS Fall 2012
Version Control with Git and GitHub
How l learned to work with others instead of working around them.
Bringing source control to BI world!
Module 02 Operating Systems
Presentation transcript:

Cross-Distribution Packaging Made Easy OSDC 2011, Canberra Tim Serong Senior Clustering Engineer SUSE tserong@suse.com

Why Am I Talking About Software Packaging? A tarball is not a product – Arjen Lentz Show of hands: - Who primarily develops software? - Who also packages it? For some distro or other? If you hack on GIMP (etc.) not your problem, but... I have a source code repo & tarballs Casual/new users don't want these things Like takeaway Chinese food without a plasic box

Problems for Developers Multiple Distributions Multiple Versions Multiple Architectures Minimal time, hardware, etc. I basically hack on one distro, one arch Maybe one other, sometimes, in a VM

Solution: The Open Build Service Builds packages for various Linuces build.opensuse.org (or run your own) Give it a tarball and spec/dsc It does the rest - show of hands - who's heard of it? - who's used it? - platform for building packages and ISOs – web ui - nee openSUSE build service - openSUSE - SLES - isos, vms - openSUSE, SLES, RHEL, CentOS, Fedora, Mandriva, Debian, Ubuntu - describe worker, etc. running build kvm - gonna try make this a bit of a rambling show & tell

Packages and Projects All packages are part of a project Multiple developers can work on a project / package Projects define the target distros Packages can be built for all or a subset of distros

Entertainment Over Dinner The story here is about openastro, which I packaged using the web UI only, whist at a friend's place for dinner

Pull from URL Can also pull from git, svn etc.

Can't get around writing a spec Generators for some things (rubygems) Some things are easier than others (python, perl)

A Little More Complexification

Behind Every Great GUI...

We Have a Command Line Interface osc co - checkout package osc add - add files to package osc build - build on local machine osc diff - diff local copy with OBS server osc vc - edit changelog osc ci - checkin changes Osc itself Is, of course, packaged using obs

Playing Well With Others

Collaboration Projects can depend on each other Anyone can branch packages... ...and submit changes back to the main project Maintainers review and (hopefully!) accept

Enough With the Screenshots!

At this point in the presentation, a live demo ensued, where a small “hello world” style C program was packaged for Centos, Debian, Fedora, RHEL, SLES, openSUSE and Ubuntu. OBS project is at: https://build.opensuse.org/package/show?package=osdc2011&proj ect=home:tserong Resultant packages are at: http://software.opensuse.org/search?q=osdc2011&include_home=t rue

So, Was That Easy?

What Did I Miss? OBS under GPL, you can hack it. Used by MeeGo, VLC, GNOME 3, Dell, Cray... Android client, various APIs More distros ISO / VM creation

References http://openbuildservice.org/ http://en.opensuse.org/openSUSE:Build_Service https://build.opensuse.org/ opensuse-buildservice@opensuse.org #opensuse-buildservice on Freenode