diff --git a/Makefile b/Makefile index 0ec4607ca..b45429653 100644 --- a/Makefile +++ b/Makefile @@ -8,6 +8,10 @@ RECIPES_CLEAN=$(foreach app, $(RECIPES), $(app)-clean) ifeq ($(RUNNER_DEBUG), 1) FLAGS+= --verbose +else +ifeq ($(VERBOSE), 1) +FLAGS+= --verbose +endif endif define USAGE diff --git a/docs/package.md b/docs/package.md index bdaf7807a..0cf89559b 100644 --- a/docs/package.md +++ b/docs/package.md @@ -46,9 +46,12 @@ Name | Meaning `rmallos2` | Packages which work on all reMarkable devices without modification, but only on the 2.x series of operating system. `rm1os2` | Packages requiring reMarkable 1-specific resources or compilation flags, but only on the 2.x series of operating system. `rm2os2` | Packages requiring reMarkable 2-specific resources or compilation flags, but only on the 2.x series of operating system. -`rmallos3` | Packages which work on all reMarkable devices without modification, but only on the 3.x series of operating system. -`rm1os3` | Packages requiring reMarkable 1-specific resources or compilation flags, but only on the 3.x series of operating system. -`rm2os3` | Packages requiring reMarkable 2-specific resources or compilation flags, but only on the 3.x series of operating system. +`rmallos3` | Packages which work on all reMarkable devices without modification, but only on 3.0 to 3.3.2 versions of the operating system. +`rm1os3` | Packages requiring reMarkable 1-specific resources or compilation flags, but only on 3.0 to 3.3.2 versions of the operating system. +`rm2os3` | Packages requiring reMarkable 2-specific resources or compilation flags, but only on 3.0 to 3.3.2 versions of the operating system. +`rmallos3v5` | Packages which work on all reMarkable devices without modification, but only on 3.5.2 or newer operating system versions. +`rm1os3v5` | Packages requiring reMarkable 1-specific resources or compilation flags, but only on 3.5.2 or newer operating system versions. +`rm2os3v5` | Packages requiring reMarkable 2-specific resources or compilation flags, but only on 3.5.2 or newer operating system versions. For example, use `archs=(rm1)` for a package that only works on reMarkable 1, or `archs=(rm1 rm2)` for a package that works both on reMarkable 1 and reMarkable 2 but needs different dependencies or compilation flags for each of those. diff --git a/package/Compatibility b/package/Compatibility index cf3ac4c40..747ef149c 100644 --- a/package/Compatibility +++ b/package/Compatibility @@ -32,6 +32,8 @@ rm1=3.0.4.1305 rm1=3.2.2.1581 rm1=3.2.3.1595 rm1=3.3.2.1666 +rm1=3.5.2.1807 +rm1=3.8.2.1965 rm2=2.6.1.71 rm2=2.6.2.75 @@ -68,3 +70,5 @@ rm2=3.0.4.1305 rm2=3.2.2.1581 rm2=3.2.3.1595 rm2=3.3.2.1666 +rm2=3.5.2.1807 +rm2=3.8.2.1965 diff --git a/package/display/package b/package/display/package index 633b4e9f5..67490a8eb 100644 --- a/package/display/package +++ b/package/display/package @@ -1,126 +1,17 @@ #!/usr/bin/env bash -# Copyright (c) 2021 The Toltec Contributors +# Copyright (c) 2024 The Toltec Contributors # SPDX-License-Identifier: MIT -archs=(rm1 rm2) -pkgnames=(display rm2fb-client) -timestamp=2023-08-27T02:39:10Z -maintainer="raisjn " +pkgnames=(display) +pkgdesc="Metapackage for allowing applications to display to the screen" +timestamp=2024-05-24T06:12:38Z +maintainer="Eeems " license=MIT -url="https://github.com/ddvk/remarkable2-framebuffer" -pkgver=1:0.0.33-3 -_release="${pkgver%-*}" -_release="v${_release#*:}" -_libver=1.0.1 +url="https://toltec-dev.org" +pkgver=2:0.0.1-1 section="devel" +installdepends=(rm2fb-server rm2fb-client) -image=qt:v2.3 -source=( - "https://github.com/ddvk/remarkable2-framebuffer/archive/$_release.zip" - rm2fb.service - rm2fb-client - rm2fb-preload.conf - rm2fb-preload.env -) -sha256sums=( - dd57f1ba31f08a28d801989e9a705bd93cc637cd8f4dffa160412119e69329ff - SKIP - SKIP - SKIP - SKIP -) - -build() { - if [[ $arch = rm1 ]]; then - # Create an empty client library for rM1 - pushd src/client - echo | "${CROSS_COMPILE}gcc" \ - -fPIC -fvisibility=hidden -shared \ - -o "librm2fb_client.so.$_libver" \ - -xc - - popd - else - qmake - make - fi -} - -display() { - pkgdesc="Interface to the reMarkable framebuffer" - installdepends=(xochitl "rm2fb-client=$pkgver") - conflicts=(rm2fb) - replaces=(rm2fb) - - package() { - if [[ $arch = rm2 ]]; then - libname="librm2fb_server.so.$_libver" - install -D -m 644 -t "$pkgdir"/opt/lib "$srcdir"/src/server/"$libname" - ln -s "$libname" "$pkgdir"/opt/lib/"${libname%.*.*}" - ln -s "$libname" "$pkgdir"/opt/lib/"${libname%.*}" - install -D -m 644 -t "$pkgdir"/lib/systemd/system "$srcdir"/rm2fb.service - fi - } - - configure() { - if [[ $arch = rm2 ]]; then - systemctl daemon-reload - if systemctl enable rm2fb --now; then - # Restart xochitl if it's running - if is-active xochitl; then - # Reset the crash count so we don't trigger remarkable-fail - echo "0" > /tmp/crashnum - systemctl restart xochitl - fi - else - disable-unit rm2fb.service - echo "Failed to start rm2fb. Keeping it disabled for now." - echo "Please check the logs and open an issue:" - echo " https://github.com/toltec-dev/toltec/issues/new" - exit 1 - fi - fi - } - - preremove() { - if [[ $arch = rm2 ]]; then - disable-unit rm2fb.service - echo -n "make sure " - if ! is-enabled xochitl.service; then - echo "to re-enable xochitl with 'systemctl enable xochitl --now'" - echo -n "and " - fi - echo "to disable / uninstall any launchers like draft, oxide or remux before" - echo "rebooting your tablet to complete the uninstallation" - fi - } -} - -rm2fb-client() { - pkgdesc="Shim to make reMarkable 1 apps work on reMarkable 2" - installdepends=("display=$pkgver") - conflicts=(rm2fb) - replaces=(rm2fb) - - package() { - libname="librm2fb_client.so" - libnamever="$libname.$_libver" - install -D -m 644 -t "$pkgdir"/opt/lib "$srcdir"/src/client/"$libnamever" - install -d "$pkgdir"/usr/lib - ln -s /opt/lib/"$libnamever" "$pkgdir"/usr/lib/"$libnamever" - ln -s /opt/lib/"$libnamever" "$pkgdir"/opt/lib/"$libname" - - for dest in opt/lib usr/lib; do - ln -s "$libnamever" "$pkgdir/$dest/${libnamever%.*.*}" - ln -s "$libnamever" "$pkgdir/$dest/${libnamever%.*}" - done - - install -D -m 755 -t "$pkgdir"/opt/bin "$srcdir"/rm2fb-client - - if [[ $arch = rm2 ]]; then - install -D -m 644 -t "$pkgdir"/opt/etc/xochitl.env.d "$srcdir"/rm2fb-preload.env - install -D -m 644 -t "$pkgdir"/etc/systemd/system/draft.service.d "$srcdir"/rm2fb-preload.conf - install -D -m 644 -t "$pkgdir"/etc/systemd/system/remux.service.d "$srcdir"/rm2fb-preload.conf - install -D -m 644 -t "$pkgdir"/etc/systemd/system/tarnish.service.d "$srcdir"/rm2fb-preload.conf - fi - } +package() { + true } diff --git a/package/rm2fb-original/package b/package/rm2fb-original/package new file mode 100644 index 000000000..f70c9df3b --- /dev/null +++ b/package/rm2fb-original/package @@ -0,0 +1,139 @@ +#!/usr/bin/env bash +# Copyright (c) 2024 The Toltec Contributors +# SPDX-License-Identifier: MIT + +archs=(rm1os2 rm2os2 rm1os3 rm2os3) +pkgnames=(rm2fb-server rm2fb-client) +timestamp=2023-08-27T02:39:10Z +maintainer="raisjn " +license=MIT +url="https://github.com/ddvk/remarkable2-framebuffer" +pkgver=1:0.0.33-2 +_release="${pkgver%-*}" +_release="v${_release#*:}" +_libver=1.0.1 +section="devel" + +image=qt:v2.3 +source=( + "https://github.com/ddvk/remarkable2-framebuffer/archive/$_release.zip" + rm2fb.service + rm2fb-client + rm2fb-preload.conf + rm2fb-preload.env +) +sha256sums=( + dd57f1ba31f08a28d801989e9a705bd93cc637cd8f4dffa160412119e69329ff + SKIP + SKIP + SKIP + SKIP +) + +build() { + case "$arch" in + rm1os2 | rm1os3) + # Create an empty client library for rM1 + pushd src/client + echo | "${CROSS_COMPILE}gcc" \ + -fPIC -fvisibility=hidden -shared \ + -o "librm2fb_client.so.$_libver" \ + -xc - + popd + ;; + *) + qmake + make + ;; + esac +} + +rm2fb-server() { + pkgdesc="Interface to the reMarkable framebuffer" + installdepends=(xochitl "rm2fb-client=$pkgver") + conflicts=(rm2fb) + replaces=(rm2fb) + + package() { + case "$arch" in + rm2os2 | rm2os3) + libname="librm2fb_server.so.$_libver" + install -D -m 644 -t "$pkgdir"/opt/lib "$srcdir"/src/server/"$libname" + ln -s "$libname" "$pkgdir"/opt/lib/"${libname%.*.*.*}" + ln -s "$libname" "$pkgdir"/opt/lib/"${libname%.*.*}" + ln -s "$libname" "$pkgdir"/opt/lib/"${libname%.*}" + install -D -m 644 -t "$pkgdir"/lib/systemd/system "$srcdir"/rm2fb.service + ;; + esac + } + + configure() { + case "$arch" in + rm2os2 | rm2os3) + systemctl daemon-reload + if systemctl enable rm2fb --now; then + # Restart xochitl if it's running + if is-active xochitl; then + # Reset the crash count so we don't trigger remarkable-fail + echo "0" > /tmp/crashnum + systemctl restart xochitl + fi + else + disable-unit rm2fb.service + echo "Failed to start rm2fb. Keeping it disabled for now." + echo "Please check the logs and open an issue:" + echo " https://github.com/toltec-dev/toltec/issues/new" + exit 1 + fi + ;; + esac + } + + preremove() { + case "$arch" in + rm2os2 | rm2os3) + disable-unit rm2fb.service + echo -n "make sure " + if ! is-enabled xochitl.service; then + echo "to re-enable xochitl with 'systemctl enable xochitl --now'" + echo -n "and " + fi + echo "to disable / uninstall any launchers like draft, oxide or remux before" + echo "rebooting your tablet to complete the uninstallation" + ;; + esac + } +} + +rm2fb-client() { + pkgdesc="Shim to make reMarkable 1 apps work on reMarkable 2" + installdepends=("rm2fb-server=$pkgver") + conflicts=(rm2fb) + replaces=(rm2fb) + + package() { + set -x + libname="librm2fb_client.so" + libnamever="$libname.$_libver" + install -D -m 644 -t "$pkgdir"/opt/lib "$srcdir"/src/client/"$libnamever" + install -d "$pkgdir"/usr/lib + ln -s /opt/lib/"$libnamever" "$pkgdir"/usr/lib/"$libnamever" + + for dest in opt/lib usr/lib; do + ln -s "$libnamever" "$pkgdir/$dest/${libnamever%.*.*.*}" + ln -s "$libnamever" "$pkgdir/$dest/${libnamever%.*.*}" + ln -s "$libnamever" "$pkgdir/$dest/${libnamever%.*}" + done + + install -D -m 755 -t "$pkgdir"/opt/bin "$srcdir"/rm2fb-client + + case "$arch" in + rm2os2 | rm2os3) + install -D -m 644 -t "$pkgdir"/opt/etc/xochitl.env.d "$srcdir"/rm2fb-preload.env + install -D -m 644 -t "$pkgdir"/etc/systemd/system/draft.service.d "$srcdir"/rm2fb-preload.conf + install -D -m 644 -t "$pkgdir"/etc/systemd/system/remux.service.d "$srcdir"/rm2fb-preload.conf + install -D -m 644 -t "$pkgdir"/etc/systemd/system/tarnish.service.d "$srcdir"/rm2fb-preload.conf + ;; + esac + } +} diff --git a/package/display/rm2fb-client b/package/rm2fb-original/rm2fb-client similarity index 100% rename from package/display/rm2fb-client rename to package/rm2fb-original/rm2fb-client diff --git a/package/display/rm2fb-preload.conf b/package/rm2fb-original/rm2fb-preload.conf similarity index 100% rename from package/display/rm2fb-preload.conf rename to package/rm2fb-original/rm2fb-preload.conf diff --git a/package/rm2fb-original/rm2fb-preload.env b/package/rm2fb-original/rm2fb-preload.env new file mode 100644 index 000000000..910b04299 --- /dev/null +++ b/package/rm2fb-original/rm2fb-preload.env @@ -0,0 +1,9 @@ +# Copyright (c) 2021 The Toltec Contributors +# SPDX-License-Identifier: MIT +# Please do not modify files shipped by Toltec, or they risk being +# overwritten with updates. Instead create your own files in this directory. +if [[ -f /dev/shm/swtfb.01 ]]; then + export LD_PRELOAD=/opt/lib/librm2fb_client.so.1 +else + echo "rm2fb server is not running: starting without rm2fb client" +fi diff --git a/package/display/rm2fb.service b/package/rm2fb-original/rm2fb.service similarity index 100% rename from package/display/rm2fb.service rename to package/rm2fb-original/rm2fb.service diff --git a/package/rm2fb-timower/package b/package/rm2fb-timower/package new file mode 100644 index 000000000..037d1f4d9 --- /dev/null +++ b/package/rm2fb-timower/package @@ -0,0 +1,150 @@ +#!/usr/bin/env bash +# Copyright (c) 2024 The Toltec Contributors +# SPDX-License-Identifier: MIT + +archs=(rm1os3v5 rm2os3v5) +pkgnames=(rm2fb-server rm2fb-client) +timestamp=2023-08-27T02:39:10Z +maintainer="Eeems " +license=MIT +url="https://github.com/timower/rM2-stuff/tree/master/libs/rm2fb" +_tag=0.1.2 +pkgver=2:${_tag}-1 +_libver=1.1.0 +section="devel" + +source=( + rm2fb-client + rm2fb-preload.conf + rm2fb-preload.env + rm2fb.service +) +sha256sums=( + SKIP + SKIP + SKIP + SKIP +) + +image=base:v3.1 + +prepare() { + cd "$srcdir" + mkdir -p rm2fb + cd rm2fb + git init + git lfs install + git remote add origin https://github.com/timower/rM2-stuff.git + git fetch --depth 1 origin tag v${_tag} --no-tags + git checkout v${_tag} + git lfs fetch + git lfs checkout +} + +build() { + if [[ $arch = rm1os3v5 ]]; then + # Create an empty client library for rM1 + mkdir -p install/opt/lib + pushd install/opt/lib + echo | "${CROSS_COMPILE}gcc" \ + -fPIC -fvisibility=hidden -shared \ + -o "librm2fb_client.so.$_libver" \ + -xc - + popd + else + mkdir build + mkdir install + pushd build + cmake -DCMAKE_TOOLCHAIN_FILE="/usr/share/cmake/$CHOST.cmake" \ + -DCMAKE_INSTALL_PREFIX="$srcdir/install" -DCMAKE_BUILD_TYPE=Release ../rm2fb + pushd libs/rm2fb + make + make install + popd + popd + mv install/opt/lib/librm2fb_server.so{,.$_libver} + fi + # Work around current post-processing not handling symlinks that are not currently valid + rm -f install/usr/lib/librm2fb_client.so.1 + rm -f build/librm2fb_client.so.1 +} + +rm2fb-server() { + pkgdesc="Interface to the reMarkable framebuffer" + installdepends=(xochitl "rm2fb-client=$pkgver") + conflicts=(rm2fb) + replaces=(rm2fb) + + package() { + if [[ $arch = rm2os3v5 ]]; then + libname="librm2fb_server.so.$_libver" + install -D -m 644 -t "$pkgdir"/opt/lib "$srcdir"/install/opt/lib/"$libname" + ln -s "$libname" "$pkgdir"/opt/lib/"${libname%.*.*.*}" + ln -s "$libname" "$pkgdir"/opt/lib/"${libname%.*.*}" + ln -s "$libname" "$pkgdir"/opt/lib/"${libname%.*}" + install -D -m 644 -t "$pkgdir"/lib/systemd/system "$srcdir"/rm2fb.service + fi + } + + configure() { + if [[ $arch = rm2os3v5 ]]; then + systemctl daemon-reload + if systemctl enable rm2fb.service --now; then + # Restart xochitl if it's running + if is-active xochitl; then + # Reset the crash count so we don't trigger remarkable-fail + echo "0" > /tmp/crashnum + systemctl restart xochitl + fi + else + disable-unit rm2fb.service + echo "Failed to start rm2fb. Keeping it disabled for now." + echo "Please check the logs and open an issue:" + echo " https://github.com/toltec-dev/toltec/issues/new" + exit 1 + fi + fi + } + + preremove() { + if [[ $arch = rm2os3v5 ]]; then + disable-unit rm2fb.service + echo -n "make sure " + if ! is-enabled xochitl.service; then + echo "to re-enable xochitl with 'systemctl enable xochitl --now'" + echo -n "and " + fi + echo "to disable / uninstall any launchers like draft, oxide or remux before" + echo "rebooting your tablet to complete the uninstallation" + fi + } +} + +rm2fb-client() { + pkgdesc="Shim to make reMarkable 1 apps work on reMarkable 2" + installdepends=("rm2fb-server=$pkgver") + conflicts=(rm2fb) + replaces=(rm2fb) + + package() { + libname="librm2fb_client.so.$_libver" + install -D -m 644 -t "$pkgdir"/opt/lib "$srcdir"/install/opt/lib/"$libname" + install -d "$pkgdir"/usr/lib + ln -s /opt/lib/"$libname" "$pkgdir"/usr/lib/"$libname" + + for dest in opt/lib usr/lib; do + ln -s "$libname" "$pkgdir/$dest/${libname%.*.*.*}" + ln -s "$libname" "$pkgdir/$dest/${libname%.*.*}" + ln -s "$libname" "$pkgdir/$dest/${libname%.*}" + done + + install -D -m 755 -t "$pkgdir"/opt/bin "$srcdir"/rm2fb-client + + if [[ $arch = rm2os3v5 ]]; then + install -D -m 644 -t "$pkgdir"/opt/etc/xochitl.env.d "$srcdir"/rm2fb-preload.env + install -D -m 644 -t "$pkgdir"/etc/systemd/system/draft.service.d "$srcdir"/rm2fb-preload.conf + install -D -m 644 -t "$pkgdir"/etc/systemd/system/remux.service.d "$srcdir"/rm2fb-preload.conf + install -D -m 644 -t "$pkgdir"/etc/systemd/system/tarnish.service.d "$srcdir"/rm2fb-preload.conf + fi + } +} diff --git a/package/rm2fb-timower/rm2fb-client b/package/rm2fb-timower/rm2fb-client new file mode 100755 index 000000000..53e3dd566 --- /dev/null +++ b/package/rm2fb-timower/rm2fb-client @@ -0,0 +1,4 @@ +#!/usr/bin/env bash +# Copyright (c) 2021 The Toltec Contributors +# SPDX-License-Identifier: MIT +LD_PRELOAD=/opt/lib/librm2fb_client.so.1 RM2FB_ACTIVE=1 exec "$@" diff --git a/package/rm2fb-timower/rm2fb-preload.conf b/package/rm2fb-timower/rm2fb-preload.conf new file mode 100644 index 000000000..a2b02b315 --- /dev/null +++ b/package/rm2fb-timower/rm2fb-preload.conf @@ -0,0 +1,3 @@ +[Service] +Environment="LD_PRELOAD=/opt/lib/librm2fb_client.so.1" +Environment="RM2FB_ACTIVE=1" diff --git a/package/display/rm2fb-preload.env b/package/rm2fb-timower/rm2fb-preload.env similarity index 100% rename from package/display/rm2fb-preload.env rename to package/rm2fb-timower/rm2fb-preload.env diff --git a/package/rm2fb-timower/rm2fb-server b/package/rm2fb-timower/rm2fb-server new file mode 100755 index 000000000..5f19b9c66 --- /dev/null +++ b/package/rm2fb-timower/rm2fb-server @@ -0,0 +1,4 @@ +#!/usr/bin/env bash +# Copyright (c) 2021 The Toltec Contributors +# SPDX-License-Identifier: MIT +LD_PRELOAD=/opt/lib/librm2fb_server.so exec -a "rm2fb-server" /usr/bin/xochitl diff --git a/package/rm2fb-timower/rm2fb.service b/package/rm2fb-timower/rm2fb.service new file mode 100644 index 000000000..108c18d61 --- /dev/null +++ b/package/rm2fb-timower/rm2fb.service @@ -0,0 +1,16 @@ +[Unit] +Description=reMarkable 2 Framebuffer Server +StartLimitIntervalSec=600 +StartLimitBurst=4 +Before=xochitl.service launcher.service remarkable-reboot.service remarkable-shutdown.service +After=opt.mount +ConditionFileNotEmpty=/opt/lib/librm2fb_server.so + +[Service] +Restart=on-failure +RestartSec=5 +ExecStart=/opt/bin/rm2fb-server +Environment=HOME=/home/root + +[Install] +WantedBy=multi-user.target diff --git a/package/signature-rm/package b/package/signature-rm/package index d826d244c..00cc02ef7 100644 --- a/package/signature-rm/package +++ b/package/signature-rm/package @@ -2,7 +2,7 @@ # Copyright (c) 2021 The Toltec Contributors # SPDX-License-Identifier: MIT -archs=(rmallos2 rmallos3) +archs=(rmallos2 rmallos3 rmallos3v5) pkgnames=("signature-rm") pkgdesc="Remove the signature from the bottom of emails" url="https://github.com/rM-self-serve/signature-rM" diff --git a/package/toltec-base/package b/package/toltec-base/package index 6e3d8be49..9b8a9ce42 100644 --- a/package/toltec-base/package +++ b/package/toltec-base/package @@ -2,7 +2,7 @@ # Copyright (c) 2023 The Toltec Contributors # SPDX-License-Identifier: MIT -archs=(rmall rmallos2 rmallos3 rm1 rm1os2 rm1os3 rm2 rm2os2 rm2os3) +archs=(rmall rmallos2 rmallos3 rmallos3v5 rm1 rm1os2 rm1os3 rm1os3v5 rm2 rm2os2 rm2os3 rm2os3v5) pkgnames=(toltec-base) pkgdesc="Metapackage defining the base set of packages in a Toltec install" url=https://toltec-dev.org/ @@ -14,8 +14,10 @@ license=MIT installdepends=(toltec-bootstrap toltec-deletions toltec-completion launcherctl wget-ssl ca-certificates entware-rc) installdepends_rm1os2=(open-remarkable-shutdown) installdepends_rm1os3=(open-remarkable-shutdown) +installdepends_rm1os3v5=(open-remarkable-shutdown) installdepends_rm2os2=(rm2-suspend-fix) installdepends_rm2os3=(rm2-suspend-fix) +installdepends_rm2os3v5=(rm2-suspend-fix) source=(opt-usr-bin.sh) sha256sums=(SKIP) @@ -33,11 +35,11 @@ configure() { echo "Disabling automatic update" disable-unit update-engine.service case "$arch" in - rmall | rmallos2 | rmallos3) + rmall | rmallos2 | rmallos3 | rmallos3v5) echo "Warning: rmall version of toltec-base should not be installed" echo "Please run opkg install --force-reinstall toltec-base" ;; - rm1 | rm1os2 | rm1os3) + rm1 | rm1os2 | rm1os3 | rm1os3v5) if ! is-masked sys-subsystem-net-devices-usb1.device; then systemctl mask sys-subsystem-net-devices-usb1.device fi @@ -45,7 +47,7 @@ configure() { systemctl mask busybox-ifplugd@usb1.service fi ;; - rm2 | rm2os2 | rm2os3) + rm2 | rm2os2 | rm2os3 | rm2os3v5) if is-masked sys-subsystem-net-devices-usb1.device; then systemctl unmask sys-subsystem-net-devices-usb1.device fi diff --git a/package/toltec-bootstrap/toltecctl b/package/toltec-bootstrap/toltecctl index 5a26d3790..941cd0b63 100644 --- a/package/toltec-bootstrap/toltecctl +++ b/package/toltec-bootstrap/toltecctl @@ -393,11 +393,11 @@ update-package-arch() { return 3 fi case "$arch" in - rmallos2 | rmallos3) + rmallos2 | rmallos3 | rmallos3v5) version="$(identify-support-version)" new_status="$(echo "$status" | replace-string "Architecture: ${arch}" "Architecture: rmall${version}")" ;; - rm1os2 | rm1os3 | rm2os2 | rm2os3) + rm1os2 | rm1os3 | rm1os3v5 | rm2os2 | rm2os3 | rm2os3v5) model="$(identify-model)" version="$(identify-support-version)" new_status="$(echo "$status" | replace-string "Architecture: ${arch}" "Architecture: ${model}${version}")" @@ -611,7 +611,8 @@ compare-versions() { # Output: One of the following strings # # os2 - 2.x OS version -# os3 - 3.x OS version +# os3 - 3.0 to 3.8 OS version +# os3v5 - 3.8+ OS version # unknown identify-support-version() { local current_version @@ -621,8 +622,10 @@ identify-support-version() { echo "unknown" elif compare-versions "3.0" "$current_version"; then echo "os2" - elif compare-versions "4.0" "$current_version"; then + elif compare-versions "3.8" "$current_version"; then echo "os3" + elif compare-versions "4.0" "$current_version"; then + echo "os3v5" else echo "unknown" fi @@ -664,8 +667,7 @@ arch ${model} 250 src/gz toltec-${model} ${toltec_srv_root}/${branch}/${model} arch rmall${version} 260 src/gz toltec-rmall$version ${toltec_srv_root}/${branch}/rmall${version} -arch ${model}os2 270 -arch ${model}os3 270 +arch ${model}${version} 270 src/gz toltec-${model}${version} ${toltec_srv_root}/${branch}/${model}${version} CONF } diff --git a/package/toltec-deletions/package b/package/toltec-deletions/package index b5c383713..820a78230 100644 --- a/package/toltec-deletions/package +++ b/package/toltec-deletions/package @@ -2,11 +2,11 @@ # Copyright (c) 2023 The Toltec Contributors # SPDX-License-Identifier: MIT -archs=(rm1os2 rm1os3 rm2os2 rm2os3) +archs=(rm1os2 rm1os3 rm2os2 rm2os3 rm1os3v5 rm2os3v5) pkgnames=(toltec-deletions) pkgdesc="Metapackage to handle package deletions between OS versions" url=https://toltec-dev.org/ -pkgver=0.1-8 +pkgver=0.1-9 timestamp=2023-12-03T04:51:58Z section="utils" maintainer="Eeems " @@ -50,6 +50,44 @@ replaces_rm2os3=( remarkable-stylus open-remarkable-shutdown ) +conflicts_rm1os3v5=( + ddvk-hacks + fuse + wireguard + innernet-client + gocryptfs + linux-mainline + remarkable-stylus +) +replaces_rm1os3v5=( + ddvk-hacks + fuse + wireguard + innernet-client + gocryptfs + linux-mainline + remarkable-stylus +) +conflicts_rm2os3v5=( + ddvk-hacks + fuse + wireguard + innernet-client + gocryptfs + linux-mainline + remarkable-stylus + open-remarkable-shutdown +) +replaces_rm2os3v5=( + ddvk-hacks + fuse + wireguard + innernet-client + gocryptfs + linux-mainline + remarkable-stylus + open-remarkable-shutdown +) source=() sha256sums=() diff --git a/package/webinterface-onboot/package b/package/webinterface-onboot/package index 0040ffc06..7efa36bfe 100644 --- a/package/webinterface-onboot/package +++ b/package/webinterface-onboot/package @@ -2,7 +2,7 @@ # Copyright (c) 2021 The Toltec Contributors # SPDX-License-Identifier: MIT -archs=(rmallos2 rmallos3) +archs=(rmallos2 rmallos3 rmallos3v5) pkgnames=("webinterface-onboot") pkgdesc="Start the web interface without the cable, on boot." url="https://github.com/rM-self-serve/webinterface-onboot" diff --git a/package/xochitl/xochitl b/package/xochitl/xochitl index 4a2eb95f2..1a14b000d 100644 --- a/package/xochitl/xochitl +++ b/package/xochitl/xochitl @@ -10,14 +10,22 @@ for file in /opt/etc/xochitl.env.d/*.env; do fi done +is-active() { + systemctl --quiet is-active "$1" 2> /dev/null +} + +is-masked() { + [[ "$(systemctl is-enabled "$1" 2> /dev/null)" == "masked" ]] +} + # 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 +if ! is-masked sync.service; then systemctl mask sync.service fi -if [[ "x$(systemctl is-enabled rm-sync.service)" != "xmasked" ]]; then +if ! is-masked rm-sync.service; then systemctl mask rm-sync.service fi