From a84a4c5c1da1a14d6b6ffa923cbe4852c7f76d41 Mon Sep 17 00:00:00 2001 From: Timothy Werquin Date: Thu, 3 Aug 2023 21:22:32 +0200 Subject: [PATCH] Add support for rm-sync in xochitl package Recent xochitl versions renamed the sync service and binary to rm-sync. This updates the xochitl package to support both. --- ...nual-sync.service => manual-sync@.service} | 4 +-- package/xochitl/package | 28 ++++++++++++++----- package/xochitl/xochitl | 13 +++++++-- 3 files changed, 34 insertions(+), 11 deletions(-) rename package/xochitl/{manual-sync.service => manual-sync@.service} (89%) diff --git a/package/xochitl/manual-sync.service b/package/xochitl/manual-sync@.service similarity index 89% rename from package/xochitl/manual-sync.service rename to package/xochitl/manual-sync@.service index 359f84849..386011a02 100644 --- a/package/xochitl/manual-sync.service +++ b/package/xochitl/manual-sync@.service @@ -6,14 +6,14 @@ Description=reMarkable Document Sync without the xochitl.service dependency After=dbus.socket StartLimitIntervalSec=60 StartLimitBurst=4 -Conflicts=sync.service +Conflicts=%i.service [Service] # Do NOT make this dbus, systemd will kill the service when it should be # running otherwise. Type=simple BusName=no.remarkable.sync -ExecStart=/usr/bin/sync --service +ExecStart=/usr/bin/%i --service Restart=on-failure RestartForceExitStatus=SIGHUP SIGINT SIGTERM SIGPIPE diff --git a/package/xochitl/package b/package/xochitl/package index 1ebefec09..0a72f5858 100644 --- a/package/xochitl/package +++ b/package/xochitl/package @@ -5,7 +5,7 @@ pkgnames=(xochitl) pkgdesc="Read documents and take notes" url=https://remarkable.com -pkgver=0.0.0-14 +pkgver=0.0.0-15 timestamp=2022-11-07T20:19:57Z section="readers" maintainer="Mattéo Delabre " @@ -24,7 +24,7 @@ source=( toltec-after-launcher.conf toltec-wrapper.conf env-readme - manual-sync.service + manual-sync@.service ) sha256sums=( SKIP @@ -59,7 +59,7 @@ package() { install -D -m 644 -t "$pkgdir"/etc/systemd/system/remarkable-reboot.service.d \ "$srcdir"/toltec-after-launcher.conf install -D -m 644 -t "$pkgdir"/etc/systemd/system \ - "$srcdir"/manual-sync.service + "$srcdir"/manual-sync@.service } configure() { @@ -70,8 +70,15 @@ configure() { if [[ "x$(systemctl is-enabled sync.service)" != "xmasked" ]]; then systemctl mask sync.service fi - if ! is-active manual-sync.service; then - systemctl enable --now manual-sync.service + + if [[ "x$(systemctl is-enabled rm-sync.service)" != "xmasked" ]]; then + systemctl mask rm-sync.service + fi + + if [ -f /usr/bin/rm-sync ] && ! is-active manual-sync@rm-sync.service; then + systemctl enable --now manual-sync@rm-sync.service + elif [ -f /usr/bin/sync ] && ! is-active manual-sync@sync.service; then + systemctl enable --now manual-sync@sync.service fi if is-enabled xochitl.service && ! is-enabled launcher.service; then @@ -83,8 +90,12 @@ configure() { } preremove() { - if is-active manual-sync.service; then - systemctl disable --now manual-sync.service + if is-active manual-sync@rm-sync.service; then + systemctl disable --now manual-sync@rm-sync.service + fi + + if is-active manual-sync@sync.service; then + systemctl disable --now manual-sync@sync.service fi } @@ -94,6 +105,9 @@ postremove() { if [[ "x$(systemctl is-enabled sync.service)" == "xmasked" ]]; then systemctl unmask sync.service 2> /dev/null fi + if [[ "x$(systemctl is-enabled rm-sync.service)" == "xmasked" ]]; then + systemctl unmask rm-sync.service 2> /dev/null + fi if is-enabled xochitl.service && is-enabled launcher.service; then # If xochitl is currently the active launcher, make sure the diff --git a/package/xochitl/xochitl b/package/xochitl/xochitl index a745d8bea..bc30180e9 100644 --- a/package/xochitl/xochitl +++ b/package/xochitl/xochitl @@ -9,13 +9,22 @@ for file in /opt/etc/xochitl.env.d/*.env; do source "$file" fi done + # If for some reason, sync.service is no longer masked, re-mask it # The package install should have handled this, but something may # have changed it. if [[ "x$(systemctl is-enabled sync.service)" != "xmasked" ]]; then systemctl mask sync.service fi -if ! systemctl is-active --quiet manual-sync.service; then - systemctl enable --now manual-sync.service + +if [[ "x$(systemctl is-enabled rm-sync.service)" != "xmasked" ]]; then + systemctl mask rm-sync.service fi + +if [ -f /usr/bin/rm-sync ] && ! is-active manual-sync@rm-sync.service; then + systemctl enable --now manual-sync@rm-sync.service +elif [ -f /usr/bin/sync ] && ! is-active manual-sync@sync.service; then + systemctl enable --now manual-sync@sync.service +fi + exec /usr/bin/xochitl "$@"