- 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
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))
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")
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
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: