summaryrefslogtreecommitdiff
path: root/bumpPkgrel
diff options
context:
space:
mode:
authorStefanie Eckner <stefanie@eckner.net>2024-12-30 16:46:56 +0100
committerStefanie Eckner <stefanie@eckner.net>2024-12-30 16:46:56 +0100
commit312339c949e584d5787b3198101903042a3efd9d (patch)
tree59b2dee43caa20d2ef11be083f0f981a1889bbcd /bumpPkgrel
parent22a2eb9adf0d5d4df80e8ced6ef562bc48798865 (diff)
downloadarchlinuxewe-312339c949e584d5787b3198101903042a3efd9d.tar.xz
pin dependencies for all architectures correctly
Diffstat (limited to 'bumpPkgrel')
-rwxr-xr-xbumpPkgrel49
1 files changed, 37 insertions, 12 deletions
diff --git a/bumpPkgrel b/bumpPkgrel
index 014c6102d..840119c52 100755
--- a/bumpPkgrel
+++ b/bumpPkgrel
@@ -20,7 +20,7 @@ eval set -- "$(
auto_detect=false
commit=true
commit_flag=''
-provided=''
+provided=()
while true; do
case "$1" in
@@ -33,7 +33,7 @@ while true; do
;;
'-p')
shift
- provided="$1"
+ provided=("${provided[@]}" "$1")
;;
'--')
shift
@@ -50,12 +50,28 @@ if [ $# -eq 0 ] && ! ${auto_detect}; then
usage
fi
-if [ -z "${provided}" ]; then
- provided=$("${0%/*}/liste-verfuegbare-Versionen") || exit $?
- trap 'rm -f "${provided}"' EXIT
+if [ ${#provided[@]} -eq 0 ]; then
+ provided=(
+ $(
+ printf 'arch\n%s\n' 'i486' 'i686' 'pentium4' 'x86_64' \
+ | parallel -l2 "${0%/*}/liste-verfuegbare-Versionen"
+ )
+ )
+ trap 'rm -f "${provided[@]}"' EXIT
fi
pin_dependency() {
+ prov=$(
+ printf '%s\n' "${provided[@]}" \
+ | grep -m1 '\.\(arch\.'"$2"'\|'"$2"'\.x86_64\)$'
+ ) || prov=$(
+ printf '%s\n' "${provided[@]}" \
+ | grep -m1 '\.arch\.x86_64$'
+ ) || prov=$(
+ printf '%s\n' "${provided[@]}" \
+ | head -n1
+ )
+ >&2 echo "'$2' '$prov'"
sed '
s/^\(\S\+\)>\?=\(\S\+\)$/\1 \2/
t
@@ -64,7 +80,7 @@ pin_dependency() {
d
' \
| sort -k1,1 \
- | join -1 1 -2 2 -a 1 -e EMPTY -o 1.1,1.2,2.1 - "${provided}" \
+ | join -1 1 -2 2 -a 1 -e EMPTY -o 1.1,1.2,2.1 - "${prov}" \
| sed '
s/ \(\S\+\) EMPTY$/ \1 \1/
' \
@@ -81,19 +97,23 @@ if [ $# -ne 1 ] || ${auto_detect}; then
{
printf '%s\n' "$@"
if ${auto_detect}; then
- "${0%/*}/checkPinnedDependencies" -m "${provided}"
+ "${0%/*}/checkPinnedDependencies" -m "${provided[@]}"
fi
} \
| sort -u \
- | xargs -rn1 "$0" ${commit_flag} -p "${provided}"
+ | xargs -rn1 "$0" ${commit_flag} $(printf ' -p %s' "${provided[@]}")
- if ${auto_detect}; then
+ if ${auto_detect} \
+ && prov=$(
+ printf '%s\n' "${provided[@]}" \
+ | grep -m1 '\.arch\.x86_64$'
+ ); then
python_version=$(
sed '
s/^\(3\.[0-9]\+\)\(\.[0-9.]\+\)\? python$/\1/
t
d
- ' "${provided}"
+ ' "${prov}"
)
if cat "${0%/*}"/*/PKGBUILD \
| sed '
@@ -102,7 +122,7 @@ if [ $# -ne 1 ] || ${auto_detect}; then
d
' \
| grep -qvxF "python>=${python_version}"; then
- "${0%/*}/bumpPython" "${python_version}" "${provided}"
+ "${0%/*}/bumpPython" "${python_version}" "${provided[@]}"
fi
fi
@@ -121,6 +141,11 @@ else
fi
if printf '%s\n' "${line}" \
| grep -q '^\s*_pinned_dependencies\([^=[:space:]]*\)=('; then
+ suffix="${line%%=*}"
+ suffix="${suffix##*_}"
+ if [ "${suffix}" = 'dependencies' ]; then
+ unset suffix
+ fi
space="${line%%_pinned_dependencies*=(*}"
printf '%s=(\n' "${line%%=(*}"
line="${line#*_pinned_dependencies*=(}"
@@ -136,7 +161,7 @@ else
/^$/d
s/^\(["'"'"']\)\(\S\+\)\1$/\2/
' \
- | pin_dependency "${space} "
+ | pin_dependency "${space} " "${suffix}"
printf '%s)%s\n' "${space}" "${line#*)}"
continue
fi