Compare commits

..

1 Commits

Author SHA1 Message Date
Levente Polyak
7a64d33b88 chore(license): avoid sourcing PKGBUILD in check subcommand
We don't actually need any data from the package, except the pkgbase
which is exclusively used during logging. Simply grep the pkgbase name
and use the path during early code path issues.

Component: pkgctl license check
2025-08-02 06:30:25 +02:00
4 changed files with 11 additions and 18 deletions

View File

@@ -155,7 +155,7 @@ if (( ${#needsversioning[*]} )); then
if [[ ! -f "${file}" ]]; then if [[ ! -f "${file}" ]]; then
continue continue
fi fi
if ! git ls-files --error-unmatch "$file" >/dev/null; then if ! git ls-files --error-unmatch "$file"; then
die "%s is not under version control" "$file" die "%s is not under version control" "$file"
fi fi
done done

View File

@@ -124,7 +124,6 @@ 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=
@@ -166,8 +165,7 @@ 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
warning 'unsupported architecture: %s' "${2}" die 'invalid architecture: %s' "${2}"
UNSUPPORTED_ARCH=1
fi fi
BUILD_ARCH+=("${2}") BUILD_ARCH+=("${2}")
fi fi
@@ -314,9 +312,6 @@ 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
@@ -348,7 +343,7 @@ pkgctl_build() {
fi fi
# fail if an existing package specifies --repo # fail if an existing package specifies --repo
if [[ -n "${repo}" ]] && [[ -n ${pkgrepo} ]] && (( ! UNSUPPORTED_ARCH )); then if [[ -n "${repo}" ]] && [[ -n ${pkgrepo} ]]; then
# allow unstable to use --repo # allow unstable to use --repo
if [[ ${pkgrepo} == *unstable ]]; then if [[ ${pkgrepo} == *unstable ]]; then
repo=${pkgrepo} repo=${pkgrepo}

View File

@@ -94,19 +94,19 @@ pkgctl_license_check() {
pushd "${path}" >/dev/null pushd "${path}" >/dev/null
if [[ ! -f PKGBUILD ]]; then if [[ ! -f PKGBUILD ]]; then
msg_error "${BOLD}${pkgbase}:${ALL_OFF} no PKGBUILD found" msg_error "${BOLD}${path}:${ALL_OFF} no PKGBUILD found"
return 1 return 1
fi fi
# reset common PKGBUILD variables if [[ ! -f .SRCINFO ]]; then
unset pkgbase msg_error "${BOLD}${path}:${ALL_OFF} no .SRCINFO found"
return 1
# shellcheck source=contrib/makepkg/PKGBUILD.proto fi
if ! . ./PKGBUILD; then
msg_error "${BOLD}${pkgbase}:${ALL_OFF} failed to source PKGBUILD" if ! pkgbase=$(grep --max-count=1 --extended-regexp "pkgbase = (.+)" .SRCINFO | awk '{print $3}'); then
msg_error "${BOLD}${path}:${ALL_OFF} pkgbase not found in .SRCINFO"
return 1 return 1
fi fi
pkgbase=${pkgbase:-$pkgname}
if [[ ! -e LICENSE ]]; then if [[ ! -e LICENSE ]]; then
msg_error "${BOLD}${pkgbase}:${ALL_OFF} is missing the LICENSE file" msg_error "${BOLD}${pkgbase}:${ALL_OFF} is missing the LICENSE file"

View File

@@ -191,9 +191,7 @@ path = [
".nvchecker.toml", ".nvchecker.toml",
"*.install", "*.install",
"*.sysusers", "*.sysusers",
"*sysusers.conf",
"*.tmpfiles", "*.tmpfiles",
"*tmpfiles.conf",
"*.logrotate", "*.logrotate",
"*.pam", "*.pam",
"*.service", "*.service",