from mkosi.installer import PackageManager
from mkosi.installer.pacman import Pacman
from mkosi.log import die
-from mkosi.util import listify
+from mkosi.util import listify, sort_packages
class Installer(DistributionInstaller):
Pacman.invoke(
context,
"--sync",
- ["--needed", "--assume-installed", "initramfs"],
- packages,
+ ["--needed", "--assume-installed", "initramfs", *sort_packages(packages)],
apivfs=apivfs,
)
@classmethod
def remove_packages(cls, context: Context, packages: Sequence[str]) -> None:
- Pacman.invoke(context, "--remove", ["--nosave", "--recursive"], packages, apivfs=True)
+ Pacman.invoke(context, "--remove", ["--nosave", "--recursive", *packages], apivfs=True)
@classmethod
@listify
from mkosi.log import die
from mkosi.run import find_binary, run
from mkosi.sandbox import finalize_crypto_mounts
-from mkosi.util import listify
+from mkosi.util import listify, sort_packages
class Installer(DistributionInstaller):
@classmethod
def install_packages(cls, context: Context, packages: Sequence[str], apivfs: bool = True) -> None:
if find_binary("zypper", root=context.config.tools()):
- options = [
- "--download", "in-advance",
- "--recommends" if context.config.with_recommends else "--no-recommends",
- ]
- Zypper.invoke(context, "install", packages, options=options, apivfs=apivfs)
+ Zypper.invoke(
+ context,
+ "install",
+ [
+ "--download", "in-advance",
+ "--recommends" if context.config.with_recommends else "--no-recommends",
+ *sort_packages(packages),
+ ],
+ apivfs=apivfs)
else:
- Dnf.invoke(context, "install", packages, apivfs=apivfs)
+ Dnf.invoke(context, "install", sort_packages(packages), apivfs=apivfs)
@classmethod
def remove_packages(cls, context: Context, packages: Sequence[str]) -> None:
if find_binary("zypper", root=context.config.tools()):
- Zypper.invoke(context, "remove", packages, options=["--clean-deps"], apivfs=True)
+ Zypper.invoke(context, "remove", ["--clean-deps", *sort_packages(packages)], apivfs=True)
else:
Dnf.invoke(context, "remove", packages, apivfs=True)
from mkosi.run import find_binary, run
from mkosi.sandbox import apivfs_cmd
from mkosi.types import CompletedProcess, PathString
-from mkosi.util import sort_packages, umask
+from mkosi.util import umask
class Apt(PackageManager):
cls,
context: Context,
operation: str,
- packages: Sequence[str] = (),
+ arguments: Sequence[str] = (),
*,
- options: Sequence[str] = (),
apivfs: bool = False,
mounts: Sequence[PathString] = (),
) -> CompletedProcess:
with finalize_ephemeral_source_mounts(context.config) as sources:
return run(
- cls.cmd(context, "apt-get") + [operation, *options, *sort_packages(packages)],
+ cls.cmd(context, "apt-get") + [operation, *arguments],
sandbox=(
context.sandbox(
network=True,
cls.invoke(
context,
"update",
- options=[
+ arguments=[
"-o", "Dir::Etc::sourcelist=sources.list.d/mkosi-local.sources",
"-o", "Dir::Etc::sourceparts=-",
"-o", "APT::Get::List-Cleanup=0",
from mkosi.run import find_binary, run
from mkosi.sandbox import apivfs_cmd
from mkosi.types import CompletedProcess, PathString
-from mkosi.util import sort_packages
class Dnf(PackageManager):
cls,
context: Context,
operation: str,
- packages: Iterable[str] = (),
- options: Sequence[str] = (),
+ arguments: Sequence[str] = (),
+ *,
apivfs: bool = False,
) -> CompletedProcess:
try:
with finalize_ephemeral_source_mounts(context.config) as sources:
return run(
- cls.cmd(context) + [operation, *options, *sort_packages(packages)],
+ cls.cmd(context) + [operation,*arguments],
sandbox=(
context.sandbox(
network=True,
cls.invoke(
context,
"makecache",
- options=[
+ arguments=[
"--refresh",
*(["--setopt=cacheonly=none"] if cls.executable(context.config) == "dnf5" else []),
*options,
from mkosi.run import run
from mkosi.sandbox import apivfs_cmd
from mkosi.types import CompletedProcess, PathString
-from mkosi.util import sort_packages, umask
+from mkosi.util import umask
from mkosi.versioncomp import GenericVersion
cls,
context: Context,
operation: str,
- options: Sequence[str] = (),
- packages: Sequence[str] = (),
+ arguments: Sequence[str] = (),
+ *,
apivfs: bool = False,
) -> CompletedProcess:
with finalize_ephemeral_source_mounts(context.config) as sources:
return run(
- cls.cmd(context) + [operation, *options, *sort_packages(packages)],
+ cls.cmd(context) + [operation, *arguments],
sandbox=(
context.sandbox(
network=True,
from mkosi.run import run
from mkosi.sandbox import apivfs_cmd
from mkosi.types import CompletedProcess, PathString
-from mkosi.util import sort_packages
class Zypper(PackageManager):
cls,
context: Context,
operation: str,
- packages: Sequence[str] = (),
+ arguments: Sequence[str] = (),
*,
- options: Sequence[str] = (),
apivfs: bool = False,
) -> CompletedProcess:
with finalize_ephemeral_source_mounts(context.config) as sources:
return run(
- cls.cmd(context) + [operation, *options, *sort_packages(packages)],
+ cls.cmd(context) + [operation, *arguments],
sandbox=(
context.sandbox(
network=True,