- Check for 'list' when it's actually a 'dict' is strange.
Reverse logic to consider 'str' a package name and everything
else is special.
- Refactor to handle the difference between package names and
packages-with-script-data in one place.
- Add code and config documentation.
- Switch sample configurations to dummy-backend.
if the key "install" was used, the install would crash as the backwards
compatibility checks were incorrect. Fixed a typo in the run function so
pre- and post-install hooks now work correctly
This allows for installing locale packages. This can be achieved
by adding a entry of the format packagename-${LOCALE} in the
packages configuration module.
Unfortunately, dnf treats it as an error if we try to remove a package
that already did not exist. This means that, e.g., if we try to remove
calamares itself, but calamares was not installed on the base image,
only in the overlay, we will fail with an error. So, as long as we do
not have a better solution, we ignore the exit code of "dnf remove"
entirely.
(yum does not show this behavior, it returns success when the package to
remove is already not installed.)
When removing packages with yum or dnf, pass the --disablerepo=*
(disable all online repositories) and -C (run from cache) arguments.
Package removals do not normally require network access, and this
measure saves time and bandwidth and prevents possible unnecessary
errors (e.g., if we do not have active network access, or if there is
some problem with the mirrors).