Skip to content

Commit

Permalink
doc: Include modularity documentation
Browse files Browse the repository at this point in the history
  • Loading branch information
m-blaha committed Aug 16, 2024
1 parent a88738e commit aaa2517
Show file tree
Hide file tree
Showing 5 changed files with 9 additions and 15 deletions.
3 changes: 1 addition & 2 deletions dnf5.spec
Original file line number Diff line number Diff line change
Expand Up @@ -333,8 +333,7 @@ It supports RPM packages, modulemd modules, and comps groups & environments.
%{_mandir}/man7/dnf*-filtering.7.*
%{_mandir}/man7/dnf*-forcearch.7.*
%{_mandir}/man7/dnf*-installroot.7.*
# TODO(jkolarik): modularity is not ready yet
# %%{_mandir}/man7/dnf*-modularity.7.*
%%{_mandir}/man7/dnf*-modularity.7.*
%{_mandir}/man7/dnf*-specs.7.*
%{_mandir}/man5/dnf*.conf.5.*
%{_mandir}/man5/dnf*.conf-todo.5.*
Expand Down
3 changes: 1 addition & 2 deletions doc/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -91,8 +91,7 @@ if(WITH_MAN)
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/man/dnf5-filtering.7 DESTINATION share/man/man7)
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/man/dnf5-forcearch.7 DESTINATION share/man/man7)
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/man/dnf5-installroot.7 DESTINATION share/man/man7)
# TODO(jkolarik): modularity is not ready yet
# install(FILES ${CMAKE_CURRENT_BINARY_DIR}/man/dnf5-modularity.7 DESTINATION share/man/man7)
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/man/dnf5-modularity.7 DESTINATION share/man/man7)
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/man/dnf5-specs.7 DESTINATION share/man/man7)

# plugin commands
Expand Down
2 changes: 1 addition & 1 deletion doc/misc/filtering.7.rst
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@ For details see :manpage:`dnf5-versionlock(8)`, :ref:`Versionlock command <versi
Modular filtering
=================

Please see `the modularity documentation` for details on how Modular Filtering works.
Please see :ref:`the modularity documentation <modularity_misc_ref-label>` for details on how Modular Filtering works.

With modularity, only RPM packages from ``active`` module streams are included in the available package set. RPM packages from ``inactive`` module streams, as well as non-modular packages with the same name or provides as a package from an ``active`` module stream, are filtered out. Modular filtering is not applied to packages added from the command line, installed packages, or packages from repositories with ``module_hotfixes=true`` in their ``.repo`` file.

Expand Down
6 changes: 1 addition & 5 deletions doc/misc/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -12,9 +12,5 @@ Miscellaneous
filtering.7
forcearch.7
installroot.7
specs.7

..
# TODO(jkolarik): Modularity is not ready yet
modularity.7
specs.7
10 changes: 5 additions & 5 deletions doc/misc/modularity.7.rst
Original file line number Diff line number Diff line change
Expand Up @@ -104,25 +104,25 @@ 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 disables a repository via ``--disable-repo`` or uses ``--repo``
* 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
DNF5 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.
That includes RPM transactions as well as any ``dnf5 module <enable|disable|reset>`` operations.

When the fail-safe data is used, dnf show such modules as part of @modulefailsafe repository.
When the fail-safe data is used, DNF5 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
modulemd, DNF5 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.

0 comments on commit aaa2517

Please sign in to comment.