Jump to contentJump to page navigation: previous page [access key p]/next page [access key n]

User Guide

Open Build Service

Publication Date: 02/19/2021
About this Guide
Available Documentation
Feedback
Documentation Conventions
Contributing to the Documentation
I First Steps
1 Beginnerʼs Guide
1.1 Target Audience
1.2 Conceptual Overview
1.3 Requirements for Working with the osc Command-Line Tool
1.4 Covered Scenarios
1.5 Configuring Your System for OBS
1.6 Setting Up Your Home Project for the First Time
1.7 Creating a New Project
1.8 Patching Source Code
1.9 Branching a Package
1.10 Installing Packages from OBS
1.11 Other Useful osc Commands
II Concepts
2 Supported Build Recipes and Package Formats
2.1 About Formats
2.2 RPM: Spec
2.3 Debian: Dsc
2.4 Arch: pkg
2.5 KIWI Appliance
2.6 SimpleImage
2.7 AppImage
2.8 Flatpak
III Setup
3 osc, the Command Line Tool
3.1 Installing and Configuring
3.2 Configuring osc
3.3 Usage
4 Project Configuration
4.1 About the Project Configuration
4.2 Configuration File Syntax
4.3 Macro Section
IV Usage
5 Basic OBS Workflow
5.1 Setting Up Your Home Project
5.2 Creating a New Package
5.3 Investigating the Local Build Process
5.4 Adding Dependencies to Your Project
5.5 Manage Group
6 Local Building
6.1 Generic build options
6.2 Advanced Build Environment Handling
7 Using Source Services
7.1 About Source Service
7.2 Modes of Services
7.3 Defining Services for Validation
7.4 Creating Source Service Definitions
7.5 Removing a Source Service
7.6 Trigger a service run via a webhook
8 Staging Workflow
8.1 Working with Staging Projects
8.2 Working with Requests
V Best Practices
9 Using the OBS Web UI
9.1 Homepage and Login
9.2 Home Project
9.3 My Projects, Server Status
9.4 Create a link to a package in your home:
9.5 Repository Output: Built Packages
9.6 Managing Repositories
9.7 Image Templates
9.8 KIWI Editor
9.9 Manage Group
9.10 Staging Workflow
10 Basic Concepts and Work Styles
10.1 Setup a project reusing other projects sources
10.2 Contributing to External Projects Directly
10.3 Contributing to Foreign Projects Indirectly
11 How to integrate external SCM sources
11.1 How to create a source service
12 Publishing Upstream Binaries
12.1 Which Instance to Use?
12.2 Where to Place Your Project
12.3 Creating a Package
12.4 Getting Binaries
13 Bootstrapping
13.1 The Issue
13.2 A Cheat Sheet
13.3 Creating a First Project
14 osc Example Commands
14.1 Package Tracking
15 Advanced Project Setups
15.1 Rebuilding an Entire Project with Changes
15.2 Integrating Source Handling
15.3 Using OBS for Automated QA
16 Building Kernel Modules
17 Common Questions and Solutions
17.1 Working with Limited Bandwidth
VI Reference
18 OBS Architecture
18.1 Overview Graph
18.2 Communication Flow
19 OBS Concepts
19.1 Project Organization
19.2 The OBS Interconnect
19.3 Download on Demand Repositories (DoD)
19.4 Integrating External Source Repositories
20 Build Process
20.1 Phases of a Build Process
20.2 Identify a build
21 Source Management
21.1 Find Package Sources
22 Supported Formats
22.1 Spec File Specials (RPM)
22.2 OBS Extensions for (KIWI) Appliance Builds
22.3 OBS Extensions for Dockerfile based builds
23 Request And Review System
23.1 What a request looks like
24 Image Templates
24.1 Structure of Image Templates
24.2 Adding Image Templates to/Removing Image Templates from the Official Image Template Page
24.3 Receiving Image Templates via Interconnect
25 Multiple Build Description File Handling
25.1 Overview
25.2 How Multibuild is Defined
26 Maintenance Support
26.1 Simple Project Setup
26.2 Project setup for the Maintenance Process
26.3 Using the Maintenance Process
26.4 OBS Internal Mechanisms
26.5 Setting Up Projects for a Maintenance Cycle
26.6 Optional Channel Setup
27 Binary Package Tracking
27.1 Which Binaries Are Tracked?
27.2 What Data Is Tracked?
27.3 API Search Interface
28 Administration
28.1 OBS Components
28.2 OBS Appliances
28.3 Back-end Administration
28.4 Front-end Administration
29 Scheduling and Dispatching
29.1 Definition of a Build Process
29.2 Scheduling Strategies
30 Build Job Constraints
30.1 hostlabel
30.2 sandbox
30.3 linux
30.4 hardware
30.5 Constraint Handling
30.6 Checking Constraints with osc
31 Building Preinstall Images
32 Authorization
32.1 OBS Authorization Methods
32.2 OBS Token Authorization
33 Quality Assurance(QA) Hooks
33.1 Source Related Checks
33.2 Build Time Checks
33.3 Workflow Checks
34 openSUSE Factory
34.1 openSUSE:Factory project
34.2 Devel Projects
Glossary
A GNU Licenses
A.1 GNU General Public License
A.2 GNU Free Documentation License
List of Figures
1.1 Conceptual Overview of Open Build Service
9.1 Start page
9.2 Login
9.3 Logged in
9.4 Project Page
9.5 Updating project description
9.6 Creating Subprojects
9.7 My Projects
9.8 Status Monitor
9.9 My Projects
9.10 Branch Package
9.11 Apache Flood Branch
9.12 Branched Package
9.13 flood_succeeded_finished
9.14 flood_build_success
9.15 flood_build_log
9.16 My_Repository
9.17 Repository Structure
9.18 Adding a Repository to a Project
9.19 Adding a Download on Demand Repository
9.20 Download on Demand Repository Form
9.21 Adding Download on Demand repository sources
9.22 Form for Adding DoD Repository Sources
9.23 Form for editing DoD repository sources
9.24 OBS Templates Page
9.25 Form for creating image template subproject
9.26 New Image Template
9.27 Enabling the KIWI Image Build Repository
9.28 Overview of Sources of a Custom Image Template
9.29 Example of a Package with a KIWI XML File
9.30 KIWI Editor. Show screen
9.31 KIWI Adding a new repository - Basic Mode
9.32 KIWI Adding a new repository - Expert Mode
9.33 KIWI Use project configuration
9.34 KIWI Adding a new package
9.35 Manage a Group
9.36 Staging Workflow Basic Schema
9.37 Staging Workflow Schema
9.38 Creating a Staging Workflow for openSUSE:Factory
9.39 Staging Workflow Show Screen
9.40 Staging Workflow Delete Icon
9.41 Delete a Staging Workflow
9.42 Staging Workflow Configure Icon
9.43 Configuring a Staging Workflow
9.44 Create a New Staging Project
9.45 Copy Staging Project from Template
9.46 Looking into a Staging Project
9.47 History
9.48 Exclude Requests
12.1 openSUSE download page for package from OBS
18.1 Simplified OBS Component Overview
18.2 OBS Communication (Simplified)
26.1 Simple Project Setup
28.1 Simplified OBS Component Overview

Copyright © 2006– 2021 SUSE LLC and contributors. All rights reserved.

Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or (at your option) version 1.3; with the Invariant Section being this copyright notice and license. A copy of the license version 1.2 is included in the section entitled GNU Free Documentation License.

For SUSE trademarks, see http://www.suse.com/company/legal/. All other third-party trademarks are the property of their respective owners. Trademark symbols (®, ™ etc.) denote trademarks of SUSE and its affiliates. Asterisks (*) denote third-party trademarks.

All information found in this book has been compiled with utmost attention to detail. However, this does not guarantee complete accuracy. Neither SUSE LLC, its affiliates, the authors nor the translators shall be held liable for possible errors or the consequences thereof.

Print this page