Compare commits

..

2 Commits

Author SHA1 Message Date
Kailiang
bb459ec352 Merge branch 'fix-cachedir-from-custom-pacconf' into 'master'
fix(mkarchroot): query cache_dirs from pac_conf

Closes #278

See merge request archlinux/devtools!314
2025-08-10 23:14:22 +00:00
XU Kailiang
6ed548b260 fix(mkarchroot): query cache_dirs from pac_conf
If mkarchroot is not given cache_dirs by `-c` flag, it queries them by
calling pacman-conf. But previously this call ignores pacman config from
`-C` flag. Fix this by using `pacman-conf -c "$pac_conf"` when a
non-default pacman config is requested.

Fixes #278

Component: mkarchroot
2025-06-23 20:22:35 +08:00
8 changed files with 11 additions and 49 deletions

View File

@@ -3,7 +3,7 @@ pkgctl-auth(1)
Name Name
---- ----
pkgctl-auth - Authenticate with services like GitLab. pkgctl-auth - Authenticate with serivces like GitLab.
Synopsis Synopsis
-------- --------

View File

@@ -39,17 +39,6 @@ placed in the `$XDG_CONFIG_HOME`/nvchecker` directory. This keyfile is
used for providing the necessary authentication tokens required for used for providing the necessary authentication tokens required for
accessing the GitHub or GitLab API. accessing the GitHub or GitLab API.
Combiner Source
---------------
To utilize the combiner source, the `pkgbase` section must be declared as the
combiner source. Additionally, individual sections should be added using a
quoted table key consisting of the `pkgbase` followed by the stage name,
separated by double colons. For example: `["sudo:stage1"]`.
This allows to chain different sources together into one result, or allow
multi stage transformation of our source via multiple regex.
Options Options
------- -------

View File

@@ -49,9 +49,6 @@ pkgctl diff::
pkgctl issue:: pkgctl issue::
Work with GitLab packaging issues Work with GitLab packaging issues
pkgctl license::
Check and manage package licenses
pkgctl release:: pkgctl release::
Release step to commit, tag and upload build artifacts Release step to commit, tag and upload build artifacts
@@ -73,7 +70,6 @@ pkgctl-build(1)
pkgctl-db(1) pkgctl-db(1)
pkgctl-diff(1) pkgctl-diff(1)
pkgctl-issue(1) pkgctl-issue(1)
pkgctl-license(1)
pkgctl-release(1) pkgctl-release(1)
pkgctl-repo(1) pkgctl-repo(1)
pkgctl-search(1) pkgctl-search(1)

View File

@@ -54,8 +54,7 @@ export RSYNC_OPTS=(
--human-readable --human-readable
--progress --progress
--partial --partial
# suffix the partial dir with the PID in order to avoid clashes --partial-dir=.partial
--partial-dir=.partial.$$
--delay-updates --delay-updates
) )
@@ -442,10 +441,3 @@ relative_date_unit() {
done done
printf "1 second" printf "1 second"
} }
# escapes regex metacharacters in a given string
regex_escape() {
# shellcheck disable=SC2001,SC2016
sed 's/[\^.\[$()|*+?{\\]/\\&/g' <<<"$1"
}

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}${path}:${ALL_OFF} no PKGBUILD found" msg_error "${BOLD}${pkgbase}:${ALL_OFF} no PKGBUILD found"
return 1 return 1
fi fi
if [[ ! -f .SRCINFO ]]; then # reset common PKGBUILD variables
msg_error "${BOLD}${path}:${ALL_OFF} no .SRCINFO found" unset pkgbase
return 1
fi
if ! pkgbase=$(grep --max-count=1 --extended-regexp "pkgbase = (.+)" .SRCINFO | awk '{print $3}'); then # shellcheck source=contrib/makepkg/PKGBUILD.proto
msg_error "${BOLD}${path}:${ALL_OFF} pkgbase not found in .SRCINFO" if ! . ./PKGBUILD; then
msg_error "${BOLD}${pkgbase}:${ALL_OFF} failed to source PKGBUILD"
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

@@ -6,8 +6,6 @@
DEVTOOLS_INCLUDE_UTIL_PKGBUILD_SH=1 DEVTOOLS_INCLUDE_UTIL_PKGBUILD_SH=1
_DEVTOOLS_LIBRARY_DIR=${_DEVTOOLS_LIBRARY_DIR:-@pkgdatadir@} _DEVTOOLS_LIBRARY_DIR=${_DEVTOOLS_LIBRARY_DIR:-@pkgdatadir@}
# shellcheck source=src/lib/common.sh
source "${_DEVTOOLS_LIBRARY_DIR}"/lib/common.sh
# shellcheck source=src/lib/util/makepkg.sh # shellcheck source=src/lib/util/makepkg.sh
source "${_DEVTOOLS_LIBRARY_DIR}"/lib/util/makepkg.sh source "${_DEVTOOLS_LIBRARY_DIR}"/lib/util/makepkg.sh
@@ -23,8 +21,6 @@ pkgbuild_set_pkgver() {
local new_pkgver=$1 local new_pkgver=$1
local pkgver=${pkgver} local pkgver=${pkgver}
pkgver="$(regex_escape "${pkgver}")"
if [[ $(type -t pkgver) == function ]]; then if [[ $(type -t pkgver) == function ]]; then
# TODO: check if die or warn, if we provide _commit _gitcommit setter maybe? # TODO: check if die or warn, if we provide _commit _gitcommit setter maybe?
warning 'setting pkgver variable has no effect if the PKGBUILD has a pkgver() function' warning 'setting pkgver variable has no effect if the PKGBUILD has a pkgver() function'

View File

@@ -304,11 +304,6 @@ get_upstream_version() {
return 1 return 1
fi fi
if ! output=$(jq --raw-output --exit-status 'select(.name == "'"${pkgbase}"'")' <<< "${output}"); then
printf "failed to select pkgbase result from output"
return 1
fi
if ! upstream_version=$(jq --raw-output --exit-status '.version' <<< "${output}"); then if ! upstream_version=$(jq --raw-output --exit-status '.version' <<< "${output}"); then
printf "failed to select version from result" printf "failed to select version from result"
return 1 return 1
@@ -351,16 +346,10 @@ nvchecker_check_config() {
fi fi
# check if the config contains any section other than pkgbase # check if the config contains any section other than pkgbase
if [[ -n ${pkgbase} ]] && property=$(grep --max-count=1 --perl-regexp "^\\[(?!\"?${pkgbase//+/\\+}(:.+)?\"?\\]).+\\]" < "${config}"); then if [[ -n ${pkgbase} ]] && property=$(grep --max-count=1 --perl-regexp "^\\[(?!\"?${pkgbase//+/\\+}\"?\\]).+\\]" < "${config}"); then
printf "non-pkgbase section not supported in %s: %s" "${config}" "${property}" printf "non-pkgbase section not supported in %s: %s" "${config}" "${property}"
return 1 return 1
fi fi
# check if the config is using the 'cmd' source
if grep --extended-regexp --quiet '^\s*source\s*=\s*["'\'']cmd["'\''].*' "${config}"; then
printf "using the 'cmd' source in %s is disallowed" "${config}"
return 1
fi
} }
nvchecker_check_error() { nvchecker_check_error() {

View File

@@ -65,7 +65,7 @@ shift 1
if (( ${#cache_dirs[@]} == 0 )); then if (( ${#cache_dirs[@]} == 0 )); then
mapfile -t cache_dirs < <(pacman-conf CacheDir) mapfile -t cache_dirs < <(pacman-conf ${pac_conf:+-c "$pac_conf"} CacheDir)
fi fi
umask 0022 umask 0022