Part VI Reference #
- 21 OBS Architecture
- 22 OBS Concepts
We describe here the high-level concepts: how Open Build Service is designed, manages its content and is supposed to work.
- 23 Build Process
The build process creates new binaries from sources, binaries, and config. This process may run on the OBS server side or on a local workstation. Each package build is created in a fresh environment. This is done to ensure that the environment is reproducible.
- 24 Build Containers
- 25 Source Management
OBS is adding information to each created package about the origin of the sources. This information is stored in the
DISTURL
tag of an rpm, which can be displayed as follows:- 26 SCM Bridge
The SCM bridge allows the sources of a single package or an entire project to be stored and maintained in any trusted SCM repositories. However, git is currently the only supported SCM system.
- 27 Supported Formats
Open Build Service is by design format agnostic, but it needs format specific support to be able to parse build descriptions and running the build. This chapter is focusing on describing Open Build Service specifics of a format. Either limitations or extensions of Open Build Service builds.
- 28 Request and Review System
The OBS comes with a generic request system where one party can ask another to complete a certain action. This can be, for example, taking source changes, granting maintainer rights or deleting a package. Requests are also used deal with more complex workflows.
- 29 Image Templates
Image templates are pre-configured image configurations. The image templates page provides a list of these templates. Users can clone these templates and further configure them as they like.
- 30 Multiple Build Description File Handling
A package source may contain multiple build description files. They can be used depending on the base distribution, the repository name or for different configurations. These mechanics can be also combined.
- 31 Maintenance Support
This chapter explains the setup and workflow of a maintenance update in the openSUSE way. However, this should not be limited to openSUSE distribution projects but be usable anywhere (the entire workflow or just parts of it).
- 32 Binary Package Tracking
Products and updates to them are often officially supported by a company. To allow giving such support, there is binary package tracking. This feature allows checking which exact version of a package was shipped at what time. This feature is often important for release managers, maintenance engineer…
- 33 Scheduling and Dispatching
One of the major functionalities of OBS is to calculate always the current state, based on available sources, binaries and user configurations. In case a change happened it will trigger builds to achieve a clean state again. The calculation of the need of a build job is called scheduling here. The a…
- 34 Build Constraints
Build constraints provide a way for the user to specify build worker parameters that the Build Service will use to decide which build workers are "qualified" to undertake a given build.
- 35 Building Preinstall Images
Preinstall images can optionally be used to install a set of packages in one quick step instead via single package installations. Depending on the build host even snapshots with copy-on-write support may be used which avoids any IO.
- 36 Authorization
Each package is signed with a PGP key to allow checking its integrity on user's machines.
- 37 Quality Assurance(QA) Hooks
OBS provides multiple hooks to place automated or manual tests at different points of time.