epel_testing_url = "metalink=https://mirrors.fedoraproject.org/metalink?repo=testing-epel$releasever&arch=$basearch"
return [
- Repo("epel", epel_url, epel_gpgurl, enabled=False),
- Repo("epel-testing", epel_testing_url, epel_gpgurl, enabled=False),
+ Repo("epel", epel_url, [epel_gpgurl], enabled=False),
+ Repo("epel-testing", epel_testing_url, [epel_gpgurl], enabled=False),
]
@classmethod
crb_url = None
powertools_url = f"mirrorlist={cls._mirror_repo_url('PowerTools')}"
- repos = [Repo("appstream", appstream_url, gpgurl)]
+ repos = [Repo("appstream", appstream_url, [gpgurl])]
if baseos_url is not None:
- repos += [Repo("baseos", baseos_url, gpgurl)]
+ repos += [Repo("baseos", baseos_url, [gpgurl])]
if extras_url is not None:
- repos += [Repo("extras", extras_url, gpgurl)]
+ repos += [Repo("extras", extras_url, [gpgurl])]
if crb_url is not None:
- repos += [Repo("crb", crb_url, gpgurl)]
+ repos += [Repo("crb", crb_url, [gpgurl])]
if powertools_url is not None:
- repos += [Repo("powertools", powertools_url, gpgurl)]
+ repos += [Repo("powertools", powertools_url, [gpgurl])]
repos += cls._epel_repos(config)
return repos
extras_url = "metalink=https://mirrors.centos.org/metalink?repo=centos-extras-sig-extras-common-$stream&arch=$basearch&protocol=https,http"
crb_url = "metalink=https://mirrors.centos.org/metalink?repo=centos-crb-$stream&arch=$basearch&protocol=https,http"
- repos = [Repo("appstream", appstream_url, gpgurl)]
+ repos = [Repo("appstream", appstream_url, [gpgurl])]
if baseos_url is not None:
- repos += [Repo("baseos", baseos_url, gpgurl)]
+ repos += [Repo("baseos", baseos_url, [gpgurl])]
if extras_url is not None:
- repos += [Repo("extras", extras_url, extras_gpgurl)]
+ repos += [Repo("extras", extras_url, [extras_gpgurl])]
if crb_url is not None:
- repos += [Repo("crb", crb_url, gpgurl)]
+ repos += [Repo("crb", crb_url, [gpgurl])]
repos += cls._epel_repos(config)
return repos
# See: https://fedoraproject.org/security/
gpgurl = "https://fedoraproject.org/fedora.gpg"
- repos = [Repo("fedora", release_url, gpgurl)]
+ repos = [Repo("fedora", release_url, [gpgurl])]
if updates_url is not None:
- repos += [Repo("updates", updates_url, gpgurl)]
+ repos += [Repo("updates", updates_url, [gpgurl])]
setup_dnf(state, repos)
invoke_dnf(state, "install", packages, apivfs=apivfs)
class Repo(NamedTuple):
id: str
url: str
- gpgurl: str
+ gpgurls: list[str]
enabled: bool = True
-def setup_dnf(state: MkosiState, repos: Sequence[Repo] = ()) -> None:
+def setup_dnf(state: MkosiState, repos: Sequence[Repo]) -> None:
with state.workspace.joinpath("dnf.conf").open("w") as f:
for repo in repos:
f.write(
[{repo.id}]
name={repo.id}
{repo.url}
- gpgkey={repo.gpgurl}
gpgcheck=1
enabled={int(repo.enabled)}
"""
)
)
+ for i, url in enumerate(repo.gpgurls):
+ f.write("gpgkey=" if i == 0 else len("gpgkey=") * " ")
+ f.write(f"{url}\n")
+
def invoke_dnf(
state: MkosiState,
gpgurl = f"https://mirrors.kernel.org/mageia/distrib/{release}/{state.config.architecture}/media/core/release/media_info/pubkey"
- repos = [Repo(f"mageia-{release}", release_url, gpgurl)]
+ repos = [Repo(f"mageia-{release}", release_url, [gpgurl])]
if updates_url is not None:
- repos += [Repo(f"mageia-{release}-updates", updates_url, gpgurl)]
+ repos += [Repo(f"mageia-{release}-updates", updates_url, [gpgurl])]
setup_dnf(state, repos)
invoke_dnf(state, "install", packages, apivfs=apivfs)
gpgurl = "https://raw.githubusercontent.com/OpenMandrivaAssociation/openmandriva-repos/master/RPM-GPG-KEY-OpenMandriva"
- repos = [Repo("openmandriva", release_url, gpgurl)]
+ repos = [Repo("openmandriva", release_url, [gpgurl])]
if updates_url is not None:
- repos += [Repo("updates", updates_url, gpgurl)]
+ repos += [Repo("updates", updates_url, [gpgurl])]
setup_dnf(state, repos)
invoke_dnf(state, "install", packages, apivfs=apivfs)