...
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.
AppStream Lifecycle
Each RHEL AppStream (module stream) has its own lifecycle, which is usually not the full 10-year lifecycle of the Base OS: https://access.redhat.com/support/policy/updates/rhel8-app-streams-life-cycle.
This includes most default streams.
Some streams retire within two years (the first RHEL stream retires in April 2021).
SIMP ISO Build
Requirements
...
SIMP 6.6.0 requires RPMs from at least one module stream from
epel-modular
:389-directory-server:stable
, in order to support 389ds.
Conclusions
...
Requirements for SIMP ISO build + EL8 modularity
The following (derived from the In order information above) should enable us to build SIMP ISOs that distribute modular RPMs:
1. The ISO build process MUST distribute modular RPMs in “slim” subsets of their original module streams.
The alternatives are to include the entire modular repository (too big) or not ship dependencies (ISO is no longer self-sufficient)
In order to maintain seamless interoperability, each “slim” modular stream subset MUST use the same name + stream + version + context + architecture (N:S:V:C:A) as their upstream sources
If feasible, the “slimming” process SHOULD be generalized enough to apply to packages from external sources like
epel-modular
AND the base OS’s DVDAppStream/
repository.
Alternatives considered were to include the entire modular repository (too big) or not ship modular dependencies (ISO + download server would no be longer self-contained).
2. The old createrepo
command MUST NEVER be run on a modular
...
repository
This applies to both the ISO’s build process and post-installation local tooling on SIMP systems.
The ISO’s modular repositories MUST be built with modularity-aware tools, likeStatus colour Purple title TODO createrepo_c
orcreatrerepocreaterepo_mod
from modulemd-tools.Status colour Purple title TODOLocal SIMP tooling MUST be changed to NEVER use
createrepo
to manage on 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
...
.
3. Modular repos' modulemd metadata MUST remain intact when mirrored or rebuilt.
The modular 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
)
The “Slim” subset repos are of particular concern, since SIMP tooling is guaranteed to encounter them.
Info |
---|
Places where (pre-6.6.0) tooling uses
|