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

User Guide

Open Build Service

Publication Date: 11/24/2023
About this Guide
Available Documentation
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
2.9 mkosi
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 SCM/CI Workflow Integration
8.1 SCM/CI Workflow Integration Setup
8.2 SCM/CI Workflow Steps Reference Table
8.3 SCM/CI Workflow Versions
8.4 SCM/CI Workflow Integration Use-Cases
9 Staging Workflow
9.1 Working with Staging Projects
9.2 Working with Requests
10 Notifications
10.1 Notifications Configuration
10.2 Where Can We Find the Notifications?
10.3 Notifications Content
10.4 Mark Notification as Read or Unread
10.5 Notifications Filters
10.6 API
V Best Practices
11 Using the OBS Web UI
11.1 Homepage and Login
11.2 Home Project
11.3 My Projects, Server Status
11.4 Create a link to a package in your home
11.5 Repository Output: Built Packages
11.6 Managing Repositories
11.7 Image Templates
11.8 KIWI Editor
11.9 Manage Group
11.10 Staging Workflow
12 Basic Concepts and Work Styles
12.1 Setup a project reusing other projects sources
12.2 Contributing to External Projects Directly
12.3 Contributing to Foreign Projects Indirectly
13 How to integrate external SCM sources
13.1 How to create a source service
14 Publishing Upstream Binaries
14.1 Which Instance to Use?
14.2 Where to Place Your Project
14.3 Creating a Package
14.4 Getting Binaries
15 Bootstrapping
15.1 The Issue
15.2 A Cheat Sheet
15.3 Creating a First Project
16 osc Example Commands
16.1 Package Tracking
17 Advanced Project Setups
17.1 Rebuilding an Entire Project with Changes
17.2 Integrating Source Handling
17.3 Using OBS for Automated QA
18 Building Kernel Modules
19 Common Questions and Solutions
19.1 Working with Limited Bandwidth
VI Reference
20 OBS Architecture
20.1 Overview Graph
20.2 Communication Flow
21 OBS Concepts
21.1 Project Organization
21.2 The OBS Interconnect
21.3 Download on Demand Repositories (DoD)
21.4 Integrating External Source Repositories
22 Build Process
22.1 Phases of a Build Process
22.2 Identify a build
23 Build Containers
23.1 Supported Container Formats
23.2 Container Registry
23.3 Container Image Signatures
24 Source Management
24.1 Find Package Sources
24.2 Generating SLSA Provenance Data
24.3 Generating SBOM (Software Bill Of Material) Data
25.1 SCM Bridge
26 Supported Formats
26.1 Spec File Specials (RPM)
26.2 OBS Extensions for (KIWI) Appliance Builds
26.3 OBS Extensions for Dockerfile based builds
27 Request And Review System
27.1 What a request looks like
28 Image Templates
28.1 Structure of Image Templates
28.2 Adding Image Templates to/Removing Image Templates from the Official Image Template Page
28.3 Receiving Image Templates via Interconnect
29 Multiple Build Description File Handling
29.1 Overview
29.2 How Multibuild is Defined
30 Maintenance Support
30.1 Simple Project Setup
30.2 Project setup for the Maintenance Process
30.3 Using the Maintenance Process
30.4 OBS Internal Mechanisms
30.5 Setting Up Projects for a Maintenance Cycle
30.6 Optional Channel Setup
31 Binary Package Tracking
31.1 Which Binaries Are Tracked?
31.2 What Data Is Tracked?
31.3 API Search Interface
32 Administration
32.1 OBS Components
32.2 OBS Appliances
32.3 Back-end Administration
32.4 Front-end Administration
33 Scheduling and Dispatching
33.1 Definition of a Build Process
33.2 Scheduling Strategies
33.3 Release Number Handling
34 Build Job Constraints
34.1 hostlabel
34.2 sandbox
34.3 linux
34.4 hardware
34.5 Constraint Handling
34.6 Checking Constraints with osc
35 Building Preinstall Images
36 Authorization
36.1 OBS Authorization Methods
36.2 OBS Token Authorization
37 Quality Assurance(QA) Hooks
37.1 Source Related Checks
37.2 Build Time Checks
37.3 Workflow Checks
38 openSUSE Factory
38.1 openSUSE:Factory project
38.2 Devel Projects
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
8.1 Webhooks on GitHub.
8.2 Webhooks on GitLab.
8.3 Webhooks on Gitea.
8.4 Configuration File Location Options in Edit Token
8.5 Build Status
8.6 Build Status for Several Multibuild Flavors
8.7 Tokens list
8.8 Workflow Runs
8.9 Workflow Runs - Request
8.10 Workflow Runs - Response
8.11 Workflow Runs - Artifacts
10.1 "Manage Your Notifications" link.
10.2 Mark Web Notifications.
10.3 Mark Web Notifications for Groups.
10.4 Notifications Link.
10.5 Notifications Page.
10.6 Mark single notification as read.
10.7 Mark notification as read through toolbar.
10.8 Checkboxes to mark multiple notifications.
10.9 Mark all as read.
10.10 Example of notification filters.
11.1 Start page
11.2 Login
11.3 Logged in
11.4 Project Page
11.5 Updating project description
11.6 Creating Subprojects
11.7 My Projects
11.8 Status Monitor
11.9 My Projects
11.10 Branch Package
11.11 Apache Flood Branch
11.12 Branched Package
11.13 flood_succeeded_finished
11.14 flood_build_success
11.15 flood_build_log
11.16 My_Repository
11.17 Repository Structure
11.18 Adding a Repository to a Project
11.19 Adding a Download on Demand Repository
11.20 Download on Demand Repository Form
11.21 Adding Download on Demand repository sources
11.22 Form for Adding DoD Repository Sources
11.23 Form for editing DoD repository sources
11.24 OBS Templates Page
11.25 Form for creating image template subproject
11.26 New Image Template
11.27 Enabling the KIWI Image Build Repository
11.28 Overview of Sources of a Custom Image Template
11.29 Example of a Package with a KIWI XML File
11.30 KIWI Editor. Show screen
11.31 KIWI Adding a new repository - Basic Mode
11.32 KIWI Adding a new repository - Expert Mode
11.33 KIWI Use project configuration
11.34 KIWI Adding a new package
11.35 Manage a Group
11.36 Staging Workflow Basic Schema
11.37 Staging Workflow Schema
11.38 Creating a Staging Workflow for openSUSE:Factory
11.39 Staging Workflow Show Screen
11.40 Staging Workflow Delete Icon
11.41 Delete a Staging Workflow
11.42 Staging Workflow Configure Icon
11.43 Configuring a Staging Workflow
11.44 Create a New Staging Project
11.45 Copy Staging Project from Template
11.46 Looking into a Staging Project
11.47 History
11.48 Exclude Requests
14.1 openSUSE download page for package from OBS
20.1 Simplified OBS Component Overview
20.2 OBS Communication (Simplified)
30.1 Simple Project Setup
32.1 Simplified OBS Component Overview

Copyright © 2006– 2023 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