From 1130a45592dd09d02b802b6b5af3e1bbd44fab8b Mon Sep 17 00:00:00 2001 From: Nathaniel van Diepen Date: Fri, 24 May 2024 00:33:16 -0600 Subject: [PATCH 01/21] Add 3.8.2 support --- docs/package.md | 9 +- package/Compatibility | 4 + package/display/package | 130 ++--------------- package/rm2fb-original/package | 135 ++++++++++++++++++ .../{display => rm2fb-original}/rm2fb-client | 0 .../rm2fb-preload.conf | 0 .../rm2fb-preload.env | 0 .../{display => rm2fb-original}/rm2fb.service | 0 package/rm2fb-timower/package | 129 +++++++++++++++++ package/signature-rm/package | 2 +- package/toltec-base/package | 10 +- package/toltec-bootstrap/package | 4 +- package/toltec-bootstrap/toltecctl | 14 +- package/toltec-deletions/package | 26 +++- package/webinterface-onboot/package | 2 +- 15 files changed, 329 insertions(+), 136 deletions(-) create mode 100644 package/rm2fb-original/package rename package/{display => rm2fb-original}/rm2fb-client (100%) rename package/{display => rm2fb-original}/rm2fb-preload.conf (100%) rename package/{display => rm2fb-original}/rm2fb-preload.env (100%) rename package/{display => rm2fb-original}/rm2fb.service (100%) create mode 100644 package/rm2fb-timower/package 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 8f3bd3029..4be1f7961 100644 --- a/package/display/package +++ b/package/display/package @@ -1,124 +1,20 @@ #!/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 " +archs=(rmallos2 rmallos3 rmallos3v5) +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-1 -_release="${pkgver%-*}" -_release="v${_release#*:}" -_libver=1.0.1 +url="https://toltec-dev.org" +pkgver=2:0.0.1-1 section="devel" +installdepends_rmallos2=(rm2fb-server rm2fb-client) +installdepends_rmallos3=(rm2fb-server rm2fb-client) +installdepends_rmallos3v5=(rm2fb-server-timower rm2fb-client-timower) -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.$_libver" - install -D -m 644 -t "$pkgdir"/opt/lib "$srcdir"/src/client/"$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%.*}" - 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..98a16665b --- /dev/null +++ b/package/rm2fb-original/package @@ -0,0 +1,135 @@ +#!/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%.*}" + 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=("display=$pkgver") + conflicts=(rm2fb) + replaces=(rm2fb) + + package() { + libname="librm2fb_client.so.$_libver" + install -D -m 644 -t "$pkgdir"/opt/lib "$srcdir"/src/client/"$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%.*}" + 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/display/rm2fb-preload.env b/package/rm2fb-original/rm2fb-preload.env similarity index 100% rename from package/display/rm2fb-preload.env rename to package/rm2fb-original/rm2fb-preload.env 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..7f2987691 --- /dev/null +++ b/package/rm2fb-timower/package @@ -0,0 +1,129 @@ +#!/usr/bin/env bash +# Copyright (c) 2024 The Toltec Contributors +# SPDX-License-Identifier: MIT + +archs=(rm1os3v5 rm2os3v5) +pkgnames=(rm2fb-server-timower rm2fb-client-timower) +timestamp=2023-08-27T02:39:10Z +maintainer="Eeems " +license=MIT +url="https://github.com/timower/rM2-stuff/tree/master/libs/rm2fb" +_tag=0.1.1 +pkgver=${_tag}-1 +_libver=1.1.0 +section="devel" + +source=( + ../rm2fb-original/rm2fb-client + ../rm2fb-original/rm2fb-preload.conf + ../rm2fb-original/rm2fb-preload.env +) +sha256sums=( + 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() { + mkdir build + mkdir install + cd build + cmake -DCMAKE_TOOLCHAIN_FILE="/usr/share/cmake/$CHOST.cmake" \ + -DCMAKE_INSTALL_PREFIX="../install" -DCMAKE_BUILD_TYPE=Release ../rm2fb + cd libs/rm2fb + make + make install +} + +rm2fb-server-timower() { + 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"/install/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 = 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-timower() { + pkgdesc="Shim to make reMarkable 1 apps work on reMarkable 2" + installdepends=("display=$pkgver") + conflicts=(rm2fb rm2fb-client) + replaces=(rm2fb rm2fb-client) + + 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%.*}" + 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 + } +} diff --git a/package/signature-rm/package b/package/signature-rm/package index 87154993a..05720c129 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 183cb2995..00be49dbd 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=() sha256sums=() @@ -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/package b/package/toltec-bootstrap/package index 8c95c296b..9394a2a2b 100644 --- a/package/toltec-bootstrap/package +++ b/package/toltec-bootstrap/package @@ -5,8 +5,8 @@ pkgnames=(toltec-bootstrap) pkgdesc="Manage your Toltec install" url=https://toltec-dev.org/ -pkgver=0.4.1-1 -timestamp=2023-11-27T00:34Z +pkgver=0.4.2-1 +timestamp=2024-05-24T05:57Z section="utils" maintainer="Eeems " license=MIT diff --git a/package/toltec-bootstrap/toltecctl b/package/toltec-bootstrap/toltecctl index b6ba832bf..218eae585 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 2a2a03a0e..da25525d1 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=(rmallos2 rmallos3) +archs=(rmallos2 rmallos3 rmallos3v5) pkgnames=(toltec-deletions) pkgdesc="Metapackage to handle package deletions between OS versions" url=https://toltec-dev.org/ -pkgver=0.1-3 +pkgver=0.1-4 timestamp=2023-12-03T04:51:58Z section="utils" maintainer="Eeems " @@ -32,6 +32,28 @@ replaces_rmallos3=( linux-mainline remarkable-stylus ) +conflicts_rmallos3v5=( + ddvk-hacks + fuse + wireguard + innernet-client + gocryptfs + linux-mainline + remarkable-stylus + rm2fb-server + rm2fb-client +) +replaces_rmallos3v5=( + ddvk-hacks + fuse + wireguard + innernet-client + gocryptfs + linux-mainline + remarkable-stylus + rm2fb-server + rm2fb-client +) 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" From 7f466bb6dcd2cfe4d1232d96435b5fa1c563ab39 Mon Sep 17 00:00:00 2001 From: Nathaniel van Diepen Date: Fri, 24 May 2024 00:39:04 -0600 Subject: [PATCH 02/21] Fix lint --- package/rm2fb-original/package | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package/rm2fb-original/package b/package/rm2fb-original/package index 98a16665b..4d46e08ea 100644 --- a/package/rm2fb-original/package +++ b/package/rm2fb-original/package @@ -62,7 +62,7 @@ rm2fb-server() { 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 } From baa4a769acb3bb90249a4faed8ea2490c29520c2 Mon Sep 17 00:00:00 2001 From: Nathaniel van Diepen Date: Fri, 24 May 2024 00:41:58 -0600 Subject: [PATCH 03/21] Use same package name on os3v5 --- package/rm2fb-timower/package | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/package/rm2fb-timower/package b/package/rm2fb-timower/package index 7f2987691..1863038e5 100644 --- a/package/rm2fb-timower/package +++ b/package/rm2fb-timower/package @@ -3,7 +3,7 @@ # SPDX-License-Identifier: MIT archs=(rm1os3v5 rm2os3v5) -pkgnames=(rm2fb-server-timower rm2fb-client-timower) +pkgnames=(rm2fb-server rm2fb-client) timestamp=2023-08-27T02:39:10Z maintainer="Eeems " license=MIT @@ -50,7 +50,7 @@ build() { make install } -rm2fb-server-timower() { +rm2fb-server() { pkgdesc="Interface to the reMarkable framebuffer" installdepends=(xochitl "rm2fb-client=$pkgver") conflicts=(rm2fb) @@ -100,11 +100,11 @@ rm2fb-server-timower() { } } -rm2fb-client-timower() { +rm2fb-client() { pkgdesc="Shim to make reMarkable 1 apps work on reMarkable 2" installdepends=("display=$pkgver") - conflicts=(rm2fb rm2fb-client) - replaces=(rm2fb rm2fb-client) + conflicts=(rm2fb) + replaces=(rm2fb) package() { libname="librm2fb_client.so.$_libver" From 8ad54e9479fe6f5bf17e9fb0a3b136a32aaffe35 Mon Sep 17 00:00:00 2001 From: Nathaniel van Diepen Date: Fri, 24 May 2024 00:57:37 -0600 Subject: [PATCH 04/21] Fix build --- package/rm2fb-timower/package | 40 +++++++++++++++++++++++------------ 1 file changed, 26 insertions(+), 14 deletions(-) diff --git a/package/rm2fb-timower/package b/package/rm2fb-timower/package index 1863038e5..a33749daa 100644 --- a/package/rm2fb-timower/package +++ b/package/rm2fb-timower/package @@ -9,7 +9,7 @@ maintainer="Eeems " license=MIT url="https://github.com/timower/rM2-stuff/tree/master/libs/rm2fb" _tag=0.1.1 -pkgver=${_tag}-1 +pkgver=2:${_tag}-1 _libver=1.1.0 section="devel" @@ -40,14 +40,26 @@ prepare() { } build() { - mkdir build - mkdir install - cd build - cmake -DCMAKE_TOOLCHAIN_FILE="/usr/share/cmake/$CHOST.cmake" \ - -DCMAKE_INSTALL_PREFIX="../install" -DCMAKE_BUILD_TYPE=Release ../rm2fb - cd libs/rm2fb - make - make install + 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 + cd build + cmake -DCMAKE_TOOLCHAIN_FILE="/usr/share/cmake/$CHOST.cmake" \ + -DCMAKE_INSTALL_PREFIX="../install" -DCMAKE_BUILD_TYPE=Release ../rm2fb + cd libs/rm2fb + make + make install + mv "$srcdir"/install/opt/lib/librm2fb_server.so{,.$_libver} + fi } rm2fb-server() { @@ -57,17 +69,17 @@ rm2fb-server() { replaces=(rm2fb) package() { - if [[ $arch = rm2 ]]; then + 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%.*}" - install -D -m 644 -t "$pkgdir"/lib/systemd/system "$srcdir"/rm2fb.service + install -D -m 644 -t "$pkgdir"/lib/systemd/system "$srcdir"/install/lib/systemd/system/rm2fb.service fi } configure() { - if [[ $arch = rm2 ]]; then + if [[ $arch = rm2os3v5 ]]; then systemctl daemon-reload if systemctl enable rm2fb --now; then # Restart xochitl if it's running @@ -87,7 +99,7 @@ rm2fb-server() { } preremove() { - if [[ $arch = rm2 ]]; then + if [[ $arch = rm2os3v5 ]]; then disable-unit rm2fb.service echo -n "make sure " if ! is-enabled xochitl.service; then @@ -119,7 +131,7 @@ rm2fb-client() { install -D -m 755 -t "$pkgdir"/opt/bin "$srcdir"/rm2fb-client - if [[ $arch = rm2 ]]; then + 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 From 8318aac97b3a51180b0cd73c0ec3811a8117ce6f Mon Sep 17 00:00:00 2001 From: Nathaniel van Diepen Date: Fri, 24 May 2024 01:17:14 -0600 Subject: [PATCH 05/21] Fix invalid lines in toltecctl --- package/toltec-bootstrap/toltecctl | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/package/toltec-bootstrap/toltecctl b/package/toltec-bootstrap/toltecctl index 218eae585..71ba2614e 100644 --- a/package/toltec-bootstrap/toltecctl +++ b/package/toltec-bootstrap/toltecctl @@ -156,8 +156,8 @@ check-version() { cd "$cwd" if ! grep -q "${current_model}=${current_version}" "${toltec_share}/Compatibility"; then - LOG ERROR "You’re running an unsupported OS version: $current_version" - LOG ERROR "Please monitor Toltec releases for upcoming support" + log ERROR "You’re running an unsupported OS version: $current_version" + log ERROR "Please monitor Toltec releases for upcoming support" return 1 fi From d36f15513bdde7fda328cfb834d52c649df87d65 Mon Sep 17 00:00:00 2001 From: Nathaniel van Diepen Date: Fri, 24 May 2024 01:19:51 -0600 Subject: [PATCH 06/21] Use latest wget --- package/toltec-bootstrap/toltecctl | 4 ++-- scripts/bootstrap/bootstrap | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/package/toltec-bootstrap/toltecctl b/package/toltec-bootstrap/toltecctl index 71ba2614e..3dabba2f5 100644 --- a/package/toltec-bootstrap/toltecctl +++ b/package/toltec-bootstrap/toltecctl @@ -748,8 +748,8 @@ install-standalone-opkg() { # installed on the reMarkable does not) in the PATH install-standalone-wget() { local wget_path="${toltec_share}/wget" - local wget_remote=http://toltec-dev.org/thirdparty/bin/wget-v1.21.1 - local wget_checksum=8798fcdabbe560722a02f95b30385926e4452e2c98c15c2c217583eaa0db30fc + local wget_remote=http://toltec-dev.org/thirdparty/bin/wget-v1.21.1-1 + local wget_checksum=c258140f059d16d24503c62c1fdf747ca843fe4ba8fcd464a6e6bda8c3bbb6b5 if [ -f "$wget_path" ] && ! [[ -e $wget_path ]] || ! sha256sum -c <(echo "$wget_checksum $wget_path") > /dev/null 2>&1; then rm "$wget_path" diff --git a/scripts/bootstrap/bootstrap b/scripts/bootstrap/bootstrap index 997a2e270..0a61a772d 100755 --- a/scripts/bootstrap/bootstrap +++ b/scripts/bootstrap/bootstrap @@ -79,8 +79,8 @@ check-installed() { # Install a local wget binary which supports TLS (the original one # installed on the reMarkable does not) in the PATH wget-bootstrap() { - local wget_remote=http://toltec-dev.org/thirdparty/bin/wget-v1.21.1 - local wget_checksum=8798fcdabbe560722a02f95b30385926e4452e2c98c15c2c217583eaa0db30fc + local wget_remote=http://toltec-dev.org/thirdparty/bin/wget-v1.21.1-1 + local wget_checksum=c258140f059d16d24503c62c1fdf747ca843fe4ba8fcd464a6e6bda8c3bbb6b5 if [[ ! -x $wget_path ]]; then if [[ -e $wget_path ]]; then From 43823c337ab02a8c2709099e5d27acfdc6a10ddb Mon Sep 17 00:00:00 2001 From: Nathaniel van Diepen Date: Fri, 24 May 2024 01:31:47 -0600 Subject: [PATCH 07/21] Fix installdepends for display --- package/display/package | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/package/display/package b/package/display/package index 4be1f7961..67490a8eb 100644 --- a/package/display/package +++ b/package/display/package @@ -2,7 +2,6 @@ # Copyright (c) 2024 The Toltec Contributors # SPDX-License-Identifier: MIT -archs=(rmallos2 rmallos3 rmallos3v5) pkgnames=(display) pkgdesc="Metapackage for allowing applications to display to the screen" timestamp=2024-05-24T06:12:38Z @@ -11,9 +10,7 @@ license=MIT url="https://toltec-dev.org" pkgver=2:0.0.1-1 section="devel" -installdepends_rmallos2=(rm2fb-server rm2fb-client) -installdepends_rmallos3=(rm2fb-server rm2fb-client) -installdepends_rmallos3v5=(rm2fb-server-timower rm2fb-client-timower) +installdepends=(rm2fb-server rm2fb-client) package() { true From f9090afff1275d331436ceb8350ee583277d2dde Mon Sep 17 00:00:00 2001 From: Nathaniel van Diepen Date: Fri, 24 May 2024 01:32:30 -0600 Subject: [PATCH 08/21] Don't delete rm2fb with toltec-deletions --- package/toltec-deletions/package | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/package/toltec-deletions/package b/package/toltec-deletions/package index da25525d1..e53a0effc 100644 --- a/package/toltec-deletions/package +++ b/package/toltec-deletions/package @@ -6,7 +6,7 @@ archs=(rmallos2 rmallos3 rmallos3v5) pkgnames=(toltec-deletions) pkgdesc="Metapackage to handle package deletions between OS versions" url=https://toltec-dev.org/ -pkgver=0.1-4 +pkgver=0.1-3 timestamp=2023-12-03T04:51:58Z section="utils" maintainer="Eeems " @@ -40,8 +40,6 @@ conflicts_rmallos3v5=( gocryptfs linux-mainline remarkable-stylus - rm2fb-server - rm2fb-client ) replaces_rmallos3v5=( ddvk-hacks @@ -51,8 +49,6 @@ replaces_rmallos3v5=( gocryptfs linux-mainline remarkable-stylus - rm2fb-server - rm2fb-client ) source=() From c3d18c00efe8e9e831876859e180f9dcf922cd06 Mon Sep 17 00:00:00 2001 From: Nathaniel van Diepen Date: Fri, 24 May 2024 14:34:46 -0600 Subject: [PATCH 09/21] Fix rm2fb-client dependency --- package/rm2fb-original/package | 2 +- package/rm2fb-timower/package | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/package/rm2fb-original/package b/package/rm2fb-original/package index 4d46e08ea..85cd4a28f 100644 --- a/package/rm2fb-original/package +++ b/package/rm2fb-original/package @@ -106,7 +106,7 @@ rm2fb-server() { rm2fb-client() { pkgdesc="Shim to make reMarkable 1 apps work on reMarkable 2" - installdepends=("display=$pkgver") + installdepends=("rm2fb-server=$pkgver") conflicts=(rm2fb) replaces=(rm2fb) diff --git a/package/rm2fb-timower/package b/package/rm2fb-timower/package index a33749daa..37059a8f4 100644 --- a/package/rm2fb-timower/package +++ b/package/rm2fb-timower/package @@ -114,7 +114,7 @@ rm2fb-server() { rm2fb-client() { pkgdesc="Shim to make reMarkable 1 apps work on reMarkable 2" - installdepends=("display=$pkgver") + installdepends=("rm2fb-server=$pkgver") conflicts=(rm2fb) replaces=(rm2fb) From 385e92d0aada63b32737a54a19a3c2bd2dbdb0c9 Mon Sep 17 00:00:00 2001 From: Nathaniel van Diepen Date: Fri, 24 May 2024 14:45:30 -0600 Subject: [PATCH 10/21] Add non-versioned librm2fb so symlinks --- package/rm2fb-original/package | 2 ++ package/rm2fb-timower/package | 2 ++ 2 files changed, 4 insertions(+) diff --git a/package/rm2fb-original/package b/package/rm2fb-original/package index 85cd4a28f..f03ea92c1 100644 --- a/package/rm2fb-original/package +++ b/package/rm2fb-original/package @@ -59,6 +59,7 @@ rm2fb-server() { 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 @@ -117,6 +118,7 @@ rm2fb-client() { 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 diff --git a/package/rm2fb-timower/package b/package/rm2fb-timower/package index 37059a8f4..2f0929617 100644 --- a/package/rm2fb-timower/package +++ b/package/rm2fb-timower/package @@ -72,6 +72,7 @@ rm2fb-server() { 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"/install/lib/systemd/system/rm2fb.service @@ -125,6 +126,7 @@ rm2fb-client() { 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 From 68e315558a885a19b653436bf80a0e8c20a02c3b Mon Sep 17 00:00:00 2001 From: Nathaniel van Diepen Date: Fri, 24 May 2024 14:55:45 -0600 Subject: [PATCH 11/21] Fix up xochitl starting with timower's rm2fb --- package/rm2fb-timower/package | 2 +- package/rm2fb-timower/rm2fb-preload.env | 14 ++++++++++++++ package/xochitl/xochitl | 12 ++++++++++-- 3 files changed, 25 insertions(+), 3 deletions(-) create mode 100644 package/rm2fb-timower/rm2fb-preload.env diff --git a/package/rm2fb-timower/package b/package/rm2fb-timower/package index 2f0929617..259fe09d3 100644 --- a/package/rm2fb-timower/package +++ b/package/rm2fb-timower/package @@ -16,7 +16,7 @@ section="devel" source=( ../rm2fb-original/rm2fb-client ../rm2fb-original/rm2fb-preload.conf - ../rm2fb-original/rm2fb-preload.env + rm2fb-preload.env ) sha256sums=( SKIP diff --git a/package/rm2fb-timower/rm2fb-preload.env b/package/rm2fb-timower/rm2fb-preload.env new file mode 100644 index 000000000..ce3bae068 --- /dev/null +++ b/package/rm2fb-timower/rm2fb-preload.env @@ -0,0 +1,14 @@ +# 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. + +is-active() { + systemctl --quiet is-active "$1" 2> /dev/null +} + +if is-active rm2fb; 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/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 From 6f984f621ced9ab4d367638650a06bd8cbc38d58 Mon Sep 17 00:00:00 2001 From: Nathaniel van Diepen Date: Fri, 24 May 2024 17:07:33 -0600 Subject: [PATCH 12/21] Add socket --- package/rm2fb-timower/package | 10 ++++++++-- package/rm2fb-timower/rm2fb-preload.env | 14 -------------- package/rm2fb-timower/rm2fb-swtfb.conf | 3 +++ 3 files changed, 11 insertions(+), 16 deletions(-) delete mode 100644 package/rm2fb-timower/rm2fb-preload.env create mode 100644 package/rm2fb-timower/rm2fb-swtfb.conf diff --git a/package/rm2fb-timower/package b/package/rm2fb-timower/package index 259fe09d3..ea4cd2e73 100644 --- a/package/rm2fb-timower/package +++ b/package/rm2fb-timower/package @@ -16,12 +16,14 @@ section="devel" source=( ../rm2fb-original/rm2fb-client ../rm2fb-original/rm2fb-preload.conf - rm2fb-preload.env + ../rm2fb-original/rm2fb-preload.env + rm2fb-swtfb.conf ) sha256sums=( SKIP SKIP SKIP + SKIP ) image=base:v3.1 @@ -76,13 +78,15 @@ rm2fb-server() { ln -s "$libname" "$pkgdir"/opt/lib/"${libname%.*.*}" ln -s "$libname" "$pkgdir"/opt/lib/"${libname%.*}" install -D -m 644 -t "$pkgdir"/lib/systemd/system "$srcdir"/install/lib/systemd/system/rm2fb.service + install -D -m 644 -t "$pkgdir"/lib/systemd/system "$srcdir"/install/lib/systemd/system/rm2fb.socket + install -D -m 644 -t "$pkgdir"/etc/systemd/system/rm2fb.service.d "$srcdir"/rm2fb-swtfb.conf fi } configure() { if [[ $arch = rm2os3v5 ]]; then systemctl daemon-reload - if systemctl enable rm2fb --now; then + if systemctl enable rm2fb.socket --now; then # Restart xochitl if it's running if is-active xochitl; then # Reset the crash count so we don't trigger remarkable-fail @@ -90,6 +94,7 @@ rm2fb-server() { systemctl restart xochitl fi else + disable-unit rm2fb.socket disable-unit rm2fb.service echo "Failed to start rm2fb. Keeping it disabled for now." echo "Please check the logs and open an issue:" @@ -101,6 +106,7 @@ rm2fb-server() { preremove() { if [[ $arch = rm2os3v5 ]]; then + disable-unit rm2fb.socket disable-unit rm2fb.service echo -n "make sure " if ! is-enabled xochitl.service; then diff --git a/package/rm2fb-timower/rm2fb-preload.env b/package/rm2fb-timower/rm2fb-preload.env deleted file mode 100644 index ce3bae068..000000000 --- a/package/rm2fb-timower/rm2fb-preload.env +++ /dev/null @@ -1,14 +0,0 @@ -# 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. - -is-active() { - systemctl --quiet is-active "$1" 2> /dev/null -} - -if is-active rm2fb; 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/rm2fb-timower/rm2fb-swtfb.conf b/package/rm2fb-timower/rm2fb-swtfb.conf new file mode 100644 index 000000000..1ac0d9a86 --- /dev/null +++ b/package/rm2fb-timower/rm2fb-swtfb.conf @@ -0,0 +1,3 @@ +[Service] +ExecStartPre=/bin/ln -sf rm2fb.01 /dev/shm/swtfb.01 +ExecStopPost=/bin/rm -f /dev/shm/swtfb.01 From ddbe2a4f5b86a4d888e998feadd034063570854a Mon Sep 17 00:00:00 2001 From: Nathaniel van Diepen Date: Fri, 24 May 2024 17:18:43 -0600 Subject: [PATCH 13/21] Fix build and remove socket --- package/rm2fb-timower/package | 7 ++----- package/rm2fb-timower/rm2fb-preload.env | 9 +++++++++ package/rm2fb-timower/rm2fb-swtfb.conf | 4 ++-- 3 files changed, 13 insertions(+), 7 deletions(-) create mode 100644 package/rm2fb-timower/rm2fb-preload.env diff --git a/package/rm2fb-timower/package b/package/rm2fb-timower/package index ea4cd2e73..470214e6c 100644 --- a/package/rm2fb-timower/package +++ b/package/rm2fb-timower/package @@ -16,7 +16,7 @@ section="devel" source=( ../rm2fb-original/rm2fb-client ../rm2fb-original/rm2fb-preload.conf - ../rm2fb-original/rm2fb-preload.env + rm2fb-preload.env rm2fb-swtfb.conf ) sha256sums=( @@ -78,7 +78,6 @@ rm2fb-server() { ln -s "$libname" "$pkgdir"/opt/lib/"${libname%.*.*}" ln -s "$libname" "$pkgdir"/opt/lib/"${libname%.*}" install -D -m 644 -t "$pkgdir"/lib/systemd/system "$srcdir"/install/lib/systemd/system/rm2fb.service - install -D -m 644 -t "$pkgdir"/lib/systemd/system "$srcdir"/install/lib/systemd/system/rm2fb.socket install -D -m 644 -t "$pkgdir"/etc/systemd/system/rm2fb.service.d "$srcdir"/rm2fb-swtfb.conf fi } @@ -86,7 +85,7 @@ rm2fb-server() { configure() { if [[ $arch = rm2os3v5 ]]; then systemctl daemon-reload - if systemctl enable rm2fb.socket --now; then + 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 @@ -94,7 +93,6 @@ rm2fb-server() { systemctl restart xochitl fi else - disable-unit rm2fb.socket disable-unit rm2fb.service echo "Failed to start rm2fb. Keeping it disabled for now." echo "Please check the logs and open an issue:" @@ -106,7 +104,6 @@ rm2fb-server() { preremove() { if [[ $arch = rm2os3v5 ]]; then - disable-unit rm2fb.socket disable-unit rm2fb.service echo -n "make sure " if ! is-enabled xochitl.service; then diff --git a/package/rm2fb-timower/rm2fb-preload.env b/package/rm2fb-timower/rm2fb-preload.env new file mode 100644 index 000000000..c3d4b061c --- /dev/null +++ b/package/rm2fb-timower/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/rm2fb.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/rm2fb-timower/rm2fb-swtfb.conf b/package/rm2fb-timower/rm2fb-swtfb.conf index 1ac0d9a86..b6c33fccc 100644 --- a/package/rm2fb-timower/rm2fb-swtfb.conf +++ b/package/rm2fb-timower/rm2fb-swtfb.conf @@ -1,3 +1,3 @@ [Service] -ExecStartPre=/bin/ln -sf rm2fb.01 /dev/shm/swtfb.01 -ExecStopPost=/bin/rm -f /dev/shm/swtfb.01 +ExecStartPre=+/bin/ln -sf rm2fb.01 /dev/shm/swtfb.01 +ExecStopPost=+/bin/rm -f /dev/shm/swtfb.01 From 94d6cdf20cf66f030ad88a71940a28fdc646d87c Mon Sep 17 00:00:00 2001 From: Nathaniel van Diepen Date: Fri, 24 May 2024 18:03:01 -0600 Subject: [PATCH 14/21] Fix up starting rm2fb-server and making swtfb.01 --- package/rm2fb-timower/package | 5 ++--- package/rm2fb-timower/rm2fb-server | 5 +++++ package/rm2fb-timower/rm2fb-swtfb.conf | 3 --- package/rm2fb-timower/rm2fb.service | 16 ++++++++++++++++ 4 files changed, 23 insertions(+), 6 deletions(-) create mode 100755 package/rm2fb-timower/rm2fb-server delete mode 100644 package/rm2fb-timower/rm2fb-swtfb.conf create mode 100644 package/rm2fb-timower/rm2fb.service diff --git a/package/rm2fb-timower/package b/package/rm2fb-timower/package index 470214e6c..9193d69fc 100644 --- a/package/rm2fb-timower/package +++ b/package/rm2fb-timower/package @@ -17,7 +17,7 @@ source=( ../rm2fb-original/rm2fb-client ../rm2fb-original/rm2fb-preload.conf rm2fb-preload.env - rm2fb-swtfb.conf + rm2fb.service ) sha256sums=( SKIP @@ -77,8 +77,7 @@ rm2fb-server() { 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"/install/lib/systemd/system/rm2fb.service - install -D -m 644 -t "$pkgdir"/etc/systemd/system/rm2fb.service.d "$srcdir"/rm2fb-swtfb.conf + install -D -m 644 -t "$pkgdir"/lib/systemd/system "$srcdir"/rm2fb.service fi } diff --git a/package/rm2fb-timower/rm2fb-server b/package/rm2fb-timower/rm2fb-server new file mode 100755 index 000000000..1f1b76185 --- /dev/null +++ b/package/rm2fb-timower/rm2fb-server @@ -0,0 +1,5 @@ +#!/usr/bin/env bash +# Copyright (c) 2021 The Toltec Contributors +# SPDX-License-Identifier: MIT +ln -sf rm2fb.01 /dev/shm/swtfb.01 +LD_PRELOAD=/opt/lib/librm2fb_server.so exec -a "rm2fb-server" /usr/bin/xochitl diff --git a/package/rm2fb-timower/rm2fb-swtfb.conf b/package/rm2fb-timower/rm2fb-swtfb.conf deleted file mode 100644 index b6c33fccc..000000000 --- a/package/rm2fb-timower/rm2fb-swtfb.conf +++ /dev/null @@ -1,3 +0,0 @@ -[Service] -ExecStartPre=+/bin/ln -sf rm2fb.01 /dev/shm/swtfb.01 -ExecStopPost=+/bin/rm -f /dev/shm/swtfb.01 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 From abfe205e937b6c161f9c2c6e44a880d358245465 Mon Sep 17 00:00:00 2001 From: Nathaniel van Diepen Date: Fri, 24 May 2024 18:37:17 -0600 Subject: [PATCH 15/21] Set RM2FB_ACTIVE as it's not being set by timower's rm2fb --- package/rm2fb-timower/package | 4 ++-- package/rm2fb-timower/rm2fb-client | 4 ++++ package/rm2fb-timower/rm2fb-preload.conf | 3 +++ package/rm2fb-timower/rm2fb-preload.env | 1 + 4 files changed, 10 insertions(+), 2 deletions(-) create mode 100755 package/rm2fb-timower/rm2fb-client create mode 100644 package/rm2fb-timower/rm2fb-preload.conf diff --git a/package/rm2fb-timower/package b/package/rm2fb-timower/package index 9193d69fc..0bb0c1c7e 100644 --- a/package/rm2fb-timower/package +++ b/package/rm2fb-timower/package @@ -14,8 +14,8 @@ _libver=1.1.0 section="devel" source=( - ../rm2fb-original/rm2fb-client - ../rm2fb-original/rm2fb-preload.conf + rm2fb-client + rm2fb-preload.conf rm2fb-preload.env rm2fb.service ) 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/rm2fb-timower/rm2fb-preload.env b/package/rm2fb-timower/rm2fb-preload.env index c3d4b061c..9d3aa9fea 100644 --- a/package/rm2fb-timower/rm2fb-preload.env +++ b/package/rm2fb-timower/rm2fb-preload.env @@ -4,6 +4,7 @@ # overwritten with updates. Instead create your own files in this directory. if [[ -f /dev/shm/rm2fb.01 ]]; then export LD_PRELOAD=/opt/lib/librm2fb_client.so.1 + export RM2FB_ACTIVE=1 else echo "rm2fb server is not running: starting without rm2fb client" fi From 8ff47848fa32985a388325ca200dce17ed36d21f Mon Sep 17 00:00:00 2001 From: Nathaniel van Diepen Date: Wed, 29 May 2024 15:40:27 -0600 Subject: [PATCH 16/21] Update rm2fb-timower to 0.1.2 --- package/rm2fb-timower/package | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package/rm2fb-timower/package b/package/rm2fb-timower/package index 0bb0c1c7e..144861cbe 100644 --- a/package/rm2fb-timower/package +++ b/package/rm2fb-timower/package @@ -8,7 +8,7 @@ timestamp=2023-08-27T02:39:10Z maintainer="Eeems " license=MIT url="https://github.com/timower/rM2-stuff/tree/master/libs/rm2fb" -_tag=0.1.1 +_tag=0.1.2 pkgver=2:${_tag}-1 _libver=1.1.0 section="devel" From c257b2d572a3db32c7b9fd59249e504a1b8446e7 Mon Sep 17 00:00:00 2001 From: Nathaniel van Diepen Date: Wed, 29 May 2024 15:44:04 -0600 Subject: [PATCH 17/21] No longer shim RM2FB_ACTIVE --- package/rm2fb-timower/rm2fb-preload.env | 1 - 1 file changed, 1 deletion(-) diff --git a/package/rm2fb-timower/rm2fb-preload.env b/package/rm2fb-timower/rm2fb-preload.env index 9d3aa9fea..c3d4b061c 100644 --- a/package/rm2fb-timower/rm2fb-preload.env +++ b/package/rm2fb-timower/rm2fb-preload.env @@ -4,7 +4,6 @@ # overwritten with updates. Instead create your own files in this directory. if [[ -f /dev/shm/rm2fb.01 ]]; then export LD_PRELOAD=/opt/lib/librm2fb_client.so.1 - export RM2FB_ACTIVE=1 else echo "rm2fb server is not running: starting without rm2fb client" fi From cec901bc12cdb97d3f5c3aea87ddebf2435e4f26 Mon Sep 17 00:00:00 2001 From: Nathaniel van Diepen Date: Wed, 29 May 2024 15:45:37 -0600 Subject: [PATCH 18/21] Switch back to swtfb.01 --- package/rm2fb-timower/rm2fb-preload.env | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package/rm2fb-timower/rm2fb-preload.env b/package/rm2fb-timower/rm2fb-preload.env index c3d4b061c..910b04299 100644 --- a/package/rm2fb-timower/rm2fb-preload.env +++ b/package/rm2fb-timower/rm2fb-preload.env @@ -2,7 +2,7 @@ # 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/rm2fb.01 ]]; then +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" From 43da695e6f71ddf7b54b0eee77bd236fac2157ef Mon Sep 17 00:00:00 2001 From: Nathaniel van Diepen Date: Wed, 29 May 2024 15:46:01 -0600 Subject: [PATCH 19/21] No longer symlink swtfb.01 --- package/rm2fb-timower/rm2fb-server | 1 - 1 file changed, 1 deletion(-) diff --git a/package/rm2fb-timower/rm2fb-server b/package/rm2fb-timower/rm2fb-server index 1f1b76185..5f19b9c66 100755 --- a/package/rm2fb-timower/rm2fb-server +++ b/package/rm2fb-timower/rm2fb-server @@ -1,5 +1,4 @@ #!/usr/bin/env bash # Copyright (c) 2021 The Toltec Contributors # SPDX-License-Identifier: MIT -ln -sf rm2fb.01 /dev/shm/swtfb.01 LD_PRELOAD=/opt/lib/librm2fb_server.so exec -a "rm2fb-server" /usr/bin/xochitl From 10e22e241cb79c540558554e3301437d6119c9ba Mon Sep 17 00:00:00 2001 From: Nathaniel van Diepen Date: Wed, 29 May 2024 19:52:11 -0600 Subject: [PATCH 20/21] Work around invalid symlinks in post processing --- package/rm2fb-timower/package | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/package/rm2fb-timower/package b/package/rm2fb-timower/package index 144861cbe..037d1f4d9 100644 --- a/package/rm2fb-timower/package +++ b/package/rm2fb-timower/package @@ -54,14 +54,19 @@ build() { else mkdir build mkdir install - cd build + pushd build cmake -DCMAKE_TOOLCHAIN_FILE="/usr/share/cmake/$CHOST.cmake" \ - -DCMAKE_INSTALL_PREFIX="../install" -DCMAKE_BUILD_TYPE=Release ../rm2fb - cd libs/rm2fb + -DCMAKE_INSTALL_PREFIX="$srcdir/install" -DCMAKE_BUILD_TYPE=Release ../rm2fb + pushd libs/rm2fb make make install - mv "$srcdir"/install/opt/lib/librm2fb_server.so{,.$_libver} + 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() { From 50de93d15e45962de07a6512b10f26f29097f5c0 Mon Sep 17 00:00:00 2001 From: Nathaniel van Diepen Date: Thu, 12 Sep 2024 17:07:45 -0600 Subject: [PATCH 21/21] Fix rm2fb-original build --- Makefile | 4 ++++ package/rm2fb-original/package | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) 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/package/rm2fb-original/package b/package/rm2fb-original/package index 5a0bca40c..f70c9df3b 100644 --- a/package/rm2fb-original/package +++ b/package/rm2fb-original/package @@ -112,12 +112,12 @@ rm2fb-client() { 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" - ln -s /opt/lib/"$libnamever" "$pkgdir"/opt/lib/"$libname" for dest in opt/lib usr/lib; do ln -s "$libnamever" "$pkgdir/$dest/${libnamever%.*.*.*}"