Open Build Service Migration to Fedora

Total Page:16

File Type:pdf, Size:1020Kb

Open Build Service Migration to Fedora MASARYK UNIVERSITY FACULTY}w¡¢£¤¥¦§¨ OF I !"#$%&'()+,-./012345<yA|NFORMATICS Open Build Service migration to Fedora DIPLOMA THESIS Bc. Josef Stˇríbný Brno, Fall 2014 Declaration Hereby I declare, that this paper is my original authorial work, which I have worked out by my own. All sources, references and literature used or excerpted during elaboration of this work are properly cited and listed in complete reference to the due source. Advisor: Mgr. Marek Grác, Ph.D. ii Acknowledgement I would love to thank my parents for their great support throughout my university studies. Their hard work was essential part of making this thesis a reality. I would also like to thank Marek Grác, Mirek Suchý and Adrian Schröter for their inputs and consultation during the writing of this thesis. iii Abstract The aim of this thesis is to migrate the Open Build Service (OBS) to Fedora. The text part describes the current tools for building the Fe- dora RPM packages, the OBS build system and the necessary changes to be done for OBS to be used within the Fedora Project. The practical part deals with the packaging of OBS for Fedora and its infrastruc- ture. iv Keywords OBS, RPM, build system, Fedora v Contents 1 Introduction ............................3 2 RPM-based Distributions ....................5 2.1 RPM .............................5 2.2 rpmbuild ........................... 10 2.3 createrepo .......................... 11 3 Fedora Build Systems and Tooling ............... 13 3.1 Yum .............................. 13 3.2 DNF .............................. 14 3.3 Mock ............................. 14 3.4 Koji .............................. 17 3.4.1 Koji-Hub . 17 3.4.2 Kojid . 17 3.4.3 Koji-Web . 18 3.4.4 Koji-Client . 18 3.4.5 Kojira . 19 3.5 fedpkg ............................ 19 3.6 Bodhi ............................. 19 3.7 Copr ............................. 20 4 Open Build Service ........................ 22 4.1 OBS Server .......................... 22 4.1.1 Repository Server . 23 4.1.2 Scheduler . 23 4.1.3 Dispatcher . 23 4.1.4 Worker . 24 4.1.5 Publisher . 24 4.1.6 Source Server . 24 4.2 OBS API ........................... 24 4.3 obs-build ........................... 27 4.4 obs-signd ........................... 28 4.5 osc ............................... 29 5 Analyses and Design ....................... 31 5.1 Fedora Packaging ...................... 31 5.1.1 Dependencies . 31 5.1.2 OBS . 33 5.2 Fedora System Integration ................. 35 1 5.2.1 systemd . 35 5.2.2 SELinux . 36 5.3 Fedora Tooling Integration ................. 40 6 Conclusion ............................. 41 A Installation and Setup ...................... 45 A.1 Installation .......................... 45 A.2 Setup ............................. 45 B Attachements ........................... 47 2 1 Introduction Fedora is a Linux distribution1 that uses RPM package format as its preferred method of distributing software. To create such binary packages for the whole distribution in a meaningful way Fedora Pro– ject2 developed build system3 for building RPM packages called Koji. Koji is used successfully for years, but the development is rather slow and it misses features that can be already found in the much more profound, general, and feature-complete Open Build Service (OBS) project, a build system originally created for building openSUSE op- erating system packages. The first real consideration to port OBS for the Fedora operat- ing system came from Mirek Suchý, a new maintainer of the Copr project[1], who was preparing the design and architecture of the new Copr build system for the Fedora Project. One of the variants was to leverage the work behind the OBS project and built on top of it since it already offered a full feature set for Copr requirements[2, 3]. Apart from the features provided by OBS, the project has reached a certain maturity level and quite impressive community including companies such as Intel, Nokia, SGI, CRAY and Dell since its pre- miere at FOSDEM in 2006 [27]. As Mirek Suchý later mentions on the Fedora devel mailing list from September 2013 [4], OBS does not have established community within the Fedora Project, it is unfamiliar to the Fedora packagers, lacks the support for Fedora-specific tooling, and therefore it is de- cided not to use OBS as the Copr backend. But the idea of having OBS in Fedora and reconsider its use in the official Fedora Project build systems later stayed alive. Moreover the decision of using the obs- signd, an OBS optional component for signing the built packages, for the Copr package signing was made[5]. So to say, if Fedora as a project should reconsider the use of OBS, the OBS needs to be 1. An operating system created as a collection of packaged software based on the Linux kernel and mostly around a package management system of some sort. 2. A community-based project sponsored by Red Hat to co-ordinate the develop- ment of the free and open source Fedora operating system. 3. Software made to create binary packages for Linux distribution involving com- piling source code into binary code, running automated tests and packaging. 3 1. INTRODUCTION packaged for Fedora with the support for the Fedora specific tool- ing and some awareness of OBS within the Fedora packagers needs to be raised. The objective of this thesis is therefore to cover the Fedora’s cur- rent tooling and build systems, the OBS project description with its differences to the tools used within Fedora, and an analyses of the OBS packaging for the Fedora operating system. The practical outcome of this thesis should be the RPM packages of OBS dependencies, and RPM packages of OBS for Fedora including the optional obs-signd component as this component will be used in the Fedora Copr build system. This thesis is also meant to be used as a future reference for the reconsideration of OBS as a build system for the Fedora distribu- tion. 4 2 RPM-based Distributions On an RPM-based Linux distribution (such as Fedora or openSUSE), all basic software comes pre-installed in a form of binary RPM pack- age including the Linux kernel. Distributing software as such pack- ages helps to skip the compilation step during an installation, re- duce the size (as sources are not needed), verify the origin of the files through package signing and provide a meaningful way how to man- age, maintain and upgrade installed software within the operating system. Even though RPM is a package manager itself, Fedora fea- tures other package managers such as Yum and DNF that work on top of RPM and provide a single user interface to package manage- ment featuring advanced dependency solving. 2.1 RPM The RPM Package Manager (RPM) is a powerful command line driven package management system capable of installing, uninstalling, veri- fying, querying, and updating computer software packages, and also the name for the associated file format[6, 28]. Each RPM package con- sists of an archive of files along with additional information about the package including helper scripts and file attributes to install or erase the package. Although RPM can be used directly to install, re- move or update a package, management of RPM packages are on modern RPM-based operating systems left to other tools like Yum or DNF. This is mainly due to the support for package dependency solving and quering external repositories. Hovewer, RPM is still used directly for quering and verifying installed packages: # Find configuration files for Apache HTTP server $ rpm -qc httpd /etc/httpd/conf.d/autoindex.conf /etc/httpd/conf.d/userdir.conf /etc/httpd/conf.d/welcome.conf /etc/httpd/conf.modules.d/00-base.conf /etc/httpd/conf.modules.d/00-dav.conf /etc/httpd/conf.modules.d/00-lua.conf 5 2. RPM-BASED DISTRIBUTIONS /etc/httpd/conf.modules.d/00-mpm.conf /etc/httpd/conf.modules.d/00-proxy.conf /etc/httpd/conf.modules.d/00-systemd.conf /etc/httpd/conf.modules.d/01-cgi.conf /etc/httpd/conf/httpd.conf /etc/httpd/conf/magic /etc/logrotate.d/httpd /etc/sysconfig/htcacheclean /etc/sysconfig/httpd An RPM package is always created from its Source RPM (SRPM) which contains the package sources (upstream source files, patches) and an RPM specification file. This specification file can carry impor- tant metadata such as license, software category, package run-time and build-time dependencies, and contains the information on how to build the RPM packages. A specification preamble could look like the following: %global gem_name activerecord Summary: Implements the~ActiveRecord pattern for ORM Name: rubygem-%{gem_name} Epoch: 1 Version: 4.1.1 Release: 1%{?dist} Group: Development/Languages License: MIT URL: http://www.rubyonrails.org Source0: http://rubygems.org/downloads/ activerecord-%{version}.gem # git clone http://github.com/rails/rails.git # cd rails/activerecord/ # git checkout v4.1.1 # tar czvf activerecord-4.1.1-tests.tgz test/ Source1: activerecord-%{version}-tests.tgz BuildRequires: rubygems-devel BuildRequires: rubygem(bcrypt) BuildRequires: rubygem(activesupport) = %{version} 6 2. RPM-BASED DISTRIBUTIONS BuildRequires: rubygem(activemodel) = %{version} BuildRequires: rubygem(sqlite3) BuildRequires: rubygem(erubis) BuildRequires: rubygem(mocha) BuildRequires: rubygem(arel) >= 5.0.0 BuildRequires: rubygem(arel) < 6.0.0 BuildRequires: rubygem(minitest) BuildRequires: rubygem(rack) BuildArch: noarch %description Implements the~ActiveRecord pattern (Fowler, PoEAA ) for ORM. It ties database tables and classes together for business objects, like Customer or Subscription, that can find, save, and destroy themselves without resorting to manual SQL. %package doc Summary: Documentation for %{name} Group: Documentation Requires: %{name} = %{epoch}:%{version}-%{release} BuildArch: noarch %description doc Documentation for %{name} The specification file is full of macros[7] that look like %{macro} or %macro. Macros are meaningful placeholders that encapsulate some common logic or name. This way we can define the name of our package at the top of the specification file with %global and change the name of the package always at one place. Other globally defined macros come from /usr/lib/rpm/macros, /etc/rpm/macros.* and /.rpmmacros files and are also used to provide a unified logic or represent a naming convention in various parts of the build process.
Recommended publications
  • Vpro-1085-R Course for RHV/Ovirt/OLVM Implementation & Administration Lab Exercises
    vPro-1085-R - Storware vProtect - Implementation & Administration Lab Exercises - v7.md 2/24/2021 vPro-1085-R Course for RHV/oVirt/OLVM Implementation & Administration Lab Exercises Credentials and access details Attribute Value Download URL http://10.40.0.253/lab-materials/vprotect/vpro-1085 vProtect host 10.41.0.4 vProtect username root vProtect password St0rL@bs vProtect Web UI https://10.41.0.4 vProtect Web UI username admin vProtect Web UI password vPr0tect RHV manager UI https://rhv-m.storware.lab/ovirt-engine RHV user admin@internal in vProtect in UI, and admin in RHV manager UI RHV password St0rL@bs Lab 1 - Demo of all-in-one installation In this section we'll show you how to install vProtect components quickly using all-in-one setup scripts. Before installation steps please update and then reboot system dnf -y update Remote repository (option 1) 1. Export VPROTECT_REPO variable to point to the repository URL export VPROTECT_REPO=http://10.40.0.253/vprotect/current/el8 2. Execute script: bash < <(curl -s http://repo.storware.eu/vprotect/vprotect-local-install.sh) 1 / 31 vPro-1085-R - Storware vProtect - Implementation & Administration Lab Exercises - v7.md 2/24/2021 Lab 2 - Installation with RPMs In this section you're going to install vProtect using RPMs - so that all necessary steps are done Prerequisites 1. Access vlab.vpro.proxy.v3 2. Open putty on your vlab.vpro.proxy.v3 3. Connect to vProtect machine with a root access 4. Use your CentOS 8 minimal 5. Make sure your OS is up to date: dnf -y update If kernel is updated, then You need to reboot your operating system.
    [Show full text]
  • Tizen IVI “From Scratch” Customizing, Building and Testing
    Tizen IVI “from scratch” Customizing, building and testing Stéphane Desneux Senior Software Engineer Eurogiciel <[email protected]> Eurogiciel ● Open source development and integration: ● Maintainers in multiple domains on tizen.org ● Embedded systems for real-time multimedia: ▪ Widi/Miracast stack ▪ Wayland/Weston ▪ Webkit2 browser with HW acceleration ● Applications: HTML5/CSS3, jquery, jqmobi, Cordova ● Location : Vannes (Brittany), France 14 2 FOSDEM' Automotive devroom – Tizen “from scratch” : customize, build, test ! Agenda ● Tizen & Tizen:IVI : short introduction ● From source code to target devices ● Customize ● Build ● Flash, Run, Test ! 14 3 FOSDEM' Automotive devroom – Tizen “from scratch” : customize, build, test ! Tizen: a short introduction Definition ● Open source project ● Hosted at the Linux Foundation ● Innovative Web-based platform for multiple devices ● Sponsored by worldwide companies ● Samsung & Intel are two big contributors ● Built on industry standards: ● GNU/Linux kernel, GNU libc ● POSIX ● W3C ● Many upstream Open Source projects 14 5 FOSDEM' Automotive devroom – Tizen “from scratch” : customize, build, test ! Tizen Profiles ● Multiple vertical profiles (derived from Tizen:Generic) ● IVI ● Mobile ● Future: other devices (TV, ...) ● Each profile adds its own enhancements ● Tizen packaging format: RPM 14 6 FOSDEM' Automotive devroom – Tizen “from scratch” : customize, build, test ! From source code … … to target devices 1: Source code GIT Repositories Remote Local Clone source repo Developers
    [Show full text]
  • Red Hat Enterprise Linux 8 Installing, Managing, and Removing User-Space Components
    Red Hat Enterprise Linux 8 Installing, managing, and removing user-space components An introduction to AppStream and BaseOS in Red Hat Enterprise Linux 8 Last Updated: 2021-06-25 Red Hat Enterprise Linux 8 Installing, managing, and removing user-space components An introduction to AppStream and BaseOS in Red Hat Enterprise Linux 8 Legal Notice Copyright © 2021 Red Hat, Inc. The text of and illustrations in this document are licensed by Red Hat under a Creative Commons Attribution–Share Alike 3.0 Unported license ("CC-BY-SA"). An explanation of CC-BY-SA is available at http://creativecommons.org/licenses/by-sa/3.0/ . In accordance with CC-BY-SA, if you distribute this document or an adaptation of it, you must provide the URL for the original version. Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law. Red Hat, Red Hat Enterprise Linux, the Shadowman logo, the Red Hat logo, JBoss, OpenShift, Fedora, the Infinity logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries. Linux ® is the registered trademark of Linus Torvalds in the United States and other countries. Java ® is a registered trademark of Oracle and/or its affiliates. XFS ® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries. MySQL ® is a registered trademark of MySQL AB in the United States, the European Union and other countries.
    [Show full text]
  • Release Notes for Fedora 22
    Fedora 22 Release Notes Release Notes for Fedora 22 Edited by The Fedora Docs Team Copyright © 2015 Fedora Project Contributors. The text of and illustrations in this document are licensed by Red Hat under a Creative Commons Attribution–Share Alike 3.0 Unported license ("CC-BY-SA"). An explanation of CC-BY-SA is available at http://creativecommons.org/licenses/by-sa/3.0/. The original authors of this document, and Red Hat, designate the Fedora Project as the "Attribution Party" for purposes of CC-BY-SA. In accordance with CC-BY-SA, if you distribute this document or an adaptation of it, you must provide the URL for the original version. Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law. Red Hat, Red Hat Enterprise Linux, the Shadowman logo, JBoss, MetaMatrix, Fedora, the Infinity Logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries. For guidelines on the permitted uses of the Fedora trademarks, refer to https:// fedoraproject.org/wiki/Legal:Trademark_guidelines. Linux® is the registered trademark of Linus Torvalds in the United States and other countries. Java® is a registered trademark of Oracle and/or its affiliates. XFS® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries. MySQL® is a registered trademark of MySQL AB in the United States, the European Union and other countries. All other trademarks are the property of their respective owners.
    [Show full text]
  • Bigfix Patch Centos User Guide
    BigFix Patch for CentOS User's Guide Special notice Before using this information and the product it supports, read the information in Notices (on page 91). Edition notice This edition applies to version 9.5 of BigFix and to all subsequent releases and modifications until otherwise indicated in new editions. Contents Special notice................................................................................................................................ 2 Edition notice............................................................................................................................... 3 Chapter 1. Overview.......................................................................................................... 1 What's new in this update release....................................................................................... 2 Supported platforms and updates.......................................................................................8 Supported CentOS repositories..........................................................................................10 Site subscription..................................................................................................................12 Patching method................................................................................................................. 12 Chapter 2. Using the download plug-in........................................................................... 14 Manage Download Plug-ins dashboard overview.............................................................15
    [Show full text]
  • Oracle® Linux Virtualization Manager Getting Started Guide
    Oracle® Linux Virtualization Manager Getting Started Guide F25124-11 September 2021 Oracle Legal Notices Copyright © 2019, 2021 Oracle and/or its affiliates. This software and related documentation are provided under a license agreement containing restrictions on use and disclosure and are protected by intellectual property laws. Except as expressly permitted in your license agreement or allowed by law, you may not use, copy, reproduce, translate, broadcast, modify, license, transmit, distribute, exhibit, perform, publish, or display any part, in any form, or by any means. Reverse engineering, disassembly, or decompilation of this software, unless required by law for interoperability, is prohibited. The information contained herein is subject to change without notice and is not warranted to be error-free. If you find any errors, please report them to us in writing. If this is software or related documentation that is delivered to the U.S. Government or anyone licensing it on behalf of the U.S. Government, then the following notice is applicable: U.S. GOVERNMENT END USERS: Oracle programs (including any operating system, integrated software, any programs embedded, installed or activated on delivered hardware, and modifications of such programs) and Oracle computer documentation or other Oracle data delivered to or accessed by U.S. Government end users are "commercial computer software" or "commercial computer software documentation" pursuant to the applicable Federal Acquisition Regulation and agency-specific supplemental regulations. As such, the use, reproduction, duplication, release, display, disclosure, modification, preparation of derivative works, and/or adaptation of i) Oracle programs (including any operating system, integrated software, any programs embedded, installed or activated on delivered hardware, and modifications of such programs), ii) Oracle computer documentation and/or iii) other Oracle data, is subject to the rights and limitations specified in the license contained in the applicable contract.
    [Show full text]
  • Release 3.11.0
    CEKit Release 3.11.0 May 17, 2021 Contents 1 About 3 2 Main features 5 3 I’m new, where to start? 7 4 Releases and changelog 9 5 Contact 11 6 Documentation 13 6.1 Getting started guide........................................... 13 6.2 Handbook................................................ 19 6.3 Guidelines................................................ 61 6.4 Descriptor documentation........................................ 75 6.5 Contribution guide............................................ 137 7 Sponsor 143 8 License 145 i ii CEKit, Release 3.11.0 Contents 1 CEKit, Release 3.11.0 2 Contents CHAPTER 1 About Container image creation tool. CEKit helps to build container images from image definition files with strong focus on modularity and code reuse. 3 CEKit, Release 3.11.0 4 Chapter 1. About CHAPTER 2 Main features • Building container images from YAML image definitions using many different builder engines • Integration/unit testing of images 5 CEKit, Release 3.11.0 6 Chapter 2. Main features CHAPTER 3 I’m new, where to start? We suggest looking at the getting started guide. It’s probably the best place to start. Once get through this tutorial, look at handbook which describes how things work. Later you may be interested in the guidelines sections. 7 CEKit, Release 3.11.0 8 Chapter 3. I’m new, where to start? CHAPTER 4 Releases and changelog See the releases page for latest releases and changelogs. 9 CEKit, Release 3.11.0 10 Chapter 4. Releases and changelog CHAPTER 5 Contact • Please join the #cekit IRC channel on Freenode • You can always mail us at: cekit at cekit dot io 11 CEKit, Release 3.11.0 12 Chapter 5.
    [Show full text]
  • Building Meego with OBS an Introduction to the Meego Build Infrastructure
    » The Linux Foundation Building MeeGo with OBS An Introduction to the MeeGo Build Infrastructure .................. By Rudolf Streif, The Linux Foundation June 2011 A Publication By The Linux Foundation Characters from the MeeGo Project (http://www.meego.com) http://www.linuxfoundation.org Background Building a Linux distribution from scratch can be a daunting task. Besides the obligatory Linux kernel itself with its myriad of configuration options, a working Linux distribution requires hundreds if not thousands of additional packages to form a viable platform for desktop, server, mobile or any other type of specialized applications. For embedded Linux solutions, the complexity scales with the need to support multiple and different processor architectures, hardware platforms with limited resources, requirements for cross toolchains, and more. The MeeGo project leverages the strengths of the Open Build Service (OBS) for distribution and application development. MeeGo has established a 6-months release cadence mounting two releases per year in April and October in addition to maintenance releases in-between. To support this, the MeeGo OBS environment builds bootable MeeGo images for the various MeeGo device categories and user experiences (Handset, Netbook, Tablet PC, In-vehicle Infotainment, and Smart TV) targeting multiple different hardware platforms for IA, ARM, etc. For application development, the MeeGo OBS allows developers to easily build their software packages utilizing the same infrastructure the MeeGo distributions were built with, validating dependencies and providing binary compliance. In this whitepaper, we will provide a brief introduction to the MeeGo build infrastructure and how it is utilized to support the MeeGo development process. Then we demonstrate the use of the OBS WebUI and the command-line client osc with step-by-step instructions.
    [Show full text]
  • Latest/Conf Ref.Html#files‘
    dnf-plugins-extras Documentation Release 4.0.15-1 Tim Lauridsen Jul 19, 2021 Contents 1 DNF kickstart Plugin 3 2 Extras DNF Plugins Release Notes5 3 DNF rpmconf Plugin 15 4 DNF showvars Plugin 17 5 DNF snapper Plugin 19 6 DNF system-upgrade Plugin 21 7 DNF torproxy Plugin 25 8 DNF tracer Plugin 27 9 See Also 29 10 Indices and tables 31 i ii dnf-plugins-extras Documentation, Release 4.0.15-1 This documents extras plugins of DNF: Contents 1 dnf-plugins-extras Documentation, Release 4.0.15-1 2 Contents CHAPTER 1 DNF kickstart Plugin Install packages according to Anaconda kickstart file. 1.1 Synopsis dnf kickstart <ks-file> 1.2 Arguments <ks-file> Path to the kickstart file. 1.3 Examples dnf kickstart mykickstart.ks Install the packages defined in mykickstart.ks. 1.4 See Also • Anaconda Kickstart file documentation 3 dnf-plugins-extras Documentation, Release 4.0.15-1 4 Chapter 1. DNF kickstart Plugin CHAPTER 2 Extras DNF Plugins Release Notes Contents • Extras DNF Plugins Release Notes – 4.0.15 Release Notes – 4.0.14 Release Notes – 4.0.13 Release Notes – 4.0.12 Release Notes – 4.0.10 Release Notes – 4.0.9 Release Notes – 4.0.8 Release Notes – 4.0.7 Release Notes – 4.0.6 Release Notes – 4.0.5 Release Notes – 4.0.4 Release Notes – 4.0.2 Release Notes – 4.0.1 Release Notes – 4.0.0 Release Notes – 3.0.2 Release Notes – 3.0.1 Release Notes – 3.0.0 Release Notes – 2.0.5 Release Notes 5 dnf-plugins-extras Documentation, Release 4.0.15-1 – 2.0.4 Release Notes – 2.0.3 Release Notes – 2.0.2 Release Notes – 2.0.1 Release Notes – 2.0.0 Release Notes – 0.10.0
    [Show full text]
  • Open Build Service Cross-Distribution Packaging
    Open Build Service Cross-Distribution Packaging Sascha Peilicke <[email protected]> August 7, 2011 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): 2 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 3 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, ... 4 The big picture Command Hermes Installer Web UI Line Your Tool Web UI (YaST,etc.) Client OBS API (api.opensuse.org) Notification Mirror Server Users, Auth, Database, Search, ... Interface Storage Build Build Build Build Build Build Host Host Host Host Host Host Backend 5 Web interface 6 Web interface - Statistics 7 Creating a package • Want to package an awesome app™ • Let's take choqok as an example! 8 Creating a package - Files • Requirements: – Source tarball (ha, easy!) – Build recipe (balls needed...) > Spec file for RPMs > Debian control files – Patience 9 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 10 Creating a package – Waiting • Once built locally, upload to OBS..
    [Show full text]
  • SUSE Template V2
    Continuous Integration und DevOps mit dem Open Build Service SLAC 7.6.2013 Ralf Dannert Systems Engineer [email protected] Agenda • OBS Überblick • Nutzer/Anwendungsszenarien • osc - cmdline client • Source services • Ungewöhnliche Deliverables(Kiwi) • OBS Appliance • Continuous Integration/DevOps 2 OBS History • Created in 2005 as a rewrite of SUSE's internal autobuild system ‒ Goals: transparency, flexibility, openness ‒ First presented at FOSDEM 2006 • 2010: OBS-2.0 with features for the MeeGo project • 2011: OBS-2.1 with workflow features for openSUSE source handling • Current Release: OBS-2.4 3 4 Open Build Service (previously known as openSUSE Build Service) • Automated, repeatable and consistent : ‒ Clean chroot ‒ Handle build dependencies and autorebuild if needed ‒ Take care of publishing consistent repositories • Generate packages or full OS images / appliances 5 Development • Licensed under GPLv2 ‒ https://github.com/openSUSE/open-build-service/ • Lines of Code: > 150000 ‒ Perl/Python/Ruby • Mostly maintained by SUSE, but many contributions from community members & other companies 6 Numbers • Confirmed Users: >32000 • Package builds per day: > 51000 ‒ Build farm: 38 hosts, 310 workers • Storage: ‒ Sources: 3.3 Tbytes ‒ Binaries: 6.9 TBytes 7 Features • Multiple distributions, multiple architectures ‒ rpm, deb, archlinux, image creation • Sand-boxed builds (kvm/xen/lxc) on a build farm • Easy branching with automatic merges • Continuous Integration ‒ Automatic rebuilds on changes (both source and build packages), automatic ordering
    [Show full text]
  • Tryton Open Build Service
    Building packages for Tryton Introduction to Open Build Service Axel Braun (with material from OpenBuildService) Axel Braun [email protected] [email protected] @coogor Dipl.-Ing, Dr.-Ing. Electrical engineering Works as Consultant and Project Manager mostly for international companies Lives in Düsseldorf/Germany Member of openSUSE project Package maintainer for (among others) Tryton and GNU Health (Live-CD) Supported education project: Favela Education (.org) Supported medical project: GNU Health 2 Open Build Service The easy way to packages 4 © - usesthis.com - CC-BY-SA 2.5 http://usesthis.com/images/portraits/richard.stallman.jpg 5 010011 6 ¿¿ whatever.tar.gz ?? docb@T520:~> ./configure docb@T520:~> make docb@T520:~> make install docb@T520:~> pip install 8 9 10 11 010011 12 Open Build Service Meat and Potatoes Formats DEB RPM PKGBUILD 14 Distributions CentOS ™ TM A simple, lightweight linux distribution. 15 Architectures 16 Output PACKAGE DVD IMAGE REPOSITORY 17 Open Build Service Jumpstart Overview Command Hermes Installer Web UI Line Your Client Web UI (YaST,etc.) Client OBS API (api.opensuse.org) Notification Mirror Server User controller, Database, Search, ... Interface Storage Build Build Build Build Build Build Host Host Host Host Host Host Backend 19 Project Model 20 Project Model – Build for repositories 22 Collaboration SUBMIT FORK FIX 25 API 26 Interconnect 27 Open Source 28 Open Build Service Lets start Creating Packages ✔ Create a package ✔ in your own home project 1 ✔ on the reference server 30 Building Packages ✔ Build
    [Show full text]