]> git.ipfire.org Git - thirdparty/mkosi.git/commitdiff
Streamline --repositories
authorDaan De Meyer <daan.j.demeyer@gmail.com>
Fri, 13 Jan 2023 13:58:29 +0000 (14:58 +0100)
committerDaan De Meyer <daan.j.demeyer@gmail.com>
Fri, 13 Jan 2023 15:20:13 +0000 (16:20 +0100)
NEWS.md
mkosi/__init__.py
mkosi/distributions/arch.py
mkosi/distributions/debian.py
mkosi/distributions/fedora.py

diff --git a/NEWS.md b/NEWS.md
index a854596611ca14a01595213e93611d8a7e593fbd..abe21c7a921740a5b0fbb56a00f8f8ec91eda75b 100644 (file)
--- a/NEWS.md
+++ b/NEWS.md
@@ -32,8 +32,8 @@
 - Support for --use-host-repositories was dropped, use --repository-directory instead
 - `RepositoryDirectory` was renamed to `RepositoryDirectories` and now takes a comma-separated
   list of directories to look for extra repository files.
-- The `_epel` distributions were removed. Use `--repositories=epel` instead to enable
-  the EPEL repository.
+- `--repositories` is now only usable on Debian/RPM based distros and can only be used to enable additional
+  repositories. Specifically, it cannot be used on Arch Linux anymore to add new repositories.
 
 ## v14
 
index 397f825805f12f8c0edcadd3e02cb64efc3a234c..814453cdb98d6c4732abc56129e2a0fcde0a7f0e 100644 (file)
@@ -3019,6 +3019,9 @@ def load_args(args: argparse.Namespace) -> MkosiConfig:
     if args.qemu_kvm and not qemu_check_kvm_support():
         die("Sorry, the host machine does not support KVM acceleration.")
 
+    if args.repositories and not is_rpm_distribution(args.distribution) and args.distribution not in (Distribution.debian, Distribution.ubuntu):
+        die("Sorry, the --repositories option is only supported on RPM/Debian based distributions")
+
     return MkosiConfig(**vars(args))
 
 
index a9e952b3ec3f1a9be22f1edcaec989bf4b7a7f05..15e520564ddd168bc4a97ec5beb715a9b927e369 100644 (file)
@@ -111,23 +111,6 @@ def install_arch(state: MkosiState) -> None:
         for d in state.config.repo_dirs:
             f.write(f"Include = {d}/*\n")
 
-        if state.config.repositories:
-            for repository in state.config.repositories:
-                # repositories must be passed in the form <repo name>::<repo url>
-                repository_name, repository_server = repository.split("::", 1)
-
-                # note: for additional repositories, signature checking options are set to pacman's default values
-                f.write(
-                    dedent(
-                        f"""\
-
-                        [{repository_name}]
-                        SigLevel = Optional TrustedOnly
-                        Server = {repository_server}
-                        """
-                    )
-                )
-
     packages: set[str] = set()
     add_packages(state.config, packages, "base")
 
index f813f9326b2f0debdd3922d117c3c764c023aa90..03489523e480b30253a0cff6df02f29a5683f334 100644 (file)
@@ -63,7 +63,7 @@ class DebianInstaller(DistributionInstaller):
         os.makedirs(dpkg_io_conf.parent, mode=0o755, exist_ok=True)
         dpkg_io_conf.write_text("force-unsafe-io\n")
 
-        repos = set(state.config.repositories) or {"main"}
+        repos = {"main", *state.config.repositories}
         # Ubuntu needs the 'universe' repo to install 'dracut'
         if state.config.bootable:
             repos |= cls.repositories_for_boot
index 89897c3c14de25219f17e8d98ac319793f2f7a20..c6ce5bd2a74b41dfde5a602935b26eb7f07ac630 100644 (file)
@@ -215,7 +215,7 @@ def invoke_dnf(state: MkosiState, command: str, packages: Iterable[str]) -> None
         cmdline += ["--nogpgcheck"]
 
     if state.config.repositories:
-        cmdline += ["--disablerepo=*"] + [f"--enablerepo={repo}" for repo in state.config.repositories]
+        cmdline += [f"--enablerepo={repo}" for repo in state.config.repositories]
 
     # TODO: this breaks with a local, offline repository created with 'createrepo'
     if state.config.with_network == "never" and not state.config.local_mirror: