---
#
# 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
#  - apk         = Alpine Linux package manager
#  - dummy       - Dummy manager, only logs
#
backend: pacman

#
# Often package installation needs an internet connection.
# Since you may allow system installation without a connection
# and want to offer OPTIONAL package installation, it's
# possible to have no internet, yet have this packages module
# enabled in settings.
#
# You can skip the whole module when there is no internet
# by setting "skip_if_no_internet" to true.
#
# You can run a package-manager specific update procedure
# before installing packages (for instance, to update the
# list of packages and dependencies); this is done only if there
# is an internet connection.
#
# Set "update_db" to 'true' for refreshing the database on the
# target system. On target installations, which got installed by
# unsquashing, a full system update may be needed. Otherwise
# post-installing additional packages may result in conflicts.
# Therefore set also "update_system" to 'true'.
#
skip_if_no_internet: false
update_db: true
update_system: 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.
# Such a job would populate a list of dictionaries in the global
# storage called "packageOperations" and that list is processed
# after the static list in the job configuration (i.e. the list
# that is in this configuration file).
#
# 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.
#       The *pacman* package manager is the only one to specially support
#       this operation (all others treat this the same as *install*).
# - *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.
# One additional key is recognized, to help netinstall out:
# - *source*: ignored, does get logged
# Any other key is ignored, and logged as a warning.
#
# 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 you cannot leave both out
# if you do use the *package* key: using "package: vi" with neither script
# option will trick Calamares into trying to install a package named
# "package: vi", which is unlikely to work.
#
# The pre- and post-scripts are **not** executed by a shell unless you
# explicitly invoke `/bin/sh` in them. The command-lines are passed
# to exec(), which does not understand shell syntax. In other words:
#
#     pre-script: ls | wc -l
#
# Will fail, because `|` is passed as a command-line argument to ls,
# as are `wc`, and `-l`. No shell pipeline is set up, and ls is likely
# to complain. Invoke the shell explicitly:
#
#     pre-script: /bin/sh -c \"ls | wc -l\"
#
# The above note on shell-expansion applies to versions up-to-and-including
# Calamares 3.2.12, but will change in future.
#
# 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 (any variety), then the package is not
#   installed at all,
# - otherwise `$LOCALE` or `${LOCALE}` is replaced by the 'lower-cased' BCP47
#   name of the 'language' part of the selected system locale (not the
#   country/region/dialect part), e.g. selecting "nl_BE" will use "nl"
#   here.
#
# Take care that just plain `LOCALE` will not be replaced, so `foo-LOCALE` will
# be left unchanged, while `foo-$LOCALE` will be changed. However, `foo-LOCALE`
# **will** be removed from the list of packages (i.e. not installed), if
# English is selected. If a non-English locale is selected, then `foo-LOCALE`
# will be installed, unchanged (no language-name-substitution occurs).
#
# 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-scripts, 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:
  - remove:
    - acl
    - adobe-source-code-pro-fonts
    - adwaita-icon-theme
    - alsa-lib
    - alsa-topology-conf
    - alsa-ucm-conf
    - alterlinux-calamares
    - alterlinux-keyring
    - alterlinux-mirrorlist
    - amd-ucode
    - aom
    - appstream-glib
    - aptpac
    - arandr
    - arc-gtk-theme
    - arch-install-scripts
    - archlinux-appstream-data
    - archlinux-keyring
    - argon2
    - aspell
    - at-spi2-atk
    - at-spi2-core
    - atk
    - attica
    - attr
    - audit
    - autoconf
    - automake
    - avahi
    - b43-fwcutter
    - base
    - bash
    - bash-completion
    - bc
    - bind-tools
    - binutils
    - bison
    - bluez-libs
    - boost-libs
    - broadcom-wl-dkms
    - brotli
    - btrfs-progs
    - bubblewrap
    - bzip2
    - ca-certificates
    - ca-certificates-mozilla
    - ca-certificates-utils
    - cairo
    - cantarell-fonts
    - cdparanoia
    - chromium
    - cifs-utils
    - ckbcomp
    - clonezilla
    - colord
    - coreutils
    - cracklib
    - crda
    - cryptsetup
    - cups
    - cups-filters
    - cups-pdf
    - curl
    - darkhttpd
    - dav1d
    - db
    - dbus
    - dbus-glib
    - dconf
    - ddrescue
    - desktop-file-utils
    - device-mapper
    - dhclient
    - dhcpcd
    - dialog
    - diffutils
    - ding-libs
    - dkms
    - dmraid
    - dnsmasq
    - dnssec-anchors
    - dosfstools
    - double-conversion
    - drbl
    - e2fsprogs
    - ecryptfs-utils
    - efibootmgr
    - efitools
    - efivar
    - eg-installer
    - elfutils
    - enchant
    - ethtool
    - exfat-utils
    - expat
    - f2fs-tools
    - fakeroot
    - ffmpeg
    - file
    - filesystem
    - findutils
    - flac
    - flex
    - fontconfig
    - freetype2
    - fribidi
    - fsarchiver
    - fuse-common
    - fuse2
    - fuse3
    - gawk
    - gc
    - gcab
    - gcc
    - gcc-libs
    - gcr
    - gdbm
    - gdk-pixbuf2
    - gettext
    - ghostscript
    - giflib
    - git
    - glib-networking
    - glib2
    - glibc
    - gmp
    - gnu-netcat
    - gnupg
    - gnutls
    - gobject-introspection-runtime
    - gpgme
    - gpm
    - gptfdisk
    - graphene
    - graphite
    - grep
    - groff
    - grub
    - gsettings-desktop-schemas
    - gsm
    - gssproxy
    - gst-plugins-base
    - gst-plugins-base-libs
    - gstreamer
    - gtk-update-icon-cache
    - gtk2
    - gtk3
    - guile
    - gvfs
    - gvfs-smb
    - gzip
    - harfbuzz
    - harfbuzz-icu
    - haveged
    - hdparm
    - hicolor-icon-theme
    - hspell
    - hunspell
    - hwids
    - hwinfo
    - hyphen
    - iana-etc
    - icu
    - ijs
    - imagemagick
    - imlib2
    - inetutils
    - intel-ucode
    - inverse-icon-theme-blue-git
    - iproute2
    - iptables
    - iputils
    - ipw2100-fw
    - ipw2200-fw
    - irssi
    - iso-codes
    - iw
    - iwd
    - jack
    - jansson
    - jbig2dec
    - jfsutils
    - js60
    - json-c
    - json-glib
    - kactivities
    - karchive
    - kauth
    - kbd
    - kbookmarks
    - kcodecs
    - kcompletion
    - kconfig
    - kconfigwidgets
    - kcoreaddons
    - kcrash
    - kdbusaddons
    - kdeclarative
    - keyutils
    - kglobalaccel
    - kguiaddons
    - ki18n
    - kiconthemes
    - kio
    - kirigami2
    - kitemviews
    - kjobwidgets
    - kmod
    - knotifications
    - kpackage
    - kpmcore
    - krb5
    - kservice
    - ktextwidgets
    - kwallet
    - kwayland
    - kwidgetsaddons
    - kwindowsystem
    - kxmlgui
    - l-smash
    - lame
    - lbzip2
    - lcms2
    - ldb
    - ldns
    - less
    - libaio
    - libarchive
    - libass
    - libassuan
    - libasyncns
    - libatasmart
    - libavc1394
    - libblockdev
    - libbluray
    - libbsd
    - libbytesize
    - libcanberra
    - libcap
    - libcap-ng
    - libcddb
    - libcdio
    - libcdio-paranoia
    - libcroco
    - libcups
    - libdaemon
    - libdatrie
    - libdbusmenu-qt5
    - libdrm
    - libedit
    - libelf
    - libepoxy
    - libevdev
    - libevent
    - libexif
    - libffi
    - libfm
    - libfm-extra
    - libfm-gtk2
    - libfontenc
    - libgcrypt
    - libglvnd
    - libgpg-error
    - libgudev
    - libgusb
    - libibus
    - libice
    - libid3tag
    - libidn
    - libidn2
    - libiec61883
    - libimobiledevice
    - libinput
    - libjpeg-turbo
    - libkeybinder2
    - libksba
    - libldap
    - liblouis
    - liblqr
    - libmaxminddb
    - libmfx
    - libmicrohttpd
    - libmm-glib
    - libmnl
    - libmodplug
    - libmpc
    - libndp
    - libnetfilter_conntrack
    - libnewt
    - libnfnetlink
    - libnftnl
    - libnghttp2
    - libnl
    - libnm
    - libnma
    - libnotify
    - libnsl
    - libogg
    - libomxil-bellagio
    - libotr
    - libp11-kit
    - libpaper
    - libpcap
    - libpciaccess
    - libpgm
    - libpipeline
    - libplist
    - libpng
    - libproxy
    - libpsl
    - libpulse
    - libpwquality
    - libraqm
    - libraw1394
    - librsvg
    - libsamplerate
    - libsasl
    - libseccomp
    - libsecret
    - libsm
    - libsndfile
    - libsodium
    - libsoup
    - libsoxr
    - libssh
    - libssh2
    - libstemmer
    - libtasn1
    - libteam
    - libthai
    - libtheora
    - libtiff
    - libtirpc
    - libtool
    - libunistring
    - libunwind
    - libusb
    - libusbmuxd
    - libutil-linux
    - libuv
    - libva
    - libvdpau
    - libvisual
    - libvoikko
    - libvorbis
    - libvpx
    - libwacom
    - libwbclient
    - libwebp
    - libwnck
    - libwpe
    - libx11
    - libx86emu
    - libxau
    - libxcb
    - libxcomposite
    - libxcursor
    - libxdamage
    - libxdmcp
    - libxext
    - libxfixes
    - libxfont2
    - libxft
    - libxi
    - libxinerama
    - libxkbcommon
    - libxkbcommon-x11
    - libxkbfile
    - libxml2
    - libxmu
    - libxrandr
    - libxrender
    - libxres
    - libxshmfence
    - libxslt
    - libxss
    - libxt
    - libxtst
    - libxv
    - libxxf86vm
    - libyaml
    - licenses
    - linux-api-headers
    - linux-atm
    - linux-firmware
    - linux-zen
    - linux-zen-headers
    - llvm-libs
    - lm_sensors
    - lmdb
    - lrzip
    - lsscsi
    - lvm2
    - lxmenu-data
    - lxpanel
    - lxterminal
    - lz4
    - lzo
    - lzop
    - m4
    - make
    - man-db
    - man-pages
    - mc
    - md4c
    - mdadm
    - media-player-info
    - menu-cache
    - mesa
    - minizip
    - mkinitcpio
    - mkinitcpio-busybox
    - mkinitcpio-nfs-utils
    - mobile-broadband-provider-info
    - mpfr
    - mtdev
    - mtools
    - nano
    - nbd
    - ncurses
    - ndctl
    - ndisc6
    - net-tools
    - netctl
    - nettle
    - network-manager-applet
    - networkmanager
    - nfs-utils
    - nfsidmap
    - nilfs-utils
    - nm-connection-editor
    - noto-fonts
    - noto-fonts-cjk
    - noto-fonts-emoji
    - npth
    - nspr
    - nss
    - ntfs-3g
    - ntp
    - openal
    - openbox
    - openconnect
    - opencore-amr
    - openjpeg2
    - openresolv
    - openssh
    - openssl
    - openssl-1.0
    - openvpn
    - opus
    - orc
    - os-prober
    - p11-kit
    - pacman
    - pacman-mirrorlist
    - pam
    - pamac-cli-src
    - pamac-common
    - pamac-gtk
    - pambase
    - pango
    - partclone
    - parted
    - partimage
    - patch
    - pbzip2
    - pciutils
    - pcmanfm
    - pcre
    - pcre2
    - pcsclite
    - perl
    - perl-error
    - perl-mailtools
    - perl-timedate
    - pigz
    - pinentry
    - pixman
    - pixz
    - pkcs11-helper
    - pkgconf
    - plasma-framework
    - plymouth
    - plymouth-theme-alter-logo-git
    - polkit
    - polkit-qt5
    - poppler
    - popt
    - ppp
    - pptpclient
    - procps-ng
    - progsreiserfs
    - psmisc
    - pygobject-devel
    - python
    - python-cairo
    - python-gobject
    - python-ply
    - qca
    - qpdf
    - qt5-base
    - qt5-declarative
    - qt5-graphicaleffects
    - qt5-multimedia
    - qt5-quickcontrols
    - qt5-quickcontrols2
    - qt5-speech
    - qt5-svg
    - qt5-x11extras
    - qt5-xmlpatterns
    - re2
    - readline
    - refind-efi
    - reiserfsprogs
    - rest
    - rp-pppoe
    - rpcbind
    - rsync
    - run-parts
    - screen
    - sdl2
    - sdparm
    - sed
    - sg3_utils
    - shadow
    - shared-mime-info
    - slang
    - smartmontools
    - smbclient
    - snappy
    - solid
    - sonnet
    - sound-theme-freedesktop
    - speex
    - speexdsp
    - sqlite
    - squashfs-tools
    - sshfs
    - startup-notification
    - stoken
    - sudo
    - sysfsutils
    - syslinux
    - systemd
    - systemd-libs
    - systemd-sysvcompat
    - talloc
    - tar
    - tcl
    - tcpdump
    - tdb
    - testdisk
    - tevent
    - texinfo
    - thin-provisioning-tools
    - tlp
    - tslib
    - ttf-liberation
    - tzdata
    - udisks2
    - unrar
    - unzip-iconv
    - upower
    - usb_modeswitch
    - usbmuxd
    - usbutils
    - util-linux
    - v4l-utils
    - vid.stab
    - vim
    - vim-runtime
    - volume_key
    - vpnc
    - vte-common
    - vte3
    - vulkan-icd-loader
    - wayland
    - wayland-protocols
    - webkit2gtk
    - wget
    - which
    - wireless-regdb
    - wireless_tools
    - woff2
    - wpa_supplicant
    - wpebackend-fdo
    - wvdial
    - wvstreams
    - x264
    - x265
    - xarchiver
    - xcb-proto
    - xcb-util
    - xcb-util-image
    - xcb-util-keysyms
    - xcb-util-renderutil
    - xcb-util-wm
    - xdg-dbus-proxy
    - xdg-user-dirs
    - xdg-utils
    - xf86-input-libinput
    - xfsprogs
    - xkeyboard-config
    - xl2tpd
    - xorg-server
    - xorg-server-common
    - xorg-setxkbmap
    - xorg-xauth
    - xorg-xinit
    - xorg-xkbcomp
    - xorg-xmodmap
    - xorg-xprop
    - xorg-xrandr
    - xorg-xrdb
    - xorg-xset
    - xorgproto
    - xplc
    - xvidcore
    - xz
    - yaml-cpp
    - yay-bin
    - zenity
    - zeromq
    - zita-alsa-pcmi
    - zita-resampler
    - zlib
    - zstd
  - install:
    - base
    - base-devel