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:
-
Creating the repository using
createrepo_c
-
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