Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add support for rm-sync in xochitl package #718

Merged
merged 18 commits into from
May 22, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand Down
37 changes: 26 additions & 11 deletions package/xochitl/package
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
pkgnames=(xochitl)
pkgdesc="Read documents and take notes"
url=https://remarkable.com
pkgver=0.0.0-17
pkgver=0.0.0-18
timestamp=2022-11-07T20:19:57Z
section="readers"
maintainer="Mattéo Delabre <[email protected]>"
Expand All @@ -24,7 +24,7 @@ source=(
toltec-after-launcher.conf
toltec-wrapper.conf
env-readme
manual-sync.service
manual-sync@.service
)
sha256sums=(
SKIP
Expand Down Expand Up @@ -59,19 +59,30 @@ 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() {
systemctl daemon-reload

# sync.service interferes with launchers
# we use manual-sync.service instead
if [[ "x$(systemctl is-enabled sync.service)" != "xmasked" ]]; then
# sync.service and rm-sync.service interfere with launchers
# we use manual-sync@.service instead
if [ -f /usr/bin/sync ] && ! is-masked sync.service; then
systemctl mask sync.service
fi
if ! is-active manual-sync.service; then
systemctl enable --now manual-sync.service

if [ -f /usr/bin/rm-sync ] && ! is-masked rm-sync.service; then
systemctl mask rm-sync.service
fi

# manual-sync.service has been changed to [email protected]
# Make sure to disable and stop the old version
disable-unit manual-sync.service

if [ -f /usr/bin/rm-sync ] && ! is-active [email protected]; then
systemctl enable --now [email protected]
elif [ -f /usr/bin/sync ] && ! is-active [email protected]; then
systemctl enable --now [email protected]
fi

if is-enabled xochitl.service && ! is-enabled launcher.service; then
Expand All @@ -83,14 +94,18 @@ configure() {
}

preremove() {
disable-unit manual-sync.service
disable-unit [email protected]
disable-unit [email protected]
}

postremove() {
systemctl daemon-reload

if [[ "x$(systemctl is-enabled sync.service)" == "xmasked" ]]; then
systemctl unmask sync.service 2> /dev/null
if [ -f /usr/bin/sync ] && is-masked sync.service; then
systemctl unmask sync.service
fi
if [ -f /usr/bin/rm-sync ] && is-masked rm-sync.service; then
systemctl unmask rm-sync.service
fi

if is-enabled xochitl.service && is-enabled launcher.service; then
Expand Down
13 changes: 11 additions & 2 deletions package/xochitl/xochitl
Original file line number Diff line number Diff line change
Expand Up @@ -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 [email protected]; then
systemctl enable --now [email protected]
elif [ -f /usr/bin/sync ] && ! is-active [email protected]; then
systemctl enable --now [email protected]
fi

exec -a /usr/bin/xochitl /usr/bin/xochitl "$@"
2 changes: 1 addition & 1 deletion scripts/install-lib
Original file line number Diff line number Diff line change
Expand Up @@ -189,7 +189,7 @@ remove-bind-mount() {
#
# $1 - Full name of the systemd unit, e.g. "draft.service"
unit-exists() {
[ "$(systemctl --quiet list-unit-files "${1}" | /bin/grep -c "${1}" 2> /dev/null || echo "0")" -eq 1 ]
[ "$(systemctl --quiet list-unit-files "${1}" | /bin/grep -c "${1}" 2> /dev/null)" -eq 1 ]
}

# Stops and disabled a unit
Expand Down
Loading