Provided by: dnf-plugins-core_4.10.1-4_all bug

NAME

       dnf4-post-transaction-actions - DNF post transaction actions Plugin

DESCRIPTION

       The  plugin  allows  to define actions to be executed upon completing an RPM transaction. Each action may
       define a (glob-like) filtering rule on the package NEVRA or package files, as well as whether the package
       was installed or removed. Actions are defined in action files.

CONFIGURATION

       The plugin configuration is in /etc/dnf/plugins/post-transaction-actions.conf. All configuration  options
       are in the [main] section.

       enabled
              Whether the plugin is enabled. Default value is True.

       actiondir
              Path  to the directory with action files. Action files must have the “.action” extension.  Default
              value is “/etc/dnf/plugins/post-transaction-actions.d/”.

ACTION FILE FORMAT

       Empty lines and lines that start with a ‘#’ character are ignored.   Each  non-comment  line  defines  an
       action and consists of three items separated by colons: package_filter:transaction_state:command.

       package_filter
              A (glob-like) filtering rule applied on the package NEVRA (also in the shortened forms) or package
              files.

       transaction_state
              Filters packages according to their state in the transaction.

              • in - packages that appeared on the system (downgrade, install, obsolete, reinstall, upgrade)

              • out - packages that disappeared from the system (downgraded, obsoleted, remove, upgraded)

              • any - all packages

       command
              Any shell command.  The following variables in the command will be substituted:

                 • ${name}, $name - package name

                 • ${arch}, $arch - package arch

                 • ${ver}, $ver - package version

                 • ${rel}, $rel - package release

                 • ${epoch}, $epoch - package epoch

                 • ${repoid}, $repoid - package repository id

                 •

                   ${state}, $state - the change of package state in the transaction:
                          “downgrade”,    “downgraded”,   “install”,   “obsolete”,   “obsoleted”,   “reinstall”,
                          “reinstalled”, “remove”, “upgrade”, “upgraded”

              The shell command will be evaluated for each package  that  matched  the  package_filter  and  the
              transaction_state.  However,  after  variable substitution, any duplicate commands will be removed
              and each command will only be executed once  per  transaction.  The  order  of  execution  of  the
              commands  follows  the order in the action files, but may differ from the order of packages in the
              transaction.  In other words, when you define several action lines  for  the  same  package_filter
              these  lines  will  be  executed  in  the  order  they  were  defined  in the action file when the
              package_filter matches a package during the trasaction_state state.  However, the order of when  a
              particular  package_filter  is invoked depends on the position of the corresponding package in the
              transaction.

   An example action file:
          # log all packages (state, nevra, repo) in transaction into a file.
          *:any:echo '${state} ${name}-${epoch}:${ver}-${rel}.${arch} repo ${repoid}' >>/tmp/post-trans-actions-trans.log

          # The same shell command (after variables substitution) is executed only once per transaction.
          *:any:echo '${repoid}' >>/tmp/post-trans-actions-repos
          # will write each repo only once to /tmp/post-trans-actions-repos, even if multiple packages from
          # the same repo were matched

AUTHOR

       See AUTHORS in your Core DNF Plugins distribution

COPYRIGHT

       2014, Red Hat, Licensed under GPLv2+

4.10.1                                            Jun 20, 2025                  DNF4-POST-TRANSACTION-ACTIONS(8)