---
#
# Which package manager to use, options are:
#  - packagekit  - PackageKit CLI tool
#  - zypp        - Zypp RPM frontend
#  - yum         - Yum RPM frontend
#  - dnf         - DNF, the new RPM frontend
#  - urpmi       - Mandriva package manager
#  - apt         - APT frontend for DEB and RPM
#  - pacman      - Pacman
#  - portage     - Gentoo package manager
#  - entropy     - Sabayon package manager
#  - dummy       - Dummy manager, only logs
#
backend: dummy

# If set to true, a package-manager specific update procedure
# is run first (only if there is internet) to update the list
# of packages and dependencies.
update_db: true

#
# List of maps with package operations such as install or remove.
# Distro developers can provide a list of packages to remove
# from the installed system (for instance packages meant only
# for the live system).
#
# A job implementing a distro specific logic to determine other
# packages that need to be installed or removed can run before
# this one. Distro developers may want to install locale packages
# or remove drivers not needed on the installed system.
# This job will populate a list of dictionaries in the global
# storage called "packageOperations" and it is processed
# after the static list in the job configuration.
#
# Allowed package operations are:
#  - install, try_install: will call the package manager to
#       install one or more packages. The install target will
#       abort the whole installation if package-installation
#       fails, while try_install carries on. Packages may be
#       listed as (localized) names, or as (localized) package-data.
#       See below for the description of the format.
# - localInstall: this is used to call the package manager
#       to install a package from a path-to-a-package. This is
#       useful if you have a static package archive on the install media.
# - remove, try_remove: will call the package manager to
#       remove one or more packages. The remove target will
#       abort the whole installation if package-removal fails,
#       while try_remove carries on. Packages may be listed as
#       (localized) names.
#
# There are two formats for naming packages: as a name # or as package-data,
# which is an object notation providing package-name, as well as pre- and
# post-install scripts.
#
# Here are both formats, for installing vi. The first one just names the
# package for vi (using the naming of the installed package manager), while
# the second contains three data-items; the pre-script is run before invoking
# the package manager, and the post-script runs once it is done.
#
# - install
#   - vi
#   - package: vi
#     pre-script: touch /tmp/installing-vi
#     post-script: rm -f /tmp/installing-vi
#
# The pre- and post-scripts are optional, but not both optional: using
# "package: vi" with neither script option will trick Calamares into
# trying to install a package named "package: vi", which is unlikely to work.
#
# Any package name may be localized; this is used to install localization
# packages for software based on the selected system locale. By including
# the string LOCALE in the package name, the following happens:
#
# - if the system locale is English (generally US English; en_GB is a valid
#   localization), then the package is not installed at all,
# - otherwise LOCALE is replaced by the Bcp47 name of the selected system
#   locale, e.g. nl_BE.
#
# The following installs localizations for vi, if they are relevant; if
# there is no localization, installation continues normally.
#
# - install
#   - vi-LOCALE
#   - package: vi-LOCALE
#     pre-script: touch /tmp/installing-vi
#     post-script: rm -f /tmp/installing-vi
#
# When installing packages, Calamares will invoke the package manager
# with a list of package names if it can; package-data prevents this because
# of the scripts that need to run. In other words, this:
#
# - install:
#   - vi
#   - binutils
#   - package: wget
#     pre-script: touch /tmp/installing-wget
#
# This will invoke the package manager three times, once for each package,
# because not all of them are simple package names. You can speed up the
# process if you have only a few pre-scriots, by using multiple install targets:
#
# - install:
#   - vi
#   - binutils
# - install:
#   - package: wget
#     pre-script: touch /tmp/installing-wget
#
# This will call the package manager once with the package-names "vi" and
# "binutils", and then a second time for "wget". When installing large numbers
# of packages, this can lead to a considerable time savings.
#
operations:
  - install:
    - vi
    - wget
    - binutils
  - remove:
    - vi
    - wget
    - binutils
