[arch-commits] Commit in nextcloud-app-notify_push/trunk (PKGBUILD)

Caleb Maclennan alerque at gemini.archlinux.org
Fri May 20 19:29:54 UTC 2022


    Date: Friday, May 20, 2022 @ 19:29:54
  Author: alerque
Revision: 1209459

upgpkg: nextcloud-app-notify_push 0.4.0-3; detect supported nextcloud & php ranges

Modified:
  nextcloud-app-notify_push/trunk/PKGBUILD

----------+
 PKGBUILD |   56 ++++++++++++++++++++++++++++++++++++++++++++++++++++++--
 1 file changed, 54 insertions(+), 2 deletions(-)

Modified: PKGBUILD
===================================================================
--- PKGBUILD	2022-05-20 19:21:17 UTC (rev 1209458)
+++ PKGBUILD	2022-05-20 19:29:54 UTC (rev 1209459)
@@ -3,17 +3,17 @@
 
 pkgname=nextcloud-app-notify_push
 pkgver=0.4.0
-pkgrel=2
+pkgrel=3
 pkgdesc='Update notifications for nextcloud clients'
 arch=(x86_64)
 url="https://github.com/nextcloud/${pkgname##*-}"
 license=(AGPL3)
-depends=('nextcloud<25')
 makedepends=(cargo
              rsync)
 optdepends=('redis: use a local redis instance')
 options=(debug)
 install="$pkgname.install"
+groups=('nextcloud-apps')
 _archive="${pkgname##*-}-$pkgver"
 source=("$url/archive/v$pkgver/$_archive.tar.gz"
         "$pkgname.service")
@@ -20,6 +20,56 @@
 sha256sums=('c53ccb6df9fd7319d9ec3a3c21b5a602666b88bd6e05e769dd9fc290eefa2df0'
             'b22b470f9e02d2bbe0c266431948daaadd7e7f007c27a989bdfcb063ee58fac6')
 
+# BEGIN boilerplate nextcloud app versioning code, see nextcloud-app-* packages
+makedepends+=(nextcloud ripgrep yq)
+_get_nextcloud_versions() {
+	_app_min_major_version="$(< appinfo/info.xml xq -r '.info.dependencies.nextcloud["@min-version"] | values')"
+	_app_max_major_version="$(< appinfo/info.xml xq -r '.info.dependencies.nextcloud["@max-version"] | values | tonumber | .+1')"
+}
+_get_php_versions() {
+	local _phps=(php7 php)
+	_app_min_php="$(< appinfo/info.xml xq -r '.info.dependencies.php["@min-version"] | values')"
+	_app_max_php="$(< appinfo/info.xml xq -r '.info.dependencies.php["@max-version"] | values | tonumber | .+0.1')"
+	_system_php=""
+	for _php in "${_phps[@]}"; do
+		if command -v "$_php" > /dev/null; then
+			_system_php="$_php"
+			break
+		fi
+	done
+}
+_nextcloud_app_check() {
+	_get_nextcloud_versions
+	_get_php_versions
+	local _nextcloud_major_version="$("$_system_php" <(cat /usr/share/webapps/nextcloud/version.php; echo 'print($OC_Version[0]);'))"
+	if [[ "$(vercmp "$_nextcloud_major_version" "$_app_min_major_version")" -lt 0 ]] \
+	|| [[ "$(vercmp "$_nextcloud_major_version" "$_app_max_major_version")" -gt 0 ]] ; then
+		printf "%s requires nextcloud >= %s/ nextcloud <= %s, but nextcloud %s is provided.\n" \
+			"$pkgname" "$_app_min_major_version" "$_app_max_major_version" "$_nextcloud_major_version"
+		exit 1
+	fi
+	local _php_version="$("$_system_php" -r 'print(phpversion());')"
+	if [[ "$(vercmp "$_php_version" "$_app_min_php" )" -lt 0 ]]; then
+		printf "%s requires php-interpreter >= %s, but %s is provided\n" "$pkgname" "$_app_min_php" "$_php_version"
+		exit 1
+	fi
+	if [[ -n $_app_max_php ]]; then
+		if [[ "$(vercmp "$_php_version" "$_app_max_php" )" -ge 0 ]]; then
+		printf "%s requires php-interpreter < %s, but %s is provided\n" "$pkgname" "$_app_max_php" "$_php_version"
+		exit 1
+		fi
+	fi
+}
+_nextcloud_app_package() {
+  _get_nextcloud_versions
+  _get_php_versions
+  depends=("nextcloud>=$_app_min_major_version" "nextcloud<$_app_max_major_version")
+  [[ -z "$_app_min_php" ]] || depends+=("php-interpreter>=$_app_min_php")
+  [[ -z "$_app_max_php" ]] || depends+=("php-interpreter<$_app_max_php")
+  [[ -z "$_app_min_php" && -z "$_app_max_php" ]] || depends+=(php-interpreter)
+}
+# END boilerplate nextcloud app versioning code
+
 prepare() {
 	cd "$_archive"
 	cargo fetch --locked --target "$CARCH-unknown-linux-gnu"
@@ -34,11 +84,13 @@
 
 check() {
 	cd "$_archive"
+	_nextcloud_app_check
 	cargo test --frozen --all-features
 }
 
 package() {
 	cd "$_archive"
+	_nextcloud_app_package
 	_appdir="$pkgdir/usr/share/webapps/nextcloud/apps/${pkgname##*-}"
 	rsync -a --mkpath \
 		--include='appinfo/***' \



More information about the arch-commits mailing list