summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorxiota2023-12-23 22:19:46 -0800
committerxiota2023-12-23 22:29:26 -0800
commit1c81ae846f7edf7aa69750435296709f03ea65c7 (patch)
tree4c1561a72988d876577a307004b6d3a15c80adb7
parent23d5b62a880f8fd10642dce655bcbd999b2a6f58 (diff)
downloadaur-1c81ae846f7edf7aa69750435296709f03ea65c7.tar.gz
Bump to version 0.10.2
Add autoupdate capability
-rw-r--r--.SRCINFO8
-rw-r--r--PKGBUILD137
2 files changed, 100 insertions, 45 deletions
diff --git a/.SRCINFO b/.SRCINFO
index d34d8d553a4d..8fc5b39cdbe2 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -1,15 +1,15 @@
pkgbase = logseq-desktop-bin
pkgdesc = Privacy-first, open-source platform for knowledge sharing and management
- pkgver = 0.10.1
+ pkgver = 0.10.2
pkgrel = 1
url = https://github.com/logseq/logseq
install = logseq-desktop.install
arch = x86_64
- license = AGPL3
+ license = AGPL-3.0-or-later
makedepends = gendesk
provides = logseq-desktop
conflicts = logseq-desktop
- source = https://github.com/logseq/logseq/releases/download/0.10.1/Logseq-linux-x64-0.10.1.zip
- sha256sums = b67a2dff464610f2a64952eda858eaa7a4351edb6cd4076f63804d7f5b6b7423
+ source = https://github.com/logseq/logseq/releases/download/0.10.2/Logseq-linux-x64-0.10.2.AppImage
+ sha256sums = b8aba5b33f23db5d79ee1566c88c1c5e2f3de679dda6f35828235de7f606b866
pkgname = logseq-desktop-bin
diff --git a/PKGBUILD b/PKGBUILD
index 61b8b3da9ad5..fe887ac52309 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -1,52 +1,48 @@
# Maintainer: Xuanwo <xuanwo@archlinuxcn.org>
# options
-: ${_pkgtype:=bin}
+: ${_autoupdate:=false}
+
+: ${_pkgtype:=-bin}
# basic info
_pkgname=logseq-desktop
-pkgname="$_pkgname${_pkgtype:+-$_pkgtype}"
-pkgver=0.10.1
+pkgname="$_pkgname${_pkgtype:-}"
+pkgver=0.10.2
pkgrel=1
pkgdesc="Privacy-first, open-source platform for knowledge sharing and management"
url="https://github.com/logseq/logseq"
-license=('AGPL3')
+license=('AGPL-3.0-or-later')
arch=("x86_64")
-makedepends=(
- 'gendesk'
-)
-
-provides=("$_pkgname")
-conflicts=("$_pkgname")
+# main package
+_main_package() {
+ makedepends=(
+ 'gendesk'
+ )
-install="$_pkgname.install"
+ provides=("$_pkgname")
+ conflicts=("$_pkgname")
-_pkgsrc="Logseq-linux-x64"
-source=(
- "$url/releases/download/$pkgver/$_pkgsrc-$pkgver.zip"
-)
-sha256sums=('b67a2dff464610f2a64952eda858eaa7a4351edb6cd4076f63804d7f5b6b7423')
+ install="$_pkgname.install"
-prepare() {
- cat <<'EOF' > "$_pkgname.sh"
-#!/usr/bin/env sh
-set -e
+ _pkgsrc="Logseq-linux-x64"
+ _pkgext="AppImage"
+ source=("$url/releases/download/$_pkgver/$_pkgsrc-$_pkgver.$_pkgext")
+ sha256sums=('b8aba5b33f23db5d79ee1566c88c1c5e2f3de679dda6f35828235de7f606b866')
-APPDIR="/opt/logseq-desktop"
-_ELECTRON="${APPDIR}/Logseq"
+ if [[ "${_autoupdate::1}" == "t" ]] ; then
+ sha256sums=('SKIP')
+ fi
+}
-_FLAGS_FILE="${XDG_CONFIG_HOME:-$HOME/.config}/logseq-flags.conf"
-if [ -r "$_FLAGS_FILE" ]; then
- _USER_FLAGS="$(cat "$_FLAGS_FILE")"
-fi
+# common functions
+pkgver() {
+ printf '%s' "${_pkgver:?}"
+}
-if [[ $EUID -ne 0 ]] || [[ $ELECTRON_RUN_AS_NODE ]]; then
- exec ${_ELECTRON} $_USER_FLAGS "$@"
-else
- exec ${_ELECTRON} --no-sandbox $_USER_FLAGS "$@"
-fi
-EOF
+prepare() {
+ _gen_script
local _gendesk_options=(
-q -f -n
@@ -63,21 +59,80 @@ EOF
)
gendesk "${_gendesk_options[@]}"
-}
+ # extract appimage
+ if [[ "${_pkgext::1}" == "A" ]] ; then
+ chmod +x "$_pkgsrc-$_pkgver.$_pkgext"
+ "./$_pkgsrc-$_pkgver.$_pkgext" --appimage-extract
+ ln -sf "squashfs-root" "$_pkgsrc"
+ fi
+}
package() {
- # copy files
- install -dm755 "$pkgdir/opt/$_pkgname"
- cp -r "$srcdir/$_pkgsrc"/* "$pkgdir/opt/$_pkgname/"
-
# desktop file
- install -Dm644 "$_pkgname.desktop" "$pkgdir/usr/share/applications/logseq-desktop.desktop"
+ install -Dm644 "$_pkgname.desktop" "$pkgdir/usr/share/applications/$_pkgname.desktop"
# icons
- install -Dm644 "$_pkgsrc/resources/app/icons/logseq.png" \
- -t "$pkgdir/usr/share/pixmaps/"
+ install -Dm644 "$_pkgsrc/usr/share/icons/hicolor/256x256/apps/Logseq.png" \
+ -- "$pkgdir/usr/share/pixmaps/logseq.png"
# script
- install -Dm755 "logseq-desktop.sh" "$pkgdir/usr/bin/logseq"
+ install -Dm755 "$_pkgname.sh" "$pkgdir/usr/bin/logseq"
+
+ # remove unneeded
+ rm -- "$_pkgsrc/AppRun"
+ rm -- "$_pkgsrc/Logseq.desktop"
+ rm -- "$_pkgsrc/Logseq.png"
+
+ # package files
+ install -dm755 "$pkgdir/usr/lib/$_pkgname"
+ cp --reflink=auto -r "$srcdir/$_pkgsrc"/* "$pkgdir/usr/lib/$_pkgname/"
}
+
+# other functions
+_gen_script() {
+ cat <<'EOF' > "$_pkgname.sh"
+#!/usr/bin/env sh
+set -e
+
+APPDIR="/opt/logseq-desktop"
+_ELECTRON="${APPDIR}/Logseq"
+
+_FLAGS_FILE="${XDG_CONFIG_HOME:-$HOME/.config}/logseq-flags.conf"
+if [ -r "$_FLAGS_FILE" ]; then
+ _USER_FLAGS="$(cat "$_FLAGS_FILE")"
+fi
+
+if [[ $EUID -ne 0 ]] || [[ $ELECTRON_RUN_AS_NODE ]]; then
+ exec ${_ELECTRON} $_USER_FLAGS "$@"
+else
+ exec ${_ELECTRON} --no-sandbox $_USER_FLAGS "$@"
+fi
+EOF
+}
+
+_update_version() {
+ : ${_pkgver:=$pkgver}
+
+ if [[ "${_autoupdate::1}" != "t" ]] ; then
+ return
+ fi
+
+ _response=$(curl -Ssf "$url/releases.atom")
+
+ _pkgver_new=$(
+ printf '%s' "$_response" \
+ | grep '/releases/tag/' \
+ | sed -E 's@^.*/releases/tag/(.*)".*$@\1@' \
+ | grep -Ev '[a-z]{2}' | sort -V | tail -1
+ )
+
+ # update _pkgver
+ if [ "$_pkgver" != "${_pkgver_new:?}" ] ; then
+ _pkgver="${_pkgver_new:?}"
+ fi
+}
+
+# execute
+_update_version
+_main_package