diff options
-rw-r--r-- | .SRCINFO | 21 | ||||
-rw-r--r-- | PKGBUILD | 101 | ||||
-rw-r--r-- | logseq-desktop.desktop | 10 | ||||
-rw-r--r-- | logseq-desktop.install | 30 | ||||
-rw-r--r-- | logseq-desktop.sh | 15 |
5 files changed, 98 insertions, 79 deletions
@@ -1,23 +1,18 @@ pkgbase = logseq-desktop - pkgdesc = A privacy-first, open-source platform for knowledge sharing and management. - pkgver = 0.9.20 + pkgdesc = Privacy-first, open-source platform for knowledge sharing and management + pkgver = 0.10.0 pkgrel = 1 url = https://logseq.com install = logseq-desktop.install arch = x86_64 license = AGPL3 + makedepends = clojure + makedepends = gendesk makedepends = git - makedepends = yarn + makedepends = nodejs makedepends = npm - makedepends = clojure - makedepends = nodejs>=16 - source = logseq-desktop-0.9.20.zip::https://github.com/logseq/logseq/archive/refs/tags/0.9.20.zip - source = build.patch - source = logseq-desktop.desktop - source = logseq-desktop.sh - sha256sums = 9bdc34628cec13c6e017ef9d256ad8283af3654b3e8c270551329b75f08a91e9 - sha256sums = b26c6ed39e2635e08a0df83d92883e670b75b02ed1c2c279044909c04edf8fc2 - sha256sums = d7ec65e2e92c967a1be865f90a7c242402dbf6ee8c45c863bdbad73aab0af2f4 - sha256sums = a6412899c57cc0369cb11af547b561b00de84cc4aa4d656f4fa5ea3385cfef2e + makedepends = yarn + source = logseq-desktop-0.10.0.zip::https://github.com/logseq/logseq/archive/refs/tags/0.10.0.zip + sha256sums = 3b06e8910037a9bc6538fe631f8cbbccb1085e26c0defbbc628280350620d6ad pkgname = logseq-desktop @@ -1,33 +1,71 @@ # Maintainer: Xuanwo <xuanwo@archlinuxcn.org> # Contributor: Bader <Bad3r@pm.me> -# Acknowledgment: Borrowed a lot from logseq-desktop-git, thank @pychuang -pkgname=logseq-desktop -pkgver=0.9.20 +# Acknowledgment: @pychuang (logseq-desktop-git) + +_pkgname="logseq-desktop" +pkgname="$_pkgname" +pkgver=0.10.0 pkgrel=1 -pkgdesc="A privacy-first, open-source platform for knowledge sharing and management." +pkgdesc="Privacy-first, open-source platform for knowledge sharing and management" arch=("x86_64") url="https://logseq.com" license=('AGPL3') -makedepends=("git" "yarn" "npm" "clojure" "nodejs>=16") + +makedepends=( + "clojure" + "gendesk" + "git" + "nodejs" + "npm" + "yarn" +) + install="$pkgname.install" + +_pkgsrc="logseq-${pkgver}" source=( - "${pkgname}-${pkgver}.zip::https://github.com/logseq/logseq/archive/refs/tags/${pkgver}.zip" - "build.patch" - "${pkgname}.desktop" - "${pkgname}.sh" + "$_pkgname-${pkgver}.zip::https://github.com/logseq/logseq/archive/refs/tags/${pkgver}.zip" ) sha256sums=( - '9bdc34628cec13c6e017ef9d256ad8283af3654b3e8c270551329b75f08a91e9' - 'b26c6ed39e2635e08a0df83d92883e670b75b02ed1c2c279044909c04edf8fc2' - 'd7ec65e2e92c967a1be865f90a7c242402dbf6ee8c45c863bdbad73aab0af2f4' - 'a6412899c57cc0369cb11af547b561b00de84cc4aa4d656f4fa5ea3385cfef2e' + '3b06e8910037a9bc6538fe631f8cbbccb1085e26c0defbbc628280350620d6ad' ) prepare() { - cd "$srcdir/logseq-${pkgver}" + cat <<'EOF' > "$_pkgname.sh" +#!/usr/bin/env sh +set -e - # patch :parallel-build true in shadow-cljs.edn - patch -Np1 -F100 -i "${srcdir}/build.patch" +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 + + local _gendesk_options=( + -q -f -n + --pkgname="$_pkgname" + --pkgdesc="$pkgdesc" + --name="Logseq" + --exec="logseq %u" + --icon="logseq" + --terminal=false + --categories="Office" + --mimetypes="x-scheme-handler/logseq" + --startupnotify=true + --custom="StartupWMClass=Logseq" + ) + gendesk "${_gendesk_options[@]}" + + cd "${srcdir}/$_pkgsrc" # download required js modules yarn install @@ -36,50 +74,51 @@ prepare() { yarn gulp:build # go to folder `static` and download required js modules in static - cd "${srcdir}/logseq-${pkgver}/static" + cd "${srcdir}/$_pkgsrc/static" yarn install # go back to the top-level folder and download clojure dependencies - cd "${srcdir}/logseq-${pkgver}" + cd "${srcdir}/$_pkgsrc" clojure -P -M:cljs } build() { - cd "${srcdir}/logseq-${pkgver}" + cd "${srcdir}/$_pkgsrc" # build yarn cljs:release # packaging javescript files to an executable - cd "${srcdir}/logseq-${pkgver}/static" + cd "${srcdir}/$_pkgsrc/static" yarn electron-forge package } package() { # important files are under static/out/Logseq-linux-x64 - cd "${srcdir}/logseq-${pkgver}/static/out/Logseq-linux-x64" + cd "${srcdir}/$_pkgsrc/static/out/Logseq-linux-x64" # create destination folder and copy files - install -dm755 "${pkgdir}/opt/${pkgname}" - cp -a -r -u --verbose ./* "${pkgdir}/opt/${pkgname}" + install -dm755 "${pkgdir}/opt/$_pkgname" + cp -a -r -u --verbose ./* "${pkgdir}/opt/$_pkgname" # create a soft link to the executable install -dm755 "${pkgdir}/usr/bin" + # User flag aware launcher - install -m755 ${srcdir}/logseq-desktop.sh "${pkgdir}/usr/bin/logseq" + install -m755 "${srcdir}/$_pkgname.sh" "${pkgdir}/usr/bin/logseq" # create license folder and make soft links to actual license - install -dm755 "${pkgdir}/usr/share/licenses/${pkgname}" - ln -s "/opt/${pkgname}/LICENSE" "${pkgdir}/usr/share/licenses/${pkgname}" - ln -s "/opt/${pkgname}/LICENSES.chromium.html" "${pkgdir}/usr/share/licenses/${pkgname}" + install -dm755 "${pkgdir}/usr/share/licenses/$pkgname/" + ln -s "/opt/$_pkgname/LICENSE" "${pkgdir}/usr/share/licenses/$pkgname/" + ln -s "/opt/$_pkgname/LICENSES.chromium.html" "${pkgdir}/usr/share/licenses/$pkgname/" # install readme and additional license file (the top-level AGPL3) - cd "${srcdir}/logseq-${pkgver}" - install -Dm644 "README.md" -t "${pkgdir}/usr/share/doc/${pkgname}" - install -Dm644 "LICENSE.md" -t "${pkgdir}/usr/share/licenses/${pkgname}" + cd "${srcdir}/$_pkgsrc" + install -Dm644 "README.md" -t "${pkgdir}/usr/share/doc/$pkgname/" + install -Dm644 "LICENSE.md" -t "${pkgdir}/usr/share/licenses/$pkgname/" # copy xdg desktop files cd "${srcdir}" install -dm755 "${pkgdir}/usr/share/applications" - install -Dm644 "${pkgname}.desktop" -t "${pkgdir}/usr/share/applications" + install -Dm644 "$_pkgname.desktop" -t "${pkgdir}/usr/share/applications" } diff --git a/logseq-desktop.desktop b/logseq-desktop.desktop deleted file mode 100644 index d72f97f0e3c3..000000000000 --- a/logseq-desktop.desktop +++ /dev/null @@ -1,10 +0,0 @@ -[Desktop Entry] -Name=Logseq -Exec=/usr/bin/logseq %u -Terminal=false -Type=Application -Icon=logseq -StartupWMClass=logseq -Comment=Open Source platform for knowledge sharing and management -MimeType=x-scheme-handler/logseq -Categories=Office diff --git a/logseq-desktop.install b/logseq-desktop.install index 906e9d0635a3..17752157cf95 100644 --- a/logseq-desktop.install +++ b/logseq-desktop.install @@ -1,22 +1,32 @@ # Colored makepkg-like functions msg_blue() { - printf "${blue}==>${bold} $1${all_off}\n" + printf "${BLUE}==>${BOLD} $1${ALL_OFF}\n" } -note() { - printf "${blue}==>${yellow} NOTE:${bold} $1${all_off}\n" +note1() { + printf "${BLUE}==>${YELLOW} NOTE:${BOLD} $1${ALL_OFF}\n" } -all_off="$(tput sgr0)" -bold="${all_off}$(tput bold)" -blue="${bold}$(tput setaf 4)" -yellow="${bold}$(tput setaf 3)" +note2() { + printf "${BLUE}==> ${BOLD} $1${ALL_OFF}\n" +} + +ALL_OFF="$(tput sgr0)" +BOLD="${ALL_OFF}$(tput bold)" +BLACK="${BOLD}$(tput setaf 0)" +RED="${BOLD}$(tput setaf 1)" +GREEN="${BOLD}$(tput setaf 2)" +YELLOW="${BOLD}$(tput setaf 3)" +BLUE="${BOLD}$(tput setaf 4)" +MAGENTA="${BOLD}$(tput setaf 5)" +CYAN="${BOLD}$(tput setaf 6)" +WHITE="${BOLD}$(tput setaf 7)" post_install() { - note "Custom flags should be put directly in: ~/.config/logseq-flags.conf" - note "The launcher is called: 'logseq'" + note1 "Custom flags should be put directly in: ~/.config/logseq-flags.conf" + note2 "The launcher is called: 'logseq'" } post_upgrade() { - post_install + post_install } diff --git a/logseq-desktop.sh b/logseq-desktop.sh deleted file mode 100644 index 32e889984914..000000000000 --- a/logseq-desktop.sh +++ /dev/null @@ -1,15 +0,0 @@ -#!/usr/bin/env sh -# Launches Logseq with flags specified in $XDG_CONFIG_HOME/logseq-flags.conf - -# Make script fail if `cat` fails for some reason -set -e - -# Set default value if variable is unset/null -XDG_CONFIG_HOME="${XDG_CONFIG_HOME:-${HOME}/.config}" - -# Attempt to read a config file if it exists -if [ -r "${XDG_CONFIG_HOME}/logseq-flags.conf" ]; then - LOGSEQ_USER_FLAGS="$(cat "$XDG_CONFIG_HOME/logseq-flags.conf")" -fi - -exec /opt/logseq-desktop/Logseq $LOGSEQ_USER_FLAGS "$@" |