57 lines
1.9 KiB
Bash
57 lines
1.9 KiB
Bash
# nextcloud-native - Nextcloud Native (https://github.com/Obiente/native),
|
|
# an adaptive native Nextcloud client built with Kotlin/Compose Multiplatform.
|
|
#
|
|
# Source package: the PKGBUILD builds :ui:createDistributable from the release
|
|
# tarball, which is the same jpackage application image upstream wraps into the
|
|
# .deb that nextcloud-native-bin repackages.
|
|
#
|
|
# CONTRIBUTING.md lists an Android SDK, Rust and Node.js as prerequisites, but
|
|
# those cover the mobile target, the Windows Explorer helper and the website.
|
|
# The Linux desktop image builds with JDK 21 alone - verified against
|
|
# v0.1.0-alpha.2 with ANDROID_HOME and ANDROID_SDK_ROOT unset.
|
|
#
|
|
# Release/version handling is identical to nextcloud-native-bin: every upstream
|
|
# release is a prerelease and the list is dominated by per-build nightly-* and
|
|
# rolling channel-* releases, so only the versioned v* tags are packaged, and
|
|
# pkgver drops the hyphen (v0.1.0-alpha.2 -> 0.1.0alpha.2), which pacman sorts
|
|
# older than a later plain 0.1.0, so no epoch is needed. See
|
|
# nextcloud-native-bin/pkg.sh.
|
|
|
|
UPSTREAM_REPO="Obiente/native"
|
|
|
|
# Installed in CI (pacman) before the makepkg test build.
|
|
BUILD_DEPS=(jdk21-openjdk python)
|
|
|
|
latest_tag() {
|
|
gh api "repos/$UPSTREAM_REPO/releases?per_page=100" \
|
|
--jq '[.[] | select(.tag_name | test("^v[0-9]"))] | .[0].tag_name'
|
|
}
|
|
|
|
tag_to_pkgver() {
|
|
sed 's/^v//; s/-//g'
|
|
}
|
|
|
|
latest_version() {
|
|
latest_tag | tag_to_pkgver
|
|
}
|
|
|
|
# refresh_checksums <version> <pkgbuild-path>
|
|
refresh_checksums() {
|
|
local ver="$1" pkgbuild="$2"
|
|
local tag sha
|
|
|
|
tag="$(latest_tag)"
|
|
if [[ "$(tag_to_pkgver <<< "$tag")" != "$ver" ]]; then
|
|
echo "newest versioned release is $tag, not the requested $ver - try again" >&2
|
|
return 1
|
|
fi
|
|
|
|
sha="$(curl -sfL "https://github.com/$UPSTREAM_REPO/archive/refs/tags/$tag.tar.gz" \
|
|
| sha256sum | cut -d' ' -f1)"
|
|
|
|
sed -i \
|
|
-e "s|^_tag=.*|_tag=\"$tag\"|" \
|
|
-e "s|^sha256sums=.*|sha256sums=('$sha')|" \
|
|
"$pkgbuild"
|
|
}
|