5 Packaging in OBS
Oto Šťáva edited this page 2024-01-09 13:23:11 +01:00

Current setup

Obsolete: we are now in the process of migrating to https://pkg.labs.nic.cz/doc/?project=knot-resolver. When finished, this page is to be deleted.

We maintain the following DNS-related subprojects of home:CZ-NIC:

User repositories

Knot Resolver

  • knot-resolver-latest: We encourage users to use this repository. It contains latest stable knot-resolver and knot as well (in the latest version that's compatible with the released knot-resolver - usually the latest).

Knot DNS

  • knot-dns-latest: Contains the current latest knot build, which may occasionally break knot-resolver. Users who don't use knot-resolver can use this repository for latest knot builds.
  • knot-dns: Contains the previous stable branch of knot. Users who don't use knot-resolver can use this repository for previous stable builds of knot.

Development / Testing repositories

Knot Resolver

  • knot-resolver-build: Contains some build dependencies for Knot Resolver which are commonly missing from distributions.
  • knot-resolver-testing: Testing repository for manual development builds.
  • knot-resolver-devel: Automated nightly builds from master. It uses knot package from knot-resolver-latest repository.

Knot DNS

  • knot-dns-testing: Testing repository for manual development builds.
  • knot-dns-devel: Development builds of knot and knot-resolver (nightly and manual). Builds of knot-resolver in this repository are built against the latest knot.

Useful commands

  • for general osc reference and configuration, see OBS documentation

  • checking out the repository locally: osc co home:CZ-NIC:knot-resolver-devel

  • modifying project's repositories: osc meta prj --edit

    • dependency on another OBS repo can be configured in this file, e.g. adding knot-resolver-latest (order matters, custom repositories should be defined first):
    <repository name="Debian_9.0">
      <path project="home:CZ-NIC:knot-resolver-latest" repository="Debian_9.0"/>
      <path project="Debian:9.0" repository="standard"/>
      <arch>x86_64</arch>
      <arch>aarch64</arch>
    </repository>
    
  • changing project configuration: osc meta prjconf --edit

    • this file is useful for resolving package ambiguities with Prefer:
    • example content for knot-resolver:
    Prefer: environment-modules
    Prefer: generic-release
    

Adding a new repository

Packages can be built against any existing target repo/architecture in OBS.

  • osc list can be used to view all projects.
  • osc repos $PROJECT can then be used to all repos along with the supported architectures.

Building against these repos can be configured via Export Mode when adding a new repository or via osc meta prj --edit

Example - find supported Fedora targets

$ osc list | grep '^Fedora'
Fedora:16
Fedora:17
Fedora:18
Fedora:19
Fedora:20
Fedora:21
Fedora:22
Fedora:23
Fedora:24
Fedora:25
Fedora:26
Fedora:27
Fedora:EPEL:6
Fedora:EPEL:7
Fedora:Rawhide

$ osc repos Fedora:27
update    x86_64
update    armv7l
update    aarch64
update    i586
standard  x86_64
standard  armv7l
standard  aarch64
standard  i586