Compare commits

...

2 Commits

Author SHA1 Message Date
Felix Yan
473ef0a2e1 Merge branch 'unsupported-arch' into 'master'
feat: allow building for unsupported architecture

See merge request archlinux/devtools!294
2025-08-01 23:03:23 +00:00
Felix Yan
332ccc95ef feat: allow building for unsupported architecture
The hard check here has been prevented us (the RISC-V port) from utilizing `pkgctl build` for a while. As long as the list (DEVTOOLS_VALID_ARCHES) isn't easily extendable, I think it's a better idea to allow building with a warning when specifying `--arch` manually.

Also disables repository detection and `--repo` check for unsupported
architectures.
2024-12-29 13:58:45 +08:00

View File

@@ -124,6 +124,7 @@ pkgctl_build() {
local RELEASE=0 local RELEASE=0
local DB_UPDATE=0 local DB_UPDATE=0
local INSTALL_TO_HOST=none local INSTALL_TO_HOST=none
local UNSUPPORTED_ARCH=0
local REPO= local REPO=
local PKGVER= local PKGVER=
@@ -165,7 +166,8 @@ pkgctl_build() {
BUILD_ARCH=("${DEVTOOLS_VALID_ARCHES[0]}") BUILD_ARCH=("${DEVTOOLS_VALID_ARCHES[0]}")
elif ! in_array "${2}" "${BUILD_ARCH[@]}"; then elif ! in_array "${2}" "${BUILD_ARCH[@]}"; then
if ! in_array "${2}" "${DEVTOOLS_VALID_ARCHES[@]}"; then if ! in_array "${2}" "${DEVTOOLS_VALID_ARCHES[@]}"; then
die 'invalid architecture: %s' "${2}" warning 'unsupported architecture: %s' "${2}"
UNSUPPORTED_ARCH=1
fi fi
BUILD_ARCH+=("${2}") BUILD_ARCH+=("${2}")
fi fi
@@ -312,6 +314,9 @@ pkgctl_build() {
# Update pacman cache for auto-detection # Update pacman cache for auto-detection
if [[ -z ${REPO} ]]; then if [[ -z ${REPO} ]]; then
if (( UNSUPPORTED_ARCH )); then
die "Unsupported architecture specified, cannot auto-detect repository"
fi
update_pacman_repo_cache multilib update_pacman_repo_cache multilib
# Check valid repos if not resolved dynamically # Check valid repos if not resolved dynamically
elif ! in_array "${REPO}" "${DEVTOOLS_VALID_REPOS[@]}"; then elif ! in_array "${REPO}" "${DEVTOOLS_VALID_REPOS[@]}"; then
@@ -343,7 +348,7 @@ pkgctl_build() {
fi fi
# fail if an existing package specifies --repo # fail if an existing package specifies --repo
if [[ -n "${repo}" ]] && [[ -n ${pkgrepo} ]]; then if [[ -n "${repo}" ]] && [[ -n ${pkgrepo} ]] && (( ! UNSUPPORTED_ARCH )); then
# allow unstable to use --repo # allow unstable to use --repo
if [[ ${pkgrepo} == *unstable ]]; then if [[ ${pkgrepo} == *unstable ]]; then
repo=${pkgrepo} repo=${pkgrepo}