Skip to content

Repository

Henne Vogelsang edited this page Nov 16, 2023 · 3 revisions

Background

Linux distributions consist of one or more collections (repositories) of Linux binary packages. Like openSUSE is a collection of 3 repositories (oss, non-oss and debug) that contain several ten thousand Linux binary packages. The other Linux distributions (Fedora, Debian, Ubuntu etc.) are no different.

If you build a Linux binary package you build it (usually) to run on a specific Linux distribution.

OBS Repository

A OBS Project can have two types of build setups. It can build only against the binary packages it produces itself or the Project can be setup to build against the binary packages it produces itself and the binaries one or more other OBS Project produce.

Confusingly the name of this "build setup" is also Repository on OBS.

Repository that builds only for itself

  • A Project has a Repository
  • A Repository has a .name
  • A Repository has many Architecture

Or in xml:

<project name="some:linux">
  ...
  <repository name="standard">
    <arch>x86_64</arch>
  </repository> 
</project>

If you build for a Repository like that, it needs to provide everything the build needs. So at least the package manager you build with (RPM, deb etc.) and all of it's dependencies down to the C library and whatnot. If you have a repository like that, the Project is most likely a Linux distribution.

Repository that builds for itself and Repository from other Project

  • A Project has a Repository (with .name and Architecture)
  • A Repository has many PathElement
  • A PathElement has one Repository

Or in xml:

<project name="some:project">
  ...
  <repository name="some_linux_distribution">
    <path project="some:Linux" repository="standard"/>
    <arch>x86_64</arch>
  </repository>
</project>

If you build for a Repository like that, the Repository and the Repository with the name standard of the Project some:linux need to provide everything the build needs.

Clone this wiki locally