diff --git a/package/appmarkable/package b/package/appmarkable/package index 136491f19..d2c31f358 100644 --- a/package/appmarkable/package +++ b/package/appmarkable/package @@ -5,17 +5,17 @@ pkgnames=(appmarkable) pkgdesc="Front-end for apps that do not have a graphical user interface" url="https://github.com/LinusCDE/appmarkable" -pkgver=0.0.0-11 -timestamp=2021-03-10T18:36Z +pkgver=0.1.3-1 +timestamp=2024-06-01T21:00Z section="devel" maintainer="Linus K. " license=MIT installdepends=(display) flags=(patch_rm2fb) -image=rust:v2.1 -source=(https://github.com/LinusCDE/appmarkable/archive/c44ee87ea2b1f1e41c9592476c076150c9a1acf4.zip) -sha256sums=(76e151aeae0f18b206dd3c6258bf74bcb5256ee2f803e1ed2073278831158f60) +image=rust:v3.1 +source=(https://github.com/LinusCDE/appmarkable/archive/0463ffc5bdaf29ff0a0e92fb15a90b06e310c417.zip) +sha256sums=(bb45ed03a360f1a58e58e5a8e3176008e8e63053fc46925d20be92b532a02822) build() { # Fall back to system-wide config diff --git a/package/micro/package b/package/micro/package index 40e2c3377..61cc10432 100644 --- a/package/micro/package +++ b/package/micro/package @@ -5,14 +5,14 @@ pkgnames=(micro) pkgdesc="Modern and intuitive terminal-based text editor" url=https://micro-editor.github.io/ -pkgver=2.0.13-1 +pkgver=2.0.13-2 timestamp=2023-10-21T22:38:29Z section="utils" maintainer="Eeems " license=MIT source=("https://github.com/zyedidia/micro/releases/download/v2.0.13/micro-2.0.13-linux-arm.tar.gz") -sha256sums=(cbbed4e69567871462464049646dc11fdad8b8c75fde5d75856068c2cfbd2d38) +sha256sums=(adb9cf644354a5c85819db40e1a427f0f4951b172597bbcd3ef94ecc4a8c4b75) package() { install -Dm644 "$srcdir"/LICENSE "$pkgdir/opt/usr/share/licenses/$pkgname/LICENSE" diff --git a/package/open-remarkable-shutdown/package b/package/open-remarkable-shutdown/package index 5c31ca592..dbdec6302 100644 --- a/package/open-remarkable-shutdown/package +++ b/package/open-remarkable-shutdown/package @@ -2,11 +2,11 @@ # Copyright (c) 2021 The Toltec Contributors # SPDX-License-Identifier: MIT -archs=(rmallos2) +archs=(rmallos2 rm1os3) pkgnames=(open-remarkable-shutdown) pkgdesc="Use remarkable-splash to display shutdown and reboot images" url=https://github.com/ddvk/remarkable-splash -pkgver=1.0-2 +pkgver=1.0-3 timestamp=2022-02-28T00:12Z section="utils" maintainer="Eeems " diff --git a/package/toltec-bootstrap/package b/package/toltec-bootstrap/package index 8c95c296b..cc1d68274 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.4-1 +timestamp=2024-05-31T19:13Z section="utils" maintainer="Eeems " license=MIT @@ -64,3 +64,8 @@ configure() { echo fi } + +postremove() { + # Reload rules without the input udev rule + udevadm control --reload-rules && udevadm trigger +} diff --git a/package/toltec-bootstrap/toltecctl b/package/toltec-bootstrap/toltecctl index b6ba832bf..261e98392 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 @@ -746,8 +746,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/package/toltec-deletions/package b/package/toltec-deletions/package index c3cea1e4b..9854cbcf7 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 rm1os3 rm2os3) pkgnames=(toltec-deletions) pkgdesc="Metapackage to handle package deletions between OS versions" url=https://toltec-dev.org/ -pkgver=0.1-4 +pkgver=0.1-5 timestamp=2023-12-03T04:51:58Z section="utils" maintainer="Eeems " @@ -14,7 +14,25 @@ license=MIT installdepends=(toltec-bootstrap) conflicts_rmallos2=() replaces_rmallos2=() -conflicts_rmallos3=( +conflicts_rm1os3=( + ddvk-hacks + fuse + wireguard + innernet-client + gocryptfs + linux-mainline + remarkable-stylus +) +replaces_rm1os3=( + ddvk-hacks + fuse + wireguard + innernet-client + gocryptfs + linux-mainline + remarkable-stylus +) +conflicts_rm2os3=( ddvk-hacks fuse wireguard @@ -24,7 +42,7 @@ conflicts_rmallos3=( remarkable-stylus open-remarkable-shutdown ) -replaces_rmallos3=( +replaces_rm2os3=( ddvk-hacks fuse wireguard diff --git a/package/webinterface-upload-button/package b/package/webinterface-upload-button/package index 62227cae5..bcd8d982b 100644 --- a/package/webinterface-upload-button/package +++ b/package/webinterface-upload-button/package @@ -5,7 +5,7 @@ pkgnames=("webinterface-upload-button") pkgdesc="A simple upload button for the web interface" url="https://github.com/rM-self-serve/webinterface-upload-button" -pkgver=1.1.1-2 +pkgver=1.1.1-3 timestamp=2023-12-16T15:35:49Z section="utils" maintainer="rM-self-serve <122753594+rM-self-serve@users.noreply.github.com>" @@ -15,7 +15,7 @@ source=( "$url"/archive/1d28b2d91c0179059017696ae5a33aa49e1e7c7d.zip ) sha256sums=( - 99ac382e665b55c43876e8991c9dfa7f11a625d4f3ed4f35d3bc58762e04db39 + f967cad7607da6458cb0e307b662db66026747922f98ad19f7e2265b9cab1f47 ) package() { diff --git a/scripts/bootstrap/bootstrap b/scripts/bootstrap/bootstrap index 997a2e270..15da30019 100755 --- a/scripts/bootstrap/bootstrap +++ b/scripts/bootstrap/bootstrap @@ -15,6 +15,11 @@ # # +if [ -z "$BASH" ] || [[ "$(ps | awk '$1=='$$' { n=split($5,a,"/"); print a[n] }')" != "bash" ]]; then + echo "bootstrap must be run with bash" + exit 1 +fi + set -eEuo pipefail # Path to the temporary local wget and Opkg binaries @@ -61,17 +66,39 @@ exists-non-empty() { [[ -d $1 ]] && files="$(ls -A -- "$1")" && [[ -n $files ]] } +already-installed-message() { + log "Toltec is already installed or partially installed" + log "To re-enable Toltec after a system upgrade, run 'toltecctl reenable'" + log "To reinstall Toltec, run 'toltecctl uninstall' first" +} + # Check whether a Toltec install already exists or if conflicting files # remain from previous installs check-installed() { - if [[ ! -f $toltecctl_path ]]; then - return + local unit_path + local unit + # This should mimic get-bind-mount-path as close as possible to ensure it's always + # the path that an install or reenable would generate. + unit_path="/lib/systemd/system/$(systemd-escape --path /opt).mount" + unit="$(basename "$unit_path")" + if [[ -f $unit_path ]] && systemctl --quiet is-active "$unit" 2> /dev/null; then + log ERROR "opt.mount is currently active" + already-installed-message + exit 1 fi - - if exists-non-empty /opt || exists-non-empty /home/root/.entware; then - log "Toltec is already installed or partially installed" - log "To re-enable Toltec after a system upgrade, run 'toltecctl reenable'" - log "To reinstall Toltec, run 'toltecctl uninstall' first" + if [[ "$(grep ' /opt ' /proc/mounts)" != "" ]]; then + log ERROR "/opt is currently mounted" + already-installed-message + exit 1 + fi + if exists-non-empty /opt; then + log ERROR "/opt exists and is not empty" + already-installed-message + exit 1 + fi + if exists-non-empty /home/root/.entware; then + log ERROR "/home/root/.entware exists and is not empty" + already-installed-message exit 1 fi } @@ -79,8 +106,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 diff --git a/scripts/toltec/builder.py b/scripts/toltec/builder.py index 249162793..479352e34 100644 --- a/scripts/toltec/builder.py +++ b/scripts/toltec/builder.py @@ -219,7 +219,7 @@ def _fetch_sources( # Verify checksum file_sha = util.file_sha256(local_path) - if source.checksum not in ("SKIP", source.checksum): + if source.checksum not in ("SKIP", file_sha): raise BuildError( f"Invalid checksum for source file {source.url}:\n" f" expected {source.checksum}\n"