# SPDX-License-Identifier: LGPL-2.1+
import shutil
+import urllib.parse
from collections.abc import Sequence
from mkosi.architecture import Architecture
@classmethod
def setup(cls, state: MkosiState) -> None:
- release = state.config.release.strip("'")
- arch = state.config.distribution.architecture(state.config.architecture)
+ gpgurls = (
+ find_rpm_gpgkey(
+ state,
+ "RPM-GPG-KEY-Mageia",
+ "https://mirrors.kernel.org/mageia/distrib/$releasever/$basearch/media/core/release/media_info/pubkey",
+ ),
+ )
+
+ repos = []
if state.config.local_mirror:
- release_url = f"baseurl={state.config.local_mirror}"
- updates_url = None
+ repos += [Repo("core-release", f"baseurl={state.config.local_mirror}", gpgurls)]
elif state.config.mirror:
- baseurl = f"{state.config.mirror}/distrib/{release}/{arch}/media/core/"
- release_url = f"baseurl={baseurl}/release/"
- if release == "cauldron":
- updates_url = None
- else:
- updates_url = f"baseurl={baseurl}/updates/"
+ url = f"baseurl={urllib.parse.urljoin(state.config.mirror, 'distrib/$releasever/$basearch/media/core/')}"
+ repos += [
+ Repo("core-release", f"{url}/release", gpgurls),
+ Repo("core-updates", f"{url}/updates/", gpgurls)
+ ]
else:
- baseurl = f"https://www.mageia.org/mirrorlist/?release={release}&arch={arch}§ion=core"
- release_url = f"mirrorlist={baseurl}&repo=release"
- if release == "cauldron":
- updates_url = None
- else:
- updates_url = f"mirrorlist={baseurl}&repo=updates"
-
- gpgurl = find_rpm_gpgkey(
- state,
- "RPM-GPG-KEY-Mageia",
- f"https://mirrors.kernel.org/mageia/distrib/{release}/{arch}/media/core/release/media_info/pubkey",
- )
-
- repos = [Repo(f"mageia-{release}", release_url, (gpgurl,))]
- if updates_url is not None:
- repos += [Repo(f"mageia-{release}-updates", updates_url, (gpgurl,))]
+ url = "mirrorlist=https://www.mageia.org/mirrorlist/?release=$releasever&arch=$basearch§ion=core"
+ repos += [
+ Repo("core-release", f"{url}&repo=release", gpgurls),
+ Repo("core-updates", f"{url}&repo=updates", gpgurls)
+ ]
setup_dnf(state, repos)
def architecture(arch: Architecture) -> str:
a = {
Architecture.x86_64 : "x86_64",
+ Architecture.arm64 : "aarch64",
}.get(arch)
if not a:
# SPDX-License-Identifier: LGPL-2.1+
import shutil
+import urllib.parse
from collections.abc import Sequence
from mkosi.architecture import Architecture
@classmethod
def setup(cls, state: MkosiState) -> None:
- release = state.config.release.strip("'")
- arch = state.config.distribution.architecture(state.config.architecture)
mirror = state.config.mirror or "http://mirror.openmandriva.org"
- if release[0].isdigit():
- release_model = "rock"
- elif release == "cooker":
- release_model = "cooker"
- else:
- release_model = release
+ gpgurls = (
+ find_rpm_gpgkey(
+ state,
+ "RPM-GPG-KEY-OpenMandriva",
+ "https://raw.githubusercontent.com/OpenMandrivaAssociation/openmandriva-repos/master/RPM-GPG-KEY-OpenMandriva",
+ ),
+ )
+
+ repos = []
if state.config.local_mirror:
- release_url = f"baseurl={state.config.local_mirror}"
- updates_url = None
+ repos += [Repo("main-release", f"baseurl={state.config.local_mirror}", gpgurls)]
else:
- baseurl = f"{mirror}/{release_model}/repository/{arch}/main"
- release_url = f"baseurl={baseurl}/release/"
- updates_url = f"baseurl={baseurl}/updates/"
-
- gpgurl = find_rpm_gpgkey(
- state,
- "RPM-GPG-KEY-OpenMandriva",
- "https://raw.githubusercontent.com/OpenMandrivaAssociation/openmandriva-repos/master/RPM-GPG-KEY-OpenMandriva",
- )
-
- repos = [Repo("openmandriva", release_url, (gpgurl,))]
- if updates_url is not None:
- repos += [Repo("updates", updates_url, (gpgurl,))]
+ url = f"baseurl={urllib.parse.urljoin(mirror, '$releasever/repository/$basearch/main')}"
+ repos += [
+ Repo("main-release", f"{url}/release", gpgurls),
+ Repo("main-updates", f"{url}/updates", gpgurls),
+ ]
setup_dnf(state, repos)
@staticmethod
def architecture(arch: Architecture) -> str:
a = {
- Architecture.x86_64 : "x86_64",
+ Architecture.x86_64 : "x86_64",
+ Architecture.arm64 : "aarch64",
+ Architecture.riscv64 : "riscv64",
}.get(arch)
if not a: