Provided by: dnf_4.14.0-4.1ubuntu1_all bug

NAME

       dnf.modularity - Modularity in DNF

       Modularity  is  new  way  of  building,  organizing  and  delivering  packages.   For  more  details see:
       https://docs.pagure.org/modularity/

DEFINITIONS

       modulemd
              Every repository can contain modules metadata  with  modulemd  documents.   These  documents  hold
              metadata about modules such as Name, Stream or list of packages.

       (non-modular) package
              Package that doesn't belong to a module.

       modular package
              Package  that  belongs to a module. It is listed in modulemd under the artifacts section.  Modular
              packages can be also identified by having %{modularitylabel} RPM header set.

       (module) stream
              Stream is a collection of packages, a virtual repository. It is identified with  Name  and  Stream
              from modulemd separated with colon, for example "postgresql:9.6".

              Module  streams  can  be  active  or  inactive. active means the RPM packages from this stream are
              included in the set of available packages.  Packages  from  inactive  streams  are  filtered  out.
              Streams are active either if marked as default or if they are explicitly enabled by a user action.
              Streams that satisfy dependencies of default or enabled streams are also considered active.   Only
              one stream of a particular module can be active at a given point in time.

PACKAGE FILTERING

       Without modules, packages with the highest version are used by default.

       Module  streams  can distribute packages with lower versions than available in the repositories available
       to the operating system. To make such packages available  for  installs  and  upgrades,  the  non-modular
       packages  are  filtered  out  when  their name or provide matches against a modular package name from any
       enabled, default, or dependent stream. Modular source packages will not cause non-modular binary packages
       to be filtered out.

   Demodularized rpms
       Contains  names of RPMs excluded from package filtering for particular module stream. When defined in the
       latest active module, non-modular RPMs with the same name or provide which were previously  filtered  out
       will reappear.

HOTFIX REPOSITORIES

       In  special  cases,  a  user wants to cherry-pick individual packages provided outside module streams and
       make them available on along with packages from the active streams.   Under  normal  circumstances,  such
       packages  are  filtered  out or rejected from getting on the system by Fail-safe mechanisms.  To make the
       system use packages from a repository regardless of their modularity, specify module_hotfixes=true in the
       .repo file. This protects the repository from package filtering.

       Please  note  the  hotfix  packages  do  not override module packages, they only become part of available
       package set. It's the package Epoch, Version and Release what determines if the package is the latest.

FAIL-SAFE MECHANISMS

   Repositories with module metadata are unavailable
       When a repository with module metadata is unavailable, package filtering must keep working.   Non-modular
       RPMs must remain unavailable and must never get on the system.

       This happens when:

       • user disables a repository via --disablerepo or uses --repoid

       • user removes a .repo file from disk

       • repository is not available and has skip_if_unavailable=true

       DNF  keeps  copies  of  the  latest modulemd for every active stream and uses them if there's no modulemd
       available for the stream.  This keeps package filtering working correctly.

       The copies are made any time a transaction is resolved and started.  That includes  RPM  transactions  as
       well as any dnf module <enable|disable|reset> operations.

       When the fail-safe data is used, dnf show such modules as part of @modulefailsafe repository.

   Orphaned modular packages
       All  packages  that  are  built  as  a  part of a module have %{modularitylabel} RPM header set.  If such
       package becomes part of RPM transaction and  cannot  be  associated  with  any  available  modulemd,  DNF
       prevents  from  getting it on the system (package is available, but cannot be installed, upgraded, etc.).
       Packages from Hotfix repositories or Commandline repository are not affected by Fail-safe mechanisms.

AUTHOR

       See AUTHORS in DNF source distribution.

COPYRIGHT

       2012-2024, Red Hat, Licensed under GPLv2+