From 6daee968ae9d20134517a43d8375e8c6bbff21bd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lubom=C3=ADr=20Sedl=C3=A1=C5=99?= Date: Thu, 5 Apr 2018 14:00:06 +0200 Subject: [PATCH] docs: Describe comps processing MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Lubomír Sedlář --- doc/comps.rst | 27 +++++++++++++++++++++++++++ doc/index.rst | 1 + doc/phases.rst | 1 + 3 files changed, 29 insertions(+) create mode 100644 doc/comps.rst diff --git a/doc/comps.rst b/doc/comps.rst new file mode 100644 index 00000000..6f13686c --- /dev/null +++ b/doc/comps.rst @@ -0,0 +1,27 @@ +.. _comps: + +Processing comps files +====================== + +The comps file that Pungi takes as input is not really pure comps as used by +tools like DNF. There are extensions used to customize how the file is processed. + +The first step of Pungi processing is to retrieve the actual file. This can use +anything that :ref:`scm_support` supports. + +Pungi extensions are ``arch`` attribute on ``packageref``, ``group`` and +``environment`` tags. The value of this attribute is a comma separated list of +architectures. + +Second step Pungi performs is creating a file for each architecture. This is +done by removing all elements with incompatible ``arch`` attribute. No +additional clean up is performed on this file. The resulting file is only used +internally for the rest of the compose process. + +Third and final step is to create comps file for each Variant.Arch combination. +This is the actual file that will be included in the compose. The start file is +the original input file, from which all elements with incompatible architecture +are removed. Then clean up is performed by removing all empty groups, removing +non-existing groups from environments and categories and finally removing empty +environments and categories. As a last step groups not listed in the variants +file are removed. diff --git a/doc/index.rst b/doc/index.rst index 8bdd4da9..15d244fc 100644 --- a/doc/index.rst +++ b/doc/index.rst @@ -18,5 +18,6 @@ Contents: scm_support messaging gathering + comps contributing testing diff --git a/doc/phases.rst b/doc/phases.rst index 90873d97..61704406 100644 --- a/doc/phases.rst +++ b/doc/phases.rst @@ -17,6 +17,7 @@ Init The first phase to ever run. Can not be skipped. It prepares the comps files for variants (by filtering out groups and packages that should not be there). +See :doc:`comps` for details about how this is done. Pkgset ------