Hosting modules for Fedora

Since modules are technically collections of RPM packages with metadata, they are hosted the same way as traditional RPM packages are — in a repository. Apart from the packages, such repository must also contain the modular metadata (modulemd) that come with the modules.

Creating a modular repository

Modular repositories are created in two steps:

  1. Creating the repository using createrepo_c

  2. Adding modular metadata (modulemd) using modifyrepo_c

Modular repository must contain the modular metadata (modulemd) in the repodata. Excluding the metadata will cause all the modular packages to become standalone packages which could have negative consequences.

To create a repository out of RPM packages, run:

$ createrepo_c DIRECTORY
  • DIRECTORY — path to a directory with RPM packages that will be converted into a repository

To add the modular metadata (modulemd), run:

$ modifyrepo_c --mdtype=modules modules.yaml REPO
  • modules.yaml — YAML multidocument containing all modulemds — the final form of modulemd produced by the build system

  • REPO — path to the repository — the directory from the previous step