PKGBUILDs/devel/apply-versions.sh

69 lines
2.6 KiB
Bash
Executable File

#!/bin/bash
set -e # abort on first error
shopt -s nullglob
bindir=$(dirname "$0")
source "$bindir/versions.sh"
for pkgbuild_file in "${PKGBUILD_DIR:-.}"/*/*/PKGBUILD; do
trimmed_path=${pkgbuild_file#${PKGBUILD_DIR:-.}/}
project_name=${trimmed_path%%/*}
variant=${trimmed_path%/PKGBUILD}
variant=${variant#$project_name/}
# skip Git packages
[ ${variant##*-} == 'git' ] && continue
# skip android packages (for now)
qt6_pattern='qt6-.*' is_qt6=
[[ $project_name =~ $qt6_pattern ]] && is_qt6=1
[ ${variant%%-*} == 'android' ] && [[ ! $is_qt6 ]] && continue
# skip some of the packages
[[ $project_name == 'qt5-quick1' # removed from official releases
|| $project_name == 'qt5-webkit' # even revived version is dead
|| $project_name == 'qt5-webview' # does not build for Windows, would require qt5-webengine
|| $project_name == 'qt5-canvas3d' # removed from official releases
|| $project_name == 'qt5-script' # extra case (still released, not on KDE branch)
|| $variant == 'mingw-w64-test' # just our own 'test' package (not used anymore)
]] && continue
# skip default qt6 packages (provided by Arch Linux itself)
[[ $is_qt6 ]] && [[ $variant == 'default' ]] && continue
# treat all qt5-*/qt6-* packages as qt5/qt6
start=${project_name%%-*}
for qtver in 5 6; do
[[ $start == "qt$qtver" ]] && project_name="qt$qtver" && break
done
# skip packages with unknown version
version=${versions[$project_name]}
[[ $version ]] || continue
# skip if version doesn't differ
source "$pkgbuild_file"
[[ $version == $pkgver ]] && continue
[[ $version == $_qtver ]] && continue
pattern='(apple-darwin-.*|android-.*-(c\+\+utilities|qtutilities|passwordfile|passwordmanager))'
[[ $pkgname =~ $pattern ]] && continue
# check if template exists and modify template instead
template=$pkgbuild_file.sh.ep
layoutname=$pkgname
[[ $layoutname =~ android-aarch64-.* ]] && layoutname=android-${pkgname##android-aarch64-}
layout=$bindir/generator/templates/layouts/$layoutname.sh.ep
if [[ -f $layout ]]; then
[[ $VERBOSE ]] && echo "Considering layout $pkgname.sh.ep for $trimmed_path"
pkgbuild_file=$layout
elif [[ -f $template ]]; then
[[ $VERBOSE ]] && echo "Considering template $trimmed_path.sh.ep for $trimmed_path"
pkgbuild_file=$template
fi
# apply new version
sed -i -e "s/^\(_qtver\|pkgver\)=[^\$][^<%]*/\1=$version/" -e "s/pkgrel=.*/pkgrel=1/" "$pkgbuild_file"
chmod 644 "$pkgbuild_file"
echo "$trimmed_path -> $version"
done