diff --git a/pmb/aportgen/__init__.py b/pmb/aportgen/__init__.py index ac885c9a..778fefcd 100644 --- a/pmb/aportgen/__init__.py +++ b/pmb/aportgen/__init__.py @@ -1,6 +1,7 @@ # Copyright 2023 Oliver Smith # SPDX-License-Identifier: GPL-3.0-or-later import os +from pmb.core.arch import Arch from pmb.core.context import get_context from pmb.core.pkgrepo import pkgrepo_default_path from pmb.helpers import logging @@ -16,13 +17,17 @@ from pmb.types import PmbArgs import pmb.helpers.cli -def get_cross_package_arches(pkgname): +def get_cross_package_arches(pkgname: str) -> str: """ Get the arches for which we want to build cross packages. :param pkgname: package name, e.g. "gcc-aarch64", "gcc-x86_64" - :returns: string of architecture(s) (space separated) + :returns: string of architecture(s) (space separated). It doesn't + necessarily make sense to use Arch here given that this value gets + used to write APKBUILD files, where the ``arch`` field can have values + that aren't necessarily valid arches like "!armhf", "noarch", or + "x86 x86_64". """ if pkgname.endswith("-x86_64"): diff --git a/pmb/aportgen/busybox_static.py b/pmb/aportgen/busybox_static.py index 3cbefcf5..36c9a2b1 100644 --- a/pmb/aportgen/busybox_static.py +++ b/pmb/aportgen/busybox_static.py @@ -8,11 +8,12 @@ import pmb.chroot.apk_static import pmb.helpers.run import pmb.parse.apkindex from pmb.core import Chroot +from pmb.core.arch import Arch from pmb.core.context import get_context def generate(pkgname: str) -> None: - arch = pkgname.split("-")[2] + arch = Arch.from_str(pkgname.split("-")[2]) context = get_context() # Parse version from APKINDEX diff --git a/pmb/aportgen/core.py b/pmb/aportgen/core.py index 338c178f..1a829f0a 100644 --- a/pmb/aportgen/core.py +++ b/pmb/aportgen/core.py @@ -6,6 +6,7 @@ import re import pmb.helpers.git import pmb.helpers.run import pmb.helpers.args +from pmb.core.arch import Arch from pmb.core.context import get_context @@ -160,7 +161,7 @@ def rewrite( handle.truncate() -def get_upstream_aport(pkgname: str, arch=None): +def get_upstream_aport(pkgname: str, arch: Arch | None = None): """ Perform a git checkout of Alpine's aports and get the path to the aport. diff --git a/pmb/aportgen/gcc.py b/pmb/aportgen/gcc.py index ae692840..3d8cb6bd 100644 --- a/pmb/aportgen/gcc.py +++ b/pmb/aportgen/gcc.py @@ -1,6 +1,7 @@ # Copyright 2023 Oliver Smith # SPDX-License-Identifier: GPL-3.0-or-later import pmb.aportgen.core +from pmb.core.arch import Arch from pmb.core.context import get_context from pmb.core.pkgrepo import pkgrepo_default_path import pmb.helpers.git @@ -10,7 +11,7 @@ import pmb.helpers.run def generate(pkgname: str): # Copy original aport prefix = pkgname.split("-")[0] - arch = pkgname.split("-")[1] + arch = Arch.from_str(pkgname.split("-")[1]) context = get_context() if prefix == "gcc": upstream = pmb.aportgen.core.get_upstream_aport("gcc", arch) @@ -51,7 +52,7 @@ def generate(pkgname: str): below_header = ( "CTARGET_ARCH=" - + arch + + str(arch) + """ CTARGET="$(arch_to_hostspec ${CTARGET_ARCH})" LANG_D=false diff --git a/pmb/aportgen/grub_efi.py b/pmb/aportgen/grub_efi.py index 84e98c57..54bd2b89 100644 --- a/pmb/aportgen/grub_efi.py +++ b/pmb/aportgen/grub_efi.py @@ -13,7 +13,7 @@ from pmb.core.context import get_context def generate(pkgname): - arch = "x86" + arch = Arch.x86 if pkgname != "grub-efi-x86": raise RuntimeError("only grub-efi-x86 is available") package_data = pmb.parse.apkindex.package("grub") diff --git a/pmb/aportgen/musl.py b/pmb/aportgen/musl.py index 1a17a85b..40aea20c 100644 --- a/pmb/aportgen/musl.py +++ b/pmb/aportgen/musl.py @@ -8,11 +8,12 @@ import pmb.chroot.apk_static import pmb.helpers.run import pmb.parse.apkindex from pmb.core import Chroot +from pmb.core.arch import Arch from pmb.core.context import get_context -def generate(pkgname): - arch = pkgname.split("-")[1] +def generate(pkgname: str) -> None: + arch = Arch.from_str(pkgname.split("-")[1]) # Parse musl version from APKINDEX package_data = pmb.parse.apkindex.package("musl")