diff --git a/src/modules/packages/packages.conf b/src/modules/packages/packages.conf index 3c478fe20..49fdbb6d6 100644 --- a/src/modules/packages/packages.conf +++ b/src/modules/packages/packages.conf @@ -1,13 +1,30 @@ # SPDX-FileCopyrightText: no # SPDX-License-Identifier: CC0-1.0 # +# The configuration for the package manager starts with the +# *backend* key, which picks one of the backends to use. +# In `main.py` there is a base class `PackageManager`. +# Implementations must subclass that and set a (class-level) +# property *backend* to the name of the backend (e.g. "dummy"). +# That property is used to match against the *backend* key here. +# +# You will have to add such a class for your package manager. +# It is fairly simple Python code. The API is described in the +# abstract methods in class `PackageManager`. Mostly, the only +# trick is to figure out the correct commands to use, and in particular, +# whether additional switches are required or not. Some package managers +# have more installer-friendly defaults than others, e.g., DNF requires +# passing --disablerepo=* -C to allow removing packages without Internet +# connectivity, and it also returns an error exit code if the package did +# not exist to begin with. --- # # Which package manager to use, options are: # - apk - Alpine Linux package manager # - apt - APT frontend for DEB and RPM # - dnf - DNF, the new RPM frontend -# - entropy - Sabayon package manager +# - entropy - Sabayon package manager (is being deprecated) +# - luet - Sabayon package manager (next-gen) # - packagekit - PackageKit CLI tool # - pacman - Pacman # - pamac - Manjaro package manager diff --git a/src/modules/packages/packages.schema.yaml b/src/modules/packages/packages.schema.yaml index 10eb9808a..989bf11dd 100644 --- a/src/modules/packages/packages.schema.yaml +++ b/src/modules/packages/packages.schema.yaml @@ -13,6 +13,7 @@ properties: - apt - dnf - entropy + - luet - packagekit - pacman - pamac