From bfd271b25e7e82cec000b4263e6d0fa0a0f77b9d Mon Sep 17 00:00:00 2001 From: MichaIng Date: Mon, 13 May 2024 14:24:40 +0200 Subject: [PATCH 01/61] v9.5 - DietPi-Build | Raise initial rootfs size for some SBCs --- .build/images/dietpi-build | 22 +++++++++++----------- dietpi/dietpi-software | 2 +- 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/.build/images/dietpi-build b/.build/images/dietpi-build index c13fbf7041..862621668e 100755 --- a/.build/images/dietpi-build +++ b/.build/images/dietpi-build @@ -95,26 +95,26 @@ case $HW_MODEL in 45) iname='PINEH64' HW_ARCH=3 partition_start=4 root_size=1020;; 46) iname='PinebookPro' HW_ARCH=3 partition_start=16 root_size=1008;; 47) iname='NanoPiR4S' HW_ARCH=3 partition_start=16 root_size=1008;; - 48) iname='NanoPiR1' HW_ARCH=2 partition_start=4 root_size=764;; + 48) iname='NanoPiR1' HW_ARCH=2 partition_start=4 root_size=800;; '49.1') iname='Quartz64A' HW_ARCH=3 partition_start=16 root_size=752;; '49.2') iname='Quartz64B' HW_ARCH=3 partition_start=16 root_size=752;; '49.3') iname='SOQuartz' HW_ARCH=3 partition_start=16 root_size=752;; 52) iname='ASUSTB' HW_ARCH=2 partition_start=4 root_size=764;; 54) iname='NanoPiK2' HW_ARCH=3 partition_start=4 root_size=1148;; 55) iname='NanoPiR2S' HW_ARCH=3 partition_start=16 root_size=1008;; - 56) iname='NanoPiNEO3' HW_ARCH=3 partition_start=16 root_size=1008;; - 57) iname='NanoPiNEOPlus2' HW_ARCH=3 partition_start=4 root_size=892;; + 56) iname='NanoPiNEO3' HW_ARCH=3 partition_start=16 root_size=1100;; + 57) iname='NanoPiNEOPlus2' HW_ARCH=3 partition_start=4 root_size=1000;; 58) iname='NanoPiM4V2' HW_ARCH=3 partition_start=16 root_size=1008;; - 59) iname='ZeroPi' HW_ARCH=2 partition_start=4 root_size=764;; - 60) iname='NanoPiNEO' HW_ARCH=2 partition_start=4 root_size=764;; + 59) iname='ZeroPi' HW_ARCH=2 partition_start=4 root_size=800;; + 60) iname='NanoPiNEO' HW_ARCH=2 partition_start=4 root_size=800;; 61) iname='NanoPiM2' HW_ARCH=2 partition_start=4 boot_size=64 root_size=700 boot_fstype='ext4';; - '62.1') iname='NanoPiM3' HW_ARCH=3 partition_start=4 root_size=700;; - '62.2') iname='NanoPiFire3' HW_ARCH=3 partition_start=4 root_size=700;; - 63) iname='NanoPiM1' HW_ARCH=2 partition_start=4 root_size=764;; - 64) iname='NanoPiNEOAir' HW_ARCH=2 partition_start=4 root_size=764;; + '62.1') iname='NanoPiM3' HW_ARCH=3 partition_start=4 root_size=800;; + '62.2') iname='NanoPiFire3' HW_ARCH=3 partition_start=4 root_size=800;; + 63) iname='NanoPiM1' HW_ARCH=2 partition_start=4 root_size=800;; + 64) iname='NanoPiNEOAir' HW_ARCH=2 partition_start=4 root_size=800;; '65.1') iname='NanoPiNEO2' HW_ARCH=3 partition_start=4 root_size=1020;; '65.2') iname='NanoPiNEO2Black' HW_ARCH=3 partition_start=4 root_size=1020;; - 66) iname='NanoPiM1Plus' HW_ARCH=2 partition_start=4 root_size=764;; + 66) iname='NanoPiM1Plus' HW_ARCH=2 partition_start=4 root_size=800;; 67) iname='NanoPiK1Plus' HW_ARCH=3 partition_start=4 root_size=1020;; '68.1') iname='NanoPiM4' HW_ARCH=3 partition_start=16 root_size=1008;; '68.2') iname='NanoPCT4' HW_ARCH=3 partition_start=16 root_size=1008;; @@ -142,7 +142,7 @@ case $HW_MODEL in 86) iname='ASUSTB2' HW_ARCH=3 partition_start=16 root_size=1008;; 87) iname='OrangePi3B' HW_ARCH=3 PTTYPE='gpt' partition_start=16 root_size=1136;; 88) iname='OrangePiZero2W' HW_ARCH=3 partition_start=4 root_size=1148;; - 89) iname='OrangePi3LTS' HW_ARCH=3 partition_start=4 root_size=892;; + 89) iname='OrangePi3LTS' HW_ARCH=3 partition_start=4 root_size=1000;; 90) iname='RadxaZERO3' HW_ARCH=3 PTTYPE='gpt' partition_start=16 root_size=1136;; *) G_DIETPI-NOTIFY 1 "Invalid hardware model \"$HW_MODEL\" passed, aborting..."; exit 1;; esac diff --git a/dietpi/dietpi-software b/dietpi/dietpi-software index 7a315c4a76..616fe60c3b 100755 --- a/dietpi/dietpi-software +++ b/dietpi/dietpi-software @@ -6209,7 +6209,7 @@ _EOF_ *) local arch='amd64';; esac - local fallback_url="https://github.com/navidrome/navidrome/releases/download/v0.52.0/navidrome_0.52.0_linux_$arch.tar.gz" + local fallback_url="https://github.com/navidrome/navidrome/releases/download/v0.52.5/navidrome_0.52.5_linux_$arch.tar.gz" Download_Install "$(curl -sSfL 'https://api.github.com/repos/navidrome/navidrome/releases/latest' | mawk -F\" "/^ *\"browser_download_url\": \".*\/navidrome_[0-9.]*_linux_$arch\.tar\.gz\"$/{print \$4}")" /opt/navidrome # Data dir From 1eb7e2eff217a009b5c7420fe09973fa64c09b9e Mon Sep 17 00:00:00 2001 From: MichaIng Date: Mon, 13 May 2024 15:52:02 +0200 Subject: [PATCH 02/61] v9.5 - CI | Armbian: Remove vendor-boogie-panthor branch, removed upstream, while the Panthor driver can be enabled via device tree overlay and loading a kernel module --- .github/workflows/armbian.yml | 2 +- dietpi/dietpi-software | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/armbian.yml b/.github/workflows/armbian.yml index ab86ec4f0c..318ac9ddec 100644 --- a/.github/workflows/armbian.yml +++ b/.github/workflows/armbian.yml @@ -11,7 +11,7 @@ on: branch: description: 'Branch' type: choice - options: [legacy, current, edge, vendor, vendor-boogie-panthor, collabora] + options: [legacy, current, edge, vendor, collabora] default: current required: true board: diff --git a/dietpi/dietpi-software b/dietpi/dietpi-software index 616fe60c3b..8c91fcae98 100755 --- a/dietpi/dietpi-software +++ b/dietpi/dietpi-software @@ -10030,7 +10030,7 @@ _EOF_ *) local arch='x64';; esac - local fallback_url="https://github.com/Readarr/Readarr/releases/download/v0.3.25.2515/Readarr.develop.0.3.25.2515.linux-core-$arch.tar.gz" + local fallback_url="https://github.com/Readarr/Readarr/releases/download/v0.3.27.2538/Readarr.develop.0.3.27.2538.linux-core-$arch.tar.gz" Download_Install "$(curl -sSfL 'https://api.github.com/repos/Readarr/Readarr/releases' | mawk -F\" "/^ *\"browser_download_url\": \".*linux-core-$arch\.tar\.gz\"$/{print \$4}" | head -1)" G_EXEC mv Readarr /opt/readarr fi From c806e94af0f0b18ce116137433066b76d27de62c Mon Sep 17 00:00:00 2001 From: MichaIng Date: Mon, 13 May 2024 18:06:48 +0200 Subject: [PATCH 03/61] v9.4 - CI | Armbian: Fix U-Boot package name when checking current version suffix --- .github/workflows/armbian.yml | 2 +- dietpi/dietpi-software | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/armbian.yml b/.github/workflows/armbian.yml index 318ac9ddec..40d6c81fc3 100644 --- a/.github/workflows/armbian.yml +++ b/.github/workflows/armbian.yml @@ -71,7 +71,7 @@ jobs: read -r version < VERSION case '${{ github.event.inputs.asset }}' in firmware) package='armbian-firmware';; - uboot) package='linux-uboot-${{ github.event.inputs.board }}-${{ github.event.inputs.board }}';; + uboot) package='linux-uboot-${{ github.event.inputs.board }}-${{ github.event.inputs.branch }}';; kernel) family=$(. 'config/boards/${{ github.event.inputs.board }}.'* &> /dev/null; echo "$BOARDFAMILY") echo "Board family is: $family" diff --git a/dietpi/dietpi-software b/dietpi/dietpi-software index 8c91fcae98..3ed7abb5da 100755 --- a/dietpi/dietpi-software +++ b/dietpi/dietpi-software @@ -9609,7 +9609,7 @@ _EOF_ esac url=$(curl -sSfL 'https://api.github.com/repos/Lidarr/Lidarr/releases/latest' | mawk -F\" "/^ *\"browser_download_url\": \".*linux-core-$arch\.tar\.gz\"$/{print \$4}") - local fallback_url="https://github.com/Lidarr/Lidarr/releases/download/v2.2.5.4141/Lidarr.master.2.2.5.4141.linux-core-$arch.tar.gz" + local fallback_url="https://github.com/Lidarr/Lidarr/releases/download/v2.3.3.4204/Lidarr.master.2.3.3.4204.linux-core-$arch.tar.gz" fi Download_Install "$url" From da7af8e0271792b2e2cf51b0e56fc0107c6ee3e0 Mon Sep 17 00:00:00 2001 From: MichaIng Date: Mon, 13 May 2024 19:58:37 +0200 Subject: [PATCH 04/61] v9.5 - DietPi-Config | Resolved an issue where Advanced Options were not accessible on some SBCs. Many thanks to @thuehlinger for reporting this issue: https://github.com/MichaIng/DietPi/issues/6663#issuecomment-2108351878 --- CHANGELOG.txt | 10 ++++++++++ dietpi/dietpi-config | 2 +- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.txt b/CHANGELOG.txt index e6e8a1cdfc..fc5f8740c1 100644 --- a/CHANGELOG.txt +++ b/CHANGELOG.txt @@ -1,3 +1,13 @@ +v9.5 +(2024-06-08) + +Bug fixes: +- DietPi-Config | Resolved an issue where Advanced Options were not accessible on some SBCs. Many thanks to @thuehlinger for reporting this issue: https://github.com/MichaIng/DietPi/issues/6663#issuecomment-2108351878 + +As always, many smaller code performance and stability improvements, visual and spelling fixes have been done, too much to list all of them here. Check out all code changes of this release on GitHub: https://github.com/MichaIng/DietPi/pull/ADDME + +----------------------------------------------------------------------------------------------------------- + v9.4 (2024-05-12) diff --git a/dietpi/dietpi-config b/dietpi/dietpi-config index f97fc96d59..a050f0f399 100755 --- a/dietpi/dietpi-config +++ b/dietpi/dietpi-config @@ -1077,7 +1077,7 @@ Re-enabling HDMI requires a reboot. If you need emergency HDMI output, edit the { [[ -e '/dev/mtd0' ]] && grep -q '/dev/mtd0' /usr/lib/u-boot/platform_install.sh && spidev='/dev/mtd0'; } || { [[ -b '/dev/mtdblock0' ]] && grep -q 'rksd_loader.img' /usr/lib/u-boot/platform_install.sh; } } - } && G_WHIP_MENU_ARRAY+=("Update SPI bootloader' ': Flash current U-Boot to $spidev") + } && G_WHIP_MENU_ARRAY+=('Update SPI bootloader' ": Flash current U-Boot to $spidev") # VisionFive 2/Star64: https://doc-en.rvspace.org/VisionFive2/PDF/VisionFive2_QSG.pdf elif (( $G_HW_MODEL == 81 || $G_HW_MODEL == 84 )) From 412b4d721b9e8e5c7dd4fe7a427864c29f624475 Mon Sep 17 00:00:00 2001 From: MichaIng Date: Mon, 13 May 2024 20:28:31 +0200 Subject: [PATCH 05/61] v9.5 - META | Remove live patches merged from master --- .update/version | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/.update/version b/.update/version index d2d5b4feea..9e903dac26 100644 --- a/.update/version +++ b/.update/version @@ -14,7 +14,6 @@ G_MIN_DEBIAN=6 # Alternative Git branch to automatically migrate to when Debian version is too low G_OLD_DEBIAN_BRANCH='8' # Live patches -G_LIVE_PATCH_DESC=('Fix dietpi-config Advanced Options for some SBCs') -# shellcheck disable=SC2016 -G_LIVE_PATCH_COND=('[[ $G_HW_MODEL =~ ^(78|80|82|87)$ ]]') -G_LIVE_PATCH=("sed -i 's/\"Update SPI bootloader'\'' '\''/'\''Update SPI bootloader'\'' \"/' /boot/dietpi/dietpi-config") +G_LIVE_PATCH_DESC=() +G_LIVE_PATCH_COND=() +G_LIVE_PATCH=() From 6a57c8a5efae8a8da99ae57875c623265c58293d Mon Sep 17 00:00:00 2001 From: MichaIng Date: Tue, 14 May 2024 02:27:35 +0200 Subject: [PATCH 06/61] v9.5 - DietPi-Software | MPD: Update flag on Bookworm and above: https://github.com/MusicPlayerDaemon/MPD/commit/ce77b14 --- .update/patches | 6 ++++++ dietpi/dietpi-software | 3 ++- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/.update/patches b/.update/patches index b3ddc055e3..8141d49e2f 100755 --- a/.update/patches +++ b/.update/patches @@ -1629,6 +1629,12 @@ _EOF_ fi } +Patch_9_5() +{ + # Update MPD flag on Bookworm and above: https://github.com/MusicPlayerDaemon/MPD/commit/ce77b14 + (( $G_DISTRO > 6 )) && [[ -f '/etc/systemd/system/mpd.service.d/dietpi.conf' ]] && G_EXEC sed -i 's/no-daemon/systemd/' /etc/systemd/system/mpd.service.d/dietpi.conf +} + # v6.35 => v7 migration if (( $G_DIETPI_VERSION_CORE == 6 && $G_DIETPI_VERSION_SUB > 34 )) then diff --git a/dietpi/dietpi-software b/dietpi/dietpi-software index 3ed7abb5da..eab06b1e28 100755 --- a/dietpi/dietpi-software +++ b/dietpi/dietpi-software @@ -4027,8 +4027,9 @@ User=mpd RuntimeDirectory=mpd EnvironmentFile= ExecStart= -ExecStart=/usr/bin/mpd --no-daemon +ExecStart=/usr/bin/mpd --systemd _EOF_ + (( $G_DISTRO < 7 )) && G_EXEC sed -i 's/systemd/no-daemon/' /etc/systemd/system/mpd.service.d/dietpi.conf Remove_SysV mpd 1 # Config From 2b34d7795d2a95e20e9f203295532bbd5e571e2d Mon Sep 17 00:00:00 2001 From: MichaIng Date: Tue, 14 May 2024 18:28:13 +0200 Subject: [PATCH 07/61] v9.5 - DietPi-Software | Snapcast Server: Resolved on issue where on RISC-V systems, the web interface was not available, since it is not included in the "snapserver" package from Debian. Many thanks to @hllhll for reporting this issue: https://github.com/MichaIng/DietPi/issues/7073 --- CHANGELOG.txt | 1 + dietpi/dietpi-software | 6 ++++-- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.txt b/CHANGELOG.txt index fc5f8740c1..d19d37cedf 100644 --- a/CHANGELOG.txt +++ b/CHANGELOG.txt @@ -3,6 +3,7 @@ v9.5 Bug fixes: - DietPi-Config | Resolved an issue where Advanced Options were not accessible on some SBCs. Many thanks to @thuehlinger for reporting this issue: https://github.com/MichaIng/DietPi/issues/6663#issuecomment-2108351878 +- DietPi-Software | Snapcast Server: Resolved on issue where on RISC-V systems, the web interface was not available, since it is not included in the "snapserver" package from Debian. Many thanks to @hllhll for reporting this issue: https://github.com/MichaIng/DietPi/issues/7073 As always, many smaller code performance and stability improvements, visual and spelling fixes have been done, too much to list all of them here. Check out all code changes of this release on GitHub: https://github.com/MichaIng/DietPi/pull/ADDME diff --git a/dietpi/dietpi-software b/dietpi/dietpi-software index eab06b1e28..9fae80dda8 100755 --- a/dietpi/dietpi-software +++ b/dietpi/dietpi-software @@ -11510,8 +11510,10 @@ _EOF_ then G_AGI snapserver - # Enable web UI to align with upstream package - G_CONFIG_INJECT 'doc_root[[:blank:]=]' 'doc_root = /usr/share/snapserver/snapweb' /etc/snapserver.conf '\[http\]' + # Install and enable snapweb web UI, not included in Debian's snapserver package: https://github.com/MichaIng/DietPi/issues/7073 + local fallback_url='https://github.com/badaix/snapweb/releases/download/v0.7.0/snapweb_0.7.0-1_all.deb' + Download_Install "$(curl -sSfL 'https://api.github.com/repos/badaix/snapweb/releases/latest' | mawk -F\" '/^ *"browser_download_url": ".*\/snapweb_[^"\/]*_all.deb"/{print $4}')" + G_CONFIG_INJECT 'doc_root[[:blank:]=]' 'doc_root = /usr/share/snapweb' /etc/snapserver.conf '\[http\]' else local arch=$(dpkg --print-architecture) dist=${G_DISTRO_NAME/trixie/bookworm} local fallback_url="https://github.com/badaix/snapcast/releases/download/v0.28.0/snapcast_0.28.0_$arch-debian-$dist.zip" From 00912190e5cc673a3c1baa6435d86b36d15d0ce6 Mon Sep 17 00:00:00 2001 From: MichaIng Date: Tue, 14 May 2024 19:13:34 +0200 Subject: [PATCH 08/61] v9.5 - DietPi-Software | Snapcast Server: Resolved an issue where on Bookworm systems, which installed the Snapcast Server before DietPi v9.4 and reinstalled it afterwards, the server failed to start due to a permissions issue, since the services of both packages use different users. Many thanks to @hllhll for reporting this issue: https://github.com/MichaIng/DietPi/issues/7073 --- CHANGELOG.txt | 1 + dietpi/dietpi-software | 11 +++++++++++ 2 files changed, 12 insertions(+) diff --git a/CHANGELOG.txt b/CHANGELOG.txt index d19d37cedf..b045e5aba0 100644 --- a/CHANGELOG.txt +++ b/CHANGELOG.txt @@ -4,6 +4,7 @@ v9.5 Bug fixes: - DietPi-Config | Resolved an issue where Advanced Options were not accessible on some SBCs. Many thanks to @thuehlinger for reporting this issue: https://github.com/MichaIng/DietPi/issues/6663#issuecomment-2108351878 - DietPi-Software | Snapcast Server: Resolved on issue where on RISC-V systems, the web interface was not available, since it is not included in the "snapserver" package from Debian. Many thanks to @hllhll for reporting this issue: https://github.com/MichaIng/DietPi/issues/7073 +- DietPi-Software | Snapcast Server: Resolved an issue where on Bookworm systems, which installed the Snapcast Server before DietPi v9.4 and reinstalled it afterwards, the server failed to start due to a permissions issue, since the services of both packages use different users. Many thanks to @hllhll for reporting this issue: https://github.com/MichaIng/DietPi/issues/7073 As always, many smaller code performance and stability improvements, visual and spelling fixes have been done, too much to list all of them here. Check out all code changes of this release on GitHub: https://github.com/MichaIng/DietPi/pull/ADDME diff --git a/dietpi/dietpi-software b/dietpi/dietpi-software index 9fae80dda8..38e34501ae 100755 --- a/dietpi/dietpi-software +++ b/dietpi/dietpi-software @@ -11514,12 +11514,20 @@ _EOF_ local fallback_url='https://github.com/badaix/snapweb/releases/download/v0.7.0/snapweb_0.7.0-1_all.deb' Download_Install "$(curl -sSfL 'https://api.github.com/repos/badaix/snapweb/releases/latest' | mawk -F\" '/^ *"browser_download_url": ".*\/snapweb_[^"\/]*_all.deb"/{print $4}')" G_CONFIG_INJECT 'doc_root[[:blank:]=]' 'doc_root = /usr/share/snapweb' /etc/snapserver.conf '\[http\]' + + # Fix /var/lib/snapserver permissions, just in case badaix's package was previously used, which uses the "snapserver" user, instead of "_snapserver" + [[ -d '/var/lib/snapserver' ]] && G_EXEC chown -R '_snapserver:_snapserver' /var/lib/snapserver + getent passwd snapserver > /dev/null && G_EXEC userdel snapserver else local arch=$(dpkg --print-architecture) dist=${G_DISTRO_NAME/trixie/bookworm} local fallback_url="https://github.com/badaix/snapcast/releases/download/v0.28.0/snapcast_0.28.0_$arch-debian-$dist.zip" Download_Install "$(curl -sSfL 'https://api.github.com/repos/badaix/snapcast/releases/latest' | mawk -F\" "/^ *\"browser_download_url\": \".*\/snapcast_[^\"\/]*_$arch-debian-$dist.zip\"/{print \$4}")" G_AGI ./snapserver_*_"$arch.deb" G_EXEC rm snap*.deb + + # Fix /var/lib/snapserver permissions, just in case Debian's package was previously used, which uses the "_snapserver" user, instead of "snapserver" + [[ -d '/var/lib/snapserver' ]] && G_EXEC chown -R 'snapserver:snapserver' /var/lib/snapserver + getent passwd _snapserver > /dev/null && G_EXEC userdel _snapserver fi G_EXEC systemctl stop snapserver @@ -14089,6 +14097,9 @@ _EOF_ if To_Uninstall 191 # Snapcast Server then G_AGP snapserver + # Remove users from Debian's and badaix's packages, to cleanly cover upgrades from one to the other. + getent passwd snapserver > /dev/null && G_EXEC userdel snapserver + getent passwd _snapserver > /dev/null && G_EXEC userdel _snapserver fi if To_Uninstall 192 # Snapcast Client From 34e76c4f9e95bb65554acf17aeea7cb0178bdc12 Mon Sep 17 00:00:00 2001 From: MichaIng Date: Tue, 14 May 2024 19:27:38 +0200 Subject: [PATCH 09/61] v9.5 - DietPi-Software | Radarr: Update fallback URL --- dietpi/dietpi-software | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dietpi/dietpi-software b/dietpi/dietpi-software index 38e34501ae..536241238b 100755 --- a/dietpi/dietpi-software +++ b/dietpi/dietpi-software @@ -9513,7 +9513,7 @@ _EOF_ esac url=$(curl -sSfL 'https://api.github.com/repos/Radarr/Radarr/releases/latest' | mawk -F\" "/^ *\"browser_download_url\": \".*linux-core-$arch\.tar\.gz\"$/{print \$4}") - local fallback_url="https://github.com/Radarr/Radarr/releases/download/v5.5.3.8819/Radarr.master.5.5.3.8819.linux-core-$arch.tar.gz" + local fallback_url="https://github.com/Radarr/Radarr/releases/download/v5.6.0.8846/Radarr.master.5.6.0.8846.linux-core-$arch.tar.gz" fi Download_Install "$url" From 237fdda2a024381854b980dff84dd34b171a3086 Mon Sep 17 00:00:00 2001 From: MichaIng Date: Tue, 14 May 2024 19:30:02 +0200 Subject: [PATCH 10/61] v9.5 - CI | Switch all workflows to Ubuntu Noble: https://github.com/actions/runner-images/issues/9848 --- .github/workflows/amiberry.yml | 4 ++-- .github/workflows/armbian.yml | 2 +- .github/workflows/dietpi-build.yml | 4 ++-- .github/workflows/dietpi-software-build.yml | 4 ++-- .github/workflows/dietpi-software.yml | 4 ++-- .github/workflows/quartz64.yml | 2 +- .github/workflows/raspberrypi-sys-mods.yml | 2 +- .github/workflows/shellcheck.yml | 2 +- 8 files changed, 12 insertions(+), 12 deletions(-) diff --git a/.github/workflows/amiberry.yml b/.github/workflows/amiberry.yml index f23af7750c..e4439bc863 100644 --- a/.github/workflows/amiberry.yml +++ b/.github/workflows/amiberry.yml @@ -25,7 +25,7 @@ jobs: plat: ${{ steps.plat.outputs.plat }} dist: ${{ steps.dist.outputs.dist }} # https://github.com/actions/runner-images - runs-on: ubuntu-22.04 + runs-on: ubuntu-24.04 steps: - id: plat run: | @@ -54,7 +54,7 @@ jobs: - { plat: riscv64, dist: bookworm } fail-fast: false name: "${{ matrix.plat }} - ${{ matrix.dist }}" - runs-on: ubuntu-22.04 + runs-on: ubuntu-24.04 steps: - name: Build run: sudo bash -c "G_GITOWNER=$GITHUB_REPOSITORY_OWNER G_GITBRANCH=$GITHUB_REF_NAME; $(curl -sSf "https://raw.githubusercontent.com/$GITHUB_REPOSITORY_OWNER/DietPi/$GITHUB_REF_NAME/.build/software/Amiberry/container_build.bash")" -- -p '${{ matrix.plat }}' -d '${{ matrix.dist }}' diff --git a/.github/workflows/armbian.yml b/.github/workflows/armbian.yml index 40d6c81fc3..f2cf580a17 100644 --- a/.github/workflows/armbian.yml +++ b/.github/workflows/armbian.yml @@ -32,7 +32,7 @@ permissions: {} jobs: build: name: "${{ github.event.inputs.asset }} - ${{ github.event.inputs.branch }} - ${{ github.event.inputs.board }}" - runs-on: ubuntu-22.04 + runs-on: ubuntu-24.04 steps: - name: Clone Armbian repo run: | diff --git a/.github/workflows/dietpi-build.yml b/.github/workflows/dietpi-build.yml index 273bc1a334..a7db44fb96 100644 --- a/.github/workflows/dietpi-build.yml +++ b/.github/workflows/dietpi-build.yml @@ -14,7 +14,7 @@ jobs: outputs: buildargs: ${{ steps.buildargs.outputs.buildargs }} # https://github.com/actions/runner-images - runs-on: ubuntu-22.04 + runs-on: ubuntu-24.04 steps: - id: buildargs run: | @@ -116,7 +116,7 @@ jobs: buildargs: ${{ fromJson(needs.prep.outputs.buildargs) }} fail-fast: false name: "Build: ${{ matrix.buildargs }}" - runs-on: ubuntu-22.04 + runs-on: ubuntu-24.04 steps: - name: Generate upload script run: | diff --git a/.github/workflows/dietpi-software-build.yml b/.github/workflows/dietpi-software-build.yml index 0570711301..29c7468126 100644 --- a/.github/workflows/dietpi-software-build.yml +++ b/.github/workflows/dietpi-software-build.yml @@ -31,7 +31,7 @@ jobs: arch: ${{ steps.arch.outputs.arch }} dist: ${{ steps.dist.outputs.dist }} # https://github.com/actions/runner-images - runs-on: ubuntu-22.04 + runs-on: ubuntu-24.04 steps: - id: name run: | @@ -72,7 +72,7 @@ jobs: - { arch: x86_64, name: gogs } fail-fast: false name: "${{ matrix.name }} - ${{ matrix.arch }} - ${{ matrix.dist }}" - runs-on: ubuntu-22.04 + runs-on: ubuntu-24.04 steps: - name: Build run: sudo bash -c "G_GITOWNER=$GITHUB_REPOSITORY_OWNER G_GITBRANCH=$GITHUB_REF_NAME; $(curl -sSf "https://raw.githubusercontent.com/$GITHUB_REPOSITORY_OWNER/DietPi/$GITHUB_REF_NAME/.build/software/dietpi-software-build.bash")" -- -n '${{ matrix.name }}' -a '${{ matrix.arch }}' -d '${{ matrix.dist }}' diff --git a/.github/workflows/dietpi-software.yml b/.github/workflows/dietpi-software.yml index d1419f9ea4..708964fb51 100644 --- a/.github/workflows/dietpi-software.yml +++ b/.github/workflows/dietpi-software.yml @@ -36,7 +36,7 @@ permissions: {} jobs: prep: # https://github.com/actions/runner-images - runs-on: ubuntu-22.04 + runs-on: ubuntu-24.04 steps: - id: arch run: | @@ -68,7 +68,7 @@ jobs: - { arch: riscv64, dist: bookworm } fail-fast: false name: "${{ matrix.arch }} - ${{ matrix.dist }} - ${{ github.event.inputs.soft }}" - runs-on: ubuntu-22.04 + runs-on: ubuntu-24.04 steps: - name: Install run: | diff --git a/.github/workflows/quartz64.yml b/.github/workflows/quartz64.yml index a176196e67..6d79b59235 100644 --- a/.github/workflows/quartz64.yml +++ b/.github/workflows/quartz64.yml @@ -7,7 +7,7 @@ permissions: {} jobs: build: # https://github.com/actions/runner-images - runs-on: ubuntu-22.04 + runs-on: ubuntu-24.04 env: uboot_version: '2023.10' CROSS_COMPILE: 'aarch64-linux-gnu-' diff --git a/.github/workflows/raspberrypi-sys-mods.yml b/.github/workflows/raspberrypi-sys-mods.yml index 675e3af75e..67bfcdc9c7 100644 --- a/.github/workflows/raspberrypi-sys-mods.yml +++ b/.github/workflows/raspberrypi-sys-mods.yml @@ -7,7 +7,7 @@ permissions: {} jobs: build: # https://github.com/actions/runner-images - runs-on: ubuntu-22.04 + runs-on: ubuntu-24.04 steps: - name: Build run: sudo bash -c "$(curl -sSf "https://raw.githubusercontent.com/$GITHUB_REPOSITORY_OWNER/DietPi/$GITHUB_REF_NAME/.build/software/raspberrypi-sys-mods/build.bash")" diff --git a/.github/workflows/shellcheck.yml b/.github/workflows/shellcheck.yml index 6ac2dba1c6..aed94c650c 100644 --- a/.github/workflows/shellcheck.yml +++ b/.github/workflows/shellcheck.yml @@ -9,7 +9,7 @@ jobs: shellcheck: if: github.event_name != 'pull_request' || github.event.pull_request.head.repo.owner.login != github.event.pull_request.base.repo.owner.login # https://github.com/actions/runner-images - runs-on: ubuntu-22.04 + runs-on: ubuntu-24.04 steps: - uses: actions/checkout@v4 - name: Setup DietPi-Globals From e4c2818ff6d46097b78008f53a2927e6910a1c21 Mon Sep 17 00:00:00 2001 From: StephanStS Date: Thu, 16 May 2024 19:54:59 +0200 Subject: [PATCH 11/61] Init v9.5 (#7075) --- .meta/dietpi-survey_report | 3 ++- .update/version | 4 ++-- dietpi/func/dietpi-globals | 4 ++-- 3 files changed, 6 insertions(+), 5 deletions(-) diff --git a/.meta/dietpi-survey_report b/.meta/dietpi-survey_report index cb2c6a5599..01d059b89b 100755 --- a/.meta/dietpi-survey_report +++ b/.meta/dietpi-survey_report @@ -717,10 +717,11 @@ shopt -s extglob aSOFTWARE_NAME9_2[i]=${aSOFTWARE_NAME9_1[i]} aSOFTWARE_NAME9_3[i]=${aSOFTWARE_NAME9_2[i]} aSOFTWARE_NAME9_4[i]=${aSOFTWARE_NAME9_3[i]} + aSOFTWARE_NAME9_5[i]=${aSOFTWARE_NAME9_4[i]} done # Pre-create software counter array so that we can see also software (available in newest version) with 0 installs - for i in "${aSOFTWARE_NAME9_4[@]}" + for i in "${aSOFTWARE_NAME9_5[@]}" do aSOFTWARE[$i]=0 done diff --git a/.update/version b/.update/version index 9e903dac26..35605ae2d5 100644 --- a/.update/version +++ b/.update/version @@ -2,8 +2,8 @@ # shellcheck disable=SC2034 # Available DietPi version G_REMOTE_VERSION_CORE=9 -G_REMOTE_VERSION_SUB=4 -G_REMOTE_VERSION_RC=2 +G_REMOTE_VERSION_SUB=5 +G_REMOTE_VERSION_RC=-1 # Minimum DietPi version to allow update G_MIN_VERSION_CORE=7 G_MIN_VERSION_SUB=0 diff --git a/dietpi/func/dietpi-globals b/dietpi/func/dietpi-globals index d3bda29db1..29530bd360 100644 --- a/dietpi/func/dietpi-globals +++ b/dietpi/func/dietpi-globals @@ -54,8 +54,8 @@ [[ -f '/boot/dietpi/.version' ]] && . /boot/dietpi/.version # - Assign defaults/code version as fallback [[ $G_DIETPI_VERSION_CORE ]] || G_DIETPI_VERSION_CORE=9 - [[ $G_DIETPI_VERSION_SUB ]] || G_DIETPI_VERSION_SUB=4 - [[ $G_DIETPI_VERSION_RC ]] || G_DIETPI_VERSION_RC=2 + [[ $G_DIETPI_VERSION_SUB ]] || G_DIETPI_VERSION_SUB=5 + [[ $G_DIETPI_VERSION_RC ]] || G_DIETPI_VERSION_RC=-1 [[ $G_GITBRANCH ]] || G_GITBRANCH='master' [[ $G_GITOWNER ]] || G_GITOWNER='MichaIng' # - Save current version and Git branch From 46831b78825152eecc84079abe4b273e7f10be5b Mon Sep 17 00:00:00 2001 From: pulpe <45254364+pulpe@users.noreply.github.com> Date: Sat, 18 May 2024 22:01:49 +0200 Subject: [PATCH 12/61] v9.5 (#7082) - DietPi-Software | Shairport Sync: Resolved a DietPi v9.4 regression, where the AirPlay 2 choice did not have an effect, but the AirPlay 1 package was always installed. Additionally, uninstalling Shairport Sync will now also purge the AirPlay 2 package. Many thanks to @pulpe for fixing this bug: https://github.com/MichaIng/DietPi/pull/7082 --- CHANGELOG.txt | 1 + dietpi/dietpi-software | 4 ++-- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.txt b/CHANGELOG.txt index b045e5aba0..9b6a64a441 100644 --- a/CHANGELOG.txt +++ b/CHANGELOG.txt @@ -5,6 +5,7 @@ Bug fixes: - DietPi-Config | Resolved an issue where Advanced Options were not accessible on some SBCs. Many thanks to @thuehlinger for reporting this issue: https://github.com/MichaIng/DietPi/issues/6663#issuecomment-2108351878 - DietPi-Software | Snapcast Server: Resolved on issue where on RISC-V systems, the web interface was not available, since it is not included in the "snapserver" package from Debian. Many thanks to @hllhll for reporting this issue: https://github.com/MichaIng/DietPi/issues/7073 - DietPi-Software | Snapcast Server: Resolved an issue where on Bookworm systems, which installed the Snapcast Server before DietPi v9.4 and reinstalled it afterwards, the server failed to start due to a permissions issue, since the services of both packages use different users. Many thanks to @hllhll for reporting this issue: https://github.com/MichaIng/DietPi/issues/7073 +- DietPi-Software | Shairport Sync: Resolved a DietPi v9.4 regression, where the AirPlay 2 choice did not have an effect, but the AirPlay 1 package was always installed. Additionally, uninstalling Shairport Sync will now also purge the AirPlay 2 package. Many thanks to @pulpe for fixing this bug: https://github.com/MichaIng/DietPi/pull/7082 As always, many smaller code performance and stability improvements, visual and spelling fixes have been done, too much to list all of them here. Check out all code changes of this release on GitHub: https://github.com/MichaIng/DietPi/pull/ADDME diff --git a/dietpi/dietpi-software b/dietpi/dietpi-software index 536241238b..9a0e00f2d2 100755 --- a/dietpi/dietpi-software +++ b/dietpi/dietpi-software @@ -8038,7 +8038,7 @@ _EOF_ airplay2= fi - G_AGI shairport-sync + G_AGI "shairport-sync$airplay2" G_EXEC systemctl stop shairport-sync fi @@ -12824,7 +12824,7 @@ If no WireGuard (auto)start is included, but you require it, please do the follo if To_Uninstall 37 # Shairport Sync then - G_AGP shairport-sync + G_AGP shairport-sync shairport-sync-airplay2 fi if To_Uninstall 152 # Avahi-Daemon From a310c548e1941ef06f863518f80ddb593245f669 Mon Sep 17 00:00:00 2001 From: MichaIng Date: Sat, 18 May 2024 22:02:27 +0200 Subject: [PATCH 13/61] v9.5 - DietPi-Software | NZBGet: Update fallback URL --- dietpi/dietpi-software | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dietpi/dietpi-software b/dietpi/dietpi-software index 9a0e00f2d2..dc5d9ec0fc 100755 --- a/dietpi/dietpi-software +++ b/dietpi/dietpi-software @@ -9876,7 +9876,7 @@ _EOF_ local reinstall=0 [[ -f '/mnt/dietpi_userdata/nzbget/nzbget.conf' ]] && reinstall=1 - local fallback_url='https://github.com/nzbgetcom/nzbget/releases/download/v24.0/nzbget-24.0-bin-linux.run' + local fallback_url='https://github.com/nzbgetcom/nzbget/releases/download/v24.1/nzbget-24.1-bin-linux.run' Download_Install "$(curl -sSfL 'https://api.github.com/repos/nzbgetcom/nzbget/releases/latest' | mawk -F\" '/^ *"browser_download_url": ".*\/nzbget-[^"/]*-bin-linux.run"$/{print $4}')" nzbget.run G_EXEC mkdir -p /mnt/dietpi_userdata/nzbget G_EXEC_OUTPUT=1 G_EXEC dash nzbget.run --destdir /mnt/dietpi_userdata/nzbget From 591087d3beaef9a9915c31623cc1d074e20caf92 Mon Sep 17 00:00:00 2001 From: MichaIng Date: Sun, 19 May 2024 14:51:38 +0200 Subject: [PATCH 14/61] v9.5 - CI | Amiberry: Do ARMv8 Bullseye builds on Ubuntu Focal, since the QEMU version shipped with Noble runs into a segmentation fault, when configuring the libc-bin package, or just running its triggers. --- .github/workflows/amiberry.yml | 2 +- dietpi/dietpi-software | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/amiberry.yml b/.github/workflows/amiberry.yml index e4439bc863..e340482da7 100644 --- a/.github/workflows/amiberry.yml +++ b/.github/workflows/amiberry.yml @@ -54,7 +54,7 @@ jobs: - { plat: riscv64, dist: bookworm } fail-fast: false name: "${{ matrix.plat }} - ${{ matrix.dist }}" - runs-on: ubuntu-24.04 + runs-on: ${{ matrix.dist == 'bullseye' && ( endsWith(matrix.plat, '-64-sdl2') || matrix.plat == 'AMLSM1' || matrix.plat == 'n2' || matrix.plat == 'a64' || matrix.plat == 'rk3588' ) && 'ubuntu-22.04' || 'ubuntu-24.04' }} steps: - name: Build run: sudo bash -c "G_GITOWNER=$GITHUB_REPOSITORY_OWNER G_GITBRANCH=$GITHUB_REF_NAME; $(curl -sSf "https://raw.githubusercontent.com/$GITHUB_REPOSITORY_OWNER/DietPi/$GITHUB_REF_NAME/.build/software/Amiberry/container_build.bash")" -- -p '${{ matrix.plat }}' -d '${{ matrix.dist }}' diff --git a/dietpi/dietpi-software b/dietpi/dietpi-software index dc5d9ec0fc..b23c64cdff 100755 --- a/dietpi/dietpi-software +++ b/dietpi/dietpi-software @@ -11721,7 +11721,7 @@ _EOF_ *) local arch='amd64';; esac - local fallback_url="https://github.com/filebrowser/filebrowser/releases/download/v2.29.0/linux-$arch-filebrowser.tar.gz" + local fallback_url="https://github.com/filebrowser/filebrowser/releases/download/v2.30.0/linux-$arch-filebrowser.tar.gz" Download_Install "$(curl -sSfL 'https://api.github.com/repos/filebrowser/filebrowser/releases/latest' | mawk -F\" "/^ *\"browser_download_url\": \".*\/linux-$arch-filebrowser\.tar\.gz\"$/{print \$4}")" ./filebrowser/ # Reinstall From f0d79c5d85cc87412e801f8176eb7fc41a93e3b8 Mon Sep 17 00:00:00 2001 From: MichaIng Date: Mon, 20 May 2024 21:46:14 +0200 Subject: [PATCH 15/61] v9.5 - CI | Amiberry: Prevent dist-upgrade from within build script for ARMv6/7 Trixie builds, as it fails due to 64-bit time_t transition causing dependency conflicts across the repo. --- .build/software/Amiberry/build.bash | 8 +++++++- .build/software/Amiberry/container_build.bash | 2 +- .github/workflows/dietpi-software.bash | 2 +- 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/.build/software/Amiberry/build.bash b/.build/software/Amiberry/build.bash index 61379b0115..a0ea914359 100755 --- a/.build/software/Amiberry/build.bash +++ b/.build/software/Amiberry/build.bash @@ -18,7 +18,13 @@ adeps=('libdrm2' 'libgl1-mesa-dri' 'libgbm1' 'libegl1' 'libudev1' 'libxml2' 'lib (( $G_HW_ARCH == 10 )) && opengl_flags=('--disable-video-opengles2' '--enable-video-opengl') adeps_build+=('libgl1-mesa-dev') adeps+=('libgl1') || opengl_flags=('--enable-video-opengles2' '--disable-video-opengl') adeps_build+=('libgles2-mesa-dev') adeps+=('libgles2') G_AGUP -G_AGDUG "${adeps_build[@]}" +# ARMv6/7 Trixie: Temporarily prevent dist-upgrade, as it fails due to 64-bit time_t transition causing dependency conflicts across the repo. +if (( $G_HW_ARCH < 3 && $G_DISTRO == 8 )) +then + G_AGI "${adeps_build[@]}" +else + G_AGDUG "${adeps_build[@]}" +fi for i in "${adeps[@]}" do # Temporarily allow lib*t64 packages, while the 64-bit time_t transition is ongoing on Sid: https://bugs.debian.org/1065394 diff --git a/.build/software/Amiberry/container_build.bash b/.build/software/Amiberry/container_build.bash index ef5063d4a9..358fca624a 100755 --- a/.build/software/Amiberry/container_build.bash +++ b/.build/software/Amiberry/container_build.bash @@ -137,7 +137,7 @@ Pin-Priority: -1 _EOF_ fi -# ARMv6/7 Trixie: Temporarily prevent dist-upgrade on Trixie, as it fails due to 64-bit time_t transition causing dependency conflicts across the repo. +# ARMv6/7 Trixie: Temporarily prevent dist-upgrade, as it fails due to 64-bit time_t transition causing dependency conflicts across the repo. (( $arch < 3 )) && [[ $DISTRO == 'trixie' ]] && G_EXEC touch rootfs/boot/dietpi/.skip_distro_upgrade # Automated build diff --git a/.github/workflows/dietpi-software.bash b/.github/workflows/dietpi-software.bash index 397e94220d..50465c80e5 100644 --- a/.github/workflows/dietpi-software.bash +++ b/.github/workflows/dietpi-software.bash @@ -368,7 +368,7 @@ G_EXEC eval 'echo -e '\''[Service]\nAmbientCapabilities='\'' > rootfs/etc/system # Workaround for sysctl: permission denied on key "net.core.rmem_max" in containers G_EXEC sed --follow-symlinks -i '/# Start DietPi-Software/a\sed -i '\''/G_EXEC sysctl -w net\.core\.rmem_max/d'\'' /boot/dietpi/dietpi-software' rootfs/boot/dietpi/dietpi-login -# ARMv6/7 Trixie: Temporarily prevent dist-upgrade on Trixie, as it fails due to 64-bit time_t transition causing dependency conflicts across the repo. +# ARMv6/7 Trixie: Temporarily prevent dist-upgrade, as it fails due to 64-bit time_t transition causing dependency conflicts across the repo. (( $arch < 3 )) && [[ $DISTRO == 'trixie' ]] && G_EXEC touch rootfs/boot/dietpi/.skip_distro_upgrade # Check for service status, ports and commands From 3ed3b5358053a43e2264a5796a19d30ae5342e8e Mon Sep 17 00:00:00 2001 From: MichaIng Date: Mon, 20 May 2024 22:15:43 +0200 Subject: [PATCH 16/61] v9.5 - CI | Amiberry: Instead of preening the dist-upgrade, purge kmod (libkmod2), to prevent time_t transition package ocnflicts. It is not needed in containers anyway. Hopefully no build tries to call lsmod of similar. --- .build/software/Amiberry/build.bash | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/.build/software/Amiberry/build.bash b/.build/software/Amiberry/build.bash index a0ea914359..8d57c5729c 100755 --- a/.build/software/Amiberry/build.bash +++ b/.build/software/Amiberry/build.bash @@ -18,13 +18,9 @@ adeps=('libdrm2' 'libgl1-mesa-dri' 'libgbm1' 'libegl1' 'libudev1' 'libxml2' 'lib (( $G_HW_ARCH == 10 )) && opengl_flags=('--disable-video-opengles2' '--enable-video-opengl') adeps_build+=('libgl1-mesa-dev') adeps+=('libgl1') || opengl_flags=('--enable-video-opengles2' '--disable-video-opengl') adeps_build+=('libgles2-mesa-dev') adeps+=('libgles2') G_AGUP -# ARMv6/7 Trixie: Temporarily prevent dist-upgrade, as it fails due to 64-bit time_t transition causing dependency conflicts across the repo. -if (( $G_HW_ARCH < 3 && $G_DISTRO == 8 )) -then - G_AGI "${adeps_build[@]}" -else - G_AGDUG "${adeps_build[@]}" -fi +# ARMv6/7 Trixie: Temporarily purge kmod, since libkmod2 causes a dependency conflict due to 64-bit time_t transition. +(( $G_HW_ARCH < 3 && $G_DISTRO == 8 )) && G_AGP kmod +G_AGDUG "${adeps_build[@]}" for i in "${adeps[@]}" do # Temporarily allow lib*t64 packages, while the 64-bit time_t transition is ongoing on Sid: https://bugs.debian.org/1065394 From c6c30fc86bd52cedfdf6453f9306a2eb268e298e Mon Sep 17 00:00:00 2001 From: MichaIng Date: Tue, 21 May 2024 00:35:05 +0200 Subject: [PATCH 17/61] v9.5 - CI | Amiberry: kmod is (reasonably) not installed on our contianer images. Not sure what keeps libkmod2 around, let's find it out. --- .build/software/Amiberry/build.bash | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.build/software/Amiberry/build.bash b/.build/software/Amiberry/build.bash index 8d57c5729c..9b4c39802a 100755 --- a/.build/software/Amiberry/build.bash +++ b/.build/software/Amiberry/build.bash @@ -18,8 +18,8 @@ adeps=('libdrm2' 'libgl1-mesa-dri' 'libgbm1' 'libegl1' 'libudev1' 'libxml2' 'lib (( $G_HW_ARCH == 10 )) && opengl_flags=('--disable-video-opengles2' '--enable-video-opengl') adeps_build+=('libgl1-mesa-dev') adeps+=('libgl1') || opengl_flags=('--enable-video-opengles2' '--disable-video-opengl') adeps_build+=('libgles2-mesa-dev') adeps+=('libgles2') G_AGUP -# ARMv6/7 Trixie: Temporarily purge kmod, since libkmod2 causes a dependency conflict due to 64-bit time_t transition. -(( $G_HW_ARCH < 3 && $G_DISTRO == 8 )) && G_AGP kmod +# ARMv6/7 Trixie: Temporarily purge libkmod2, since it causes a dependency conflict due to 64-bit time_t transition. +(( $G_HW_ARCH < 3 && $G_DISTRO == 8 )) && G_AGP libkmod2 G_AGDUG "${adeps_build[@]}" for i in "${adeps[@]}" do From ff1ae27fcad24c503c5ff7834d1208cc8686cab1 Mon Sep 17 00:00:00 2001 From: MichaIng Date: Tue, 21 May 2024 01:06:44 +0200 Subject: [PATCH 18/61] v9.5 - CI | Remove ARMv6/7 Trixie time_t migration relateted workaround. We ship kmod+libkmod2 from Sid now from our repo, which depends on libssl3t64, solving this one major conflict which breaks nearly every system upgrade and most package installs --- .build/software/Amiberry/build.bash | 2 -- .build/software/Amiberry/container_build.bash | 3 --- .github/workflows/dietpi-software.bash | 3 --- 3 files changed, 8 deletions(-) diff --git a/.build/software/Amiberry/build.bash b/.build/software/Amiberry/build.bash index 9b4c39802a..61379b0115 100755 --- a/.build/software/Amiberry/build.bash +++ b/.build/software/Amiberry/build.bash @@ -18,8 +18,6 @@ adeps=('libdrm2' 'libgl1-mesa-dri' 'libgbm1' 'libegl1' 'libudev1' 'libxml2' 'lib (( $G_HW_ARCH == 10 )) && opengl_flags=('--disable-video-opengles2' '--enable-video-opengl') adeps_build+=('libgl1-mesa-dev') adeps+=('libgl1') || opengl_flags=('--enable-video-opengles2' '--disable-video-opengl') adeps_build+=('libgles2-mesa-dev') adeps+=('libgles2') G_AGUP -# ARMv6/7 Trixie: Temporarily purge libkmod2, since it causes a dependency conflict due to 64-bit time_t transition. -(( $G_HW_ARCH < 3 && $G_DISTRO == 8 )) && G_AGP libkmod2 G_AGDUG "${adeps_build[@]}" for i in "${adeps[@]}" do diff --git a/.build/software/Amiberry/container_build.bash b/.build/software/Amiberry/container_build.bash index 358fca624a..7b88ee0014 100755 --- a/.build/software/Amiberry/container_build.bash +++ b/.build/software/Amiberry/container_build.bash @@ -137,9 +137,6 @@ Pin-Priority: -1 _EOF_ fi -# ARMv6/7 Trixie: Temporarily prevent dist-upgrade, as it fails due to 64-bit time_t transition causing dependency conflicts across the repo. -(( $arch < 3 )) && [[ $DISTRO == 'trixie' ]] && G_EXEC touch rootfs/boot/dietpi/.skip_distro_upgrade - # Automated build cat << _EOF_ >> rootfs/boot/Automation_Custom_Script.sh || Error_Exit 'Failed to generate Automation_Custom_Script.sh' echo '[ INFO ] Running Amiberry build script ...' diff --git a/.github/workflows/dietpi-software.bash b/.github/workflows/dietpi-software.bash index 50465c80e5..d735537fa5 100644 --- a/.github/workflows/dietpi-software.bash +++ b/.github/workflows/dietpi-software.bash @@ -368,9 +368,6 @@ G_EXEC eval 'echo -e '\''[Service]\nAmbientCapabilities='\'' > rootfs/etc/system # Workaround for sysctl: permission denied on key "net.core.rmem_max" in containers G_EXEC sed --follow-symlinks -i '/# Start DietPi-Software/a\sed -i '\''/G_EXEC sysctl -w net\.core\.rmem_max/d'\'' /boot/dietpi/dietpi-software' rootfs/boot/dietpi/dietpi-login -# ARMv6/7 Trixie: Temporarily prevent dist-upgrade, as it fails due to 64-bit time_t transition causing dependency conflicts across the repo. -(( $arch < 3 )) && [[ $DISTRO == 'trixie' ]] && G_EXEC touch rootfs/boot/dietpi/.skip_distro_upgrade - # Check for service status, ports and commands # shellcheck disable=SC2016 # - Start all services From d27048cda0ae9ed5f15d50bd0f3e460c52ce722f Mon Sep 17 00:00:00 2001 From: MichaIng Date: Tue, 21 May 2024 15:30:40 +0200 Subject: [PATCH 19/61] v9.5 - DietPi-Software | Remove some obsolete Buster case switches and update link for .NET core dependencies --- dietpi/dietpi-software | 23 +++++++---------------- 1 file changed, 7 insertions(+), 16 deletions(-) diff --git a/dietpi/dietpi-software b/dietpi/dietpi-software index b23c64cdff..9c233654df 100755 --- a/dietpi/dietpi-software +++ b/dietpi/dietpi-software @@ -180,7 +180,6 @@ Available commands: # PHP version case $G_DISTRO in - 5) PHP_VERSION='7.3';; 6) PHP_VERSION='7.4';; *) PHP_VERSION='8.2';; esac @@ -4910,7 +4909,6 @@ The install script will now exit. After applying one of the the above, rerun die (( $G_RASPBIAN )) && distro='Raspbian_' case $G_DISTRO in - 5) distro+='10';; 6) distro+='11';; 7) distro+='12';; *) distro+='Testing';; @@ -6293,9 +6291,8 @@ _EOF_ if To_Install 212 kavita # Kavita then - # .NET dependency: https://github.com/dotnet/core/blob/main/Documentation/linux-prereqs.md + # .NET dependency: https://github.com/dotnet/docs/blob/main/docs/core/install/linux-debian.md#dependencies case $G_DISTRO in - 5) aDEPS=('libicu63');; 6) aDEPS=('libicu67');; *) aDEPS=('libicu72');; esac @@ -9482,11 +9479,10 @@ _EOF_ then # APT dependencies aDEPS=('mediainfo') - # - .NET: https://github.com/dotnet/core/blob/main/Documentation/linux-prereqs.md + # - .NET: https://github.com/dotnet/docs/blob/main/docs/core/install/linux-debian.md#dependencies if (( $G_HW_ARCH != 1 )) then case $G_DISTRO in - 5) aDEPS+=('libicu63');; 6) aDEPS+=('libicu67');; *) aDEPS+=('libicu72');; esac @@ -9576,11 +9572,10 @@ _EOF_ then # APT dependencies aDEPS=('mediainfo') - # - .NET: https://github.com/dotnet/core/blob/main/Documentation/linux-prereqs.md + # - .NET: https://github.com/dotnet/docs/blob/main/docs/core/install/linux-debian.md#dependencies if (( $G_HW_ARCH != 1 )) then case $G_DISTRO in - 5) aDEPS+=('libicu63');; 6) aDEPS+=('libicu67');; *) aDEPS+=('libicu72');; esac @@ -9798,11 +9793,10 @@ _EOF_ if To_Install 147 jackett # Jackett then # ARMv6 requires Mono: https://github.com/Jackett/Jackett#installation-on-linux-armv6-or-below - # .NET dependency: https://github.com/dotnet/core/blob/main/Documentation/linux-prereqs.md + # .NET dependency: https://github.com/dotnet/docs/blob/main/docs/core/install/linux-debian.md#dependencies if (( $G_HW_ARCH != 1 )) then case $G_DISTRO in - 5) aDEPS=('libicu63');; 6) aDEPS=('libicu67');; *) aDEPS=('libicu72');; esac @@ -9933,9 +9927,8 @@ _EOF_ if To_Install 151 prowlarr # Prowlarr then - # .NET dependency: https://github.com/dotnet/core/blob/main/Documentation/linux-prereqs.md + # .NET dependency: https://github.com/dotnet/docs/blob/main/docs/core/install/linux-debian.md#dependencies case $G_DISTRO in - 5) aDEPS=('libicu63');; 6) aDEPS=('libicu67');; *) aDEPS=('libicu72');; esac @@ -10008,9 +10001,8 @@ _EOF_ if To_Install 203 readarr # Readarr then - # .NET dependency: https://github.com/dotnet/core/blob/main/Documentation/linux-prereqs.md + # .NET dependency: https://github.com/dotnet/docs/blob/main/docs/core/install/linux-debian.md#dependencies case $G_DISTRO in - 5) aDEPS=('libicu63');; 6) aDEPS=('libicu67');; *) aDEPS=('libicu72');; esac @@ -10227,9 +10219,8 @@ _EOF_ if To_Install 154 roonserver # Roon Server then # https://help.roonlabs.com/portal/en/kb/articles/linux-install#Manual_Install - # .NET dependency: https://github.com/dotnet/core/blob/main/Documentation/linux-prereqs.md + # .NET dependency: https://github.com/dotnet/docs/blob/main/docs/core/install/linux-debian.md#dependencies case $G_DISTRO in - 5) aDEPS=('libicu63');; 6) aDEPS=('libicu67');; *) aDEPS=('libicu72');; esac From dba521dfbb0c399e97dc8f046e56909ce920b234 Mon Sep 17 00:00:00 2001 From: MichaIng Date: Wed, 22 May 2024 15:54:01 +0200 Subject: [PATCH 20/61] v9.5 - DietPi-Software | Box64: Resolved an issue where an invalid build target was used on Raspberry Pi 5 with 16k page size kernel. This target was removed with latest Box64, as page size handling is now done at runtime. - DietPi-Software | Box86/64: Do not build with symbols, as we strip them anyway and likely override it with "-g0". - DietPi-Software | Update fallback URLs --- CHANGELOG.txt | 1 + dietpi/dietpi-software | 36 +++++++++++++++++------------------- 2 files changed, 18 insertions(+), 19 deletions(-) diff --git a/CHANGELOG.txt b/CHANGELOG.txt index 9b6a64a441..42a0ee79d8 100644 --- a/CHANGELOG.txt +++ b/CHANGELOG.txt @@ -6,6 +6,7 @@ Bug fixes: - DietPi-Software | Snapcast Server: Resolved on issue where on RISC-V systems, the web interface was not available, since it is not included in the "snapserver" package from Debian. Many thanks to @hllhll for reporting this issue: https://github.com/MichaIng/DietPi/issues/7073 - DietPi-Software | Snapcast Server: Resolved an issue where on Bookworm systems, which installed the Snapcast Server before DietPi v9.4 and reinstalled it afterwards, the server failed to start due to a permissions issue, since the services of both packages use different users. Many thanks to @hllhll for reporting this issue: https://github.com/MichaIng/DietPi/issues/7073 - DietPi-Software | Shairport Sync: Resolved a DietPi v9.4 regression, where the AirPlay 2 choice did not have an effect, but the AirPlay 1 package was always installed. Additionally, uninstalling Shairport Sync will now also purge the AirPlay 2 package. Many thanks to @pulpe for fixing this bug: https://github.com/MichaIng/DietPi/pull/7082 +- DietPi-Software | Box64: Resolved an issue where an invalid build target was used on Raspberry Pi 5 with 16k page size kernel. This target was removed with latest Box64, as page size handling is now done at runtime. As always, many smaller code performance and stability improvements, visual and spelling fixes have been done, too much to list all of them here. Check out all code changes of this release on GitHub: https://github.com/MichaIng/DietPi/pull/ADDME diff --git a/dietpi/dietpi-software b/dietpi/dietpi-software index 9c233654df..517b232fe6 100755 --- a/dietpi/dietpi-software +++ b/dietpi/dietpi-software @@ -3334,7 +3334,7 @@ _EOF_ esac # Download binary - local fallback_url="https://github.com/prometheus/node_exporter/releases/download/v1.8.0/node_exporter-1.8.0.linux-$arch.tar.gz" + local fallback_url="https://github.com/prometheus/node_exporter/releases/download/v1.8.1/node_exporter-1.8.1.linux-$arch.tar.gz" Download_Install "$(curl -sSfL 'https://api.github.com/repos/prometheus/node_exporter/releases/latest' | mawk -F\" "/^ *\"browser_download_url\": \".*\/node_exporter-.*\.linux-$arch\.tar\.gz\"$/{print \$4}")" G_EXEC mkdir -p /opt/node_exporter G_EXEC cp --preserve=mode node_exporter*/node_exporter /opt/node_exporter/ @@ -10967,7 +10967,7 @@ _EOF_ # Download local version=$(curl -sSfL 'https://api.github.com/repos/ptitSeb/box86/releases/latest' | mawk -F\" '/^ *"tag_name": "[^"]*",$/{print $4}') - [[ $version ]] || { version='v0.3.4'; G_DIETPI-NOTIFY 1 "Automatic latest ${aSOFTWARE_NAME[$software_id]} version detection failed. Version \"$version\" will be installed as fallback, but a newer version might be available. Please report this at: https://github.com/MichaIng/DietPi/issues"; } + [[ $version ]] || { version='v0.3.6'; G_DIETPI-NOTIFY 1 "Automatic latest ${aSOFTWARE_NAME[$software_id]} version detection failed. Version \"$version\" will be installed as fallback, but a newer version might be available. Please report this at: https://github.com/MichaIng/DietPi/issues"; } Download_Install "https://github.com/ptitSeb/box86/archive/$version.tar.gz" # Build for targets: https://github.com/ptitSeb/box86/blob/master/CMakeLists.txt @@ -10976,26 +10976,26 @@ _EOF_ # - RPi 2 if (( $G_HW_MODEL == 2 )) then - G_EXEC cmake .. -DRPI2=1 -DNOGIT=1 -DCMAKE_BUILD_TYPE=RelWithDebInfo + G_EXEC cmake .. -DNOGIT=1 -DCMAKE_BUILD_TYPE=Release -DRPI2=1 # - RPi 3 elif (( $G_HW_MODEL == 3 )) then - G_EXEC cmake .. -DRPI3=1 -DNOGIT=1 -DCMAKE_BUILD_TYPE=RelWithDebInfo + G_EXEC cmake .. -DNOGIT=1 -DCMAKE_BUILD_TYPE=Release -DRPI3=1 # - RPi 4 elif (( $G_HW_MODEL == 4 )) then - G_EXEC cmake .. -DRPI4=1 -DNOGIT=1 -DCMAKE_BUILD_TYPE=RelWithDebInfo + G_EXEC cmake .. -DNOGIT=1 -DCMAKE_BUILD_TYPE=Release -DRPI4=1 # - Odroids elif (( $G_HW_MODEL < 20 )) then - G_EXEC cmake .. -DODROID=1 -DNOGIT=1 -DCMAKE_BUILD_TYPE=RelWithDebInfo + G_EXEC cmake .. -DNOGIT=1 -DCMAKE_BUILD_TYPE=Release -DODROID=1 # - ASUS Tinker Board elif (( $G_HW_MODEL == 52 )) then - G_EXEC cmake .. -DRK3288=1 -DNOGIT=1 -DCMAKE_BUILD_TYPE=RelWithDebInfo + G_EXEC cmake .. -DNOGIT=1 -DCMAKE_BUILD_TYPE=Release -DRK3288=1 # - Others else - G_EXEC cmake .. -DARM_DYNAREC=1 -DNOGIT=1 -DCMAKE_BUILD_TYPE=RelWithDebInfo + G_EXEC cmake .. -DNOGIT=1 -DCMAKE_BUILD_TYPE=Release -DARM_DYNAREC=1 fi G_EXEC_OUTPUT=1 G_EXEC make CFLAGS='-g0 -O3' "-j$(nproc)" G_EXEC strip --remove-section=.comment --remove-section=.note box86 @@ -11012,7 +11012,7 @@ _EOF_ # Download local version=$(curl -sSfL 'https://api.github.com/repos/ptitSeb/box64/releases/latest' | mawk -F\" '/^ *"tag_name": "[^"]*",$/{print $4}') - [[ $version ]] || { version='v0.2.6'; G_DIETPI-NOTIFY 1 "Automatic latest ${aSOFTWARE_NAME[$software_id]} version detection failed. Version \"$version\" will be installed as fallback, but a newer version might be available. Please report this at: https://github.com/MichaIng/DietPi/issues"; } + [[ $version ]] || { version='v0.2.8'; G_DIETPI-NOTIFY 1 "Automatic latest ${aSOFTWARE_NAME[$software_id]} version detection failed. Version \"$version\" will be installed as fallback, but a newer version might be available. Please report this at: https://github.com/MichaIng/DietPi/issues"; } Download_Install "https://github.com/ptitSeb/box64/archive/$version.tar.gz" # Build for targets: https://github.com/ptitSeb/box64/blob/main/CMakeLists.txt @@ -11021,36 +11021,34 @@ _EOF_ # - RISC-V if (( $G_HW_ARCH == 11 )) then - G_EXEC cmake .. -DRV64=1 -DNOGIT=1 -DCMAKE_BUILD_TYPE=RelWithDebInfo + G_EXEC cmake .. -DNOGIT=1 -DCMAKE_BUILD_TYPE=Release -DRV64=1 # - RPi 3 elif (( $G_HW_MODEL == 3 )) then - G_EXEC cmake .. -DRPI3ARM64=1 -DNOGIT=1 -DCMAKE_BUILD_TYPE=RelWithDebInfo + G_EXEC cmake .. -DNOGIT=1 -DCMAKE_BUILD_TYPE=Release -DRPI3ARM64=1 # - RPi 4 elif (( $G_HW_MODEL == 4 )) then - G_EXEC cmake .. -DRPI4ARM64=1 -DNOGIT=1 -DCMAKE_BUILD_TYPE=RelWithDebInfo + G_EXEC cmake .. -DNOGIT=1 -DCMAKE_BUILD_TYPE=Release -DRPI4ARM64=1 # - RPi 5 elif (( $G_HW_MODEL == 5 )) then - local ps16k='' - dpkg-query -s 'linux-image-rpi-2712' &> /dev/null && ps16k='PS16K' - G_EXEC cmake .. "-DRPI5ARM64$ps16k=1" -DNOGIT=1 -DCMAKE_BUILD_TYPE=RelWithDebInfo + G_EXEC cmake .. -DNOGIT=1 -DCMAKE_BUILD_TYPE=Release -DRPI5ARM64=1 # - Odroid N2 elif (( $G_HW_MODEL == 15 )) then - G_EXEC cmake .. -DODROIDN2=1 -DNOGIT=1 -DCMAKE_BUILD_TYPE=RelWithDebInfo + G_EXEC cmake .. -DNOGIT=1 -DCMAKE_BUILD_TYPE=Release -DODROIDN2=1 # - RK3399 elif (( $G_HW_CPUID == 3 )) then - G_EXEC cmake .. -DRK3399=1 -DNOGIT=1 -DCMAKE_BUILD_TYPE=RelWithDebInfo + G_EXEC cmake .. -DNOGIT=1 -DCMAKE_BUILD_TYPE=Release -DRK3399=1 # - RK3588 elif (( $G_HW_CPUID == 11 )) then - G_EXEC cmake .. -DRK3588=1 -DNOGIT=1 -DCMAKE_BUILD_TYPE=RelWithDebInfo + G_EXEC cmake .. -DNOGIT=1 -DCMAKE_BUILD_TYPE=Release -DRK3588=1 # - Generic ARMv8 else - G_EXEC cmake .. -DARM64=1 -DNOGIT=1 -DCMAKE_BUILD_TYPE=RelWithDebInfo + G_EXEC cmake .. -DNOGIT=1 -DCMAKE_BUILD_TYPE=Release -DARM64=1 fi G_EXEC_OUTPUT=1 G_EXEC make CFLAGS='-g0 -O3' "-j$(nproc)" G_EXEC strip --remove-section=.comment --remove-section=.note box64 From 896166d9118204985191870247e91ab148299482 Mon Sep 17 00:00:00 2001 From: MichaIng Date: Wed, 22 May 2024 16:01:17 +0200 Subject: [PATCH 21/61] v9.5 - CI | DietPi-Software test: Run ARMv8 Bullseye tests on Ubuntu Focal, since QEMU throws segmentation faults on Noble --- .github/workflows/armbian.yml | 1 + .github/workflows/dietpi-software.yml | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/armbian.yml b/.github/workflows/armbian.yml index f2cf580a17..e654a48838 100644 --- a/.github/workflows/armbian.yml +++ b/.github/workflows/armbian.yml @@ -32,6 +32,7 @@ permissions: {} jobs: build: name: "${{ github.event.inputs.asset }} - ${{ github.event.inputs.branch }} - ${{ github.event.inputs.board }}" + # https://github.com/actions/runner-images runs-on: ubuntu-24.04 steps: - name: Clone Armbian repo diff --git a/.github/workflows/dietpi-software.yml b/.github/workflows/dietpi-software.yml index 708964fb51..f641bbf85e 100644 --- a/.github/workflows/dietpi-software.yml +++ b/.github/workflows/dietpi-software.yml @@ -68,7 +68,7 @@ jobs: - { arch: riscv64, dist: bookworm } fail-fast: false name: "${{ matrix.arch }} - ${{ matrix.dist }} - ${{ github.event.inputs.soft }}" - runs-on: ubuntu-24.04 + runs-on: ${{ matrix.dist == 'bullseye' && matrix.arch == 'aarch64' && 'ubuntu-22.04' || 'ubuntu-24.04' }} steps: - name: Install run: | From 5e01b397c2c28ba9a548e97fe7b1355f657d2499 Mon Sep 17 00:00:00 2001 From: MichaIng Date: Wed, 22 May 2024 20:41:31 +0200 Subject: [PATCH 22/61] v9.5 - DietPi-Software | Jellyfin: Since a while FFmpeg 6 is available for Jellyfin, but on old installs with the old FFmpeg 5 package, it is not upgraded automatically by APT. This DietPi update applies the FFmpeg upgrade to all affected systems. Many thanks to @gioxx and @WolfganP for reporting this issue: https://github.com/MichaIng/DietPi/issues/7080 - DietPi-Software | Jellyfin: Resolved an issue where the intended HTTP port change could not be applied, since the network config file is not created anymore at service start. We do now pre-create a minimal one, which is complemented with defaults automatically. There was a related issue: https://github.com/MichaIng/DietPi/pull/5559. However, now, indeed network.xml is never created, intentionally, which is fine, since Jellyfin internally applies defaults for all non-defined settings, and stores them back to the config file when completing the web UI setup or saving network settings in web UI. So we can perfectly pre-create a minimal config with just the settings we need to have changed from defaults. Also XML syntax can be minimal, no XML meta data or schemes needed. No need to wait for config files to be created while setting the service start up. --- .update/patches | 7 +++++++ CHANGELOG.txt | 4 ++++ dietpi/dietpi-software | 19 +++++++++---------- 3 files changed, 20 insertions(+), 10 deletions(-) diff --git a/.update/patches b/.update/patches index 8141d49e2f..4e8b14827b 100755 --- a/.update/patches +++ b/.update/patches @@ -1633,6 +1633,13 @@ Patch_9_5() { # Update MPD flag on Bookworm and above: https://github.com/MusicPlayerDaemon/MPD/commit/ce77b14 (( $G_DISTRO > 6 )) && [[ -f '/etc/systemd/system/mpd.service.d/dietpi.conf' ]] && G_EXEC sed -i 's/no-daemon/systemd/' /etc/systemd/system/mpd.service.d/dietpi.conf + + # Migrate jellyfin-ffmpeg5 => jellyfin-ffmpeg6 + if dpkg-query -s jellyfin &> /dev/null && dpkg-query -s jellyfin-ffmpeg5 + then + G_DIETPI-NOTIFY 2 'Migrating to Jellyfin FFmpeg 6' + G_AGI jellyfin + fi } # v6.35 => v7 migration diff --git a/CHANGELOG.txt b/CHANGELOG.txt index 42a0ee79d8..7e4f3d7660 100644 --- a/CHANGELOG.txt +++ b/CHANGELOG.txt @@ -1,12 +1,16 @@ v9.5 (2024-06-08) +Enhancements: +- DietPi-Software | Jellyfin: Since a while FFmpeg 6 is available for Jellyfin, but on old installs with the old FFmpeg 5 package, it is not upgraded automatically by APT. This DietPi update applies the FFmpeg upgrade to all affected systems. Many thanks to @gioxx and @WolfganP for reporting this issue: https://github.com/MichaIng/DietPi/issues/7080 + Bug fixes: - DietPi-Config | Resolved an issue where Advanced Options were not accessible on some SBCs. Many thanks to @thuehlinger for reporting this issue: https://github.com/MichaIng/DietPi/issues/6663#issuecomment-2108351878 - DietPi-Software | Snapcast Server: Resolved on issue where on RISC-V systems, the web interface was not available, since it is not included in the "snapserver" package from Debian. Many thanks to @hllhll for reporting this issue: https://github.com/MichaIng/DietPi/issues/7073 - DietPi-Software | Snapcast Server: Resolved an issue where on Bookworm systems, which installed the Snapcast Server before DietPi v9.4 and reinstalled it afterwards, the server failed to start due to a permissions issue, since the services of both packages use different users. Many thanks to @hllhll for reporting this issue: https://github.com/MichaIng/DietPi/issues/7073 - DietPi-Software | Shairport Sync: Resolved a DietPi v9.4 regression, where the AirPlay 2 choice did not have an effect, but the AirPlay 1 package was always installed. Additionally, uninstalling Shairport Sync will now also purge the AirPlay 2 package. Many thanks to @pulpe for fixing this bug: https://github.com/MichaIng/DietPi/pull/7082 - DietPi-Software | Box64: Resolved an issue where an invalid build target was used on Raspberry Pi 5 with 16k page size kernel. This target was removed with latest Box64, as page size handling is now done at runtime. +- DietPi-Software | Jellyfin: Resolved an issue where the intended HTTP port change could not be applied, since the network config file is not created anymore at service start. We do now pre-create a minimal one, which is complemented with defaults automatically. As always, many smaller code performance and stability improvements, visual and spelling fixes have been done, too much to list all of them here. Check out all code changes of this release on GitHub: https://github.com/MichaIng/DietPi/pull/ADDME diff --git a/dietpi/dietpi-software b/dietpi/dietpi-software index 517b232fe6..e2521553ba 100755 --- a/dietpi/dietpi-software +++ b/dietpi/dietpi-software @@ -10923,12 +10923,7 @@ _EOF_ # APT meta package: Server, web component and FFmpeg implementation G_AGI jellyfin - if [[ -d '/mnt/dietpi_userdata/jellyfin' || -f '/etc/jellyfin/network.xml' ]] - then - G_EXEC systemctl stop jellyfin - else - CREATE_CONFIG_CONTENT='AddPeopleQueryIndex' Create_Config '/etc/jellyfin/migrations.xml' jellyfin 60 - fi + G_EXEC systemctl stop jellyfin # Grant dietpi group permissions and assure video access Create_User -G dietpi,video,render -d /mnt/dietpi_userdata/jellyfin jellyfin @@ -10936,8 +10931,6 @@ _EOF_ # Config: Only apply on fresh install, assumed when /mnt/dietpi_userdata/jellyfin does not yet exist if [[ ! -d '/mnt/dietpi_userdata/jellyfin' ]] then - # Start service until /etc/jellyfin/network.xml exists - Create_Config '/etc/jellyfin/network.xml' jellyfin # Data dir # shellcheck disable=SC2015 [[ -d '/var/lib/jellyfin' ]] && G_EXEC mv /var/lib/jellyfin /mnt/dietpi_userdata/jellyfin || G_EXEC mkdir /mnt/dietpi_userdata/jellyfin @@ -10950,8 +10943,14 @@ _EOF_ [[ -d '/var/cache/jellyfin' ]] && G_EXEC mv /var/cache/jellyfin /mnt/dietpi_userdata/jellyfin/cache || G_EXEC mkdir /mnt/dietpi_userdata/jellyfin/cache G_CONFIG_INJECT 'JELLYFIN_CACHE_DIR=' 'JELLYFIN_CACHE_DIR=/mnt/dietpi_userdata/jellyfin/cache' /etc/default/jellyfin # Change default port due to conflict with Emby - G_CONFIG_INJECT '' '8097' /etc/jellyfin/network.xml - G_CONFIG_INJECT '' ' 8097' /etc/jellyfin/network.xml + # - This config file is not generated at service start, but only when saving network settings via web UI. This also complements any existing config with defaults, hence we pre-create one with only the changes we need. + cat << '_EOF_' > /etc/jellyfin/network.xml + + 8097 + 8097 + +_EOF_ + G_EXEC chown jellyfin: /etc/jellyfin/network.xml fi # Permissions From 236746034f5a8a80f523c75fda7070c9c4b2ca58 Mon Sep 17 00:00:00 2001 From: MichaIng Date: Wed, 22 May 2024 20:56:18 +0200 Subject: [PATCH 23/61] v9.5 - DietPi-Patches | Purge left config files when migrating from jellyfin-ffmpeg5 to jellyfin-ffmpeg6 --- .update/patches | 1 + 1 file changed, 1 insertion(+) diff --git a/.update/patches b/.update/patches index 4e8b14827b..b98ad328ee 100755 --- a/.update/patches +++ b/.update/patches @@ -1639,6 +1639,7 @@ Patch_9_5() then G_DIETPI-NOTIFY 2 'Migrating to Jellyfin FFmpeg 6' G_AGI jellyfin + G_AGP jellyfin-ffmpeg5 # conffiles fi } From bef95c9e648833e06d252839d6dc8b6d989057e5 Mon Sep 17 00:00:00 2001 From: MichaIng Date: Wed, 22 May 2024 21:02:38 +0200 Subject: [PATCH 24/61] v9.5 - DietPi-Patches | Hide output when checking for installed jellyfin-ffmpeg5 package --- .update/patches | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.update/patches b/.update/patches index b98ad328ee..78c8cedce3 100755 --- a/.update/patches +++ b/.update/patches @@ -1635,7 +1635,7 @@ Patch_9_5() (( $G_DISTRO > 6 )) && [[ -f '/etc/systemd/system/mpd.service.d/dietpi.conf' ]] && G_EXEC sed -i 's/no-daemon/systemd/' /etc/systemd/system/mpd.service.d/dietpi.conf # Migrate jellyfin-ffmpeg5 => jellyfin-ffmpeg6 - if dpkg-query -s jellyfin &> /dev/null && dpkg-query -s jellyfin-ffmpeg5 + if dpkg-query -s jellyfin &> /dev/null && dpkg-query -s jellyfin-ffmpeg5 &> /dev/null then G_DIETPI-NOTIFY 2 'Migrating to Jellyfin FFmpeg 6' G_AGI jellyfin From 457ae2368bc3a354cd5df635db342fa7a62737b0 Mon Sep 17 00:00:00 2001 From: MichaIng Date: Thu, 23 May 2024 15:29:08 +0200 Subject: [PATCH 25/61] v9.5 - DietPi-Software | FreshRSS: Update fallback version --- dietpi/dietpi-software | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dietpi/dietpi-software b/dietpi/dietpi-software index e2521553ba..a4d9d5757f 100755 --- a/dietpi/dietpi-software +++ b/dietpi/dietpi-software @@ -7041,7 +7041,7 @@ _EOF_ aDEPS=() else local version=$(curl -sSfL 'https://api.github.com/repos/FreshRSS/FreshRSS/releases/latest' | mawk -F\" '/^ *"tag_name": "[^"]*",$/{print $4}') - [[ $version ]] || { version='1.23.1'; G_DIETPI-NOTIFY 1 "Automatic latest FreshRSS version detection failed. Version \"$version\" will be installed as fallback, but a newer version might be available. Please report this at: https://github.com/MichaIng/DietPi/issues"; } + [[ $version ]] || { version='1.24.0'; G_DIETPI-NOTIFY 1 "Automatic latest FreshRSS version detection failed. Version \"$version\" will be installed as fallback, but a newer version might be available. Please report this at: https://github.com/MichaIng/DietPi/issues"; } Download_Install "https://github.com/FreshRSS/FreshRSS/archive/$version.tar.gz" G_EXEC mv "FreshRSS-$version" /opt/FreshRSS fi From 1f32880a02187141ad8bd36e3071f2655991ff81 Mon Sep 17 00:00:00 2001 From: MichaIng Date: Sat, 25 May 2024 23:11:44 +0200 Subject: [PATCH 26/61] v9.5 - DietPi-Config | Detect as well UART devices with indices above 9. The Raspberry Pi 5 has a ttyAMA10 --- dietpi/dietpi-config | 2 +- dietpi/func/dietpi-set_hardware | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/dietpi/dietpi-config b/dietpi/dietpi-config index a050f0f399..4353832da9 100755 --- a/dietpi/dietpi-config +++ b/dietpi/dietpi-config @@ -944,7 +944,7 @@ Re-enabling HDMI requires a reboot. If you need emergency HDMI output, edit the G_WHIP_MENU_ARRAY=() (( $G_HW_MODEL < 10 )) && G_WHIP_MENU_ARRAY+=('' '●─ Toggle console ') - for i in /dev/{tty{S,AMA,SAC,AML,SC,GS,FIQ,MV},hvc}[0-9] + for i in /dev/{tty{S,AMA,SAC,AML,SC,GS,FIQ,MV},hvc}[0-9]* do [[ -e $i ]] || continue i=${i#/dev/} diff --git a/dietpi/func/dietpi-set_hardware b/dietpi/func/dietpi-set_hardware index af4a19e95d..5c086944d9 100755 --- a/dietpi/func/dietpi-set_hardware +++ b/dietpi/func/dietpi-set_hardware @@ -1503,7 +1503,7 @@ Do you want to continue and disable the serial login console?' || return 1 # Enable boot messages depending on device # - Skip on USB getget serial device, which requires loading a kernel module first and hence cannot be used for boot outputs - if [[ $INPUT_ADDITIONAL == 'ttyGS'[0-9] ]] + if [[ $INPUT_ADDITIONAL == 'ttyGS'[0-9]* ]] then : @@ -1567,7 +1567,7 @@ _EOF_ # Enable for all detected Serial/UART devices else - for i in /dev/{tty{S,AMA,SAC,AML,SC,GS,FIQ,MV},hvc}[0-9] + for i in /dev/{tty{S,AMA,SAC,AML,SC,GS,FIQ,MV},hvc}[0-9]* do [[ -e $i ]] || continue INPUT_ADDITIONAL=${i/\/dev\/} Serial_Main @@ -1629,7 +1629,7 @@ _EOF_ # Disable for all detected Serial/UART devices else - for i in /dev/{tty{S,AMA,SAC,AML,SC,GS,FIQ,MV},hvc}[0-9] + for i in /dev/{tty{S,AMA,SAC,AML,SC,GS,FIQ,MV},hvc}[0-9]* do [[ -e $i ]] || continue INPUT_ADDITIONAL=${i/\/dev\/} Serial_Main From 4b9edba6c1f450b39ce013b8af2de30124384c0d Mon Sep 17 00:00:00 2001 From: MichaIng Date: Sun, 26 May 2024 14:06:25 +0200 Subject: [PATCH 27/61] v9.5 - DietPi-Software | rutorrent: Update fallback version --- dietpi/dietpi-software | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dietpi/dietpi-software b/dietpi/dietpi-software index a4d9d5757f..750019858f 100755 --- a/dietpi/dietpi-software +++ b/dietpi/dietpi-software @@ -8524,7 +8524,7 @@ _EOF_ # Install ruTorrent: Web UI for rTorrent # - Grab current version local version=$(curl -sSfL 'https://api.github.com/repos/Novik/ruTorrent/releases/latest' | mawk -F\" '/^ *"tag_name": "[^"]*",$/{print $4}') - [[ $version ]] || { version='v4.3.0'; G_DIETPI-NOTIFY 1 "Automatic latest ruTorrent version detection failed. Version \"$version\" will be installed as fallback, but a newer version might be available. Please report this at: https://github.com/MichaIng/DietPi/issues"; } + [[ $version ]] || { version='v4.3.2'; G_DIETPI-NOTIFY 1 "Automatic latest ruTorrent version detection failed. Version \"$version\" will be installed as fallback, but a newer version might be available. Please report this at: https://github.com/MichaIng/DietPi/issues"; } Download_Install "https://github.com/Novik/ruTorrent/archive/$version.tar.gz" # - Reinstall freshly with preserved configs and 3rd party plugins From 81c04eebcb13ce768c0a21130df2b2349f4e763f Mon Sep 17 00:00:00 2001 From: MichaIng Date: Sun, 26 May 2024 14:33:47 +0200 Subject: [PATCH 28/61] v9.5 - APT | Add URL components for 64-bit Amlogic SoC SBCs --- .update/patches | 8 ++++++++ dietpi/func/dietpi-set_software | 5 +++++ 2 files changed, 13 insertions(+) diff --git a/.update/patches b/.update/patches index 78c8cedce3..437ad34f01 100755 --- a/.update/patches +++ b/.update/patches @@ -1631,6 +1631,14 @@ _EOF_ Patch_9_5() { + # Update DietPi APT list for several SBCs we added components to our repo for + if [[ $PATCH_9_3_RAN == 0 && $G_HW_MODEL =~ ^(12|15|16|54|74)$ ]] + then + /boot/dietpi/func/dietpi-set_software apt-mirror dietpi + G_AGUP + G_AGUG + fi + # Update MPD flag on Bookworm and above: https://github.com/MusicPlayerDaemon/MPD/commit/ce77b14 (( $G_DISTRO > 6 )) && [[ -f '/etc/systemd/system/mpd.service.d/dietpi.conf' ]] && G_EXEC sed -i 's/no-daemon/systemd/' /etc/systemd/system/mpd.service.d/dietpi.conf diff --git a/dietpi/func/dietpi-set_software b/dietpi/func/dietpi-set_software index 0b6631f002..5479c79b77 100755 --- a/dietpi/func/dietpi-set_software +++ b/dietpi/func/dietpi-set_software @@ -124,6 +124,9 @@ $FP_SCRIPT rpi_kernel_choice Supported on Debian Bookworm or newer on R [0-9]) all_components='rpi';; 10) all_components='odroidc1';; 11) all_components='odroidxu4';; + 12) all_components='odroidc2';; + 15) all_components='odroidn2';; + 16) all_components='odroidc4';; 40) all_components='pinea64';; 44) all_components='pinebook';; 45) all_components='pineh64';; @@ -146,6 +149,7 @@ $FP_SCRIPT rpi_kernel_choice Supported on Debian Bookworm or newer on R ;; esac ;; + 54) all_components='nanopik2';; 56) all_components='nanopineo3';; 57) all_components='nanopineoplus2';; 59) all_components='zeropi';; @@ -190,6 +194,7 @@ $FP_SCRIPT rpi_kernel_choice Supported on Debian Bookworm or newer on R 66) all_components='nanopim1plus';; 67) all_components='nanopik1plus';; 70) all_components='sparkysbc';; + 74) all_components='radxazero';; 76) # Detect variant either based on $HW_VARIANT environment variable, existing "all" components or installed U-Boot package # shellcheck disable=SC2154 From 29761eceef1ba69dba0d4f51ab98def7284db0a7 Mon Sep 17 00:00:00 2001 From: MichaIng Date: Sun, 26 May 2024 14:45:56 +0200 Subject: [PATCH 29/61] v9.5 - CHANGELOG | Odroid C1/C2: Resolved an issue on both SBCs where reboots could hang and a power cycle was required to get the device back up. Many thanks to @yandritos, @gociii and others for reporting this issue: https://github.com/MichaIng/DietPi/issues/5414, https://github.com/MichaIng/DietPi/issues/6332 --- CHANGELOG.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.txt b/CHANGELOG.txt index 7e4f3d7660..11b32c5080 100644 --- a/CHANGELOG.txt +++ b/CHANGELOG.txt @@ -5,6 +5,7 @@ Enhancements: - DietPi-Software | Jellyfin: Since a while FFmpeg 6 is available for Jellyfin, but on old installs with the old FFmpeg 5 package, it is not upgraded automatically by APT. This DietPi update applies the FFmpeg upgrade to all affected systems. Many thanks to @gioxx and @WolfganP for reporting this issue: https://github.com/MichaIng/DietPi/issues/7080 Bug fixes: +- Odroid C1/C2 | Resolved an issue on both SBCs where reboots could hang and a power cycle was required to get the device back up. Many thanks to @yandritos, @gociii and others for reporting this issue: https://github.com/MichaIng/DietPi/issues/5414, https://github.com/MichaIng/DietPi/issues/6332 - DietPi-Config | Resolved an issue where Advanced Options were not accessible on some SBCs. Many thanks to @thuehlinger for reporting this issue: https://github.com/MichaIng/DietPi/issues/6663#issuecomment-2108351878 - DietPi-Software | Snapcast Server: Resolved on issue where on RISC-V systems, the web interface was not available, since it is not included in the "snapserver" package from Debian. Many thanks to @hllhll for reporting this issue: https://github.com/MichaIng/DietPi/issues/7073 - DietPi-Software | Snapcast Server: Resolved an issue where on Bookworm systems, which installed the Snapcast Server before DietPi v9.4 and reinstalled it afterwards, the server failed to start due to a permissions issue, since the services of both packages use different users. Many thanks to @hllhll for reporting this issue: https://github.com/MichaIng/DietPi/issues/7073 From dace3885978bd88dc38a5a76cc1ce6d9df139922 Mon Sep 17 00:00:00 2001 From: MichaIng Date: Sun, 26 May 2024 14:48:43 +0200 Subject: [PATCH 30/61] v9.5 - CHANGELOG | Give credits to @gitmeister specifically for providing the Odroid C2 reboot fix --- CHANGELOG.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.txt b/CHANGELOG.txt index 11b32c5080..d1679b80f1 100644 --- a/CHANGELOG.txt +++ b/CHANGELOG.txt @@ -5,7 +5,7 @@ Enhancements: - DietPi-Software | Jellyfin: Since a while FFmpeg 6 is available for Jellyfin, but on old installs with the old FFmpeg 5 package, it is not upgraded automatically by APT. This DietPi update applies the FFmpeg upgrade to all affected systems. Many thanks to @gioxx and @WolfganP for reporting this issue: https://github.com/MichaIng/DietPi/issues/7080 Bug fixes: -- Odroid C1/C2 | Resolved an issue on both SBCs where reboots could hang and a power cycle was required to get the device back up. Many thanks to @yandritos, @gociii and others for reporting this issue: https://github.com/MichaIng/DietPi/issues/5414, https://github.com/MichaIng/DietPi/issues/6332 +- Odroid C1/C2 | Resolved an issue on both SBCs where reboots could hang and a power cycle was required to get the device back up. Many thanks to @yandritos, @gociii and others for reporting this issue, and @gitmeister for providing the fix for Odroid C2: https://github.com/MichaIng/DietPi/issues/5414, https://github.com/MichaIng/DietPi/issues/6332 - DietPi-Config | Resolved an issue where Advanced Options were not accessible on some SBCs. Many thanks to @thuehlinger for reporting this issue: https://github.com/MichaIng/DietPi/issues/6663#issuecomment-2108351878 - DietPi-Software | Snapcast Server: Resolved on issue where on RISC-V systems, the web interface was not available, since it is not included in the "snapserver" package from Debian. Many thanks to @hllhll for reporting this issue: https://github.com/MichaIng/DietPi/issues/7073 - DietPi-Software | Snapcast Server: Resolved an issue where on Bookworm systems, which installed the Snapcast Server before DietPi v9.4 and reinstalled it afterwards, the server failed to start due to a permissions issue, since the services of both packages use different users. Many thanks to @hllhll for reporting this issue: https://github.com/MichaIng/DietPi/issues/7073 From 68ed703e2c76dabfd982e7a5927501c87c36f272 Mon Sep 17 00:00:00 2001 From: MichaIng Date: Sun, 26 May 2024 15:05:06 +0200 Subject: [PATCH 31/61] v9.5 - Odroid C1 | Flash new U-Boot, probably even the required part to fix reboot issues --- .update/patches | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.update/patches b/.update/patches index 437ad34f01..67ec60037a 100755 --- a/.update/patches +++ b/.update/patches @@ -1639,6 +1639,9 @@ Patch_9_5() G_AGUG fi + # Flash new U-Boot on Odroid C1 + (( $G_HW_MODEL == 10 )) && /boot/dietpi/func/dietpi-set_hardware flash-u-boot-mmc + # Update MPD flag on Bookworm and above: https://github.com/MusicPlayerDaemon/MPD/commit/ce77b14 (( $G_DISTRO > 6 )) && [[ -f '/etc/systemd/system/mpd.service.d/dietpi.conf' ]] && G_EXEC sed -i 's/no-daemon/systemd/' /etc/systemd/system/mpd.service.d/dietpi.conf From 412f65672c9a116b149565435d19fb40ff669399 Mon Sep 17 00:00:00 2001 From: MichaIng Date: Wed, 29 May 2024 21:08:29 +0200 Subject: [PATCH 32/61] v9.5 - DietPi-Set_hardware | Add alias "flash-uboot-mmc" for "flash-u-boot-mmc" command - DietPi-Software | Gitea: Update fallback URL --- dietpi/dietpi-software | 2 +- dietpi/func/dietpi-set_hardware | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/dietpi/dietpi-software b/dietpi/dietpi-software index 750019858f..17cf14926f 100755 --- a/dietpi/dietpi-software +++ b/dietpi/dietpi-software @@ -10591,7 +10591,7 @@ _EOF_ *) local arch='arm-6';; esac - local fallback_url="https://github.com/go-gitea/gitea/releases/download/v1.21.11/gitea-1.21.11-linux-$arch.xz" + local fallback_url="https://github.com/go-gitea/gitea/releases/download/v1.22.0/gitea-1.22.0-linux-$arch.xz" Download_Install "$(curl -sSfL 'https://api.github.com/repos/go-gitea/gitea/releases/latest' | mawk -F\" "/\"browser_download_url\": \".*\/gitea-[^\"\/]*-linux-$arch\.xz\"/{print \$4}")" /mnt/dietpi_userdata/gitea/gitea # User diff --git a/dietpi/func/dietpi-set_hardware b/dietpi/func/dietpi-set_hardware index 5c086944d9..28f77b0d91 100755 --- a/dietpi/func/dietpi-set_hardware +++ b/dietpi/func/dietpi-set_hardware @@ -2397,7 +2397,7 @@ _EOF_ 'rpi3_usb_boot') RPi_USB_Boot_Main;; 'rpi-eeprom') RPi_EEPROM;; 'vf2-spi-update') VF2_SPI_Update;; - 'flash-u-boot-mmc') Flash_U-Boot_MMC || EXIT_CODE=1;; + 'flash-u-boot-mmc'|'flash-uboot-mmc') Flash_U-Boot_MMC || EXIT_CODE=1;; 'headless') Headless_Main;; 'gpudriver') GPUDriver_Main;; 'qemu-guest-agent'|'qga') QEMU_Guest_Agent_Main;; From 1eea6eb424fdce62eb5b9b21f1ee438d2269f46e Mon Sep 17 00:00:00 2001 From: MichaIng Date: Fri, 31 May 2024 16:11:12 +0200 Subject: [PATCH 33/61] v9.5 - DietPi-Build/Image | Better detect Debian version on non-DietPi and Ubuntu systems --- .build/images/dietpi-build | 11 ++++++++--- .build/images/dietpi-imager | 16 +++++++++++----- dietpi/dietpi-software | 2 +- 3 files changed, 20 insertions(+), 9 deletions(-) diff --git a/.build/images/dietpi-build b/.build/images/dietpi-build index 862621668e..a596d51f78 100755 --- a/.build/images/dietpi-build +++ b/.build/images/dietpi-build @@ -11,10 +11,15 @@ else curl -sSf "https://raw.githubusercontent.com/${G_GITOWNER:=MichaIng}/DietPi/${G_GITBRANCH:=master}/dietpi/func/dietpi-globals" -o /tmp/dietpi-globals || exit 1 # shellcheck disable=SC1091 . /tmp/dietpi-globals - G_EXEC_NOHALT=1 G_EXEC rm /tmp/dietpi-globals + G_EXEC rm /tmp/dietpi-globals export G_GITOWNER G_GITBRANCH G_HW_ARCH_NAME=$(uname -m) - # shellcheck disable=SC2015 - [[ $( /dev/null) != '5'* ]] + # - Bullseye/Focal: We need Clonezilla 5.x for loop device support + if dpkg --compare-versions "$(dpkg-query -Wf '${Version}' clonezilla 2> /dev/null)" lt 5 then - G_EXEC curl -sSf 'https://deb.debian.org/debian/pool/main/c/clonezilla/clonezilla_5.2.7-1_all.deb' -o clonezilla.deb + G_EXEC curl -sSf 'https://deb.debian.org/debian/pool/main/c/clonezilla/clonezilla_5.3.17-2_all.deb' -o clonezilla.deb G_EXEC dpkg -i ./clonezilla.deb G_EXEC rm clonezilla.deb fi diff --git a/dietpi/dietpi-software b/dietpi/dietpi-software index 17cf14926f..342095dd32 100755 --- a/dietpi/dietpi-software +++ b/dietpi/dietpi-software @@ -6511,7 +6511,7 @@ _EOF_ esac # Download - local fallback_url="https://github.com/fatedier/frp/releases/download/v0.58.0/frp_0.58.0_linux_$arch.tar.gz" + local fallback_url="https://github.com/fatedier/frp/releases/download/v0.58.1/frp_0.58.1_linux_$arch.tar.gz" Download_Install "$(curl -sSfL 'https://api.github.com/repos/fatedier/frp/releases/latest' | mawk -F\" "/\"browser_download_url\": .*\/frp_[0-9.]*_linux_$arch\.tar\.gz\"/{print \$4}")" G_EXEC cd frp_* From 8307ba23228904efc4a02134cf97386c485c2c0b Mon Sep 17 00:00:00 2001 From: MichaIng Date: Fri, 31 May 2024 19:47:34 +0200 Subject: [PATCH 34/61] v9.5 - DietPi-Config | If no Ethernet adapter hsa been detected but the Ethernet interface is enabled, offer to disable it --- .build/images/dietpi-installer | 14 +++++++------- dietpi/dietpi-config | 20 +++++++++++++++----- 2 files changed, 22 insertions(+), 12 deletions(-) diff --git a/.build/images/dietpi-installer b/.build/images/dietpi-installer index 440f046afd..1ef04f13ff 100755 --- a/.build/images/dietpi-installer +++ b/.build/images/dietpi-installer @@ -1574,26 +1574,26 @@ _EOF_ [[ -d '/etc/chromium.d' ]] && G_EXEC rm -R /etc/chromium.d [[ -d '/etc/lightdm' ]] && G_EXEC rm -R /etc/lightdm - # - www + # www [[ -d '/var/www' ]] && G_EXEC rm -Rf /var/www/{,.??,.[^.]}* - # - Source code and Linux headers + # Source code and Linux headers [[ -d '/usr/src' ]] && G_EXEC rm -Rf /usr/src/{,.??,.[^.]}* - # - Documentation dirs: https://github.com/MichaIng/DietPi/issues/3259 + # Documentation dirs: https://github.com/MichaIng/DietPi/issues/3259 #[[ -d '/usr/share/man' ]] && G_EXEC rm -R /usr/share/man #[[ -d '/usr/share/doc' ]] && G_EXEC rm -R /usr/share/doc #[[ -d '/usr/share/doc-base' ]] && G_EXEC rm -R /usr/share/doc-base [[ -d '/usr/share/calendar' ]] && G_EXEC rm -R /usr/share/calendar - # - Unused DEB package config files + # Unused DEB package config files find / \( -name '*?.dpkg-dist' -o -name '*?.dpkg-old' -o -name '*?.dpkg-new' -o -name '*?.dpkg-bak' -o -name '*?.dpkg-del' -o -name '*?.ucf-dist' -o -name '*?.ucf-old' -o -name '*?.ucf-new' \) -exec rm -v {} + - # - Fonts + # Fonts [[ -d '/usr/share/fonts' ]] && G_EXEC rm -R /usr/share/fonts [[ -d '/usr/share/icons' ]] && G_EXEC rm -R /usr/share/icons - # - Stop, disable and remove not required 3rd party services + # Stop, disable and remove not required 3rd party services local aservices=( # RPi @@ -1639,7 +1639,7 @@ _EOF_ done done - # - Remove obsolete SysV service entries + # Remove obsolete SysV service entries aservices=( 'fake-hwclock' diff --git a/dietpi/dietpi-config b/dietpi/dietpi-config index 4353832da9..0fd4369391 100755 --- a/dietpi/dietpi-config +++ b/dietpi/dietpi-config @@ -2478,12 +2478,22 @@ NB: All Ethernet connections will be temporarily dropped!' && Network_ApplyChang 'Ethernet') - # No adapter detected + # No adapter detected: Offer to disable if enabled if (( ! $ETH_HARDWARE )) then + if (( ! $ETH_DISABLED )) + then + if G_WHIP_YESNO 'No Ethernet adapter was detected on your device. +\nWould you like to disable Ethernet?\n - NB: Connections may drop!' + then + ETH_DISABLED=1 + Network_ApplyChanges + fi + return 0 + fi G_WHIP_MSG 'No Ethernet adapter was detected on your device.' - # Disabled: Offer chance to enable + # Disabled: Offer to enable elif (( $ETH_DISABLED )) then if G_WHIP_YESNO 'Ethernet must be enabled before settings can be changed. @@ -2500,7 +2510,7 @@ NB: All Ethernet connections will be temporarily dropped!' && Network_ApplyChang 'WiFi') - # Disabled: Offer chance to enable (also enables WiFi modules) + # Disabled: Offer to enable, including WiFi modules for adapter to be detected if (( $WIFI_DISABLED )) then if G_WHIP_YESNO 'WiFi must be enabled before settings can be changed. @@ -2508,11 +2518,11 @@ NB: All Ethernet connections will be temporarily dropped!' && Network_ApplyChang then WIFI_DISABLED=0 Network_ApplyChanges - # Enter submenu if a WiFi adapters has been detected, else only preselect the menu entry + # Enter submenu if WiFi adapter has been detected, else only preselect the menu entry (( $WIFI_HARDWARE )) && TARGETMENUID=10 || G_WHIP_DEFAULT_ITEM='WiFi' # WiFi adapter menu fi - # No adapter detected + # No adapter detected: Offer to disable elif (( ! $WIFI_HARDWARE )) then if G_WHIP_YESNO 'No WiFi adapter was detected on your device. From ba4c7e34b2662084459a4c1794a6fa2afe337279 Mon Sep 17 00:00:00 2001 From: MichaIng Date: Fri, 31 May 2024 21:18:15 +0200 Subject: [PATCH 35/61] v9.5 - DietPi-Installer | Add little note about raised boot time when printing kernel logs to console and install only "gpg" instead of "gnupg", which is sufficient now that "apt-key add" is not used anymore. Since dirmngr is then missing, gpg cannot interact with keyserver by itself anymore, and since gpg-agent is missing, the passphrase to decrypt keys cannot be entered anymore from the console, breaking e.g. "git commit". However, gpg is very clearly telling what is missing, so for users playing with gpg signing/encryption/validation, it should not be a big problem. We can revert in case of negative feedback, or add dirmngr/gpg-agent in particular, instead of the whole gnupg suite. --- .build/images/dietpi-installer | 4 ++-- CHANGELOG.txt | 1 + 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/.build/images/dietpi-installer b/.build/images/dietpi-installer index 1ef04f13ff..1baa3f7eee 100755 --- a/.build/images/dietpi-installer +++ b/.build/images/dietpi-installer @@ -876,7 +876,7 @@ setenv rootuuid "true"' /boot/boot.cmd 'cron' # Background job scheduler 'curl' # Web address testing, downloading, uploading etc. 'fdisk' # Partitioning tool used by DietPi-FS_partition_resize and DietPi-Imager - 'gnupg' # apt-key add / gpg + 'gpg' # apt-key list / gpg 'htop' # System monitor 'iputils-ping' # "ping" command 'locales' # Support locales, used by dietpi-config > Language/Regional Options > Locale @@ -2283,7 +2283,7 @@ _EOF_ fi # Update config - G_CONFIG_INJECT 'GRUB_CMDLINE_LINUX_DEFAULT=' 'GRUB_CMDLINE_LINUX_DEFAULT="consoleblank=0"' /etc/default/grub + G_CONFIG_INJECT 'GRUB_CMDLINE_LINUX_DEFAULT=' 'GRUB_CMDLINE_LINUX_DEFAULT="consoleblank=0"' /etc/default/grub # NB: Removing "quiet" adds ~0.5s to boot time on my 6.5s - 7.5s boot time laptop. G_CONFIG_INJECT 'GRUB_CMDLINE_LINUX=' 'GRUB_CMDLINE_LINUX="net.ifnames=0"' /etc/default/grub G_CONFIG_INJECT 'GRUB_TIMEOUT=' 'GRUB_TIMEOUT=0' /etc/default/grub G_EXEC_DESC='Regenerating GRUB config' G_EXEC_OUTPUT=1 G_EXEC grub-mkconfig -o /boot/grub/grub.cfg diff --git a/CHANGELOG.txt b/CHANGELOG.txt index d1679b80f1..10f42cd88d 100644 --- a/CHANGELOG.txt +++ b/CHANGELOG.txt @@ -2,6 +2,7 @@ v9.5 (2024-06-08) Enhancements: +- Images | New DietPi images won't contain the "gnupg" package anymore, but "gpg" only, since other features of the suite are not required for our scripts anymore. E.g. "dirmngr" for interacting with keyservers, and "gpg-agent" for key passphrase inputs are hence missing. "gpg" however prints very clear error messages about what is missing. Let us know whether you find one of those GnuPG features too essential to not be pre-installed. - DietPi-Software | Jellyfin: Since a while FFmpeg 6 is available for Jellyfin, but on old installs with the old FFmpeg 5 package, it is not upgraded automatically by APT. This DietPi update applies the FFmpeg upgrade to all affected systems. Many thanks to @gioxx and @WolfganP for reporting this issue: https://github.com/MichaIng/DietPi/issues/7080 Bug fixes: From 4f0cc5c1ab1132f4bd46e2f741ded744929df6df Mon Sep 17 00:00:00 2001 From: MichaIng Date: Sat, 1 Jun 2024 13:29:25 +0200 Subject: [PATCH 36/61] v9.5 - CI | aarch64 builds/tests in QEMU-emulated Bullseye containers on Ubuntu Noble hosts fail on libc-bin postinst trigger with segmentation fault. Hence run those cases on Ubuntu Jammy. --- .github/workflows/amiberry.yml | 3 +++ .github/workflows/dietpi-build.yml | 5 ++++- .github/workflows/dietpi-software-build.yml | 5 ++++- .github/workflows/dietpi-software.yml | 3 +++ 4 files changed, 14 insertions(+), 2 deletions(-) diff --git a/.github/workflows/amiberry.yml b/.github/workflows/amiberry.yml index e340482da7..9e8fa0851d 100644 --- a/.github/workflows/amiberry.yml +++ b/.github/workflows/amiberry.yml @@ -54,6 +54,9 @@ jobs: - { plat: riscv64, dist: bookworm } fail-fast: false name: "${{ matrix.plat }} - ${{ matrix.dist }}" + # aarch64 build in QEMU-emulated Bullseye containers on Ubuntu Noble hosts fail: + # Processing triggers for libc-bin (2.31-13+deb11u10) ... + # qemu: uncaught target signal 11 (Segmentation fault) - core dumped runs-on: ${{ matrix.dist == 'bullseye' && ( endsWith(matrix.plat, '-64-sdl2') || matrix.plat == 'AMLSM1' || matrix.plat == 'n2' || matrix.plat == 'a64' || matrix.plat == 'rk3588' ) && 'ubuntu-22.04' || 'ubuntu-24.04' }} steps: - name: Build diff --git a/.github/workflows/dietpi-build.yml b/.github/workflows/dietpi-build.yml index a7db44fb96..8ed3cab4cf 100644 --- a/.github/workflows/dietpi-build.yml +++ b/.github/workflows/dietpi-build.yml @@ -116,7 +116,10 @@ jobs: buildargs: ${{ fromJson(needs.prep.outputs.buildargs) }} fail-fast: false name: "Build: ${{ matrix.buildargs }}" - runs-on: ubuntu-24.04 + # aarch64 build in QEMU-emulated Bullseye containers on Ubuntu Noble hosts fail: + # Processing triggers for libc-bin (2.31-13+deb11u10) ... + # qemu: uncaught target signal 11 (Segmentation fault) - core dumped + runs-on: ${{ contains(matrix.buildargs, '-d 6') && 'ubuntu-22.04' || 'ubuntu-24.04' }} steps: - name: Generate upload script run: | diff --git a/.github/workflows/dietpi-software-build.yml b/.github/workflows/dietpi-software-build.yml index 29c7468126..bcf9db7820 100644 --- a/.github/workflows/dietpi-software-build.yml +++ b/.github/workflows/dietpi-software-build.yml @@ -72,7 +72,10 @@ jobs: - { arch: x86_64, name: gogs } fail-fast: false name: "${{ matrix.name }} - ${{ matrix.arch }} - ${{ matrix.dist }}" - runs-on: ubuntu-24.04 + # aarch64 build in QEMU-emulated Bullseye containers on Ubuntu Noble hosts fail: + # Processing triggers for libc-bin (2.31-13+deb11u10) ... + # qemu: uncaught target signal 11 (Segmentation fault) - core dumped + runs-on: ${{ matrix.dist == 'bullseye' && matrix.arch == 'aarch64' && 'ubuntu-22.04' || 'ubuntu-24.04' }} steps: - name: Build run: sudo bash -c "G_GITOWNER=$GITHUB_REPOSITORY_OWNER G_GITBRANCH=$GITHUB_REF_NAME; $(curl -sSf "https://raw.githubusercontent.com/$GITHUB_REPOSITORY_OWNER/DietPi/$GITHUB_REF_NAME/.build/software/dietpi-software-build.bash")" -- -n '${{ matrix.name }}' -a '${{ matrix.arch }}' -d '${{ matrix.dist }}' diff --git a/.github/workflows/dietpi-software.yml b/.github/workflows/dietpi-software.yml index f641bbf85e..d013908cee 100644 --- a/.github/workflows/dietpi-software.yml +++ b/.github/workflows/dietpi-software.yml @@ -68,6 +68,9 @@ jobs: - { arch: riscv64, dist: bookworm } fail-fast: false name: "${{ matrix.arch }} - ${{ matrix.dist }} - ${{ github.event.inputs.soft }}" + # aarch64 test in QEMU-emulated Bullseye containers on Ubuntu Noble hosts fail: + # Processing triggers for libc-bin (2.31-13+deb11u10) ... + # qemu: uncaught target signal 11 (Segmentation fault) - core dumped runs-on: ${{ matrix.dist == 'bullseye' && matrix.arch == 'aarch64' && 'ubuntu-22.04' || 'ubuntu-24.04' }} steps: - name: Install From a299c0edc405132a676bdaa3731607330bad6bde Mon Sep 17 00:00:00 2001 From: MichaIng Date: Sun, 2 Jun 2024 18:38:00 +0200 Subject: [PATCH 37/61] v9.5 - CI | Quartz64: Obtain latest U-Boot version automatically --- .github/workflows/quartz64.yml | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/.github/workflows/quartz64.yml b/.github/workflows/quartz64.yml index 6d79b59235..c65dabdd06 100644 --- a/.github/workflows/quartz64.yml +++ b/.github/workflows/quartz64.yml @@ -9,11 +9,9 @@ jobs: # https://github.com/actions/runner-images runs-on: ubuntu-24.04 env: - uboot_version: '2023.10' CROSS_COMPILE: 'aarch64-linux-gnu-' ARCH: 'arm64' steps: - # https://github.com/actions/setup-python/tags - uses: actions/setup-python@v5 with: python-version: '3.x' @@ -22,17 +20,20 @@ jobs: run: | { python3 -m pip install --no-cache-dir -U pip setuptools wheel; python3 -m pip install --no-cache-dir -U pyelftools; } & { sudo apt-get -q update; sudo DEBIAN_FRONTEND=noninteractive apt-get --no-install-recommends -qq install make gcc libc6-dev flex bison gcc-aarch64-linux-gnu bc libssl-dev swig; } & - { curl -fLO "https://github.com/u-boot/u-boot/archive/v$uboot_version.tar.gz"; tar xf "v$uboot_version.tar.gz"; rm "v$uboot_version.tar.gz"; } & { curl -fO 'https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/snapshot/linux-rolling-stable.tar.gz'; tar xf linux-rolling-stable.tar.gz; rm linux-rolling-stable.tar.gz; } & + uboot_version=$(curl -sSf 'https://api.github.com/repos/u-boot/u-boot/tags' | mawk -F\" '/^ *"name": "v[0-9.]*",$/{print $4;exit}') + [ "$uboot_version" ] || { echo 'ERROR: Failed to obtain latest U-Boot version'; exit 1; } + echo "uboot_version=$uboot_version" >> "$GITHUB_ENV" + { curl -fLO "https://github.com/u-boot/u-boot/archive/v$uboot_version.tar.gz"; tar xf "v$uboot_version.tar.gz"; rm "v$uboot_version.tar.gz"; } & wait curl -sSfo "u-boot-$uboot_version/ddr.bin" 'https://raw.githubusercontent.com/JeffyCN/mirrors/ddf03c1/bin/rk35/rk3568_ddr_1560MHz_v1.13.bin' & curl -sSfo "u-boot-$uboot_version/bl31.elf" 'https://raw.githubusercontent.com/JeffyCN/mirrors/6186deb/bin/rk35/rk3568_bl31_v1.28.elf' & curl -sSfo linux-rolling-stable/arch/arm64/configs/quartz64_defconfig "https://raw.githubusercontent.com/$GITHUB_REPOSITORY_OWNER/DietPi/$GITHUB_REF_NAME/.build/images/Quartz64/quartz64_defconfig" & - rm -Rf firmware-quartz64a/DEBIAN firmware-quartz64a/boot/extlinux firmware-quartz64a/lib/firmware/brcm + rm -Rf firmware-quartz64a mkdir -p firmware-quartz64a/DEBIAN firmware-quartz64a/boot/extlinux firmware-quartz64a/lib/firmware/brcm - rm -Rf firmware-quartz64b/DEBIAN firmware-quartz64b/boot/extlinux firmware-quartz64b/lib/firmware/brcm + rm -Rf firmware-quartz64b mkdir -p firmware-quartz64b/DEBIAN firmware-quartz64b/boot/extlinux firmware-quartz64b/lib/firmware/brcm - rm -Rf firmware-soquartz/DEBIAN firmware-soquartz/boot/extlinux firmware-soquartz/lib/firmware/brcm + rm -Rf firmware-soquartz mkdir -p firmware-soquartz/DEBIAN firmware-soquartz/boot/extlinux firmware-soquartz/lib/firmware/brcm wait - name: Build U-Boot From 8229158129e94be2dccd970db2d9d3d0cc9b0032 Mon Sep 17 00:00:00 2001 From: MichaIng Date: Sun, 2 Jun 2024 18:50:02 +0200 Subject: [PATCH 38/61] v9.5 - DietPi-Installer | Replace manual kernel/U-Boot download with a way to install test builds. In the meantime, we can host all new builds quickly on our APT server, hence there is no need to download anything manually. But we do want to be able to create test images, before pushing untested kernel/bootloader builds to our APT server. --- .build/images/dietpi-build | 6 +++++- .build/images/dietpi-installer | 20 ++++++++------------ 2 files changed, 13 insertions(+), 13 deletions(-) diff --git a/.build/images/dietpi-build b/.build/images/dietpi-build index a596d51f78..3442571a38 100755 --- a/.build/images/dietpi-build +++ b/.build/images/dietpi-build @@ -52,6 +52,8 @@ EDITION= SUFFIX= ADD_DOS_PART=1 SIGN_PASS= +TEST_KERNEL=0 +TEST_UBOOT=0 while (( $# )) do case $1 in @@ -68,6 +70,8 @@ do '-s') shift; SUFFIX=$1;; '--no-dos-part') ADD_DOS_PART=0;; '--sign') shift; SIGN_PASS=$1;; + '--test-kernel') TEST_KERNEL=1;; + '--test-uboot') TEST_UBOOT=1;; *) G_DIETPI-NOTIFY 1 "Invalid input \"$1\", aborting..."; exit 1;; esac shift @@ -403,7 +407,7 @@ echo '[ INFO ] Running DietPi-Installer...' _EOF_ cat << _EOF_ >> rootfs/etc/rc.local -export GITOWNER='$GITOWNER' GITBRANCH='$GITBRANCH' HW_MODEL='$HW_MODEL' IMAGE_CREATOR=0 PREIMAGE_INFO=0 WIFI_REQUIRED=1 DISTRO_TARGET=$DISTRO +export GITOWNER='$GITOWNER' GITBRANCH='$GITBRANCH' HW_MODEL='$HW_MODEL' IMAGE_CREATOR=0 PREIMAGE_INFO=0 WIFI_REQUIRED=1 DISTRO_TARGET=$DISTRO TEST_KERNEL=$TEST_KERNEL TEST_UBOOT=$TEST_UBOOT echo '[ INFO ] Running DietPi-Installer for $G_GITOWNER/$G_GITBRANCH' bash -c "\$(curl -sSf 'https://raw.githubusercontent.com/$G_GITOWNER/DietPi/$G_GITBRANCH/.build/images/dietpi-installer')" || poweroff _EOF_ diff --git a/.build/images/dietpi-installer b/.build/images/dietpi-installer index 1baa3f7eee..001029a73e 100755 --- a/.build/images/dietpi-installer +++ b/.build/images/dietpi-installer @@ -24,6 +24,8 @@ # - HW_MODEL=0 (must match one of the supported IDs below) # - WIFI_REQUIRED=0 [01] # - DISTRO_TARGET=7 [678] (Bullseye: 6, Bookworm: 7, Trixie: 8) + # - TEST_KERNEL=1 Install test kernel from https://dietpi.com/downloads/binaries/testing/ + # - TEST_UBOOT=1 Install test U-Boot from https://dietpi.com/downloads/binaries/testing/ #------------------------------------------------------------------------------------------------ # Core globals @@ -1053,7 +1055,7 @@ _EOF_ # Update APT lists G_AGUP # Install kernel, device tree, U-Boot, firmware and initramfs packages - local model='odroidn2' kernel='meson64' arch='arm64' branch='current' zstd=() dietpi_uboot=0 dietpi_kernel=0 + local model='odroidn2' kernel='meson64' arch='arm64' branch='current' zstd=() case $G_HW_MODEL in 10) model='odroidc1' kernel='meson' arch='arm';; 11) model='odroidxu4' kernel='odroidxu4' arch='arm';; @@ -1151,27 +1153,21 @@ blacklist rockchip_vdec _EOF_ fi # Install initramfs-tools first to have an initramfs generated on kernel install, and configure it to use zstd if supported for better compression and faster decompression - if (( $dietpi_kernel )) - then - G_EXEC_OUTPUT=1 G_EXEC curl -fo package.deb 'https://dietpi.com/downloads/binaries/armbian-firmware.deb' - G_EXEC_OUTPUT=1 G_EXEC dpkg -i package.deb - G_EXEC rm package.deb - fi [[ $kernel == 'rockchip64' || $kernel == 'rk35xx' || $kernel == 'meson64' || $kernel == 'sunxi64' || $kernel == 'sunxi' || $kernel == 'rockchip' ]] && zstd=('zstd') G_AGI initramfs-tools u-boot-tools armbian-firmware "${zstd[@]}" [[ ${zstd[0]} ]] && G_CONFIG_INJECT 'COMPRESS=' 'COMPRESS=zstd' /etc/initramfs-tools/initramfs.conf # Download and pre-install kernel hosted on dietpi.com where the Armbian APT repo provides a too old version or is not available - if (( $dietpi_kernel )) + if (( $TEST_KERNEL )) then - G_EXEC_OUTPUT=1 G_EXEC curl -fo package1.deb "https://dietpi.com/downloads/binaries/linux-image-$branch-$kernel.deb" - G_EXEC_OUTPUT=1 G_EXEC curl -fo package2.deb "https://dietpi.com/downloads/binaries/linux-dtb-$branch-$kernel.deb" + G_EXEC_OUTPUT=1 G_EXEC curl -fo package1.deb "https://dietpi.com/downloads/binaries/testing/linux-image-$branch-$kernel.deb" + G_EXEC_OUTPUT=1 G_EXEC curl -fo package2.deb "https://dietpi.com/downloads/binaries/testing/linux-dtb-$branch-$kernel.deb" G_EXEC_OUTPUT=1 G_EXEC dpkg -i package[12].deb G_EXEC rm package[12].deb fi # Download and pre-install U-Boot hosted on dietpi.com where the Armbian APT repo provides a too old version or is not available - if (( $dietpi_uboot )) + if (( $TEST_UBOOT )) then - G_EXEC_OUTPUT=1 G_EXEC curl -fo package.deb "https://dietpi.com/downloads/binaries/linux-u-boot-$model-$branch.deb" + G_EXEC_OUTPUT=1 G_EXEC curl -fo package.deb "https://dietpi.com/downloads/binaries/testing/linux-u-boot-$model-$branch.deb" G_EXEC_OUTPUT=1 G_EXEC dpkg -i package.deb G_EXEC rm package.deb fi From d78542db12a5e6b7258817a829831f569a50a882 Mon Sep 17 00:00:00 2001 From: MichaIng Date: Sun, 2 Jun 2024 18:52:25 +0200 Subject: [PATCH 39/61] v9.5 - Odroid N2 | Do not flash dedicated U-Boot binary anymore. Armbian merged a commit stating to stabilise eMMC boots. If it really does not solve the issue, we will patch our Armbian fork for proper own U-Boot package builds instead. --- .build/images/dietpi-installer | 8 -------- 1 file changed, 8 deletions(-) diff --git a/.build/images/dietpi-installer b/.build/images/dietpi-installer index 001029a73e..cec46faaef 100755 --- a/.build/images/dietpi-installer +++ b/.build/images/dietpi-installer @@ -1212,14 +1212,6 @@ _EOF_ G_CONFIG_INJECT 'user_overlays=' 'user_overlays=dietpi-usb-otg' /boot/dietpiEnv.txt G_EXEC apt-mark auto device-tree-compiler - # Workaround for Odroid N2 failing to boot from eMMC: https://forum.armbian.com/topic/20206-odroid-n2-issues-with-recent-firmware-and-emmc-modules/#comment-142409 - elif (( $G_HW_MODEL == 15 )) - then - G_EXEC curl -sSfo u-boot.gz 'https://dietpi.com/downloads/binaries/u-boot-odroidn2.bin.gz' - G_EXEC gzip -d u-boot.gz - G_EXEC dd if=u-boot "of=$BOOT_DEVICE" bs=512 seek=1 conv=notrunc,fdatasync - G_EXEC rm u-boot - # Workaround for NanoPi R1 failing boot: https://github.com/MichaIng/DietPi/issues/5927 elif (( $G_HW_MODEL == 48 )) then From 8def4296d152031b320428f9f8f560d70515fc7d Mon Sep 17 00:00:00 2001 From: MichaIng Date: Sun, 2 Jun 2024 18:57:34 +0200 Subject: [PATCH 40/61] v9.5 - CI | Quartz64: Purge needrestart package from Ubuntu Noble GitHub runner, which causes a restart of the runner-provider service, terminating the workflow run: https://github.com/actions/runner-images/pull/9956 --- .github/workflows/quartz64.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/quartz64.yml b/.github/workflows/quartz64.yml index c65dabdd06..6d4c96d245 100644 --- a/.github/workflows/quartz64.yml +++ b/.github/workflows/quartz64.yml @@ -18,6 +18,8 @@ jobs: check-latest: true - name: Build init run: | + # Workaround for runner provider restart: https://github.com/actions/runner-images/pull/9956 + sudo apt-get -qq autopurge needrestart { python3 -m pip install --no-cache-dir -U pip setuptools wheel; python3 -m pip install --no-cache-dir -U pyelftools; } & { sudo apt-get -q update; sudo DEBIAN_FRONTEND=noninteractive apt-get --no-install-recommends -qq install make gcc libc6-dev flex bison gcc-aarch64-linux-gnu bc libssl-dev swig; } & { curl -fO 'https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/snapshot/linux-rolling-stable.tar.gz'; tar xf linux-rolling-stable.tar.gz; rm linux-rolling-stable.tar.gz; } & From 7f46ac96c90605d34e8c31c9cedf49d0cf880ba3 Mon Sep 17 00:00:00 2001 From: MichaIng Date: Sun, 2 Jun 2024 19:00:23 +0200 Subject: [PATCH 41/61] v9.5 - DietPi-Installer | Satisfy shellcheck and that way sanitize the new test kernel/bootloader environment variables --- .build/images/dietpi-installer | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.build/images/dietpi-installer b/.build/images/dietpi-installer index cec46faaef..9b6888afb7 100755 --- a/.build/images/dietpi-installer +++ b/.build/images/dietpi-installer @@ -31,6 +31,10 @@ # Core globals G_PROGRAM_NAME='DietPi-Installer' + # Input variables + [[ $TEST_KERNEL == 1 ]] || TEST_KERNEL=0 + [[ $TEST_UBOOT == 1 ]] || TEST_UBOOT=0 + #------------------------------------------------------------------------------------------------ # Critical checks and requirements to run this script #------------------------------------------------------------------------------------------------ From 114da56d23c0eb2ae5daffa5954675f03a901b5c Mon Sep 17 00:00:00 2001 From: MichaIng Date: Sun, 2 Jun 2024 19:04:36 +0200 Subject: [PATCH 42/61] v9.5 - CI | Quartz64: Remove leading "v" from U-Boot version string, after downloads have been finished. It does not appear in the contained directories. --- .github/workflows/quartz64.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/quartz64.yml b/.github/workflows/quartz64.yml index 6d4c96d245..b2917cedc4 100644 --- a/.github/workflows/quartz64.yml +++ b/.github/workflows/quartz64.yml @@ -25,8 +25,8 @@ jobs: { curl -fO 'https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/snapshot/linux-rolling-stable.tar.gz'; tar xf linux-rolling-stable.tar.gz; rm linux-rolling-stable.tar.gz; } & uboot_version=$(curl -sSf 'https://api.github.com/repos/u-boot/u-boot/tags' | mawk -F\" '/^ *"name": "v[0-9.]*",$/{print $4;exit}') [ "$uboot_version" ] || { echo 'ERROR: Failed to obtain latest U-Boot version'; exit 1; } - echo "uboot_version=$uboot_version" >> "$GITHUB_ENV" - { curl -fLO "https://github.com/u-boot/u-boot/archive/v$uboot_version.tar.gz"; tar xf "v$uboot_version.tar.gz"; rm "v$uboot_version.tar.gz"; } & + { curl -fLO "https://github.com/u-boot/u-boot/archive/$uboot_version.tar.gz"; tar xf "$uboot_version.tar.gz"; rm "$uboot_version.tar.gz"; } & + echo "uboot_version=${uboot_version#v}" >> "$GITHUB_ENV" wait curl -sSfo "u-boot-$uboot_version/ddr.bin" 'https://raw.githubusercontent.com/JeffyCN/mirrors/ddf03c1/bin/rk35/rk3568_ddr_1560MHz_v1.13.bin' & curl -sSfo "u-boot-$uboot_version/bl31.elf" 'https://raw.githubusercontent.com/JeffyCN/mirrors/6186deb/bin/rk35/rk3568_bl31_v1.28.elf' & From 3848cbdd1f50ada76de42605eb3f32bba07312eb Mon Sep 17 00:00:00 2001 From: MichaIng Date: Sun, 2 Jun 2024 19:17:45 +0200 Subject: [PATCH 43/61] v9.5 - CI | Quartz64: Writing to "$GITHUB_ENV" does not seem to override variables for the current step. --- .github/workflows/quartz64.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/quartz64.yml b/.github/workflows/quartz64.yml index b2917cedc4..f9687c86dc 100644 --- a/.github/workflows/quartz64.yml +++ b/.github/workflows/quartz64.yml @@ -26,7 +26,8 @@ jobs: uboot_version=$(curl -sSf 'https://api.github.com/repos/u-boot/u-boot/tags' | mawk -F\" '/^ *"name": "v[0-9.]*",$/{print $4;exit}') [ "$uboot_version" ] || { echo 'ERROR: Failed to obtain latest U-Boot version'; exit 1; } { curl -fLO "https://github.com/u-boot/u-boot/archive/$uboot_version.tar.gz"; tar xf "$uboot_version.tar.gz"; rm "$uboot_version.tar.gz"; } & - echo "uboot_version=${uboot_version#v}" >> "$GITHUB_ENV" + uboot_version=${uboot_version#v} + echo "uboot_version=$uboot_version" >> "$GITHUB_ENV" wait curl -sSfo "u-boot-$uboot_version/ddr.bin" 'https://raw.githubusercontent.com/JeffyCN/mirrors/ddf03c1/bin/rk35/rk3568_ddr_1560MHz_v1.13.bin' & curl -sSfo "u-boot-$uboot_version/bl31.elf" 'https://raw.githubusercontent.com/JeffyCN/mirrors/6186deb/bin/rk35/rk3568_bl31_v1.28.elf' & From 5216429a5a3ce519ae48d071bb85aaa875e7f8b6 Mon Sep 17 00:00:00 2001 From: MichaIng Date: Sun, 2 Jun 2024 20:26:08 +0200 Subject: [PATCH 44/61] v9.5 - DietPi-Software | MediaWiki: Uploaded images are now preserved on reinstalls. --- CHANGELOG.txt | 2 ++ dietpi/dietpi-software | 11 ++++++++--- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.txt b/CHANGELOG.txt index 10f42cd88d..b123e83fbf 100644 --- a/CHANGELOG.txt +++ b/CHANGELOG.txt @@ -4,9 +4,11 @@ v9.5 Enhancements: - Images | New DietPi images won't contain the "gnupg" package anymore, but "gpg" only, since other features of the suite are not required for our scripts anymore. E.g. "dirmngr" for interacting with keyservers, and "gpg-agent" for key passphrase inputs are hence missing. "gpg" however prints very clear error messages about what is missing. Let us know whether you find one of those GnuPG features too essential to not be pre-installed. - DietPi-Software | Jellyfin: Since a while FFmpeg 6 is available for Jellyfin, but on old installs with the old FFmpeg 5 package, it is not upgraded automatically by APT. This DietPi update applies the FFmpeg upgrade to all affected systems. Many thanks to @gioxx and @WolfganP for reporting this issue: https://github.com/MichaIng/DietPi/issues/7080 +- DietPi-Software | MediaWiki: Uploaded images are now preserved on reinstalls. Bug fixes: - Odroid C1/C2 | Resolved an issue on both SBCs where reboots could hang and a power cycle was required to get the device back up. Many thanks to @yandritos, @gociii and others for reporting this issue, and @gitmeister for providing the fix for Odroid C2: https://github.com/MichaIng/DietPi/issues/5414, https://github.com/MichaIng/DietPi/issues/6332 +- Orange Pi Zero 2W | Resolved an issue where the onboard Ethernet adapter did not work. - DietPi-Config | Resolved an issue where Advanced Options were not accessible on some SBCs. Many thanks to @thuehlinger for reporting this issue: https://github.com/MichaIng/DietPi/issues/6663#issuecomment-2108351878 - DietPi-Software | Snapcast Server: Resolved on issue where on RISC-V systems, the web interface was not available, since it is not included in the "snapserver" package from Debian. Many thanks to @hllhll for reporting this issue: https://github.com/MichaIng/DietPi/issues/7073 - DietPi-Software | Snapcast Server: Resolved an issue where on Bookworm systems, which installed the Snapcast Server before DietPi v9.4 and reinstalled it afterwards, the server failed to start due to a permissions issue, since the services of both packages use different users. Many thanks to @hllhll for reporting this issue: https://github.com/MichaIng/DietPi/issues/7073 diff --git a/dietpi/dietpi-software b/dietpi/dietpi-software index 342095dd32..3f5bbb6996 100755 --- a/dietpi/dietpi-software +++ b/dietpi/dietpi-software @@ -9949,7 +9949,7 @@ _EOF_ *) local arch='x64';; esac - local fallback_url="https://github.com/Prowlarr/Prowlarr/releases/download/v1.17.2.4511/Prowlarr.master.1.17.2.4511.linux-core-$arch.tar.gz" + local fallback_url="https://github.com/Prowlarr/Prowlarr/releases/download/v1.18.0.4543/Prowlarr.master.1.18.0.4543.linux-core-$arch.tar.gz" Download_Install "$(curl -sSfL 'https://api.github.com/repos/Prowlarr/Prowlarr/releases/latest' | mawk -F\" "/^ *\"browser_download_url\": \".*linux-core-$arch\.tar\.gz\"$/{print \$4}")" G_EXEC mv Prowlarr /opt/prowlarr fi @@ -11619,7 +11619,7 @@ _EOF_ fi # Get latest version - local fallback_url='https://releases.wikimedia.org/mediawiki/1.40/mediawiki-1.40.0.tar.gz' + local fallback_url='https://releases.wikimedia.org/mediawiki/1.41/mediawiki-1.41.1.tar.gz' Download_Install "$(curl -sSfL 'https://www.mediawiki.org/wiki/Download' | grep -o 'https://releases\.wikimedia\.org/mediawiki/[^/"]*/mediawiki-[^"]*\.tar\.gz' | head -1)" # Enable required PHP modules @@ -11647,12 +11647,17 @@ location ^~ /wiki/images { _EOF_ fi - # Reinstall: Clean install but preserve existing config file + # Reinstall: Clean install but preserve existing config and uploaded images if [[ -f '/var/www/wiki/LocalSettings.php' ]] then G_EXEC mv /var/www/wiki/LocalSettings.php mediawiki-*/ G_EXEC chmod 600 mediawiki-*/LocalSettings.php fi + if [[ -d '/var/www/wiki/images' ]] + then + G_EXEC cp -a mediawiki-*/images/{.htaccess,README} /var/www/wiki/images/ + G_EXEC cp -a /var/www/wiki/images/. mediawiki-*/images/ + fi G_EXEC chown -R www-data:www-data mediawiki-* [[ -d '/var/www/wiki' ]] && G_EXEC rm -R /var/www/wiki From b48086a320e2ab5ec3a9ff399ba4b540573e25cf Mon Sep 17 00:00:00 2001 From: MichaIng Date: Sun, 2 Jun 2024 22:45:48 +0200 Subject: [PATCH 45/61] v9.5 - Network | Assure that "ifupdown-pre.service" finishes before "ifup@.service" instances, like it does for "networking.service", by ordering it before "network-pre.target". A case has been found where udev settles very late, so that hotplug interfaces could be brought up earlier, causing race conditions with udev rules: https://github.com/MichaIng/DietPi/issues/6951#issuecomment-2143987213 --- .../etc/systemd/system/ifupdown-pre.service.d/dietpi.conf | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/rootfs/etc/systemd/system/ifupdown-pre.service.d/dietpi.conf b/rootfs/etc/systemd/system/ifupdown-pre.service.d/dietpi.conf index 2213d71b0d..9300cd2806 100644 --- a/rootfs/etc/systemd/system/ifupdown-pre.service.d/dietpi.conf +++ b/rootfs/etc/systemd/system/ifupdown-pre.service.d/dietpi.conf @@ -1,4 +1,9 @@ -# Assure that ifupdown-pre always waits for udev to settle: https://dietpi.com/forum/t/dietpi-8-2-2-wireguard-doesnt-start-after-reboot/6415/28?u=michaing +# Assure that ifupdown-pre always waits for udev to settle: https://dietpi.com/forum/t/dietpi-8-2-2-wireguard-doesnt-start-after-reboot/6415/28 +# Assure it finishes before ifup@.service instances start: https://github.com/MichaIng/DietPi/issues/6951 +[Unit] +Wants=network-pre.target +Before=network-pre.target + [Service] ExecStart= ExecStart=/bin/dash -c '[ "$CONFIGURE_INTERFACES" = "no" ] || [ ! -x /bin/udevadm ] || udevadm settle' From 311da5be4ac3bfe2855b41b4c6ef9f6a0c0325bd Mon Sep 17 00:00:00 2001 From: MichaIng Date: Sun, 2 Jun 2024 22:58:18 +0200 Subject: [PATCH 46/61] v9.5 - Radxa ZERO 3 | Onboard WiFi does now work OOTB on early ZERO 3W revisions with AP6212 WiFi chip. --- .build/images/dietpi-installer | 1 - .update/patches | 7 +++++-- CHANGELOG.txt | 1 + 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/.build/images/dietpi-installer b/.build/images/dietpi-installer index 9b6888afb7..2b07e09d2f 100755 --- a/.build/images/dietpi-installer +++ b/.build/images/dietpi-installer @@ -695,7 +695,6 @@ setenv rootuuid "true"' /boot/boot.cmd 79) (( $HW_VARIANT == 2 )) && G_CONFIG_INJECT 'fdtfile=' 'fdtfile=rockchip/rk3588s-nanopi-r6c.dtb' /boot/dietpiEnv.txt;; 85) G_CONFIG_INJECT 'fdtfile=' 'fdtfile=rockchip/rk3588s-rock-5a.dtb' /boot/dietpiEnv.txt;; 87) G_CONFIG_INJECT 'fdtfile=' 'fdtfile=rockchip/rk3566-orangepi-3b.dtb' /boot/dietpiEnv.txt;; - 90) G_CONFIG_INJECT 'fdtfile=' 'fdtfile=rockchip/rk3566-radxa-zero3.dtb' /boot/dietpiEnv.txt;; *) :;; esac case $G_HW_MODEL in diff --git a/.update/patches b/.update/patches index 67ec60037a..348747baa3 100755 --- a/.update/patches +++ b/.update/patches @@ -1639,8 +1639,11 @@ Patch_9_5() G_AGUG fi - # Flash new U-Boot on Odroid C1 - (( $G_HW_MODEL == 10 )) && /boot/dietpi/func/dietpi-set_hardware flash-u-boot-mmc + # Flash new U-Boot on Odroid C1 and Radxa ZERO 3 + (( $G_HW_MODEL == 10 || $G_HW_MODEL == 90 )) && /boot/dietpi/func/dietpi-set_hardware flash-u-boot-mmc + + # Do not hardcode device tree on Radxa ZERO 3, after flashing our new U-Boot, since it does now select the correct device tree with onboard WiFi support, based on hardware details. + (( $G_HW_MODEL == 90 )) && sed -i '/^fdtfile=rockchip/rk3566-radxa-zero3.dtb$/d' /boot/dietpiEnv.txt # Update MPD flag on Bookworm and above: https://github.com/MusicPlayerDaemon/MPD/commit/ce77b14 (( $G_DISTRO > 6 )) && [[ -f '/etc/systemd/system/mpd.service.d/dietpi.conf' ]] && G_EXEC sed -i 's/no-daemon/systemd/' /etc/systemd/system/mpd.service.d/dietpi.conf diff --git a/CHANGELOG.txt b/CHANGELOG.txt index b123e83fbf..3db854db9c 100644 --- a/CHANGELOG.txt +++ b/CHANGELOG.txt @@ -3,6 +3,7 @@ v9.5 Enhancements: - Images | New DietPi images won't contain the "gnupg" package anymore, but "gpg" only, since other features of the suite are not required for our scripts anymore. E.g. "dirmngr" for interacting with keyservers, and "gpg-agent" for key passphrase inputs are hence missing. "gpg" however prints very clear error messages about what is missing. Let us know whether you find one of those GnuPG features too essential to not be pre-installed. +- Radxa ZERO 3 | Onboard WiFi does now work OOTB on early ZERO 3W revisions with AP6212 WiFi chip. - DietPi-Software | Jellyfin: Since a while FFmpeg 6 is available for Jellyfin, but on old installs with the old FFmpeg 5 package, it is not upgraded automatically by APT. This DietPi update applies the FFmpeg upgrade to all affected systems. Many thanks to @gioxx and @WolfganP for reporting this issue: https://github.com/MichaIng/DietPi/issues/7080 - DietPi-Software | MediaWiki: Uploaded images are now preserved on reinstalls. From a3a4b3706de4f7e5015f2714d19424e7ca927200 Mon Sep 17 00:00:00 2001 From: MichaIng Date: Mon, 3 Jun 2024 01:04:20 +0200 Subject: [PATCH 47/61] v9.5 - DietPi-Software/FS_partition_resize | Sync write buffer to disk before reboots, when we just did some important updates or changes. A proper shutdown sequence implies this, but just do it as failsafe step: https://github.com/MichaIng/DietPi/issues/6827#issuecomment-2144033523 --- dietpi/dietpi-software | 2 +- rootfs/etc/systemd/system/ifupdown-pre.service.d/dietpi.conf | 2 +- rootfs/var/lib/dietpi/services/fs_partition_resize.sh | 5 +++-- 3 files changed, 5 insertions(+), 4 deletions(-) diff --git a/dietpi/dietpi-software b/dietpi/dietpi-software index 3f5bbb6996..deb6748ebe 100755 --- a/dietpi/dietpi-software +++ b/dietpi/dietpi-software @@ -14422,7 +14422,7 @@ _EOF_ # Create a persistent flag to not repeat G_AGDUG and rule out a reboot loop when kernel modules remain missing G_EXEC eval '> /boot/dietpi/.skip_distro_upgrade' # Perform a reboot if required as of missing kernel modules - G_CHECK_KERNEL || { G_DIETPI-NOTIFY 2 'A reboot is done to finalise the kernel upgrade'; reboot; } + G_CHECK_KERNEL || { G_DIETPI-NOTIFY 2 'A reboot is done to finalise the kernel upgrade'; sync; reboot; } fi # Global PW diff --git a/rootfs/etc/systemd/system/ifupdown-pre.service.d/dietpi.conf b/rootfs/etc/systemd/system/ifupdown-pre.service.d/dietpi.conf index 9300cd2806..e02554a055 100644 --- a/rootfs/etc/systemd/system/ifupdown-pre.service.d/dietpi.conf +++ b/rootfs/etc/systemd/system/ifupdown-pre.service.d/dietpi.conf @@ -1,4 +1,4 @@ -# Assure that ifupdown-pre always waits for udev to settle: https://dietpi.com/forum/t/dietpi-8-2-2-wireguard-doesnt-start-after-reboot/6415/28 +# Assure that ifupdown-pre always waits for udev to settle: https://dietpi.com/forum/t/6415/28 # Assure it finishes before ifup@.service instances start: https://github.com/MichaIng/DietPi/issues/6951 [Unit] Wants=network-pre.target diff --git a/rootfs/var/lib/dietpi/services/fs_partition_resize.sh b/rootfs/var/lib/dietpi/services/fs_partition_resize.sh index f99f7d913f..cf74b97788 100755 --- a/rootfs/var/lib/dietpi/services/fs_partition_resize.sh +++ b/rootfs/var/lib/dietpi/services/fs_partition_resize.sh @@ -9,6 +9,7 @@ > /dietpi_skip_partition_resize systemctl enable dietpi-fs_partition_resize echo '[ INFO ] Rebooting to load the new partition table' + sync reboot exit 0 } @@ -117,7 +118,7 @@ # Maximise root filesystem if type is supported case $ROOT_FSTYPE in - 'ext'[234]) resize2fs "$ROOT_DEV" || reboot;; # Reboot if resizing fails: https://github.com/MichaIng/DietPi/issues/6149 + 'ext'[234]) resize2fs "$ROOT_DEV" || REBOOT=1;; # Reboot if resizing fails: https://github.com/MichaIng/DietPi/issues/6149 'f2fs') mount -o remount,ro / resize.f2fs "$ROOT_DEV" @@ -131,7 +132,7 @@ esac # Reboot if needed - (( $REBOOT )) && reboot + (( $REBOOT )) && { sync; reboot; } exit "$EXIT_CODE" } From f324d763ce890f2cbf53b8ae7f47c186b4f94de7 Mon Sep 17 00:00:00 2001 From: MichaIng Date: Mon, 3 Jun 2024 16:44:06 +0200 Subject: [PATCH 48/61] v9.5 - NanoPi NEO | Resolved an issue where LEDs of this SBC could not be configured, due to a conflicting kernel patch. Many thanks to @mhjessen for reporting this issue: https://github.com/MichaIng/DietPi/issues/5401 --- CHANGELOG.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.txt b/CHANGELOG.txt index 3db854db9c..4d6276dd06 100644 --- a/CHANGELOG.txt +++ b/CHANGELOG.txt @@ -10,6 +10,7 @@ Enhancements: Bug fixes: - Odroid C1/C2 | Resolved an issue on both SBCs where reboots could hang and a power cycle was required to get the device back up. Many thanks to @yandritos, @gociii and others for reporting this issue, and @gitmeister for providing the fix for Odroid C2: https://github.com/MichaIng/DietPi/issues/5414, https://github.com/MichaIng/DietPi/issues/6332 - Orange Pi Zero 2W | Resolved an issue where the onboard Ethernet adapter did not work. +- NanoPi NEO | Resolved an issue where LEDs of this SBC could not be configured, due to a conflicting kernel patch. Many thanks to @mhjessen for reporting this issue: https://github.com/MichaIng/DietPi/issues/5401 - DietPi-Config | Resolved an issue where Advanced Options were not accessible on some SBCs. Many thanks to @thuehlinger for reporting this issue: https://github.com/MichaIng/DietPi/issues/6663#issuecomment-2108351878 - DietPi-Software | Snapcast Server: Resolved on issue where on RISC-V systems, the web interface was not available, since it is not included in the "snapserver" package from Debian. Many thanks to @hllhll for reporting this issue: https://github.com/MichaIng/DietPi/issues/7073 - DietPi-Software | Snapcast Server: Resolved an issue where on Bookworm systems, which installed the Snapcast Server before DietPi v9.4 and reinstalled it afterwards, the server failed to start due to a permissions issue, since the services of both packages use different users. Many thanks to @hllhll for reporting this issue: https://github.com/MichaIng/DietPi/issues/7073 From 9b2d8c16d6c1446ba7045266b24d7f0a48c67f97 Mon Sep 17 00:00:00 2001 From: MichaIng Date: Mon, 3 Jun 2024 17:18:26 +0200 Subject: [PATCH 49/61] v9.5 - RC up --- .update/version | 2 +- dietpi/func/dietpi-globals | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.update/version b/.update/version index 35605ae2d5..c828917a5c 100644 --- a/.update/version +++ b/.update/version @@ -3,7 +3,7 @@ # Available DietPi version G_REMOTE_VERSION_CORE=9 G_REMOTE_VERSION_SUB=5 -G_REMOTE_VERSION_RC=-1 +G_REMOTE_VERSION_RC=0 # Minimum DietPi version to allow update G_MIN_VERSION_CORE=7 G_MIN_VERSION_SUB=0 diff --git a/dietpi/func/dietpi-globals b/dietpi/func/dietpi-globals index 29530bd360..f67adf1ab2 100644 --- a/dietpi/func/dietpi-globals +++ b/dietpi/func/dietpi-globals @@ -55,7 +55,7 @@ # - Assign defaults/code version as fallback [[ $G_DIETPI_VERSION_CORE ]] || G_DIETPI_VERSION_CORE=9 [[ $G_DIETPI_VERSION_SUB ]] || G_DIETPI_VERSION_SUB=5 - [[ $G_DIETPI_VERSION_RC ]] || G_DIETPI_VERSION_RC=-1 + [[ $G_DIETPI_VERSION_RC ]] || G_DIETPI_VERSION_RC=0 [[ $G_GITBRANCH ]] || G_GITBRANCH='master' [[ $G_GITOWNER ]] || G_GITOWNER='MichaIng' # - Save current version and Git branch From 67a382df4773c97aa0f77cdd7be956872c22e5e2 Mon Sep 17 00:00:00 2001 From: Nils <961151+jcnils@users.noreply.github.com> Date: Mon, 3 Jun 2024 17:50:15 +0000 Subject: [PATCH 50/61] v9.5 (#7071) - Forgejo | This Gitea fork has been added to our software library. Read about the background of this fork here: https://forgejo.org/2022-12-15-hello-forgejo/. Many thanks to @Cs137 for requesting and @jcnils for implementing this software option: https://github.com/MichaIng/DietPi/discussions/6133, https://github.com/MichaIng/DietPi/pull/7071 --- .github/workflows/dietpi-software.bash | 5 +- .meta/dietpi-survey_report | 1 + CHANGELOG.txt | 3 ++ README.md | 1 + dietpi/dietpi-services | 1 + dietpi/dietpi-software | 71 +++++++++++++++++++++++++- 6 files changed, 78 insertions(+), 4 deletions(-) diff --git a/.github/workflows/dietpi-software.bash b/.github/workflows/dietpi-software.bash index d735537fa5..21d03629b6 100644 --- a/.github/workflows/dietpi-software.bash +++ b/.github/workflows/dietpi-software.bash @@ -88,7 +88,7 @@ Process_Software() 7) aCOMMANDS[i]='ffmpeg -version';; 9) aCOMMANDS[i]='node -v';; #16) aSERVICES[i]='microblog-pub' aTCP[i]='8007';; Service enters a CPU-intense internal error loop until it has been configured interactively via "microblog-pub configure", hence it is not enabled and started anymore after install but instead as part of "microblog-pub configure" - 17) aCOMMANDS[i]='git -v';; + 17) aCOMMANDS[i]='git --version';; # from Bookworm on, the shorthand "-v" is supported 28) aSERVICES[i]='vncserver' aTCP[i]='5901';; 29) aSERVICES[i]='xrdp' aTCP[i]='3389';; 30) aSERVICES[i]='nxserver' aTCP[i]='4000';; @@ -197,6 +197,7 @@ Process_Software() 172) aSERVICES[i]='wg-quick@wg0' aUDP[i]='51820';; 174) aCOMMANDS[i]='gimp -v';; 176) aSERVICES[i]='mycroft';; + 177) aSERVICES[i]='forgejo' aTCP[i]='3000'; (( $arch < 10 )) && aDELAY[i]=30;; 178) aSERVICES[i]='jellyfin' aTCP[i]='8097'; [[ $arch == [23] ]] && aDELAY[i]=300;; # jellyfin[9983]: arm-binfmt-P: ../../target/arm/translate.c:9659: thumb_tr_translate_insn: Assertion `(dc->base.pc_next & 1) == 0' failed. ### jellyfin[9983]: qemu: uncaught target signal 6 (Aborted) - core dumped ### about 5 times 179) aSERVICES[i]='komga' aTCP[i]='2037'; (( $arch == 10 )) && aDELAY[i]=30; (( $arch < 10 )) && aDELAY[i]=300;; 180) aSERVICES[i]='bazarr' aTCP[i]='6767'; (( $arch == 10 )) && aDELAY[i]=30; (( $arch < 10 )) && aDELAY[i]=90;; @@ -244,7 +245,7 @@ do 8|33|131|179|206) Process_Software 196;; 32|148|119) Process_Software 128;; 129) Process_Software 88 89 128 webserver;; - 49|165) Process_Software 88;; + 49|165|177) Process_Software 0 17 88;; #61) Process_Software 60;; # Cannot be installed in CI 125) Process_Software 194;; #86|134|185) Process_Software 162;; # Docker does not start in systemd containers (without dedicated network) diff --git a/.meta/dietpi-survey_report b/.meta/dietpi-survey_report index 01d059b89b..8328fd9b53 100755 --- a/.meta/dietpi-survey_report +++ b/.meta/dietpi-survey_report @@ -719,6 +719,7 @@ shopt -s extglob aSOFTWARE_NAME9_4[i]=${aSOFTWARE_NAME9_3[i]} aSOFTWARE_NAME9_5[i]=${aSOFTWARE_NAME9_4[i]} done + aSOFTWARE_NAME9_5[177]='Forgejo' # Pre-create software counter array so that we can see also software (available in newest version) with 0 installs for i in "${aSOFTWARE_NAME9_5[@]}" diff --git a/CHANGELOG.txt b/CHANGELOG.txt index 4d6276dd06..f54024ac35 100644 --- a/CHANGELOG.txt +++ b/CHANGELOG.txt @@ -1,6 +1,9 @@ v9.5 (2024-06-08) +New software: +- Forgejo | This Gitea fork has been added to our software library. Read about the background of this fork here: https://forgejo.org/2022-12-15-hello-forgejo/. Many thanks to @Cs137 for requesting and @jcnils for implementing this software option: https://github.com/MichaIng/DietPi/discussions/6133, https://github.com/MichaIng/DietPi/pull/7071 + Enhancements: - Images | New DietPi images won't contain the "gnupg" package anymore, but "gpg" only, since other features of the suite are not required for our scripts anymore. E.g. "dirmngr" for interacting with keyservers, and "gpg-agent" for key passphrase inputs are hence missing. "gpg" however prints very clear error messages about what is missing. Let us know whether you find one of those GnuPG features too essential to not be pre-installed. - Radxa ZERO 3 | Onboard WiFi does now work OOTB on early ZERO 3W revisions with AP6212 WiFi chip. diff --git a/README.md b/README.md index 68f36bb638..a6805bf5bf 100644 --- a/README.md +++ b/README.md @@ -339,6 +339,7 @@ Links to hardware and software manufacturers, sources and build instructions use - [Homebridge](https://github.com/homebridge/homebridge) - [ADS-B Feeder](https://github.com/dirkhh/adsb-feeder-image) - [Kavita](https://github.com/Kareadita/Kavita) +- [Forgejo](https://codeberg.org/forgejo/forgejo) --- diff --git a/dietpi/dietpi-services b/dietpi/dietpi-services index b597d02137..07d9a13610 100755 --- a/dietpi/dietpi-services +++ b/dietpi/dietpi-services @@ -207,6 +207,7 @@ _EOF_ 'urbackupsrv' 'gogs' 'gitea' + 'forgejo' 'vaultwarden' 'filebrowser' diff --git a/dietpi/dietpi-software b/dietpi/dietpi-software index deb6748ebe..4cfd783433 100755 --- a/dietpi/dietpi-software +++ b/dietpi/dietpi-software @@ -806,7 +806,7 @@ Available commands: aSOFTWARE_CATX[$software_id]=4 aSOFTWARE_DOCS[$software_id]='https://dietpi.com/docs/software/cloud/#gogs' aSOFTWARE_DEPS[$software_id]='17 88 0' - aSOFTWARE_CONFLICTS[$software_id]='165' + aSOFTWARE_CONFLICTS[$software_id]='165 177' #------------------ software_id=50 aSOFTWARE_NAME[$software_id]='Syncthing' @@ -838,10 +838,20 @@ Available commands: aSOFTWARE_CATX[$software_id]=4 aSOFTWARE_DOCS[$software_id]='https://dietpi.com/docs/software/cloud/#gitea' aSOFTWARE_DEPS[$software_id]='17 88 0' - aSOFTWARE_CONFLICTS[$software_id]='49' + aSOFTWARE_CONFLICTS[$software_id]='49 177' # - RISC-V: Missing binary: https://github.com/go-gitea/gitea/releases aSOFTWARE_AVAIL_G_HW_ARCH[$software_id,11]=0 #------------------ + software_id=177 + aSOFTWARE_NAME[$software_id]='Forgejo' + aSOFTWARE_DESC[$software_id]='Self-hosted lightweight software forge. Fork of Gitea.' + aSOFTWARE_CATX[$software_id]=4 + aSOFTWARE_DOCS[$software_id]='https://dietpi.com/docs/software/cloud/#forgejo' + aSOFTWARE_DEPS[$software_id]='17 88 0' + aSOFTWARE_CONFLICTS[$software_id]='49 165' + # - RISC-V: Missing binary: https://codeberg.org/forgejo/forgejo/releases + aSOFTWARE_AVAIL_G_HW_ARCH[$software_id,11]=0 + #------------------ software_id=183 aSOFTWARE_NAME[$software_id]='vaultwarden' aSOFTWARE_DESC[$software_id]='Unofficial Bitwarden password manager server written in Rust' @@ -10630,6 +10640,52 @@ _EOF_ [[ -f '/mnt/dietpi_userdata/gitea/custom/conf/app.ini' ]] && G_CONFIG_INJECT 'RUN_USER[[:blank:]]' 'RUN_USER = gitea' /mnt/dietpi_userdata/gitea/custom/conf/app.ini fi + if To_Install 177 forgejo # Forgejo + then + # ARMv7: Dedicated binaries are not provided: https://codeberg.org/forgejo/forgejo/releases + case $G_HW_ARCH in + 3) local arch='arm64';; + 10) local arch='amd64';; + *) local arch='arm-6';; + esac + + local fallback_url="https://codeberg.org/forgejo/forgejo/releases/download/v7.0.3/forgejo-7.0.3-linux-$arch.xz" + Download_Install "$(curl -sSfL 'https://codeberg.org/api/v1/repos/forgejo/forgejo/releases/latest' | mawk -v RS=, -F\" "/^\"browser_download_url\":\".*-linux-$arch\.xz\"/{print \$4;exit}")" /mnt/dietpi_userdata/forgejo/forgejo + + # User + Create_User -d /mnt/dietpi_userdata/forgejo -s /bin/dash forgejo + + # Permissions + G_EXEC chown -R forgejo:forgejo /mnt/dietpi_userdata/forgejo + G_EXEC chmod +x /mnt/dietpi_userdata/forgejo/forgejo + + # Database + /boot/dietpi/func/create_mysql_db forgejo forgejo "$GLOBAL_PW" + + # Service + cat << '_EOF_' > /etc/systemd/system/forgejo.service +[Unit] +Description=Forgejo (DietPi) +Wants=network-online.target +After=network-online.target mariadb.service + +[Service] +User=forgejo +LogsDirectory=forgejo +WorkingDirectory=/mnt/dietpi_userdata/forgejo +ExecStart=/mnt/dietpi_userdata/forgejo/forgejo web + +# Hardening +ProtectSystem=full +PrivateDevices=yes +PrivateTmp=yes +NoNewPrivileges=true + +[Install] +WantedBy=multi-user.target +_EOF_ + fi + if To_Install 163 gmediarender # GMediaRender then G_AGI gmediarender @@ -13557,6 +13613,17 @@ _EOF_ Remove_Database gitea fi + if To_Uninstall 177 # Forgejo + then + Remove_Service forgejo 1 1 + + # Data + [[ -d '/mnt/dietpi_userdata/forgejo' ]] && G_EXEC rm -R /mnt/dietpi_userdata/forgejo + [[ -d '/var/log/forgejo' ]] && G_EXEC rm -R /var/log/forgejo + + Remove_Database forgejo + fi + if To_Uninstall 166 # Audiophonics PI-SPC then Remove_Service pi-spc From 9cc51dcf17534c7fe6a5656c65f836debc313d53 Mon Sep 17 00:00:00 2001 From: MichaIng Date: Tue, 4 Jun 2024 00:53:14 +0200 Subject: [PATCH 51/61] v9.5 - CHANGELOG | Set release PR URL --- CHANGELOG.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.txt b/CHANGELOG.txt index f54024ac35..065336bfc0 100644 --- a/CHANGELOG.txt +++ b/CHANGELOG.txt @@ -21,7 +21,7 @@ Bug fixes: - DietPi-Software | Box64: Resolved an issue where an invalid build target was used on Raspberry Pi 5 with 16k page size kernel. This target was removed with latest Box64, as page size handling is now done at runtime. - DietPi-Software | Jellyfin: Resolved an issue where the intended HTTP port change could not be applied, since the network config file is not created anymore at service start. We do now pre-create a minimal one, which is complemented with defaults automatically. -As always, many smaller code performance and stability improvements, visual and spelling fixes have been done, too much to list all of them here. Check out all code changes of this release on GitHub: https://github.com/MichaIng/DietPi/pull/ADDME +As always, many smaller code performance and stability improvements, visual and spelling fixes have been done, too much to list all of them here. Check out all code changes of this release on GitHub: https://github.com/MichaIng/DietPi/pull/7098 ----------------------------------------------------------------------------------------------------------- From 43770fe202034d5dd17ab21f58fd2a76052f6530 Mon Sep 17 00:00:00 2001 From: MichaIng Date: Tue, 4 Jun 2024 01:39:34 +0200 Subject: [PATCH 52/61] v9.5 - DietPi-Installer | Enhance generic kernel package detection for generic device choices, by keeping all packages which contain files below /lib/modules and /boot. --- .build/images/dietpi-installer | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.build/images/dietpi-installer b/.build/images/dietpi-installer index 2b07e09d2f..abebfe898e 100755 --- a/.build/images/dietpi-installer +++ b/.build/images/dietpi-installer @@ -1426,10 +1426,10 @@ _EOF_ G_EXEC rm -f /{initrd.img,vmlinuz}{,.old} fi - # Generic kernel + device tree + U-Boot package auto detect + initramfs-tools + # Generic kernel, device tree, bootloader and firmware package auto detect + initramfs-tools elif (( $G_HW_MODEL != 75 )) then - mapfile -t apackages < <(dpkg-query -Wf '${Package}\n' | grep -E '^linux-(image|dtb|u-boot)-|^u-boot') + mapfile -t apackages < <({ dpkg-query -Wf '${Package}\n' | grep -E '^linux-(image|dtb)|u-boot|bootloader|firmware'; dpkg-query -S /{lib/modules,boot}/* 2> /dev/null | sed 's/:.*//;s/, /\n/g'; } | sort -u) [[ ${apackages[0]} ]] || G_DIETPI-NOTIFY 2 'Unable to find kernel packages for installation. Assuming non-APT/.deb kernel installation.' G_AGI initramfs-tools "${apackages[@]}" unset -v apackages From f37420f5b1645299017fd44bf0a9ba922f1fbd39 Mon Sep 17 00:00:00 2001 From: MichaIng Date: Tue, 4 Jun 2024 21:33:12 +0200 Subject: [PATCH 53/61] v9.5 - DietPi-Software | Update fallback URLs - DietPi-Build | Align pre-installed packages with DietPi-Installer --- .build/images/dietpi-build | 5 +++-- dietpi/dietpi-software | 4 ++-- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/.build/images/dietpi-build b/.build/images/dietpi-build index 3442571a38..ee1e83efef 100755 --- a/.build/images/dietpi-build +++ b/.build/images/dietpi-build @@ -388,9 +388,10 @@ G_EXEC mount -o X-mount.mkdir -t tmpfs tmpfs rootfs/run G_EXEC mount -o X-mount.mkdir -t tmpfs tmpfs rootfs/var/cache/apt G_EXEC mount -o X-mount.mkdir -t tmpfs tmpfs rootfs/var/lib/apt/lists G_EXEC mount -o X-mount.mkdir -t tmpfs tmpfs rootfs/var/log -packages='apt,bash-completion,bzip2,ca-certificates,cron,curl,fdisk,gnupg,htop,iputils-ping,locales,nano,p7zip,parted,procps,psmisc,sudo,systemd-sysv,tzdata,udev,unzip,wget,whiptail,' +packages='apt,bash-completion,bzip2,ca-certificates,cron,curl,fdisk,gpg,htop,iputils-ping,locales,mawk,nano,parted,procps,psmisc,sudo,systemd-sysv,tzdata,udev,unzip,wget,whiptail,' +(( $DISTRO > 7 )) && apackages+='7zip,' || apackages+='p7zip,' [[ $HW_MODEL == 75 ]] && packages+='iproute2' || packages+='console-setup,dropbear,ethtool,fake-hwclock,ifupdown,isc-dhcp-client,kmod,rfkill,systemd-timesyncd,usbutils' -#G_EXEC_POST_FUNC(){ [[ $exit_code == 0 ]] || cat rootfs/debootstrap/debootstrap.log; } +# - "--skip=check/empty" to ignore /etc/fstab, boot and tmpfs mounts we added above G_EXEC_OUTPUT=1 G_EXEC mmdebstrap --skip=check/empty --variant=minbase --include="$packages" --arch="$parch" --keyring="$keyring" "$distro" ./rootfs "$repo" G_EXEC umount rootfs/dev rootfs/run rootfs/var/cache/apt rootfs/var/lib/apt/lists rootfs/var/log diff --git a/dietpi/dietpi-software b/dietpi/dietpi-software index 4cfd783433..68ec263c25 100755 --- a/dietpi/dietpi-software +++ b/dietpi/dietpi-software @@ -8925,7 +8925,7 @@ _EOF_ *) local arch='arm';; esac - local fallback_url="https://github.com/syncthing/syncthing/releases/download/v1.27.7/syncthing-linux-$arch-v1.27.7.tar.gz" + local fallback_url="https://github.com/syncthing/syncthing/releases/download/v1.27.8/syncthing-linux-$arch-v1.27.8.tar.gz" Download_Install "$(curl -sSfL 'https://api.github.com/repos/syncthing/syncthing/releases/latest' | mawk -F\" "/\"browser_download_url\": .*\/syncthing-linux-$arch-[^\"\/]*\.tar\.gz\"/{print \$4}")" G_EXEC mv syncthing-* /opt/syncthing fi @@ -11177,7 +11177,7 @@ _EOF_ # v3 drops PHP 7.4 support: https://github.com/TasmoAdmin/TasmoAdmin/releases/tag/v3.0.0 if (( $G_DISTRO > 6 )) then - local fallback_url='https://github.com/TasmoAdmin/TasmoAdmin/releases/download/v4.1.0/tasmoadmin_v4.1.0.tar.gz' + local fallback_url='https://github.com/TasmoAdmin/TasmoAdmin/releases/download/v4.1.1/tasmoadmin_v4.1.1.tar.gz' Download_Install "$(curl -sSfL 'https://api.github.com/repos/TasmoAdmin/TasmoAdmin/releases/latest' | mawk -F\" '/^ *"browser_download_url": ".*\/tasmoadmin_v[^"\/]*\.tar\.gz"$/{print $4}')" else Download_Install 'https://github.com/TasmoAdmin/TasmoAdmin/releases/download/v2.4.2/tasmoadmin_v2.4.2.tar.gz' From 6c04c86d70d22e827a8290c5c6177dfeb8d93cc7 Mon Sep 17 00:00:00 2001 From: MichaIng Date: Tue, 4 Jun 2024 21:40:07 +0200 Subject: [PATCH 54/61] v9.5 - DietPi-Build | Fix variable name --- .build/images/dietpi-build | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.build/images/dietpi-build b/.build/images/dietpi-build index ee1e83efef..fb4c2ab2ab 100755 --- a/.build/images/dietpi-build +++ b/.build/images/dietpi-build @@ -389,7 +389,7 @@ G_EXEC mount -o X-mount.mkdir -t tmpfs tmpfs rootfs/var/cache/apt G_EXEC mount -o X-mount.mkdir -t tmpfs tmpfs rootfs/var/lib/apt/lists G_EXEC mount -o X-mount.mkdir -t tmpfs tmpfs rootfs/var/log packages='apt,bash-completion,bzip2,ca-certificates,cron,curl,fdisk,gpg,htop,iputils-ping,locales,mawk,nano,parted,procps,psmisc,sudo,systemd-sysv,tzdata,udev,unzip,wget,whiptail,' -(( $DISTRO > 7 )) && apackages+='7zip,' || apackages+='p7zip,' +(( $DISTRO > 7 )) && packages+='7zip,' || packages+='p7zip,' [[ $HW_MODEL == 75 ]] && packages+='iproute2' || packages+='console-setup,dropbear,ethtool,fake-hwclock,ifupdown,isc-dhcp-client,kmod,rfkill,systemd-timesyncd,usbutils' # - "--skip=check/empty" to ignore /etc/fstab, boot and tmpfs mounts we added above G_EXEC_OUTPUT=1 G_EXEC mmdebstrap --skip=check/empty --variant=minbase --include="$packages" --arch="$parch" --keyring="$keyring" "$distro" ./rootfs "$repo" From d2b00792f54475b2b8f7258ddb2c237f1bde647c Mon Sep 17 00:00:00 2001 From: MichaIng Date: Sat, 8 Jun 2024 20:54:32 +0200 Subject: [PATCH 55/61] v9.5 - DietPi-Drive_Manager | Do not set APM anymore. It is not supported often by modern HDDs, and some SSDs instead weirdly support it, where APM 127 leads to lower transfer speeds, which is of course even for energy usage total nonsense (longer transfer=activity times). The HDDs I can test, spin down as well when leaving APM untouched, when using "force_spindown_time" only. APM < 128 instead sometimes overrides the spindown time, and spins down the disk much faster, which again can have negative impact on the life time of spinning disk. Generally the effect of APM is mostly undefined, often negative, in this regards reasonably not supported by modern drives, hence we should not touch it. --- .build/images/dietpi-installer | 4 ++-- dietpi/dietpi-drive_manager | 34 ++++++++++++++-------------------- dietpi/dietpi-software | 2 +- 3 files changed, 17 insertions(+), 23 deletions(-) diff --git a/.build/images/dietpi-installer b/.build/images/dietpi-installer index abebfe898e..71d6d33933 100755 --- a/.build/images/dietpi-installer +++ b/.build/images/dietpi-installer @@ -2026,8 +2026,8 @@ _EOF_' if (( $G_HW_MODEL != 20 && $G_HW_MODEL != 75 )) then G_EXEC_DESC='Configuring hdparm' - # Since Debian Bullseye, spindown_time is not applied if APM is not supported by the drive. force_spindown_time is required to override that. - G_EXEC eval 'echo -e '\''apm = 127\nforce_spindown_time = 120'\'' > /etc/hdparm.conf' + # Spin down disks after 10 minutes by default, regardless whether they support APM (spindown_time vs force_spindown_time): https://manpages.debian.org/hdparm#S + G_CONFIG_INJECT 'force_spindown_time[[:blank:]=]' 'force_spindown_time = 120' /etc/hdparm.conf fi # RPi diff --git a/dietpi/dietpi-drive_manager b/dietpi/dietpi-drive_manager index 8a720cc14c..7a18cd438f 100755 --- a/dietpi/dietpi-drive_manager +++ b/dietpi/dietpi-drive_manager @@ -893,11 +893,10 @@ Do you wish to ignore this warning, and, mount the drive regardless?" || return TARGETMENUID=3 # Add network drive menu - elif [[ $G_WHIP_RETURNED_VALUE == 'Idle Spindown' ]]; then - - local apm=127 # Hardcode to highest value that still allows spin-down + elif [[ $G_WHIP_RETURNED_VALUE == 'Idle Spindown' ]] + then local current_spindown= - [[ -f '/etc/hdparm.conf' ]] && current_spindown=$(mawk '/spindown_time/{print $3;exit}' /etc/hdparm.conf) + [[ -f '/etc/hdparm.conf' ]] && current_spindown=$(sed -n '/^[[:blank:]]*force_spindown_time[[:blank:]=]/{s/^[^=]*=[[:blank:]]*//p;q}' /etc/hdparm.conf) disable_error=1 G_CHECK_VALIDINT "$current_spindown" 0 251 && G_WHIP_DEFAULT_ITEM=$current_spindown || G_WHIP_DEFAULT_ITEM=241 G_WHIP_MENU_ARRAY=('0' ': Disabled') @@ -905,35 +904,30 @@ Do you wish to ignore this warning, and, mount the drive regardless?" || return local minutes seconds text for i in {12..251} do - if (( $i < 241 )); then - + if (( $i < 241 )) + then minutes=$(( $i * 5 / 60 )) seconds=$(( $i * 5 % 60 )) - text="$minutes Minute" (( $minutes > 1 )) && text+='s' (( $seconds )) && text+=", $seconds Seconds" - else - text=" $(( ( $i - 240 ) * 30 )) Minutes" - fi G_WHIP_MENU_ARRAY+=("$i" ": $text") done - if G_WHIP_MENU 'Please select an idle duration of time, before each drive is powered down: - - This will be applied to all drives on the system - - Not all drives support the feature of "hdparm" and visa versa. End results may vary. - - You can check status with "hdparm -C [sh]d[a-z]"'; then - - G_DIETPI-NOTIFY 2 'Applying spindown timeout to all drives now...' - hdparm -B "$apm" -S "$G_WHIP_RETURNED_VALUE" /dev/[sh]d[a-z] - - G_DIETPI-NOTIFY 2 'Applying spindown timeout to /etc/hdparm.conf to be effective from next boot on...' - echo -e "apm = $apm\nforce_spindown_time = $G_WHIP_RETURNED_VALUE" > /etc/hdparm.conf + if G_WHIP_MENU 'Please select an idle duration of time, before drives are powered down: + - This will be applied to all drives on the system. + - Not all drives support the features of "hdparm". End results may vary. + - You can check status with "hdparm -C /dev/[sh]d[a-z]"' + then + G_DIETPI-NOTIFY 2 'Applying spindown timeout to all drives now ...' + G_EXEC_NOHALT=1 G_EXEC hdparm -S "$G_WHIP_RETURNED_VALUE" /dev/[sh]d[a-z] + G_DIETPI-NOTIFY 2 'Applying spindown timeout to /etc/hdparm.conf as default from next boot on ...' + G_CONFIG_INJECT 'force_spindown_time[[:blank:]=]' "force_spindown_time = $G_WHIP_RETURNED_VALUE" /etc/hdparm.conf fi # Edit drive diff --git a/dietpi/dietpi-software b/dietpi/dietpi-software index 68ec263c25..6dfde14245 100755 --- a/dietpi/dietpi-software +++ b/dietpi/dietpi-software @@ -7051,7 +7051,7 @@ _EOF_ aDEPS=() else local version=$(curl -sSfL 'https://api.github.com/repos/FreshRSS/FreshRSS/releases/latest' | mawk -F\" '/^ *"tag_name": "[^"]*",$/{print $4}') - [[ $version ]] || { version='1.24.0'; G_DIETPI-NOTIFY 1 "Automatic latest FreshRSS version detection failed. Version \"$version\" will be installed as fallback, but a newer version might be available. Please report this at: https://github.com/MichaIng/DietPi/issues"; } + [[ $version ]] || { version='1.24.1'; G_DIETPI-NOTIFY 1 "Automatic latest FreshRSS version detection failed. Version \"$version\" will be installed as fallback, but a newer version might be available. Please report this at: https://github.com/MichaIng/DietPi/issues"; } Download_Install "https://github.com/FreshRSS/FreshRSS/archive/$version.tar.gz" G_EXEC mv "FreshRSS-$version" /opt/FreshRSS fi From 475d5814a853112590a495a698ea9d1c34419e0a Mon Sep 17 00:00:00 2001 From: MichaIng Date: Sat, 8 Jun 2024 20:55:07 +0200 Subject: [PATCH 56/61] v9.5 - RC up --- .update/version | 2 +- dietpi/func/dietpi-globals | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.update/version b/.update/version index c828917a5c..3058b8362e 100644 --- a/.update/version +++ b/.update/version @@ -3,7 +3,7 @@ # Available DietPi version G_REMOTE_VERSION_CORE=9 G_REMOTE_VERSION_SUB=5 -G_REMOTE_VERSION_RC=0 +G_REMOTE_VERSION_RC=1 # Minimum DietPi version to allow update G_MIN_VERSION_CORE=7 G_MIN_VERSION_SUB=0 diff --git a/dietpi/func/dietpi-globals b/dietpi/func/dietpi-globals index f67adf1ab2..06a70c3942 100644 --- a/dietpi/func/dietpi-globals +++ b/dietpi/func/dietpi-globals @@ -55,7 +55,7 @@ # - Assign defaults/code version as fallback [[ $G_DIETPI_VERSION_CORE ]] || G_DIETPI_VERSION_CORE=9 [[ $G_DIETPI_VERSION_SUB ]] || G_DIETPI_VERSION_SUB=5 - [[ $G_DIETPI_VERSION_RC ]] || G_DIETPI_VERSION_RC=0 + [[ $G_DIETPI_VERSION_RC ]] || G_DIETPI_VERSION_RC=1 [[ $G_GITBRANCH ]] || G_GITBRANCH='master' [[ $G_GITOWNER ]] || G_GITOWNER='MichaIng' # - Save current version and Git branch From 486a2d4838957b5f35925ced17f77400396978bc Mon Sep 17 00:00:00 2001 From: MichaIng Date: Sat, 8 Jun 2024 21:14:41 +0200 Subject: [PATCH 57/61] v9.5 - DietPi-Build | Use systemd for binfmt support and assure QEMU configs are registered --- .build/images/dietpi-build | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/.build/images/dietpi-build b/.build/images/dietpi-build index fb4c2ab2ab..72b10d7ef1 100755 --- a/.build/images/dietpi-build +++ b/.build/images/dietpi-build @@ -223,13 +223,16 @@ fi (( $efi_size )) || [[ $boot_size -gt 0 && $boot_fstype == 'fat'* ]] && apackages+=('dosfstools') # Emulation support in case of incompatible architecture -(( ( $G_HW_ARCH < 10 && $G_HW_ARCH < $HW_ARCH ) || ( ( $G_HW_ARCH == 10 || $G_HW_ARCH == 11 ) && $G_HW_ARCH != $HW_ARCH ) )) && apackages+=('qemu-user-static' 'binfmt-support') +(( ( $G_HW_ARCH < 10 && $G_HW_ARCH < $HW_ARCH ) || ( ( $G_HW_ARCH == 10 || $G_HW_ARCH == 11 ) && $G_HW_ARCH != $HW_ARCH ) )) && apackages+=('qemu-user-static') # Virtual machine disk conversion [[ $VMTYPE && $VMTYPE != 'raw' ]] && apackages+=('qemu-utils') G_AG_CHECK_INSTALL_PREREQ parted mmdebstrap dbus systemd-container xz-utils "${apackages[@]}" +# Register QEMU binfmt configs +dpkg-query -s 'qemu-user-static' &> /dev/null && G_EXEC systemctl restart systemd-binfmt + # Bootstrap archive keyring if missing if [[ ! -f $keyring ]] then From 8fad3e1f028a8f2dcf07f8035a19fa6a3ee15668 Mon Sep 17 00:00:00 2001 From: MichaIng Date: Sat, 8 Jun 2024 21:20:16 +0200 Subject: [PATCH 58/61] v9.5 - CI | Use systemd-binfmt in all cases. No idea why we used "binfmt-support" in the first place --- .build/software/Amiberry/container_build.bash | 5 ++++- .build/software/dietpi-software-build.bash | 5 ++++- .github/workflows/dietpi-software.bash | 5 ++++- 3 files changed, 12 insertions(+), 3 deletions(-) diff --git a/.build/software/Amiberry/container_build.bash b/.build/software/Amiberry/container_build.bash index 7b88ee0014..18b95af376 100755 --- a/.build/software/Amiberry/container_build.bash +++ b/.build/software/Amiberry/container_build.bash @@ -59,9 +59,12 @@ image="DietPi_Container-$image.img" # Dependencies ########################################## apackages=('xz-utils' 'parted' 'fdisk' 'systemd-container') -(( $G_HW_ARCH == $arch || ( $G_HW_ARCH < 10 && $G_HW_ARCH > $arch ) )) || apackages+=('qemu-user-static' 'binfmt-support') +(( $G_HW_ARCH == $arch || ( $G_HW_ARCH < 10 && $G_HW_ARCH > $arch ) )) || apackages+=('qemu-user-static') G_AG_CHECK_INSTALL_PREREQ "${apackages[@]}" +# Register QEMU binfmt configs +dpkg-query -s 'qemu-user-static' &> /dev/null && G_EXEC systemctl restart systemd-binfmt + ########################################## # Prepare container ########################################## diff --git a/.build/software/dietpi-software-build.bash b/.build/software/dietpi-software-build.bash index 922283360b..de37c10ab5 100644 --- a/.build/software/dietpi-software-build.bash +++ b/.build/software/dietpi-software-build.bash @@ -63,9 +63,12 @@ image="DietPi_Container-$image.img" # Dependencies ########################################## apackages=('xz-utils' 'parted' 'fdisk' 'systemd-container') -(( $G_HW_ARCH == $arch || ( $G_HW_ARCH < 10 && $G_HW_ARCH > $arch ) )) || apackages+=('qemu-user-static' 'binfmt-support') +(( $G_HW_ARCH == $arch || ( $G_HW_ARCH < 10 && $G_HW_ARCH > $arch ) )) || apackages+=('qemu-user-static') G_AG_CHECK_INSTALL_PREREQ "${apackages[@]}" +# Register QEMU binfmt configs +dpkg-query -s 'qemu-user-static' &> /dev/null && G_EXEC systemctl restart systemd-binfmt + ########################################## # Prepare container ########################################## diff --git a/.github/workflows/dietpi-software.bash b/.github/workflows/dietpi-software.bash index 21d03629b6..518c360924 100644 --- a/.github/workflows/dietpi-software.bash +++ b/.github/workflows/dietpi-software.bash @@ -260,9 +260,12 @@ done # Dependencies ########################################## apackages=('xz-utils' 'parted' 'fdisk' 'systemd-container') -(( $G_HW_ARCH == $arch || ( $G_HW_ARCH < 10 && $G_HW_ARCH > $arch ) )) || apackages+=('qemu-user-static' 'binfmt-support') +(( $G_HW_ARCH == $arch || ( $G_HW_ARCH < 10 && $G_HW_ARCH > $arch ) )) || apackages+=('qemu-user-static') G_AG_CHECK_INSTALL_PREREQ "${apackages[@]}" +# Register QEMU binfmt configs +dpkg-query -s 'qemu-user-static' &> /dev/null && G_EXEC systemctl restart systemd-binfmt + ########################################## # Prepare container ########################################## From a4b124848b0ada6587b9d6306b90285946f5bfcd Mon Sep 17 00:00:00 2001 From: MichaIng Date: Sun, 9 Jun 2024 18:22:45 +0200 Subject: [PATCH 59/61] v9.5 - Quartz64/Star64/VisionFive 2 | dm-crypt/LUCS support has been added to the kernel for those two SBCs. Many thanks to @gxsw for reporting this missing feature: https://github.com/MichaIng/DietPi/issues/7091 --- .build/images/Quartz64/quartz64_defconfig | 1 + CHANGELOG.txt | 1 + dietpi/dietpi-software | 2 +- 3 files changed, 3 insertions(+), 1 deletion(-) diff --git a/.build/images/Quartz64/quartz64_defconfig b/.build/images/Quartz64/quartz64_defconfig index 64a28852d8..adea7ecf51 100644 --- a/.build/images/Quartz64/quartz64_defconfig +++ b/.build/images/Quartz64/quartz64_defconfig @@ -158,6 +158,7 @@ CONFIG_DEVTMPFS=y CONFIG_DEVTMPFS_MOUNT=y CONFIG_DMADEVICES=y CONFIG_DMA_CMA=y +CONFIG_DM_CRYPT=m CONFIG_DM_MIRROR=m CONFIG_DM_ZERO=m CONFIG_DRM=y diff --git a/CHANGELOG.txt b/CHANGELOG.txt index 065336bfc0..2dfae20de8 100644 --- a/CHANGELOG.txt +++ b/CHANGELOG.txt @@ -7,6 +7,7 @@ New software: Enhancements: - Images | New DietPi images won't contain the "gnupg" package anymore, but "gpg" only, since other features of the suite are not required for our scripts anymore. E.g. "dirmngr" for interacting with keyservers, and "gpg-agent" for key passphrase inputs are hence missing. "gpg" however prints very clear error messages about what is missing. Let us know whether you find one of those GnuPG features too essential to not be pre-installed. - Radxa ZERO 3 | Onboard WiFi does now work OOTB on early ZERO 3W revisions with AP6212 WiFi chip. +- Quartz64/Star64/VisionFive 2 | dm-crypt/LUCS support has been added to the kernel for those two SBCs. Many thanks to @gxsw for reporting this missing feature: https://github.com/MichaIng/DietPi/issues/7091 - DietPi-Software | Jellyfin: Since a while FFmpeg 6 is available for Jellyfin, but on old installs with the old FFmpeg 5 package, it is not upgraded automatically by APT. This DietPi update applies the FFmpeg upgrade to all affected systems. Many thanks to @gioxx and @WolfganP for reporting this issue: https://github.com/MichaIng/DietPi/issues/7080 - DietPi-Software | MediaWiki: Uploaded images are now preserved on reinstalls. diff --git a/dietpi/dietpi-software b/dietpi/dietpi-software index 6dfde14245..c723ca8201 100755 --- a/dietpi/dietpi-software +++ b/dietpi/dietpi-software @@ -10033,7 +10033,7 @@ _EOF_ *) local arch='x64';; esac - local fallback_url="https://github.com/Readarr/Readarr/releases/download/v0.3.27.2538/Readarr.develop.0.3.27.2538.linux-core-$arch.tar.gz" + local fallback_url="https://github.com/Readarr/Readarr/releases/download/v0.3.28.2554/Readarr.develop.0.3.28.2554.linux-core-$arch.tar.gz" Download_Install "$(curl -sSfL 'https://api.github.com/repos/Readarr/Readarr/releases' | mawk -F\" "/^ *\"browser_download_url\": \".*linux-core-$arch\.tar\.gz\"$/{print \$4}" | head -1)" G_EXEC mv Readarr /opt/readarr fi From 7582822bce888924208bd2f824a08fb24c3011db Mon Sep 17 00:00:00 2001 From: MichaIng Date: Sun, 9 Jun 2024 18:33:03 +0200 Subject: [PATCH 60/61] v9.5 - DietPi-Login | Try to install ncurses-term with sudo, when logging in as non-root user: https://github.com/MichaIng/DietPi/issues/6947 --- rootfs/etc/bashrc.d/dietpi.bash | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/rootfs/etc/bashrc.d/dietpi.bash b/rootfs/etc/bashrc.d/dietpi.bash index 16d90c0f86..e3512dd2b0 100644 --- a/rootfs/etc/bashrc.d/dietpi.bash +++ b/rootfs/etc/bashrc.d/dietpi.bash @@ -89,9 +89,17 @@ G_WHIP_DEFAULT_ITEM=1 fi - G_PROGRAM_NAME='Unsupported SSH client terminal' G_WHIP_MENU "[WARNING] Your SSH client passed an unsupported terminal: TERM=$TERM_old + if G_PROGRAM_NAME='Unsupported SSH client terminal' G_WHIP_MENU "[WARNING] Your SSH client passed an unsupported terminal: TERM=$TERM_old \nAs a workaround, we fooled the server by setting TERM=$TERM. This is not the cleanest solution as commands may use control sequences which are not supported by the current terminal. -\nPlease change your SSH clients terminal, respectively the passed \$TERM string$ncurses_term." && (( $G_WHIP_RETURNED_VALUE )) && G_AGI ncurses-term +\nPlease change your SSH clients terminal, respectively the passed \$TERM string$ncurses_term." && (( $G_WHIP_RETURNED_VALUE )) + then + if (( $UID )) + then + G_SUDO G_AGI ncurses-term + else + G_AGI ncurses-term + fi + fi unset -v TERM_old ncurses_term fi unset -v term From 305257d2310da0982dadffba4109a7e6d32c2903 Mon Sep 17 00:00:00 2001 From: MichaIng Date: Sun, 9 Jun 2024 18:40:33 +0200 Subject: [PATCH 61/61] v9.5 - CHANGELOG | Update release date --- CHANGELOG.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.txt b/CHANGELOG.txt index 2dfae20de8..398da0455d 100644 --- a/CHANGELOG.txt +++ b/CHANGELOG.txt @@ -1,5 +1,5 @@ v9.5 -(2024-06-08) +(2024-06-09) New software: - Forgejo | This Gitea fork has been added to our software library. Read about the background of this fork here: https://forgejo.org/2022-12-15-hello-forgejo/. Many thanks to @Cs137 for requesting and @jcnils for implementing this software option: https://github.com/MichaIng/DietPi/discussions/6133, https://github.com/MichaIng/DietPi/pull/7071