Table of Contents |
---|
Problem
EL8 AppStream/modularity
Starting with EL8, some many RPMs are distributed within in Application Streams, a new distribution system that uses (based on DNF modularity.
...
). This is not optional—a basic EL8 installation
...
may require packages from both BaseOS and AppStream, and EPEL distributes some software in the new epel-modular
repository.
...
To use Application Streams' modules, DNF requires repositories to
New Repository metadata
Repositories with modules must provide an additional layer of metadata modular (modulemd) . This metadata provides a repository-wide manifest of all module streams and the RPMs that belong to them.
i The SIMP ISO relies on
...
metadata.
The modulemd manifest describes every module stream and their RPMs across the entire repository.
Modular repositories can onlybe built with a modularity-aware repository tool, like
createrepo_c
.The old
createrepo
command cannotbuild modular repositories—it is unaware of (and will destroy) modular metadata. DNF will be unable to install modular RPMs in a repository built bycreaterepo
.Modular repositories may include a mix of standard RPMs and modular RPMs.
New RPM & DNF behaviours
DNF must be used to install modular RPMs; yum does not support modularity
Each modular RPM is built with a special
ModularityLabel
tag.DNF will not install an RPM with a
ModularityTag
unless it can be associated with modulemd metadata from an available repository.
SIMP ISO Build
Requirements
The SIMP ISO MUST be self-contained and capable of installing and boot-strapping a fully-functional OS and SIMP server on an isolated (offline) network.
Packages MUST install correctly from the SIMP ISO or the local mirror created and repositories mirrored from the SIMP ISO
On systems with packages installed from the SIMP ISO/mirrors that are later configured to use those packages' original source repositories/mirrors:
All ISO-installed distributed packages MUST upgrade correctly (including modular packages)
All ISO-installed distributed package metadata MUST integrate seamlessly with the upstream (including modules and streams)
The ISO build process SHOULD continue to only include the packages it needs
...
Caveats
If necessary, the SIMP 6.6.0 ISO MAY mirror the entire base OS’s DVD
AppStream/
repository if it would avoid delays to the SIMP 6.6.0 build process.However, the ISO MUST NOT mirror entire third-party modular repositories (like
epel-modular
) just to provide a few necessary packages it requires from single streams (e.g.,389-directory-server:stable
)The SIMP project’s RPMs/tarball MUST NOT require modularity “SIMP RPMs” (packaged by the SIMP project, included in the tarball) will NOT be distributed in module streams for the SIMP 6.6.0 release (and probably never).
...
Constraints
SIMP 6.6.0 requires RPMs from at least one module stream from
epel-modular
:389-directory-server:stable
, in order to support 389ds
...
.
...
Building/rebuilding repos with the old createrepo
command will destroy a repo’s modular metadata and make any modular RPMs unable to install
Conclusions
These requirements (derived from the In order to build SIMP ISOs that distribute modular RPMs:
...
The ISO’s modular repositories MUST be built with modularity-aware tools, likeStatus colour Purple title TODO createrepo_c
orcreatrerepo_mod
from modulemd-tools.
Local SIMP tooling MUST be changed to NEVER useStatus colour Purple title TODO createrepo
to manage modular repositories:
...
Implementation hints
Places we use
createrepo
:
At least two sections of the ISO’s ksStatus colour Purple title TODO auto.cfg
in simp-core (EL8 only; not yet created)
UpdateOsYumRepositoriesAction#apply() inStatus colour Purple title TODO simp config
The update_yum_repo() method inStatus colour Purple title TODO unpack_dvd
“Slim” subset repos' modulemd metadata MUST remain intact when mirrored or rebuilt.
The modular repos MUST NOT be mirrored or rebuilt without it
The modulemd metadata will always be necessary in order to install these repos' modular
...
packages—and once lost it cannot be recreated from
...
their RPMs (unlike standard RPMs).
Local SIMP tooling that mirrors modular repositories MUST preserve modulemd metadata (e.g.,Status colour Purple title TODO dnf reposync --download-metadata
)
...