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

User Guide

Open Build Service

Publication Date: 05/23/2024
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 Build Configuration
4.1 About the Build Configuration
4.2 Configuration File Syntax
4.3 Building with ccache or sccache
4.4 Macro Definitions in the Build Configuration
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
11 Moderation
11.1 Code of Conduct
11.2 Reporting Problematic Content
11.3 Acting as a Moderator
11.4 Reverting Moderator's Actions
11.5 User Appeal
11.6 Canned Responses For Moderators
V Best Practices
12 Using the OBS Web UI
12.1 Homepage and Login
12.2 Home Project
12.3 My Projects, Server Status
12.4 Create a link to a package in your home
12.5 Repository Output: Built Packages
12.6 Managing Repositories
12.7 Image Templates
12.8 KIWI Editor
12.9 Manage Group
12.10 Staging Workflow
13 Basic Concepts and Work Styles
13.1 Setup a project reusing other projects sources
13.2 Contributing to External Projects Directly
13.3 Contributing to Foreign Projects Indirectly
14 How to integrate external SCM sources
14.1 How to create a source service
15 Publishing Upstream Binaries
15.1 Which Instance to Use?
15.2 Where to Place Your Project
15.3 Creating a Package
15.4 Getting Binaries
16 Bootstrapping
16.1 The Issue
16.2 A Cheat Sheet
16.3 Creating a First Project
17 osc Example Commands
17.1 Package Tracking
18 Advanced Project Setups
18.1 Rebuilding an Entire Project with Changes
18.2 Integrating Source Handling
18.3 Using OBS for Automated QA
19 Building Kernel Modules
20 Common Questions and Solutions
20.1 Working with Limited Bandwidth
VI Reference
21 OBS Architecture
21.1 Overview Graph
21.2 Communication Flow
22 OBS Concepts
22.1 Project Organization
22.2 The OBS Interconnect
22.3 Download on Demand Repositories (DoD)
22.4 Integrating External Source Repositories
23 Build Process
23.1 Phases of a Build Process
23.2 Identify a build
24 Build Containers
24.1 Supported Container Formats
24.2 Container Registry
24.3 Container Image Signatures
25 Source Management
25.1 Find Package Sources
25.2 Generating SLSA Provenance Data
25.3 Generating SBOM (Software Bill Of Material) Data
26 SCM Bridge
26.1 SCM Bridge
27 Supported Formats
27.1 Spec File Specials (RPM)
27.2 OBS Extensions for (KIWI) Appliance Builds
27.3 OBS Extensions for Dockerfile based builds
28 Request And Review System
28.1 What a request looks like
29 Image Templates
29.1 Structure of Image Templates
29.2 Adding Image Templates to/Removing Image Templates from the Official Image Template Page
29.3 Receiving Image Templates via Interconnect
30 Multiple Build Description File Handling
30.1 Overview
30.2 How Multibuild is Defined
31 Maintenance Support
31.1 Simple Project Setup
31.2 Project setup for the Maintenance Process
31.3 Using the Maintenance Process
31.4 OBS Internal Mechanisms
31.5 Setting Up Projects for a Maintenance Cycle
31.6 Optional Channel Setup
32 Binary Package Tracking
32.1 Which Binaries Are Tracked?
32.2 What Data Is Tracked?
32.3 API Search Interface
33 Administration
33.1 OBS Components
33.2 OBS Appliances
33.3 Back-end Administration
33.4 Front-end Administration
34 Scheduling and Dispatching
34.1 Definition of a Build Process
34.2 Scheduling Strategies
34.3 Release Number Handling
35 Build Constraints
35.1 Build Resource Usage and Statistics
35.2 Constraint Qualifiers
35.3 Constraint scope and precedence
35.4 Constraint syntax
35.5 Constraint Handling
35.6 Checking Constraints with osc
36 Building Preinstall Images
37 Authorization
37.1 OBS Authorization Methods
37.2 OBS Token Authorization
38 Quality Assurance(QA) Hooks
38.1 Source Related Checks
38.2 Build Time Checks
38.3 Workflow Checks
39 openSUSE Factory
39.1 openSUSE:Factory project
39.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 Code of Conduct
11.2 Configuration Code of Conduct
11.3 Report a Comment
11.4 Report a User
11.5 Report Comment and Author
11.6 Reports Warning
11.7 Moderation-related Notifications
11.8 Decision Form
11.9 Comment Edition History
11.10 Moderate a Comment
11.11 Appeal to Decision
11.12 Canned Responses
12.1 Start page
12.2 Login
12.3 Logged in
12.4 Project Page
12.5 Updating project description
12.6 Creating Subprojects
12.7 My Projects
12.8 Status Monitor
12.9 My Projects
12.10 Branch Package
12.11 Apache Flood Branch
12.12 Branched Package
12.13 flood_succeeded_finished
12.14 flood_build_success
12.15 flood_build_log
12.16 My_Repository
12.17 Repository Structure
12.18 Adding a Repository to a Project
12.19 Adding a Download on Demand Repository
12.20 Download on Demand Repository Form
12.21 Adding Download on Demand repository sources
12.22 Form for Adding DoD Repository Sources
12.23 Form for editing DoD repository sources
12.24 OBS Templates Page
12.25 Form for creating image template subproject
12.26 New Image Template
12.27 Enabling the KIWI Image Build Repository
12.28 Overview of Sources of a Custom Image Template
12.29 Example of a Package with a KIWI XML File
12.30 KIWI Editor. Show screen
12.31 KIWI Adding a new repository - Basic Mode
12.32 KIWI Adding a new repository - Expert Mode
12.33 KIWI Use project configuration
12.34 KIWI Adding a new package
12.35 Manage a Group
12.36 Staging Workflow Basic Schema
12.37 Staging Workflow Schema
12.38 Creating a Staging Workflow for openSUSE:Factory
12.39 Staging Workflow Show Screen
12.40 Staging Workflow Delete Icon
12.41 Delete a Staging Workflow
12.42 Staging Workflow Configure Icon
12.43 Configuring a Staging Workflow
12.44 Create a New Staging Project
12.45 Copy Staging Project from Template
12.46 Looking into a Staging Project
12.47 History
12.48 Exclude Requests
15.1 openSUSE download page for package from OBS
21.1 Simplified OBS Component Overview
21.2 OBS Communication (Simplified)
31.1 Simple Project Setup
33.1 Simplified OBS Component Overview

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