From 83ef4a437d2b58f7161bba762213391138a4942c Mon Sep 17 00:00:00 2001 From: MichaIng Date: Tue, 24 Dec 2024 09:06:35 +0700 Subject: [PATCH 001/112] v9.10 - DietPi-Build | Try to work around failing poweroff in Trixie containers --- .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 ddf9b67d94..ff3101cd87 100755 --- a/.build/images/dietpi-build +++ b/.build/images/dietpi-build @@ -452,7 +452,7 @@ _EOF_ cat << '_EOF_' >> rootfs/etc/rc.local > /success -poweroff +systemctl start poweroff.target exit 0 } > /dev/console 2>&1 < /dev/console _EOF_ From 41953040aaa71f6bdd3837994915453c4fda1cd9 Mon Sep 17 00:00:00 2001 From: MichaIng Date: Wed, 25 Dec 2024 09:38:38 +0700 Subject: [PATCH 002/112] v9.10 - DietPi-Build | Raise build image size for RK3588 SBCs --- .build/images/dietpi-build | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/.build/images/dietpi-build b/.build/images/dietpi-build index ff3101cd87..eb3c6d1063 100755 --- a/.build/images/dietpi-build +++ b/.build/images/dietpi-build @@ -146,23 +146,23 @@ case $HW_MODEL in '76.1') iname='NanoPiR5S' HW_ARCH=3 PTTYPE='gpt' partition_start=16 root_size=1100;; '76.2') iname='NanoPiR5C' HW_ARCH=3 PTTYPE='gpt' partition_start=16 root_size=1100;; 77) iname='ROCK3A' HW_ARCH=3 PTTYPE='gpt' partition_start=16 root_size=1100;; - 78) iname='ROCK5B' HW_ARCH=3 PTTYPE='gpt' partition_start=16 root_size=1100;; - '79.1') iname='NanoPiR6S' HW_ARCH=3 PTTYPE='gpt' partition_start=16 root_size=1100;; - '79.2') iname='NanoPiR6C' HW_ARCH=3 PTTYPE='gpt' partition_start=16 root_size=1100;; - '79.3') iname='NanoPCT6' HW_ARCH=3 PTTYPE='gpt' partition_start=16 root_size=1100;; - 80) iname='OrangePi5' HW_ARCH=3 PTTYPE='gpt' partition_start=16 root_size=1100;; + 78) iname='ROCK5B' HW_ARCH=3 PTTYPE='gpt' partition_start=16 root_size=1200;; + '79.1') iname='NanoPiR6S' HW_ARCH=3 PTTYPE='gpt' partition_start=16 root_size=1200;; + '79.2') iname='NanoPiR6C' HW_ARCH=3 PTTYPE='gpt' partition_start=16 root_size=1200;; + '79.3') iname='NanoPCT6' HW_ARCH=3 PTTYPE='gpt' partition_start=16 root_size=1200;; + 80) iname='OrangePi5' HW_ARCH=3 PTTYPE='gpt' partition_start=16 root_size=1200;; 81) iname='VisionFive2' HW_ARCH=11 root_size=639;; - 82) iname='OrangePi5Plus' HW_ARCH=3 PTTYPE='gpt' partition_start=16 root_size=1100;; + 82) iname='OrangePi5Plus' HW_ARCH=3 PTTYPE='gpt' partition_start=16 root_size=1200;; 83) iname='OrangePiZero3' HW_ARCH=3 partition_start=4 root_size=1148;; 84) iname='Star64' HW_ARCH=11 root_size=639;; - 85) iname='ROCK5A' HW_ARCH=3 PTTYPE='gpt' partition_start=16 root_size=1100;; + 85) iname='ROCK5A' HW_ARCH=3 PTTYPE='gpt' partition_start=16 root_size=1200;; 86) iname='ASUSTB2' HW_ARCH=3 partition_start=16 root_size=1100;; 87) iname='OrangePi3B' HW_ARCH=3 PTTYPE='gpt' partition_start=16 root_size=1100;; 88) iname='OrangePiZero2W' HW_ARCH=3 partition_start=4 root_size=1148;; 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=1100;; - 91) iname='OrangePi5Max' HW_ARCH=3 PTTYPE='gpt' partition_start=16 root_size=1100;; - 92) iname='NanoPiM6' HW_ARCH=3 PTTYPE='gpt' partition_start=16 root_size=1100;; + 91) iname='OrangePi5Max' HW_ARCH=3 PTTYPE='gpt' partition_start=16 root_size=1200;; + 92) iname='NanoPiM6' HW_ARCH=3 PTTYPE='gpt' partition_start=16 root_size=1200;; 93) iname='OrangePi5Pro' HW_ARCH=3 PTTYPE='gpt' partition_start=16 root_size=1200;; *) G_DIETPI-NOTIFY 1 "Invalid hardware model \"$HW_MODEL\" passed, aborting..."; exit 1;; esac From fe7012535f0c72558b77ecfaaab5d29220c1b3c8 Mon Sep 17 00:00:00 2001 From: MichaIng Date: Wed, 25 Dec 2024 09:47:20 +0700 Subject: [PATCH 003/112] v9.10 - DietPi-Build | Try to work around apt-key dependency loop on Raspbian Trixie: apt depends on raspbian-archive-keyring, but the latter's postinst script calls apt-key, which hence does not exist yet on debootstrap, causing a failure and abortion. --- .build/images/dietpi-build | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/.build/images/dietpi-build b/.build/images/dietpi-build index eb3c6d1063..4c5821e712 100755 --- a/.build/images/dietpi-build +++ b/.build/images/dietpi-build @@ -415,6 +415,12 @@ 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 +# Workaround for apt-key dependency loop on Raspbian Trixie +if (( $HW_ARCH == 1 && $G_DISTRO == 8 )) +then + G_EXEC mkdir -p rootfs/usr/local/bin + G_EXEC ln -s /bin/true rootfs/usr/local/bin/apt-key +fi 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 )) && 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' @@ -423,7 +429,12 @@ packages='apt,bash-completion,bzip2,ca-certificates,cron,curl,fdisk,gpg,htop,ipu # - Bullseye/Jammy host mmdebstrap does not support "--skip=check/empty,check/qemu". G_EXEC_OUTPUT=1 G_EXEC mmdebstrap --mode=root --format=dir --skip=check/empty --skip=check/qemu --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 - +# Undo workaround for apt-key dependency loop on Raspbian Trixie +if (( $HW_ARCH == 1 && $G_DISTRO == 8 )) +then + G_EXEC rm rootfs/usr/local/bin/apt-key + G_EXEC rmdir -p rootfs/usr/local/bin +fi ########################################## # DietPi-Installer ########################################## From 335d817a9caa74b998eb891d7947a19d358a7382 Mon Sep 17 00:00:00 2001 From: StephanStS Date: Wed, 25 Dec 2024 03:48:47 +0100 Subject: [PATCH 004/112] v9.10 (#7317) - CHANGELOG | Release date corrected --- CHANGELOG.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.txt b/CHANGELOG.txt index 4e5da62e14..1b89428196 100644 --- a/CHANGELOG.txt +++ b/CHANGELOG.txt @@ -1,5 +1,5 @@ v9.9 -(2024-11-23) +(2024-12-23) New images: - Orange Pi 5 Pro | Support for this new variant of the Orange Pi 5 family has been added to DietPi. Compared to the original Orange Pi 5, it features onboard WiFi 5, an eMMC slot, dual HDMI, and supports NVMe SSDs up to 2280 format. From 46a5237222e4c3ee059051219eebd66fd0f14707 Mon Sep 17 00:00:00 2001 From: StephanStS Date: Wed, 25 Dec 2024 03:50:17 +0100 Subject: [PATCH 005/112] Init v9.10 (#7319) --- .meta/dietpi-survey_report | 4 +++- .update/version | 4 ++-- CHANGELOG.txt | 13 +++++++++++++ dietpi/func/dietpi-globals | 4 ++-- 4 files changed, 20 insertions(+), 5 deletions(-) diff --git a/.meta/dietpi-survey_report b/.meta/dietpi-survey_report index 45f2b61bcf..005dd6cabf 100755 --- a/.meta/dietpi-survey_report +++ b/.meta/dietpi-survey_report @@ -734,15 +734,17 @@ shopt -s extglob aSOFTWARE_NAME9_7=() aSOFTWARE_NAME9_8=() aSOFTWARE_NAME9_9=() + aSOFTWARE_NAME9_10=() for i in "${!aSOFTWARE_NAME9_6[@]}" do aSOFTWARE_NAME9_7[i]=${aSOFTWARE_NAME9_6[i]} aSOFTWARE_NAME9_8[i]=${aSOFTWARE_NAME9_7[i]} aSOFTWARE_NAME9_9[i]=${aSOFTWARE_NAME9_8[i]} + aSOFTWARE_NAME9_10[i]=${aSOFTWARE_NAME9_9[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_9[@]}" + for i in "${aSOFTWARE_NAME9_10[@]}" do aSOFTWARE[$i]=0 done diff --git a/.update/version b/.update/version index 0f107f5c7b..2dd1677285 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=9 -G_REMOTE_VERSION_RC=0 +G_REMOTE_VERSION_SUB=10 +G_REMOTE_VERSION_RC=-1 # Minimum DietPi version to allow update G_MIN_VERSION_CORE=7 G_MIN_VERSION_SUB=0 diff --git a/CHANGELOG.txt b/CHANGELOG.txt index 1b89428196..a182d5388c 100644 --- a/CHANGELOG.txt +++ b/CHANGELOG.txt @@ -1,3 +1,16 @@ +v9.10 +(2025-01-25) + +New images: + +Enhancements: + +Bug fixes: + +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.9 (2024-12-23) diff --git a/dietpi/func/dietpi-globals b/dietpi/func/dietpi-globals index a77d84b5fa..eac4ba6d49 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=9 - [[ $G_DIETPI_VERSION_RC ]] || G_DIETPI_VERSION_RC=0 + [[ $G_DIETPI_VERSION_SUB ]] || G_DIETPI_VERSION_SUB=10 + [[ $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 2d07ecb2a99843e7e874cc11b6010e2fa2bd7d8c Mon Sep 17 00:00:00 2001 From: MichaIng Date: Wed, 25 Dec 2024 10:58:18 +0700 Subject: [PATCH 006/112] v9.10 - DietPi-Build | Fix workaround --- .build/images/dietpi-build | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.build/images/dietpi-build b/.build/images/dietpi-build index 4c5821e712..71d2f095c0 100755 --- a/.build/images/dietpi-build +++ b/.build/images/dietpi-build @@ -416,7 +416,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 # Workaround for apt-key dependency loop on Raspbian Trixie -if (( $HW_ARCH == 1 && $G_DISTRO == 8 )) +if (( $HW_ARCH == 1 && $DISTRO == 8 )) then G_EXEC mkdir -p rootfs/usr/local/bin G_EXEC ln -s /bin/true rootfs/usr/local/bin/apt-key @@ -430,7 +430,7 @@ packages='apt,bash-completion,bzip2,ca-certificates,cron,curl,fdisk,gpg,htop,ipu G_EXEC_OUTPUT=1 G_EXEC mmdebstrap --mode=root --format=dir --skip=check/empty --skip=check/qemu --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 # Undo workaround for apt-key dependency loop on Raspbian Trixie -if (( $HW_ARCH == 1 && $G_DISTRO == 8 )) +if (( $HW_ARCH == 1 && $DISTRO == 8 )) then G_EXEC rm rootfs/usr/local/bin/apt-key G_EXEC rmdir -p rootfs/usr/local/bin From 749da789f25ce3337853448e3fbd7bd3b7e2a996 Mon Sep 17 00:00:00 2001 From: MichaIng Date: Wed, 25 Dec 2024 11:53:01 +0700 Subject: [PATCH 007/112] v9.10 - DietPi-Build | Further adjustment to apt-key workaround, as it has been removed completely in Trixie, and /usr/local/bin seems to not be used by mmdebstrap --- .build/images/dietpi-build | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/.build/images/dietpi-build b/.build/images/dietpi-build index 71d2f095c0..88057795fd 100755 --- a/.build/images/dietpi-build +++ b/.build/images/dietpi-build @@ -415,11 +415,11 @@ 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 -# Workaround for apt-key dependency loop on Raspbian Trixie +# Workaround for missing apt-key on Trixie, used by raspbian-archive-keyring if (( $HW_ARCH == 1 && $DISTRO == 8 )) then - G_EXEC mkdir -p rootfs/usr/local/bin - G_EXEC ln -s /bin/true rootfs/usr/local/bin/apt-key + G_EXEC mkdir -p rootfs/usr/bin + G_EXEC ln -s true rootfs/usr/bin/apt-key fi 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 )) && packages+='7zip,' || packages+='p7zip,' @@ -429,11 +429,10 @@ packages='apt,bash-completion,bzip2,ca-certificates,cron,curl,fdisk,gpg,htop,ipu # - Bullseye/Jammy host mmdebstrap does not support "--skip=check/empty,check/qemu". G_EXEC_OUTPUT=1 G_EXEC mmdebstrap --mode=root --format=dir --skip=check/empty --skip=check/qemu --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 -# Undo workaround for apt-key dependency loop on Raspbian Trixie +# Undo workaround for missing apt-key on Trixie, used by raspbian-archive-keyring if (( $HW_ARCH == 1 && $DISTRO == 8 )) then - G_EXEC rm rootfs/usr/local/bin/apt-key - G_EXEC rmdir -p rootfs/usr/local/bin + G_EXEC rm rootfs/usr/bin/apt-key fi ########################################## # DietPi-Installer From ab7c1f0bdd6679795ef9a93aea3cadf4d2c79a6d Mon Sep 17 00:00:00 2001 From: MichaIng Date: Wed, 25 Dec 2024 12:34:46 +0700 Subject: [PATCH 008/112] v9.10 - DietPi-Build | Link Raspbian key to active place, when apt-key is missing, else DietPi-Installer fails on first APT update. It creates the symlink later. --- .build/images/dietpi-build | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.build/images/dietpi-build b/.build/images/dietpi-build index 88057795fd..00bd8c2716 100755 --- a/.build/images/dietpi-build +++ b/.build/images/dietpi-build @@ -418,8 +418,9 @@ G_EXEC mount -o X-mount.mkdir -t tmpfs tmpfs rootfs/var/log # Workaround for missing apt-key on Trixie, used by raspbian-archive-keyring if (( $HW_ARCH == 1 && $DISTRO == 8 )) then - G_EXEC mkdir -p rootfs/usr/bin + G_EXEC mkdir -p rootfs/usr/bin rootfs/etc/apt/trusted.gpg.d G_EXEC ln -s true rootfs/usr/bin/apt-key + G_EXEC ln -s /usr/share/keyrings/raspbian-archive-keyring.gpg rootfs/etc/apt/trusted.gpg.d/raspbian-archive-keyring.gpg fi 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 )) && packages+='7zip,' || packages+='p7zip,' From deb6ff939506c537fdae03241a4c341d8f623b8f Mon Sep 17 00:00:00 2001 From: MichaIng Date: Wed, 25 Dec 2024 14:13:46 +0700 Subject: [PATCH 009/112] v9.10 - DietPi-Software | Gogs: Switch to own builds with ARMv7, since GitHub releases miss them from v0.13.2 on - DietPi-Software | Update fallback URLs --- dietpi/dietpi-software | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/dietpi/dietpi-software b/dietpi/dietpi-software index 52992df981..7ca417f6a8 100755 --- a/dietpi/dietpi-software +++ b/dietpi/dietpi-software @@ -7086,7 +7086,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.3'; 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.25.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 @@ -10628,20 +10628,19 @@ _EOF_ if To_Install 49 gogs # Gogs then - # ARMv6/RISC-V: No pre-compiled binaries available, so we host our own. - if (( $G_HW_ARCH == 1 || $G_HW_ARCH == 11 )) + # ARMv6/ARMv7/RISC-V: No pre-compiled binaries available, so we host our own. + if (( $G_HW_ARCH == 1 || $G_HW_ARCH == 2 || $G_HW_ARCH == 11 )) then local url="https://dietpi.com/downloads/binaries/$G_DISTRO_NAME/gogs_$G_HW_ARCH_NAME.7z" # Else install latest binaries from GitHub else case $G_HW_ARCH in - 2) local arch='armv7';; 3) local arch='armv8';; *) local arch='amd64';; esac - local fallback_url="https://github.com/gogs/gogs/releases/download/v0.13.1/gogs_0.13.1_linux_$arch.tar.gz" + local fallback_url="https://github.com/gogs/gogs/releases/download/v0.13.2/gogs_0.13.2_linux_$arch.tar.gz" local url=$(curl -sSfL 'https://api.github.com/repos/gogs/gogs/releases/latest' | mawk -F\" "/^ *\"browser_download_url\": \".*\/gogs_[^\"\/]*_linux_$arch.tar.gz\"$/{print \$4}") fi From 2889721584709c93f345e9b8ebfe8457a932dcae Mon Sep 17 00:00:00 2001 From: MichaIng Date: Wed, 25 Dec 2024 14:15:14 +0700 Subject: [PATCH 010/112] v9.10 - CI | Gogs: Add ARMv7 builds to "all" --- .github/workflows/dietpi-software-build.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/dietpi-software-build.yml b/.github/workflows/dietpi-software-build.yml index bcf9db7820..cae2b8f8dc 100644 --- a/.github/workflows/dietpi-software-build.yml +++ b/.github/workflows/dietpi-software-build.yml @@ -67,7 +67,6 @@ jobs: exclude: - { arch: riscv64, dist: bullseye } - { arch: riscv64, dist: bookworm } - - { arch: armv7l, name: gogs } - { arch: aarch64, name: gogs } - { arch: x86_64, name: gogs } fail-fast: false From c7a34119e0d996dedcf11e1dd7ad7e1a7f4f62c2 Mon Sep 17 00:00:00 2001 From: MichaIng Date: Wed, 25 Dec 2024 15:24:22 +0700 Subject: [PATCH 011/112] v9.10 - DietPi-Software | Sonarr: Resolved an issue where the internal updater did not work due to permission limits in the systemd unit. Many thanks to @tellice for reporting this issue: https://github.com/MichaIng/DietPi/issues/7321 --- CHANGELOG.txt | 1 + dietpi/dietpi-software | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.txt b/CHANGELOG.txt index a182d5388c..0b3ac81ddf 100644 --- a/CHANGELOG.txt +++ b/CHANGELOG.txt @@ -6,6 +6,7 @@ New images: Enhancements: Bug fixes: +- DietPi-Software | Sonarr: Resolved an issue where the internal updater did not work due to permission limits in the systemd unit. Many thanks to @tellice for reporting this issue: https://github.com/MichaIng/DietPi/issues/7321 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 7ca417f6a8..35e0507e86 100755 --- a/dietpi/dietpi-software +++ b/dietpi/dietpi-software @@ -9595,7 +9595,7 @@ ProtectHome=true PrivateDevices=true ProtectKernelTunables=true ProtectControlGroups=true -ReadWritePaths=-/usr/lib/sonarr -/mnt -/media -/var/log/sonarr -/tmp +ReadWritePaths=-$install_dir -/mnt -/media -/var/log/sonarr -/tmp [Install] WantedBy=multi-user.target From fb67ff8a363e4ae861436de1f60dea6737a6ed89 Mon Sep 17 00:00:00 2001 From: MichaIng Date: Wed, 25 Dec 2024 15:56:23 +0700 Subject: [PATCH 012/112] Live patch 0 v9.9 (#7322) - Live patch 0 | Fix Sonarr v4 permissions for updater --- .update/version | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/.update/version b/.update/version index 0f107f5c7b..550f1f8a8d 100644 --- a/.update/version +++ b/.update/version @@ -14,6 +14,7 @@ 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=() -G_LIVE_PATCH_COND=() -G_LIVE_PATCH=() +G_LIVE_PATCH_DESC=('Fix Sonarr v4 permissions for updater. Only needed if you plan to install or migrate to Sonarr v4 via dietpi-software.') +G_LIVE_PATCH_COND=('grep -q '\''^ReadWritePaths=-/usr/lib/sonarr'\'' /boot/dietpi/dietpi-software') +# shellcheck disable=SC2016 +G_LIVE_PATCH=('sed -i '\''s|^ReadWritePaths=-/usr/lib/sonarr|ReadWritePaths=-$install_dir|'\'' /boot/dietpi/dietpi-software') From ec4c1e522657b37a44e2d4d5186982879a47798b Mon Sep 17 00:00:00 2001 From: MichaIng Date: Fri, 27 Dec 2024 13:57:22 +0700 Subject: [PATCH 013/112] v9.10 - DietPi-Software | Fail2Ban: Resolved an issue where a fixed Dropbear filter could not be installed, because the directory did not exist yet. Many thanks to @augustresende for reporting this issue: https://github.com/MichaIng/DietPi/issues/7325 --- CHANGELOG.txt | 1 + dietpi/dietpi-software | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.txt b/CHANGELOG.txt index 0b3ac81ddf..f6633ad4d8 100644 --- a/CHANGELOG.txt +++ b/CHANGELOG.txt @@ -7,6 +7,7 @@ Enhancements: Bug fixes: - DietPi-Software | Sonarr: Resolved an issue where the internal updater did not work due to permission limits in the systemd unit. Many thanks to @tellice for reporting this issue: https://github.com/MichaIng/DietPi/issues/7321 +- DietPi-Software | Fail2Ban: Resolved an issue where a fixed Dropbear filter could not be installed, because the directory did not exist yet. Many thanks to @augustresende for reporting this issue: https://github.com/MichaIng/DietPi/issues/7325 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 35e0507e86..8bcdf9488e 100755 --- a/dietpi/dietpi-software +++ b/dietpi/dietpi-software @@ -7299,7 +7299,7 @@ $GLOBAL_PW" if To_Install 73 fail2ban # Fail2Ban then # Create jail.conf (backend = systemd) first, to prevent APT failure due to missing /var/log/auth.log: https://github.com/MichaIng/DietPi/issues/475#issuecomment-310873879 - G_EXEC mkdir -p /etc/fail2ban/fail2ban.d + G_EXEC mkdir -p /etc/fail2ban/{fail2ban,filter}.d [[ -f '/etc/fail2ban/jail.conf' ]] || cat << '_EOF_' > /etc/fail2ban/jail.conf [DEFAULT] enabled = true From ce1d5895d1530dbaf5d021a6e16a8908d9e27b66 Mon Sep 17 00:00:00 2001 From: MichaIng Date: Fri, 27 Dec 2024 14:50:02 +0700 Subject: [PATCH 014/112] Live patch 1+2 v9.9 (#7328) - Live patch 1 | Fix install of patches Fail2Ban Dropbear filter: https://github.com/MichaIng/DietPi/issues/7325 - Live patch 2 | Install patched Fail2Ban Dropbear filter: https://github.com/fail2ban/fail2ban/pull/3597 --- .update/version | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/.update/version b/.update/version index 550f1f8a8d..f5cb2a5332 100644 --- a/.update/version +++ b/.update/version @@ -14,7 +14,19 @@ 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 Sonarr v4 permissions for updater. Only needed if you plan to install or migrate to Sonarr v4 via dietpi-software.') -G_LIVE_PATCH_COND=('grep -q '\''^ReadWritePaths=-/usr/lib/sonarr'\'' /boot/dietpi/dietpi-software') +G_LIVE_PATCH_DESC=( + [0]='Fix Sonarr v4 permissions for updater. Only needed if you plan to install or migrate to Sonarr v4 via dietpi-software.' + [1]='Fix install of patches Fail2Ban Dropbear filter: https://github.com/MichaIng/DietPi/issues/7325' + [2]='Install patched Fail2Ban Dropbear filter: https://github.com/fail2ban/fail2ban/pull/3597' +) +G_LIVE_PATCH_COND=( + [0]='grep -q '\''^ReadWritePaths=-/usr/lib/sonarr'\'' /boot/dietpi/dietpi-software' + [1]='[[ ! -d /etc/fail2ban/filter.d ]] && grep -q '\''^ G_EXEC mkdir -p /etc/fail2ban/fail2ban.d'\'' /boot/dietpi/dietpi-software' + [2]='[[ -d /etc/fail2ban/filter.d && ! -f /etc/fail2ban/filter.d/dropbear.local ]]' +) # shellcheck disable=SC2016 -G_LIVE_PATCH=('sed -i '\''s|^ReadWritePaths=-/usr/lib/sonarr|ReadWritePaths=-$install_dir|'\'' /boot/dietpi/dietpi-software') +G_LIVE_PATCH=( + [0]='sed -i '\''s|^ReadWritePaths=-/usr/lib/sonarr|ReadWritePaths=-$install_dir|'\'' /boot/dietpi/dietpi-software' + [1]='sed -i '\''s|^ G_EXEC mkdir -p /etc/fail2ban/fail2ban.d| G_EXEC mkdir -p /etc/fail2ban/{fail2ban,filter}.d|'\'' /boot/dietpi/dietpi-software' + [2]='curl -sSf https://raw.githubusercontent.com/fail2ban/fail2ban/eb8b443/config/filter.d/dropbear.conf -o /etc/fail2ban/filter.d/dropbear.local' +) From ef4c39f6b6607cde884783235d4bfd02934596e9 Mon Sep 17 00:00:00 2001 From: Joulinar <47155374+Joulinar@users.noreply.github.com> Date: Mon, 30 Dec 2024 07:40:15 +0100 Subject: [PATCH 015/112] v9.10 (#7332) - DietPi-Software | Raspotify: Resolved an issue where the service failed to start, if Avahi-Daemon was not installed. librespot has it as new default DNS discovery backend, and official pre-compiled Raspotify binaries are not compiled with the old DNS-SD backend anymore. Avahi-Daemon is hence installed now by DietPi-Software as well. Many thanks to @gergokis for reporting this issue: https://github.com/MichaIng/DietPi/issues/7323 --- .update/patches | 19 +++++++++++++++++++ CHANGELOG.txt | 1 + dietpi/dietpi-software | 12 +++++------- 3 files changed, 25 insertions(+), 7 deletions(-) diff --git a/.update/patches b/.update/patches index a3a0ae86c8..ff85e4928f 100755 --- a/.update/patches +++ b/.update/patches @@ -2067,6 +2067,25 @@ Patch_9_9() fi } +Patch_9_10() +{ + # Software updates, migrations and patches + if [[ -f '/boot/dietpi/.installed' ]] + then + # Raspotify + if grep -q '^[[:blank:]]*aSOFTWARE_INSTALL_STATE\[167\]=2' /boot/dietpi/.installed + then + G_DIETPI-NOTIFY 2 'Migrating to new Raspotify APT list name and key format ...' + [[ -f '/etc/apt/sources.list.d/raspotify.list' ]] && G_EXEC mv /etc/apt/sources.list.d/{,dietpi-}raspotify.list + if [[ -f '/etc/apt/trusted.gpg.d/dietpi-raspotify.gpg' ]] + then + G_EXEC curl -sSfo /etc/apt/trusted.gpg.d/dietpi-raspotify.asc 'https://dtcooper.github.io/raspotify/key.asc' + G_EXEC rm /etc/apt/trusted.gpg.d/dietpi-raspotify.gpg + fi + fi + fi +} + # v6.35 => v7 migration if (( $G_DIETPI_VERSION_CORE == 6 && $G_DIETPI_VERSION_SUB > 34 )) then diff --git a/CHANGELOG.txt b/CHANGELOG.txt index f6633ad4d8..f4e99f4dcd 100644 --- a/CHANGELOG.txt +++ b/CHANGELOG.txt @@ -8,6 +8,7 @@ Enhancements: Bug fixes: - DietPi-Software | Sonarr: Resolved an issue where the internal updater did not work due to permission limits in the systemd unit. Many thanks to @tellice for reporting this issue: https://github.com/MichaIng/DietPi/issues/7321 - DietPi-Software | Fail2Ban: Resolved an issue where a fixed Dropbear filter could not be installed, because the directory did not exist yet. Many thanks to @augustresende for reporting this issue: https://github.com/MichaIng/DietPi/issues/7325 +- DietPi-Software | Raspotify: Resolved an issue where the service failed to start, if Avahi-Daemon was not installed. librespot has it as new default DNS discovery backend, and official pre-compiled Raspotify binaries are not compiled with the old DNS-SD backend anymore. Avahi-Daemon is hence installed now by DietPi-Software as well. Many thanks to @gergokis for reporting this issue: https://github.com/MichaIng/DietPi/issues/7323 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 8bcdf9488e..97527330cf 100755 --- a/dietpi/dietpi-software +++ b/dietpi/dietpi-software @@ -517,7 +517,7 @@ Available commands: aSOFTWARE_DESC[$software_id]='Spotify connect client' aSOFTWARE_CATX[$software_id]=2 aSOFTWARE_DOCS[$software_id]='https://dietpi.com/docs/software/media/#raspotify' - aSOFTWARE_DEPS[$software_id]='5' + aSOFTWARE_DEPS[$software_id]='5 152' # - RISC-V: No package: https://github.com/dtcooper/raspotify/releases aSOFTWARE_AVAIL_G_HW_ARCH[$software_id,11]=0 # - Bookworm/Trixie on ARMv6 (older package): "/usr/bin/librespot: error while loading shared libraries: ld-linux.so.3: cannot open shared object file: No such file or directory" @@ -10903,12 +10903,10 @@ _EOF_ # ARMv7/ARMv8/x86_64 else # APT key - local url='https://dtcooper.github.io/raspotify/key.asc' - G_CHECK_URL "$url" - G_EXEC eval "curl -sSfL '$url' | gpg --dearmor -o /etc/apt/trusted.gpg.d/dietpi-raspotify.gpg --yes" + Download_Install 'https://dtcooper.github.io/raspotify/key.asc' /etc/apt/trusted.gpg.d/dietpi-raspotify.asc # APT list - G_EXEC eval 'echo '\''deb https://dtcooper.github.io/raspotify raspotify main'\'' > /etc/apt/sources.list.d/raspotify.list' + G_EXEC eval 'echo '\''deb https://dtcooper.github.io/raspotify raspotify main'\'' > /etc/apt/sources.list.d/dietpi-raspotify.list' G_AGUP # APT package @@ -13793,8 +13791,8 @@ _EOF_ if To_Uninstall 167 # Raspotify then G_AGP raspotify - [[ -f '/etc/apt/sources.list.d/raspotify.list' ]] && G_EXEC rm /etc/apt/sources.list.d/raspotify.list - [[ -f '/etc/apt/trusted.gpg.d/dietpi-raspotify.gpg' ]] && G_EXEC rm /etc/apt/trusted.gpg.d/dietpi-raspotify.gpg + [[ -f '/etc/apt/sources.list.d/dietpi-raspotify.list' ]] && G_EXEC rm /etc/apt/sources.list.d/dietpi-raspotify.list + [[ -f '/etc/apt/trusted.gpg.d/dietpi-raspotify.asc' ]] && G_EXEC rm /etc/apt/trusted.gpg.d/dietpi-raspotify.asc fi if To_Uninstall 169 # Google AIY From 563108d6612fd790e69288f6a56e54a499f2537c Mon Sep 17 00:00:00 2001 From: MichaIng Date: Mon, 30 Dec 2024 15:45:50 +0700 Subject: [PATCH 016/112] v9.10 - DietPi-Software | Navidrome: 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 97527330cf..2741d0ea11 100755 --- a/dietpi/dietpi-software +++ b/dietpi/dietpi-software @@ -6227,7 +6227,7 @@ _EOF_ *) local arch='amd64';; esac - local fallback_url="https://github.com/navidrome/navidrome/releases/download/v0.54.2/navidrome_0.54.2_linux_$arch.tar.gz" + local fallback_url="https://github.com/navidrome/navidrome/releases/download/v0.54.3/navidrome_0.54.3_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 5aa548864b8ac3249f7eef61ec6f44834e49d9a3 Mon Sep 17 00:00:00 2001 From: MichaIng Date: Mon, 30 Dec 2024 15:51:16 +0700 Subject: [PATCH 017/112] v9.10 - DietPi-Software | Airsonic-Advanced: Update fallback URL --- dietpi/dietpi-software | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/dietpi/dietpi-software b/dietpi/dietpi-software index 2741d0ea11..748279b41d 100755 --- a/dietpi/dietpi-software +++ b/dietpi/dietpi-software @@ -6179,8 +6179,8 @@ _EOF_ Download_Install 'https://github.com/airsonic-advanced/airsonic-advanced/releases/download/v10.6.0/airsonic.war' /mnt/dietpi_userdata/airsonic/airsonic.war else # Since v11 is not yet released, pull latest pre-release - local fallback_url='https://github.com/airsonic-advanced/airsonic-advanced/releases/download/11.0.0-SNAPSHOT.20220625052932/airsonic.war' - Download_Install "$(curl -sSfL 'https://api.github.com/repos/airsonic-advanced/airsonic-advanced/releases' | mawk -F\" '/"browser_download_url": .*\/airsonic\.war"/{print $4}' | head -1)" /mnt/dietpi_userdata/airsonic/airsonic.war + local fallback_url='https://github.com/airsonic-advanced/airsonic-advanced/releases/download/11.0.0-SNAPSHOT.20240424015024/airsonic.war' + Download_Install "$(curl -sSfL 'https://api.github.com/repos/airsonic-advanced/airsonic-advanced/releases' | mawk -F\" '/^ *"browser_download_url": ".*\/airsonic\.war"$/{print $4}' | head -1)" /mnt/dietpi_userdata/airsonic/airsonic.war fi # User From 6a539d1a0b1a6f9651ab54100527e3d29ff1c2f3 Mon Sep 17 00:00:00 2001 From: MichaIng Date: Mon, 30 Dec 2024 21:03:22 +0700 Subject: [PATCH 018/112] v9.10 - DietPi-Software | Navidrome: Resolved an issue where the service failed to start, since the latest release archive does not ship with the needed permissions. Many thanks to @nclro for reporting this issue: https://github.com/MichaIng/DietPi/issues/7336 --- CHANGELOG.txt | 1 + dietpi/dietpi-software | 4 +++- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.txt b/CHANGELOG.txt index f4e99f4dcd..2e0960d91e 100644 --- a/CHANGELOG.txt +++ b/CHANGELOG.txt @@ -9,6 +9,7 @@ Bug fixes: - DietPi-Software | Sonarr: Resolved an issue where the internal updater did not work due to permission limits in the systemd unit. Many thanks to @tellice for reporting this issue: https://github.com/MichaIng/DietPi/issues/7321 - DietPi-Software | Fail2Ban: Resolved an issue where a fixed Dropbear filter could not be installed, because the directory did not exist yet. Many thanks to @augustresende for reporting this issue: https://github.com/MichaIng/DietPi/issues/7325 - DietPi-Software | Raspotify: Resolved an issue where the service failed to start, if Avahi-Daemon was not installed. librespot has it as new default DNS discovery backend, and official pre-compiled Raspotify binaries are not compiled with the old DNS-SD backend anymore. Avahi-Daemon is hence installed now by DietPi-Software as well. Many thanks to @gergokis for reporting this issue: https://github.com/MichaIng/DietPi/issues/7323 +- DietPi-Software | Navidrome: Resolved an issue where the service failed to start, since the latest release archive does not ship with the needed permissions. Many thanks to @nclro for reporting this issue: https://github.com/MichaIng/DietPi/issues/7336 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 748279b41d..a271c24c4a 100755 --- a/dietpi/dietpi-software +++ b/dietpi/dietpi-software @@ -6256,7 +6256,7 @@ _EOF_ # Service: https://www.navidrome.org/docs/installation/linux/#create-a-systemd-unit cat << '_EOF_' > /etc/systemd/system/navidrome.service [Unit] -Description=navidrome (DietPi) +Description=Navidrome (DietPi) Wants=network-online.target After=network-online.target remote-fs.target AssertPathExists=/mnt/dietpi_userdata/navidrome @@ -6305,6 +6305,8 @@ ProtectSystem=full WantedBy=multi-user.target _EOF_ # Permissions + G_EXEC chown -R root:root /opt/navidrome + G_EXEC chmod +x /opt/navidrome G_EXEC chown -R navidrome:root /mnt/dietpi_userdata/navidrome Download_Test_Media From 69941ea418957c6bd5f469131b6da93ee4af965a Mon Sep 17 00:00:00 2001 From: MichaIng Date: Wed, 1 Jan 2025 16:08:08 +0700 Subject: [PATCH 019/112] v9.10 (#7335) - DietPi-Software | Home Assistant: Worked around an issue where the installation failed on ARMv6 and RISC-V systems, due to an incompatibility between two dependencies. Many thanks to @jankkhvej for reporting this issue: https://github.com/MichaIng/DietPi/issues/7329 --- CHANGELOG.txt | 1 + dietpi/dietpi-software | 7 +++++++ 2 files changed, 8 insertions(+) diff --git a/CHANGELOG.txt b/CHANGELOG.txt index 2e0960d91e..c00050d21c 100644 --- a/CHANGELOG.txt +++ b/CHANGELOG.txt @@ -10,6 +10,7 @@ Bug fixes: - DietPi-Software | Fail2Ban: Resolved an issue where a fixed Dropbear filter could not be installed, because the directory did not exist yet. Many thanks to @augustresende for reporting this issue: https://github.com/MichaIng/DietPi/issues/7325 - DietPi-Software | Raspotify: Resolved an issue where the service failed to start, if Avahi-Daemon was not installed. librespot has it as new default DNS discovery backend, and official pre-compiled Raspotify binaries are not compiled with the old DNS-SD backend anymore. Avahi-Daemon is hence installed now by DietPi-Software as well. Many thanks to @gergokis for reporting this issue: https://github.com/MichaIng/DietPi/issues/7323 - DietPi-Software | Navidrome: Resolved an issue where the service failed to start, since the latest release archive does not ship with the needed permissions. Many thanks to @nclro for reporting this issue: https://github.com/MichaIng/DietPi/issues/7336 +- DietPi-Software | Home Assistant: Worked around an issue where the installation failed on ARMv6 and RISC-V systems, due to an incompatibility between two dependencies. Many thanks to @jankkhvej for reporting this issue: https://github.com/MichaIng/DietPi/issues/7329 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 a271c24c4a..69d61240b4 100755 --- a/dietpi/dietpi-software +++ b/dietpi/dietpi-software @@ -11440,6 +11440,13 @@ _EOF_ G_EXEC mkdir -p "$ha_home/.pip" G_EXEC eval "echo -e '[global]\nno-cache-dir=true' > '$ha_home/.pip/pip.conf'" + # ARMv6/RISC-V: Work around incompatible latest maturin version with currently declared orjson v3.10.12 dependency: https://github.com/MichaIng/DietPi/issues/7329 + if (( $G_HW_ARCH == 1 || $G_HW_ARCH == 11 )) + then + G_EXEC eval "echo 'constraint=$ha_home/.pip/constraints.txt' >> '$ha_home/.pip/pip.conf'" + G_EXEC eval "echo 'maturin==1.7.8' > '$ha_home/.pip/constraints.txt'" + fi + # Generate script to activate pyenv: This must be sourced from the originating shell, hence it does not require execute permissions. echo "#!/bin/dash if [ \$(whoami) != '$ha_user' ]; then From 579ee5fe21a97a61741d98910d9daa763494ce03 Mon Sep 17 00:00:00 2001 From: MichaIng Date: Thu, 2 Jan 2025 10:19:08 +0700 Subject: [PATCH 020/112] v9.10 - Orange Pi 3B | Build with "current" kernel branch, which is now Linux 6.12 --- .build/images/dietpi-installer | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.build/images/dietpi-installer b/.build/images/dietpi-installer index 60443c18a4..b4e6116cea 100755 --- a/.build/images/dietpi-installer +++ b/.build/images/dietpi-installer @@ -1142,7 +1142,7 @@ _EOF_ 83) model='orangepizero3' kernel='sunxi64';; 85) model='rock-5a' kernel='rk35xx' branch='vendor';; 86) model='tinkerboard-2' kernel='rockchip64';; - 87) model='orangepi3b' kernel='rockchip64' branch='edge';; + 87) model='orangepi3b' kernel='rockchip64' branch='current';; 88) model='orangepizero2w' kernel='sunxi64';; 89) model='orangepi3-lts' kernel='sunxi64';; 90) model='radxa-zero3' kernel='rk35xx' branch='legacy';; From 2b344eef2e60222be65191b875ba2ee6420e23b2 Mon Sep 17 00:00:00 2001 From: MichaIng Date: Thu, 2 Jan 2025 10:24:26 +0700 Subject: [PATCH 021/112] v9.10 - DietPi-Installer | consistency ... --- .build/images/dietpi-installer | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.build/images/dietpi-installer b/.build/images/dietpi-installer index b4e6116cea..141eb800e6 100755 --- a/.build/images/dietpi-installer +++ b/.build/images/dietpi-installer @@ -1142,7 +1142,7 @@ _EOF_ 83) model='orangepizero3' kernel='sunxi64';; 85) model='rock-5a' kernel='rk35xx' branch='vendor';; 86) model='tinkerboard-2' kernel='rockchip64';; - 87) model='orangepi3b' kernel='rockchip64' branch='current';; + 87) model='orangepi3b' kernel='rockchip64';; 88) model='orangepizero2w' kernel='sunxi64';; 89) model='orangepi3-lts' kernel='sunxi64';; 90) model='radxa-zero3' kernel='rk35xx' branch='legacy';; From 7ad467c4cd4668419ea0dc960fdc1e11d7d05d86 Mon Sep 17 00:00:00 2001 From: MichaIng Date: Thu, 2 Jan 2025 15:57:00 +0700 Subject: [PATCH 022/112] v9.10 - CHANGELOG | Typo --- CHANGELOG.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.txt b/CHANGELOG.txt index c00050d21c..4d6620ebb3 100644 --- a/CHANGELOG.txt +++ b/CHANGELOG.txt @@ -35,7 +35,7 @@ Enhancements: - DietPi-Software | frp: It is now possible to connect the client to a server which has no (an empty) authentication token configured. frp can now be installed non-interactively, where client + server daemons are both installed and configured to work with each other, with respective defaults for all inputs. - DietPi-Software | frp: Since the ini format for config files has been deprecated, and support will be removed in a future frp release, new installs and reinstalls/updates will generated toml format config files from now on. As of the large amount of config keys, which all changed between those formats, an automated conversion is sadly not possible. When doing a reinstall with existing ini configs, you will be informed about it, the old config(s) will be kept as backup in place, for a manual migration. All config keys for the toml format can be found here: https://github.com/fatedier/frp/tree/dev/conf - DietPi-Software | Logitech Media Server: LMS has been renamed to Lyrion Music Server. For more details, see their new official website: https://lyrion.org/reference/lyrion-music-server/ -- DietPi-Software | Sonarr: Sonarr v4 will be installed from now on, and a migration to Sonarr v4 is now possible by reinstall it via "dietpi-software reinstall 144". Note that, since Sonarr v4 does not support ARMv6, this is not the case and not possible on RPi 1 and Zero (1). After a migration, once might want to uninstall Mono, which is not required for Sonarr v4 anymore. Note that some settings may be lost as of the database migration. At best create a backup, offered before the reinstall, and inform yourself about possible database migration issues and losses on the Sonarr websites. +- DietPi-Software | Sonarr: Sonarr v4 will be installed from now on, and a migration to Sonarr v4 is now possible by reinstall it via "dietpi-software reinstall 144". Note that, since Sonarr v4 does not support ARMv6, this is not the case and not possible on RPi 1 and Zero (1). After a migration, one might want to uninstall Mono, which is not required for Sonarr v4 anymore. Note that some settings may be lost as of the database migration. At best create a backup, offered before the reinstall, and inform yourself about possible database migration issues and losses on the Sonarr websites. Bug fixes: - NanoPi M1 Plus | Resolved an issue where Ethernet did not work because of a faulty kernel patch. Many thanks to @InnovoMagicCube and @InnovoDeveloper for reporting this issue: https://github.com/MichaIng/DietPi/issues/6974 From b09b909a86cfc2a0e272cfdeffdd84f21c5c9bfb Mon Sep 17 00:00:00 2001 From: MichaIng Date: Thu, 2 Jan 2025 16:14:54 +0700 Subject: [PATCH 023/112] v9.10 - DietPi-Software | Update LMS docs links and Komga fallback URL --- dietpi/dietpi-software | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/dietpi/dietpi-software b/dietpi/dietpi-software index 69d61240b4..429479492b 100755 --- a/dietpi/dietpi-software +++ b/dietpi/dietpi-software @@ -364,7 +364,7 @@ Available commands: aSOFTWARE_NAME[$software_id]='Lyrion Music Server' aSOFTWARE_DESC[$software_id]='formerly Logitech Media Server and Squeezebox Server' aSOFTWARE_CATX[$software_id]=2 - aSOFTWARE_DOCS[$software_id]='https://dietpi.com/docs/software/media/#logitech-media-server' + aSOFTWARE_DOCS[$software_id]='https://dietpi.com/docs/software/media/#lyrion-music-server' # - RISC-V: No package: https://lms-community.github.io/lms-server-repository/stable.xml aSOFTWARE_AVAIL_G_HW_ARCH[$software_id,11]=0 #------------------ @@ -7503,7 +7503,7 @@ _EOF_ then Download_Install 'https://github.com/gotson/komga/releases/download/v0.165.0/komga-0.165.0.jar' /mnt/dietpi_userdata/komga/komga.jar else - local fallback_url='https://github.com/gotson/komga/releases/download/1.15.1/komga-1.15.1.jar' + local fallback_url='https://github.com/gotson/komga/releases/download/1.16.0/komga-1.16.0.jar' Download_Install "$(curl -sSfL 'https://api.github.com/repos/gotson/komga/releases/latest' | mawk -F\" '/^ *"browser_download_url": ".*\/komga-[^"\/]*\.jar"$/{print $4}')" /mnt/dietpi_userdata/komga/komga.jar fi From f705407fa0d79d6d3c0455362d63ccee5ad863c3 Mon Sep 17 00:00:00 2001 From: MichaIng Date: Thu, 2 Jan 2025 18:08:37 +0700 Subject: [PATCH 024/112] v9.10 - CI | Work around failing poweroff in Trixie containers everywhere. It does not hurt and bypasses the loudly failing systemd-logind dbus call attempt on Bookworm as well. --- .build/images/dietpi-build | 10 +++++----- .build/software/Amiberry/container_build.bash | 6 +++--- .build/software/dietpi-software-build.bash | 6 +++--- .github/workflows/dietpi-software.bash | 6 +++--- 4 files changed, 14 insertions(+), 14 deletions(-) diff --git a/.build/images/dietpi-build b/.build/images/dietpi-build index 00bd8c2716..651fc8edfc 100755 --- a/.build/images/dietpi-build +++ b/.build/images/dietpi-build @@ -450,15 +450,15 @@ _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 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')" || { echo '[FAILED] DietPi-Installer failed, shutting down ...'; journalctl -n 25; df -h; free -h; poweroff; exit 1; } +bash -c "\$(curl -sSf 'https://raw.githubusercontent.com/$G_GITOWNER/DietPi/$G_GITBRANCH/.build/images/dietpi-installer')" || { echo '[FAILED] DietPi-Installer failed, shutting down ...'; journalctl -n 25; df -h; free -h; systemctl start poweroff.target; exit 1; } _EOF_ # - VM: Generate tiny-initramfs with explicit kernel modules, as auto-detection doesn't work correctly within container and loop devices [[ $HW_MODEL == 20 ]] && cat << _EOF_ >> rootfs/etc/rc.local echo '[ INFO ] Rebuilding virtual machine initramfs to support all virtualizers...' -version=\$(dpkg --get-selections | mawk '\$1~/^linux-image-.*-$parch\$/{print \$1;exit}') || { echo '[FAILED] Obtaining kernel version failed, shutting down ...'; journalctl -n 25; df -h; free -h; poweroff; exit 1; } +version=\$(dpkg --get-selections | mawk '\$1~/^linux-image-.*-$parch\$/{print \$1;exit}') || { echo '[FAILED] Obtaining kernel version failed, shutting down ...'; journalctl -n 25; df -h; free -h; systemctl start poweroff.target; exit 1; } version=\${version#linux-image-} -mktirfs -m no -M no --include-modules='ahci,sd_mod,vmw_pvscsi,hv_storvsc,virtio_scsi,virtio_pci,BusLogic,$FSTYPE' -o "/boot/initrd.img-\$version" "\$version" || { echo '[FAILED] Generating initramfs failed, shutting down ...'; journalctl -n 25; df -h; free -h; poweroff; exit 1; } +mktirfs -m no -M no --include-modules='ahci,sd_mod,vmw_pvscsi,hv_storvsc,virtio_scsi,virtio_pci,BusLogic,$FSTYPE' -o "/boot/initrd.img-\$version" "\$version" || { echo '[FAILED] Generating initramfs failed, shutting down ...'; journalctl -n 25; df -h; free -h; systemctl start poweroff.target; exit 1; } _EOF_ cat << '_EOF_' >> rootfs/etc/rc.local @@ -621,7 +621,7 @@ After=dietpi-postboot.service Type=idle StandardOutput=tty ExecStart=/bin/dash -c 'infocmp "$TERM" > /dev/null 2>&1 || export TERM=dumb; exec /boot/dietpi/dietpi-login' -ExecStop=/sbin/poweroff +ExecStop=/usr/sbin/systemctl start poweroff.target [Install] WantedBy=multi-user.target @@ -691,7 +691,7 @@ G_EXEC chmod 0750 /var/tmp/dietpi/logs/dietpi-ramlog_store/samba G_EXEC rm /etc/bashrc.d/00-dietpi-build.sh /boot/Automation_Custom_Script.sh > /success -poweroff +systemctl start poweroff.target } _EOF_ # Start container diff --git a/.build/software/Amiberry/container_build.bash b/.build/software/Amiberry/container_build.bash index 5acd92de48..d4afd8c8ac 100755 --- a/.build/software/Amiberry/container_build.bash +++ b/.build/software/Amiberry/container_build.bash @@ -131,7 +131,7 @@ After=dietpi-postboot.service Type=idle StandardOutput=tty ExecStart=/bin/dash -c 'infocmp "$TERM" > /dev/null 2>&1 || { echo "[ WARN ] Unsupported TERM=\"$TERM\", switching to TERM=\"dumb\""; export TERM=dumb; }; exec /boot/dietpi/dietpi-login' -ExecStop=/sbin/poweroff +ExecStop=/usr/sbin/systemctl start poweroff.target [Install] WantedBy=multi-user.target @@ -147,7 +147,7 @@ G_EXEC eval 'echo '\''infocmp "$TERM" > /dev/null 2>&1 || { echo "[ WARN ] Unsup G_CONFIG_INJECT 'CONFIG_CHECK_CONNECTION_IP=' 'CONFIG_CHECK_CONNECTION_IP=127.0.0.1' rootfs/boot/dietpi.txt # Shutdown on failures before the custom script is executed -G_EXEC sed --follow-symlinks -i 's|Prompt_on_Failure$|{ journalctl -n 50; ss -tulpn; df -h; free -h; poweroff; }|' rootfs/boot/dietpi/dietpi-login +G_EXEC sed --follow-symlinks -i 's|Prompt_on_Failure$|{ journalctl -n 50; ss -tulpn; df -h; free -h; systemctl start poweroff.target; }|' rootfs/boot/dietpi/dietpi-login # Avoid DietPi-Survey uploads to not mess with the statistics G_EXEC rm rootfs/root/.ssh/known_hosts @@ -172,7 +172,7 @@ cat << _EOF_ >> rootfs/boot/Automation_Custom_Script.sh || Error_Exit 'Failed to echo '[ INFO ] Running Amiberry build script ...' bash -c "\$(curl -sSf 'https://raw.githubusercontent.com/$G_GITOWNER/DietPi/$G_GITBRANCH/.build/software/Amiberry/build.bash')" -- '$PLATFORM' mv -v '/tmp/amiberry_$PLATFORM.deb' / -poweroff +systemctl start poweroff.target _EOF_ ########################################## diff --git a/.build/software/dietpi-software-build.bash b/.build/software/dietpi-software-build.bash index 09a060267b..b33e9ea8b6 100644 --- a/.build/software/dietpi-software-build.bash +++ b/.build/software/dietpi-software-build.bash @@ -135,7 +135,7 @@ After=dietpi-postboot.service Type=idle StandardOutput=tty ExecStart=/bin/dash -c 'infocmp "$TERM" > /dev/null 2>&1 || { echo "[ WARN ] Unsupported TERM=\"$TERM\", switching to TERM=\"dumb\""; export TERM=dumb; }; exec /boot/dietpi/dietpi-login' -ExecStop=/sbin/poweroff +ExecStop=/usr/sbin/systemctl start poweroff.target [Install] WantedBy=multi-user.target @@ -154,7 +154,7 @@ G_EXEC eval 'echo '\''infocmp "$TERM" > /dev/null 2>&1 || { echo "[ WARN ] Unsup G_CONFIG_INJECT 'CONFIG_CHECK_CONNECTION_IP=' 'CONFIG_CHECK_CONNECTION_IP=127.0.0.1' rootfs/boot/dietpi.txt # Shutdown on failures before the custom script is executed -G_EXEC sed --follow-symlinks -i 's|Prompt_on_Failure$|{ journalctl -n 50; ss -tulpn; df -h; free -h; poweroff; }|' rootfs/boot/dietpi/dietpi-login +G_EXEC sed --follow-symlinks -i 's|Prompt_on_Failure$|{ journalctl -n 50; ss -tulpn; df -h; free -h; systemctl start poweroff.target; }|' rootfs/boot/dietpi/dietpi-login # Avoid DietPi-Survey uploads to not mess with the statistics G_EXEC rm rootfs/root/.ssh/known_hosts @@ -168,7 +168,7 @@ cat << _EOF_ > rootfs/boot/Automation_Custom_Script.sh || Error_Exit 'Failed to echo '[ INFO ] Running $NAME build script ...' bash -c "\$(curl -sSf 'https://raw.githubusercontent.com/$G_GITOWNER/DietPi/$G_GITBRANCH/.build/software/$NAME/build.bash')" mkdir -v /output && mv -v /tmp/*.$EXT /output -poweroff +systemctl start poweroff.target _EOF_ ########################################## diff --git a/.github/workflows/dietpi-software.bash b/.github/workflows/dietpi-software.bash index 204f3e118e..474ae28104 100644 --- a/.github/workflows/dietpi-software.bash +++ b/.github/workflows/dietpi-software.bash @@ -369,7 +369,7 @@ Type=idle StandardOutput=tty Environment=HOME=/root ExecStart=/bin/dash -c 'infocmp "$TERM" > /dev/null 2>&1 || export TERM=dumb; exec /boot/dietpi/dietpi-login' -ExecStop=/sbin/poweroff +ExecStop=/usr/sbin/systemctl start poweroff.target [Install] WantedBy=multi-user.target @@ -454,10 +454,10 @@ done # Success flag and shutdown # shellcheck disable=SC2016 -G_EXEC eval 'echo '\''[ $exit_code = 0 ] && > /success || { journalctl -n 50; ss -tulpn; df -h; free -h; }; poweroff'\'' >> rootfs/boot/Automation_Custom_Script.sh' +G_EXEC eval 'echo '\''[ $exit_code = 0 ] && > /success || { journalctl -n 50; ss -tulpn; df -h; free -h; }; systemctl start poweroff.target'\'' >> rootfs/boot/Automation_Custom_Script.sh' # Shutdown as well on failures before the custom script is executed -G_EXEC sed --follow-symlinks -i 's|Prompt_on_Failure$|{ journalctl -n 50; ss -tulpn; df -h; free -h; poweroff; }|' rootfs/boot/dietpi/dietpi-login +G_EXEC sed --follow-symlinks -i 's|Prompt_on_Failure$|{ journalctl -n 50; ss -tulpn; df -h; free -h; systemctl start poweroff.target; }|' rootfs/boot/dietpi/dietpi-login ########################################## # Boot container From 58925ac68d06ddc1c39494734ac979417f473fa2 Mon Sep 17 00:00:00 2001 From: MichaIng Date: Fri, 3 Jan 2025 17:38:47 +0700 Subject: [PATCH 025/112] v9.10 - DietPi-Build | Add UEFI image support for VMs - CI | Armbian: Remove collabora branch --- .build/images/dietpi-build | 7 ++++--- .github/workflows/armbian.yml | 2 +- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/.build/images/dietpi-build b/.build/images/dietpi-build index 651fc8edfc..7cd289f46a 100755 --- a/.build/images/dietpi-build +++ b/.build/images/dietpi-build @@ -169,8 +169,9 @@ esac if [[ $VMTYPE ]] then - [[ $HW_MODEL == 20 ]] || { G_DIETPI-NOTIFY 1 "Unsupported option \"-v\" (virtual machine type) for hardware model \"$HW_MODEL\" passed, aborting..."; exit 1; } - [[ $VMTYPE =~ ^(raw|vbox|vmx|esxi|hyperv|utm|proxmox|all)$ ]] || { G_DIETPI-NOTIFY 1 "Invalid virtual machine type \"$VMTYPE\" passed, aborting..."; exit 1; } + [[ $HW_MODEL == 20 ]] || Error_Exit "Unsupported option \"-v\" (virtual machine type) for hardware model \"$HW_MODEL\" passed, aborting ..." + [[ $VMTYPE =~ ^(raw|vbox|vmx|esxi|hyperv|utm|proxmox|all)$ ]] || Error_Exit "Invalid virtual machine type \"$VMTYPE\" passed, aborting ..." + [[ $VMTYPE && ( $ITYPE == 'Installer' || $PTTYPE == 'gpt' ) ]] || Error_Exit 'The VM type option "-v" cannot be combined with "-i" or "-p gpt", since installer images result in an ISO, instead of a virtual disk image or appliance, and GPT partition table x86_64 images are forcefully installer images. Aborting ...' fi [[ $EDITION =~ ^(|Amiberry|AlloGUI|all)$ ]] || { G_DIETPI-NOTIFY 1 "Invalid edition \"$EDITION\" passed, aborting..."; exit 1; } @@ -197,7 +198,7 @@ esac case $PTTYPE in 'msdos') :;; - 'gpt') [[ $HW_MODEL == 21 ]] && efi_size=64 iname='NativePC-UEFI' ITYPE='Installer';; + 'gpt') [[ $HW_ARCH == 10 ]] && efi_size=64 iname="${iname%-BIOS}-UEFI" ITYPE='Installer';; *) G_DIETPI-NOTIFY 1 "Invalid partition table type \"$PTTYPE\" passed, aborting..."; exit 1;; esac diff --git a/.github/workflows/armbian.yml b/.github/workflows/armbian.yml index e4fef8ee6d..618d1ccbf8 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, collabora] + options: [legacy, vendor, current, edge] default: current required: true board: From 1bf41db19987f9afc833ed789c192e4aca36b6f7 Mon Sep 17 00:00:00 2001 From: MichaIng Date: Sat, 4 Jan 2025 14:59:18 +0700 Subject: [PATCH 026/112] v9.10 (#7342) - DietPi-Software | Cuberite: Run in new detached foreground mode, to enhance systemd tracking logs and service status: https://github.com/cuberite/cuberite/pull/5592 - CI | DietPi-Software test: Give Cuberite on x86 some more time to start up --- .github/workflows/dietpi-software.bash | 2 +- dietpi/dietpi-software | 13 ++++++------- 2 files changed, 7 insertions(+), 8 deletions(-) diff --git a/.github/workflows/dietpi-software.bash b/.github/workflows/dietpi-software.bash index 474ae28104..1b5b1ebcc2 100644 --- a/.github/workflows/dietpi-software.bash +++ b/.github/workflows/dietpi-software.bash @@ -118,7 +118,7 @@ Process_Software() 49) aSERVICES[i]='gogs' aTCP[i]='3000';; 50) aSERVICES[i]='syncthing' aTCP[i]='8384';; 51) aCOMMANDS[i]='/usr/games/opentyrian/opentyrian -h';; - 52) aSERVICES[i]='cuberite' aTCP[i]='1339'; (( $arch < 10 )) && aDELAY[i]=120;; + 52) aSERVICES[i]='cuberite' aTCP[i]='1339'; (( $arch < 10 )) && aDELAY[i]=120; (( $arch == 10 )) && aDELAY[i]=30;; 53) aSERVICES[i]='mineos' aTCP[i]='8443';; 58) aCOMMANDS[i]='tailscale version';; # aSERVICES[i]='tailscaled' aUDP[i]='41641' GitHub Action runners to not support the TUN module 59) aSERVICES[i]='raspimjpeg';; diff --git a/dietpi/dietpi-software b/dietpi/dietpi-software index 429479492b..efbf507215 100755 --- a/dietpi/dietpi-software +++ b/dietpi/dietpi-software @@ -8385,17 +8385,17 @@ location = /.well-known/caldav { return 301 /baikal/html/dav.php; }' > /etc/ngi then # https://github.com/cuberite/cuberite/blob/master/easyinstall.sh case $G_HW_ARCH in - 3) local path='aarch64/Cuberite.tar.gz';; - 10) local path='x86_64/Cuberite.tar.gz';; - *) local path='armhf-raspbian/Cuberite.tar.gz';; + 3) local arch='aarch64';; + 10) local arch='x86_64';; + *) local arch='armhf-raspbian';; esac - Download_Install "https://download.cuberite.org/linux-$path" /mnt/dietpi_userdata/cuberite + Download_Install "https://download.cuberite.org/linux-$arch/Cuberite.tar.gz" /mnt/dietpi_userdata/cuberite # User Create_User -d /mnt/dietpi_userdata/cuberite cuberite - # Service: Needs to be Type=forking, else it shuts down automatically after startup has finished :/ ... + # Service cat << '_EOF_' > /etc/systemd/system/cuberite.service [Unit] Description=Cuberite (DietPi) @@ -8403,10 +8403,9 @@ Wants=network-online.target After=network-online.target [Service] -Type=forking User=cuberite WorkingDirectory=/mnt/dietpi_userdata/cuberite -ExecStart=/mnt/dietpi_userdata/cuberite/Cuberite -d +ExecStart=/mnt/dietpi_userdata/cuberite/Cuberite --detached [Install] WantedBy=multi-user.target From b96b0e13f5d1f7c048bac5822319a9a34cd8f17e Mon Sep 17 00:00:00 2001 From: MichaIng Date: Sun, 5 Jan 2025 15:19:06 +0700 Subject: [PATCH 027/112] v9.10 - DietPi-Software | Sonarr: 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 efbf507215..86337226cb 100755 --- a/dietpi/dietpi-software +++ b/dietpi/dietpi-software @@ -9545,7 +9545,7 @@ _EOF_ *) local arch='x64';; esac - local fallback_url="https://github.com/Sonarr/Sonarr/releases/download/v4.0.11.2680/Sonarr.main.4.0.11.2680.linux-$arch.tar.gz" + local fallback_url="https://github.com/Sonarr/Sonarr/releases/download/v4.0.12.2823/Sonarr.main.4.0.12.2823.linux-$arch.tar.gz" Download_Install "$(curl -sSfL 'https://api.github.com/repos/Sonarr/Sonarr/releases/latest' | mawk -F\" "/^ *\"browser_download_url\": \".*linux-$arch\.tar\.gz\"$/{print \$4}")" # Install: Remove previous instance on reinstall From cd5674775b2372684f484af9feb776941f80cc4e Mon Sep 17 00:00:00 2001 From: MichaIng Date: Sun, 5 Jan 2025 18:23:55 +0700 Subject: [PATCH 028/112] v9.10 - DietPi-Software | ProFTPD/vsftpd: Update descriptions: ProFTPD is the by far larger and more feature-rich FTP server, with FTPS and SFTP modules etc. vsftpd is an order of magnitute smaller, FTPS only. --- dietpi/dietpi-software | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/dietpi/dietpi-software b/dietpi/dietpi-software index 86337226cb..811e514326 100755 --- a/dietpi/dietpi-software +++ b/dietpi/dietpi-software @@ -1420,14 +1420,14 @@ Available commands: #-------------------------------------------------------------------------------- software_id=94 aSOFTWARE_NAME[$software_id]='ProFTPD' - aSOFTWARE_DESC[$software_id]='Efficient, lightweight FTP server' + aSOFTWARE_DESC[$software_id]='Feature-rich FTP server with Apache-like config and FTPS+SFTP modules' aSOFTWARE_CATX[$software_id]=14 aSOFTWARE_DOCS[$software_id]='https://dietpi.com/docs/software/file_servers/#proftpd' aSOFTWARE_CONFLICTS[$software_id]='95' #------------------ software_id=95 aSOFTWARE_NAME[$software_id]='vsftpd' - aSOFTWARE_DESC[$software_id]='Very secure FTP server' + aSOFTWARE_DESC[$software_id]='Lightweight FTP/FTPS server' aSOFTWARE_CATX[$software_id]=14 aSOFTWARE_DOCS[$software_id]='https://dietpi.com/docs/software/file_servers/#vsftpd' aSOFTWARE_CONFLICTS[$software_id]='94' From 77bd5c6ece275206f9657848ce59ced58568d859 Mon Sep 17 00:00:00 2001 From: MichaIng Date: Mon, 6 Jan 2025 10:51:09 +0700 Subject: [PATCH 029/112] v9.10 (#7347) - DietPi-Software | myMPD: Enable for Bookworm on ARMv6 --- CHANGELOG.txt | 1 + dietpi/dietpi-software | 8 ++++---- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.txt b/CHANGELOG.txt index 4d6620ebb3..cd4c0c9e35 100644 --- a/CHANGELOG.txt +++ b/CHANGELOG.txt @@ -4,6 +4,7 @@ v9.10 New images: Enhancements: +- DietPi-Software | myMPD: We enabled the software option for ARMv6 Bookworm systems, since packages for Raspbian Bookworm are now available. Many thanks to @hackslikeus for bringing up the topic: https://github.com/MichaIng/DietPi/issues/7345 Bug fixes: - DietPi-Software | Sonarr: Resolved an issue where the internal updater did not work due to permission limits in the systemd unit. Many thanks to @tellice for reporting this issue: https://github.com/MichaIng/DietPi/issues/7321 diff --git a/dietpi/dietpi-software b/dietpi/dietpi-software index 811e514326..a6c6f2ddcf 100755 --- a/dietpi/dietpi-software +++ b/dietpi/dietpi-software @@ -341,10 +341,10 @@ Available commands: aSOFTWARE_CATX[$software_id]=2 aSOFTWARE_DOCS[$software_id]='https://dietpi.com/docs/software/media/#mympd' aSOFTWARE_DEPS[$software_id]='128' - # - RISC-V: No package: https://download.opensuse.org/repositories/home:/jcorporation/Debian_Unstable/ + # - RISC-V: No package: https://download.opensuse.org/repositories/home:/jcorporation/Debian_Testing/ aSOFTWARE_AVAIL_G_HW_ARCH[$software_id,11]=0 - # - ARMv6 Bookworm/Trixie: No Bookworm or testing suite available and Bullseye package depends on libflac8 - (( $G_HW_ARCH == 1 && $G_DISTRO > 6 )) && aSOFTWARE_AVAIL_G_DISTRO[$software_id,$G_DISTRO]=0 + # - ARMv6 Trixie: No Raspbian_Testing suite available and Bookworm package depends on libflac12 + (( $G_HW_ARCH == 1 && $G_DISTRO > 7 )) && aSOFTWARE_AVAIL_G_DISTRO[$software_id,$G_DISTRO]=0 #------------------ software_id=119 aSOFTWARE_NAME[$software_id]='CAVA' @@ -4930,7 +4930,7 @@ The install script will now exit. After applying one of the the above, rerun die then # Distro: https://download.opensuse.org/repositories/home:/jcorporation/ local distro='Debian_' - (( $G_RASPBIAN )) && distro='Raspbian_' + (( $G_HW_ARCH == 1 )) && distro='Raspbian_' case $G_DISTRO in 6) distro+='11';; From 301dd5b0030c284a2dc5330a54a429fd3aac97d1 Mon Sep 17 00:00:00 2001 From: MichaIng Date: Mon, 6 Jan 2025 10:55:44 +0700 Subject: [PATCH 030/112] v9.10 - DietPi-Software | Update fallback URLs --- dietpi/dietpi-software | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/dietpi/dietpi-software b/dietpi/dietpi-software index a6c6f2ddcf..3a79afe0ec 100755 --- a/dietpi/dietpi-software +++ b/dietpi/dietpi-software @@ -9637,7 +9637,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.16.3.9541/Radarr.master.5.16.3.9541.linux-core-$arch.tar.gz" + local fallback_url="https://github.com/Radarr/Radarr/releases/download/v5.17.2.9580/Radarr.master.5.17.2.9580.linux-core-$arch.tar.gz" fi Download_Install "$url" @@ -10058,7 +10058,7 @@ _EOF_ 3) local arch='arm64';; *) local arch='x64';; esac - local fallback_url="https://github.com/Prowlarr/Prowlarr/releases/download/v1.28.2.4885/Prowlarr.master.1.28.2.4885.linux-core-$arch.tar.gz" + local fallback_url="https://github.com/Prowlarr/Prowlarr/releases/download/v1.29.2.4915/Prowlarr.master.1.29.2.4915.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}")" # Install: Remove previous instance on reinstall @@ -10126,7 +10126,7 @@ _EOF_ 3) local arch='arm64';; *) local arch='x64';; esac - local fallback_url="https://github.com/Readarr/Readarr/releases/download/v0.4.6.2711/Readarr.develop.0.4.6.2711.linux-core-$arch.tar.gz" + local fallback_url="https://github.com/Readarr/Readarr/releases/download/v0.4.7.2718/Readarr.develop.0.4.7.2718.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)" # Install: Remove previous instance on reinstall From bac91f6000efca79353c5d9d32ae86a530605b7c Mon Sep 17 00:00:00 2001 From: MichaIng Date: Mon, 6 Jan 2025 15:50:10 +0700 Subject: [PATCH 031/112] v9.10 (#7348) - RISC-V | Packages for the riscv64 architecture are now available in Debian Trixie. Do not build Sid images anymore, and enable additional software options. --- .build/images/dietpi-build | 7 +- .build/software/Amiberry/container_build.bash | 4 +- .build/software/dietpi-software-build.bash | 4 +- .github/workflows/dietpi-software.bash | 4 +- .update/patches | 8 ++ .update/pre-patches | 10 +++ CHANGELOG.txt | 2 + dietpi/dietpi-software | 79 +++++++++---------- dietpi/func/dietpi-set_software | 7 +- 9 files changed, 67 insertions(+), 58 deletions(-) diff --git a/.build/images/dietpi-build b/.build/images/dietpi-build index 7cd289f46a..2a931f5470 100755 --- a/.build/images/dietpi-build +++ b/.build/images/dietpi-build @@ -184,7 +184,7 @@ case $HW_ARCH in 2) iarch='ARMv7' parch='armhf';; 3) iarch='ARMv8' parch='arm64';; 10) iarch='x86_64' parch='amd64';; - 11) iarch='RISC-V' parch='riscv64' DISTRO=8;; # RISC-V architecture is available on Sid only, but internally DietPi handles it as Trixie + 11) iarch='RISC-V' parch='riscv64' DISTRO=8;; # RISC-V architecture is available on Trixie only. *) G_DIETPI-NOTIFY 1 "Invalid architecture \"$HW_ARCH\" passed, aborting..."; exit 1;; esac @@ -194,7 +194,6 @@ case $DISTRO in 8) distro='trixie';; *) G_DIETPI-NOTIFY 1 "Invalid distro \"$DISTRO\" passed, aborting..."; exit 1;; esac -[[ $HW_ARCH == 11 ]] && distro='sid' # RISC-V architecture is available on Sid only case $PTTYPE in 'msdos') :;; @@ -610,7 +609,7 @@ then # Install Allo GUI via automated first run setup right here G_CONFIG_INJECT 'AUTO_SETUP_AUTOMATED=' 'AUTO_SETUP_AUTOMATED=1' rootfs/boot/dietpi.txt - # - Workaround for skipped autologin in emulated Trixie/Sid containers: https://gitlab.com/qemu-project/qemu/-/issues/1962 + # - Workaround for skipped autologin in emulated Trixie containers: https://gitlab.com/qemu-project/qemu/-/issues/1962 if (( $DISTRO == 8 && $G_HW_ARCH != $HW_ARCH && ( $G_HW_ARCH > 9 || $G_HW_ARCH < $HW_ARCH ) )) then cat << '_EOF_' > rootfs/etc/systemd/system/dietpi-automation.service @@ -712,7 +711,7 @@ _EOF_ # Revert ARMv6 Workaround (( $HW_ARCH == 1 )) && G_EXEC rm rootfs/usr/local/bin/uname - # Revert workaround for skipped autologin in emulated Trixie/Sid containers: https://gitlab.com/qemu-project/qemu/-/issues/1962 + # Revert workaround for skipped autologin in emulated Trixie containers: https://gitlab.com/qemu-project/qemu/-/issues/1962 (( $DISTRO == 8 )) && G_EXEC rm rootfs/etc/systemd/system/{multi-user.target.wants/,}dietpi-automation.service [[ -f 'rootfs/success' ]] || { G_DIETPI-NOTIFY 1 'The container setup did not finish successfully, aborting...'; exit 1; } diff --git a/.build/software/Amiberry/container_build.bash b/.build/software/Amiberry/container_build.bash index d4afd8c8ac..5063d9a470 100755 --- a/.build/software/Amiberry/container_build.bash +++ b/.build/software/Amiberry/container_build.bash @@ -60,7 +60,7 @@ case $PLATFORM in 'rpi'[345]'-64-'*|'AMLSM1'|'n2'|'a64'|'rk3588') image="ARMv8-${DISTRO^}" arch=3;; 'rpi'[2-5]*|'c1'|'xu4'|'RK3288'|'sun8i'|'s812') image="ARMv7-${DISTRO^}" arch=2;; 'x86-64') image="x86_64-${DISTRO^}" arch=10;; - 'riscv64') image='RISC-V-Sid' arch=11;; + 'riscv64') image="RISC-V-${DISTRO^}" arch=11;; *) Error_Exit "Invalid platform \"$PLATFORM\" passed";; esac image="DietPi_Container-$image.img" @@ -119,7 +119,7 @@ G_EXEC mount "${FP_LOOP}p1" rootfs # Enable automated setup G_CONFIG_INJECT 'AUTO_SETUP_AUTOMATED=' 'AUTO_SETUP_AUTOMATED=1' rootfs/boot/dietpi.txt -# - Workaround for skipped autologin in emulated Trixie/Sid containers: https://gitlab.com/qemu-project/qemu/-/issues/1962 +# - Workaround for skipped autologin in emulated Trixie containers: https://gitlab.com/qemu-project/qemu/-/issues/1962 if [[ $DISTRO == 'trixie' ]] && (( $G_HW_ARCH != $arch && ( $G_HW_ARCH > 9 || $G_HW_ARCH < $arch ) )) then cat << '_EOF_' > rootfs/etc/systemd/system/dietpi-automation.service diff --git a/.build/software/dietpi-software-build.bash b/.build/software/dietpi-software-build.bash index b33e9ea8b6..7fdf703373 100644 --- a/.build/software/dietpi-software-build.bash +++ b/.build/software/dietpi-software-build.bash @@ -64,7 +64,7 @@ case $ARCH in 'armv7l') image="ARMv7-${DISTRO^}" arch=2;; 'aarch64') image="ARMv8-${DISTRO^}" arch=3;; 'x86_64') image="x86_64-${DISTRO^}" arch=10;; - 'riscv64') image='RISC-V-Sid' arch=11; [[ $DISTRO == 'trixie' ]] || Error_Exit "Invalid distro \"$DISTRO\" for arch \"$ARCH\" passed, only \"trixie\" is supported";; + 'riscv64') image="RISC-V-${DISTRO^}" arch=11; [[ $DISTRO == 'trixie' ]] || Error_Exit "Invalid distro \"$DISTRO\" for arch \"$ARCH\" passed, only \"trixie\" is supported";; *) Error_Exit "Invalid architecture \"$ARCH\" passed";; esac image="DietPi_Container-$image.img" @@ -123,7 +123,7 @@ G_EXEC mount "${FP_LOOP}p1" rootfs # Enable automated setup G_CONFIG_INJECT 'AUTO_SETUP_AUTOMATED=' 'AUTO_SETUP_AUTOMATED=1' rootfs/boot/dietpi.txt -# - Workaround for skipped autologin in emulated Trixie/Sid containers: https://gitlab.com/qemu-project/qemu/-/issues/1962 +# - Workaround for skipped autologin in emulated Trixie containers: https://gitlab.com/qemu-project/qemu/-/issues/1962 if [[ $DISTRO == 'trixie' ]] && (( $G_HW_ARCH != $arch && ( $G_HW_ARCH > 9 || $G_HW_ARCH < $arch ) )) then cat << '_EOF_' > rootfs/etc/systemd/system/dietpi-automation.service diff --git a/.github/workflows/dietpi-software.bash b/.github/workflows/dietpi-software.bash index 1b5b1ebcc2..85d46bbe4c 100644 --- a/.github/workflows/dietpi-software.bash +++ b/.github/workflows/dietpi-software.bash @@ -66,7 +66,7 @@ case $ARCH in 'armv7l') image="ARMv7-${DISTRO^}" arch=2;; 'aarch64') image="ARMv8-${DISTRO^}" arch=3;; 'x86_64') image="x86_64-${DISTRO^}" arch=10;; - 'riscv64') image='RISC-V-Sid' arch=11;; + 'riscv64') image="RISC-V-${DISTRO^}" arch=11;; *) G_DIETPI-NOTIFY 1 "Invalid architecture \"$ARCH\" passed, aborting..."; exit 1;; esac image="DietPi_Container-$image.img" @@ -355,7 +355,7 @@ G_EXEC eval 'echo '\''infocmp "$TERM" > /dev/null 2>&1 || { echo "[ INFO ] Unsup # Enable automated setup G_CONFIG_INJECT 'AUTO_SETUP_AUTOMATED=' 'AUTO_SETUP_AUTOMATED=1' rootfs/boot/dietpi.txt -# - Workaround for skipped autologin in emulated Trixie/Sid containers: https://gitlab.com/qemu-project/qemu/-/issues/1962 +# - Workaround for skipped autologin in emulated Trixie containers: https://gitlab.com/qemu-project/qemu/-/issues/1962 # - Set HOME path, required e.g. go builds, which is otherwise missing when started from a systemd unit. if [[ $DISTRO == 'trixie' ]] && (( $G_HW_ARCH != $arch && ( $G_HW_ARCH > 9 || $G_HW_ARCH < $arch ) )) then diff --git a/.update/patches b/.update/patches index ff85e4928f..10bf45f42d 100755 --- a/.update/patches +++ b/.update/patches @@ -2069,6 +2069,14 @@ Patch_9_9() Patch_9_10() { + # RISC-V + if (( $G_HW_ARCH == 11 )) + then + G_DIETPI-NOTIFY 2 'Migrating RISC-V systems from Debian Sid/unstable to Trixie/testing ...' + local apt_mirror=$(mawk '$1=="deb"{print $2;exit}' /etc/apt/sources.list) + /boot/dietpi/func/dietpi-set_software apt-mirror "${apt_mirror:-default}" + fi + # Software updates, migrations and patches if [[ -f '/boot/dietpi/.installed' ]] then diff --git a/.update/pre-patches b/.update/pre-patches index f6abfb0761..39c51a5e8d 100755 --- a/.update/pre-patches +++ b/.update/pre-patches @@ -453,5 +453,15 @@ then fi fi +# v9.10 +if (( $G_DIETPI_VERSION_CORE < 9 || ( $G_DIETPI_VERSION_CORE == 9 && $G_DIETPI_VERSION_SUB < 10 ) )) +then + if (( $G_HW_ARCH == 11 )) + then + G_DIETPI-NOTIFY 2 'Migrating RISC-V systems from Debian Sid/unstable to Trixie/testing ...' + G_EXEC sed -i 's/ sid / trixie /' /etc/apt/sources.list + fi +fi + exit 0 } diff --git a/CHANGELOG.txt b/CHANGELOG.txt index cd4c0c9e35..6437b7645b 100644 --- a/CHANGELOG.txt +++ b/CHANGELOG.txt @@ -4,6 +4,8 @@ v9.10 New images: Enhancements: +- RISC-V | Debian Trixie does now support this architecture, hence our VisionFive 2 and Star64 images are now provided with Debian Trixie/testing instead of Debian Sid/unstable, and existing systemd will be migrated to the Trixie suite. +- RISC-V | Additional software options have been enabled for RISC-V systems: NZBGet, MicroK8s and AdGuard Home - DietPi-Software | myMPD: We enabled the software option for ARMv6 Bookworm systems, since packages for Raspbian Bookworm are now available. Many thanks to @hackslikeus for bringing up the topic: https://github.com/MichaIng/DietPi/issues/7345 Bug fixes: diff --git a/dietpi/dietpi-software b/dietpi/dietpi-software index 3a79afe0ec..07393cfb39 100755 --- a/dietpi/dietpi-software +++ b/dietpi/dietpi-software @@ -306,7 +306,7 @@ Available commands: aSOFTWARE_CATX[$software_id]=1 aSOFTWARE_DOCS[$software_id]='https://dietpi.com/docs/software/remote_desktop/#nomachine' aSOFTWARE_DEPS[$software_id]='desktop' - # - RISC-V: No package: https://downloads.nomachine.com/ + # - RISC-V: https://downloads.nomachine.com/ aSOFTWARE_AVAIL_G_HW_ARCH[$software_id,11]=0 #------------------ software_id=120 @@ -341,7 +341,7 @@ Available commands: aSOFTWARE_CATX[$software_id]=2 aSOFTWARE_DOCS[$software_id]='https://dietpi.com/docs/software/media/#mympd' aSOFTWARE_DEPS[$software_id]='128' - # - RISC-V: No package: https://download.opensuse.org/repositories/home:/jcorporation/Debian_Testing/ + # - RISC-V: https://download.opensuse.org/repositories/home:/jcorporation/Debian_Testing/ aSOFTWARE_AVAIL_G_HW_ARCH[$software_id,11]=0 # - ARMv6 Trixie: No Raspbian_Testing suite available and Bookworm package depends on libflac12 (( $G_HW_ARCH == 1 && $G_DISTRO > 7 )) && aSOFTWARE_AVAIL_G_DISTRO[$software_id,$G_DISTRO]=0 @@ -365,7 +365,7 @@ Available commands: aSOFTWARE_DESC[$software_id]='formerly Logitech Media Server and Squeezebox Server' aSOFTWARE_CATX[$software_id]=2 aSOFTWARE_DOCS[$software_id]='https://dietpi.com/docs/software/media/#lyrion-music-server' - # - RISC-V: No package: https://lms-community.github.io/lms-server-repository/stable.xml + # - RISC-V: https://lms-community.github.io/lms-server-repository/stable.xml aSOFTWARE_AVAIL_G_HW_ARCH[$software_id,11]=0 #------------------ software_id=36 @@ -402,7 +402,7 @@ Available commands: aSOFTWARE_DOCS[$software_id]='https://dietpi.com/docs/software/media/#emby' # - ARMv6: https://github.com/MichaIng/DietPi/issues/534#issuecomment-416405968 aSOFTWARE_AVAIL_G_HW_ARCH[$software_id,1]=0 - # - RISC-V: No package: https://github.com/MediaBrowser/Emby.Releases/releases + # - RISC-V: https://github.com/MediaBrowser/Emby.Releases/releases aSOFTWARE_AVAIL_G_HW_ARCH[$software_id,11]=0 #------------------ software_id=42 @@ -412,7 +412,7 @@ Available commands: aSOFTWARE_DOCS[$software_id]='https://dietpi.com/docs/software/media/#plex-media-server' # - ARMv6: https://github.com/MichaIng/DietPi/issues/648 aSOFTWARE_AVAIL_G_HW_ARCH[$software_id,1]=0 - # - RISC-V: No package: https://www.plex.tv/media-server-downloads/?cat=computer&plat=linux#plex-media-server + # - RISC-V: https://www.plex.tv/media-server-downloads/?cat=computer&plat=linux#plex-media-server aSOFTWARE_AVAIL_G_HW_ARCH[$software_id,11]=0 #------------------ software_id=43 @@ -436,7 +436,7 @@ Available commands: aSOFTWARE_DEPS[$software_id]='5' # - ARMv6 aSOFTWARE_AVAIL_G_HW_ARCH[$software_id,1]=0 - # - RISC-V: No archive: https://help.roonlabs.com/portal/en/kb/articles/linux-install + # - RISC-V: https://help.roonlabs.com/portal/en/kb/articles/linux-install aSOFTWARE_AVAIL_G_HW_ARCH[$software_id,11]=0 #------------------ software_id=124 @@ -445,7 +445,7 @@ Available commands: aSOFTWARE_CATX[$software_id]=2 aSOFTWARE_DOCS[$software_id]='https://dietpi.com/docs/software/media/#naa-daemon' aSOFTWARE_DEPS[$software_id]='5' - # - RISC-V: No packages: https://www.signalyst.eu/bins/naa/linux/ + # - RISC-V: https://www.signalyst.eu/bins/naa/linux/ aSOFTWARE_AVAIL_G_HW_ARCH[$software_id,11]=0 #------------------ software_id=128 @@ -518,7 +518,7 @@ Available commands: aSOFTWARE_CATX[$software_id]=2 aSOFTWARE_DOCS[$software_id]='https://dietpi.com/docs/software/media/#raspotify' aSOFTWARE_DEPS[$software_id]='5 152' - # - RISC-V: No package: https://github.com/dtcooper/raspotify/releases + # - RISC-V: https://github.com/dtcooper/raspotify/releases aSOFTWARE_AVAIL_G_HW_ARCH[$software_id,11]=0 # - Bookworm/Trixie on ARMv6 (older package): "/usr/bin/librespot: error while loading shared libraries: ld-linux.so.3: cannot open shared object file: No such file or directory" (( $G_HW_ARCH == 1 && $G_DISTRO > 6 )) && aSOFTWARE_AVAIL_G_DISTRO[$software_id,$G_DISTRO]=0 @@ -537,7 +537,7 @@ Available commands: aSOFTWARE_DOCS[$software_id]='https://dietpi.com/docs/software/media/#komga' aSOFTWARE_DEPS[$software_id]='196' # - RISC-V: An embedded Java library has no RISC-V support yet: "Caused by: java.lang.Exception: No native library found for os.name=Linux, os.arch=riscv64" - aSOFTWARE_AVAIL_G_HW_ARCH[$software_id,11]=0 + #aSOFTWARE_AVAIL_G_HW_ARCH[$software_id,11]=0 #------------------ software_id=86 aSOFTWARE_NAME[$software_id]='Roon Extension Manager' @@ -555,7 +555,7 @@ Available commands: aSOFTWARE_DOCS[$software_id]='https://dietpi.com/docs/software/media/#jellyfin' # - ARMv6: https://github.com/jellyfin/jellyfin/issues/5011 aSOFTWARE_AVAIL_G_HW_ARCH[$software_id,1]=0 - # - RISC-V: No package: https://repo.jellyfin.org/releases/server/debian/unstable/ + # - RISC-V: https://repo.jellyfin.org/?path=/server/debian/latest-unstable aSOFTWARE_AVAIL_G_HW_ARCH[$software_id,11]=0 #------------------ software_id=190 @@ -597,7 +597,7 @@ Available commands: aSOFTWARE_CATX[$software_id]=2 aSOFTWARE_DOCS[$software_id]='https://dietpi.com/docs/software/media/#navidrome' aSOFTWARE_DEPS[$software_id]='5 7' - # - RISC-V: No archive: https://github.com/navidrome/navidrome/releases/ + # - RISC-V: https://github.com/navidrome/navidrome/releases/ aSOFTWARE_AVAIL_G_HW_ARCH[$software_id,11]=0 #------------------ software_id=212 @@ -665,7 +665,7 @@ Available commands: aSOFTWARE_DOCS[$software_id]='https://dietpi.com/docs/software/bittorrent/#sonarr' aSOFTWARE_DEPS[$software_id]='87' (( $G_HW_ARCH == 1 )) && aSOFTWARE_DEPS[$software_id]+=' 150' - # - RISC-V: Missing package + # - RISC-V: https://github.com/Sonarr/Sonarr/releases aSOFTWARE_AVAIL_G_HW_ARCH[$software_id,11]=0 #------------------ software_id=145 @@ -675,7 +675,7 @@ Available commands: aSOFTWARE_DOCS[$software_id]='https://dietpi.com/docs/software/bittorrent/#radarr' aSOFTWARE_DEPS[$software_id]='87' (( $G_HW_ARCH == 1 )) && aSOFTWARE_DEPS[$software_id]+=' 150' - # - RISC-V: Missing package + # - RISC-V: https://github.com/Radarr/Radarr/releases aSOFTWARE_AVAIL_G_HW_ARCH[$software_id,11]=0 #------------------ software_id=106 @@ -685,7 +685,7 @@ Available commands: aSOFTWARE_DOCS[$software_id]='https://dietpi.com/docs/software/bittorrent/#lidarr' aSOFTWARE_DEPS[$software_id]='87' (( $G_HW_ARCH == 1 )) && aSOFTWARE_DEPS[$software_id]+=' 150' - # - RISC-V: Missing package + # - RISC-V: https://github.com/Lidarr/Lidarr/releases aSOFTWARE_AVAIL_G_HW_ARCH[$software_id,11]=0 #------------------ software_id=180 @@ -699,7 +699,7 @@ Available commands: # UnRAR x86_64 and ARMv8 binaries are shipped with Bazarr, ARMv6 needs to use "unar": https://github.com/morpheus65535/bazarr-binaries/tree/master/bin/Linux, https://github.com/morpheus65535/bazarr/issues/2172 (( $G_HW_ARCH == 2 )) && aSOFTWARE_DEPS[$software_id]+=' 170' # - RISC-V: webrtcvad-wheels build fails with: "cbits/webrtc/typedefs.h:61:2: error: #error Please add support for your architecture in typedefs.h" - aSOFTWARE_AVAIL_G_HW_ARCH[$software_id,11]=0 + #aSOFTWARE_AVAIL_G_HW_ARCH[$software_id,11]=0 #------------------ software_id=147 aSOFTWARE_NAME[$software_id]='Jackett' @@ -707,7 +707,7 @@ Available commands: aSOFTWARE_CATX[$software_id]=3 aSOFTWARE_DOCS[$software_id]='https://dietpi.com/docs/software/bittorrent/#jackett' (( $G_HW_ARCH == 1 )) && aSOFTWARE_DEPS[$software_id]='150' - # - RISC-V: Missing package + # - RISC-V: https://github.com/Jackett/Jackett/releases aSOFTWARE_AVAIL_G_HW_ARCH[$software_id,11]=0 #------------------ software_id=149 @@ -715,8 +715,6 @@ Available commands: aSOFTWARE_DESC[$software_id]='NZB download manager' aSOFTWARE_CATX[$software_id]=3 aSOFTWARE_DOCS[$software_id]='https://dietpi.com/docs/software/bittorrent/#nzbget' - # - RISC-V: Installer does not support it yet: https://nzbget.net/download/nzbget-latest-bin-linux.run - aSOFTWARE_AVAIL_G_HW_ARCH[$software_id,11]=0 #------------------ software_id=151 aSOFTWARE_NAME[$software_id]='Prowlarr' @@ -726,7 +724,7 @@ Available commands: aSOFTWARE_DEPS[$software_id]='87' # - ARMv6 aSOFTWARE_AVAIL_G_HW_ARCH[$software_id,1]=0 - # - RISC-V: Missing package + # - RISC-V: https://github.com/Prowlarr/Prowlarr/releases aSOFTWARE_AVAIL_G_HW_ARCH[$software_id,11]=0 #------------------ software_id=203 @@ -737,7 +735,7 @@ Available commands: aSOFTWARE_DEPS[$software_id]='87' # - ARMv6 aSOFTWARE_AVAIL_G_HW_ARCH[$software_id,1]=0 - # - RISC-V: Missing package + # - RISC-V: https://github.com/Readarr/Readarr/releases aSOFTWARE_AVAIL_G_HW_ARCH[$software_id,11]=0 #------------------ software_id=155 @@ -798,7 +796,7 @@ Available commands: aSOFTWARE_DOCS[$software_id]='https://dietpi.com/docs/software/cloud/#urbackup' # - ARMv6 aSOFTWARE_AVAIL_G_HW_ARCH[$software_id,1]=0 - # - RISC-V: Missing package: https://www.urbackup.org/download.html#server_debian + # - RISC-V: https://www.urbackup.org/download.html#server_debian aSOFTWARE_AVAIL_G_HW_ARCH[$software_id,11]=0 #------------------ software_id=49 @@ -820,7 +818,7 @@ Available commands: aSOFTWARE_DESC[$software_id]='S3 compatible distributed object server' aSOFTWARE_CATX[$software_id]=4 aSOFTWARE_DOCS[$software_id]='https://dietpi.com/docs/software/cloud/#minio' - # - RISC-V: Missing package: https://dl.minio.io/server/minio/release/ + # - RISC-V: https://dl.minio.io/server/minio/release/ aSOFTWARE_AVAIL_G_HW_ARCH[$software_id,11]=0 #------------------ software_id=161 @@ -830,7 +828,7 @@ Available commands: aSOFTWARE_DOCS[$software_id]='https://dietpi.com/docs/software/cloud/#fuguhub' # - ARMv8 aSOFTWARE_AVAIL_G_HW_ARCH[$software_id,3]=0 - # - RISC-V: Missing package + # - RISC-V: https://fuguhub.com/download.lsp aSOFTWARE_AVAIL_G_HW_ARCH[$software_id,11]=0 #------------------ software_id=165 @@ -840,7 +838,7 @@ Available commands: aSOFTWARE_DOCS[$software_id]='https://dietpi.com/docs/software/cloud/#gitea' aSOFTWARE_DEPS[$software_id]='17 88 0' aSOFTWARE_CONFLICTS[$software_id]='49 177' - # - RISC-V: Missing binary: https://github.com/go-gitea/gitea/releases + # - RISC-V: https://github.com/go-gitea/gitea/releases aSOFTWARE_AVAIL_G_HW_ARCH[$software_id,11]=0 #------------------ software_id=177 @@ -850,7 +848,7 @@ Available commands: 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 + # - RISC-V: https://codeberg.org/forgejo/forgejo/releases aSOFTWARE_AVAIL_G_HW_ARCH[$software_id,11]=0 #------------------ software_id=183 @@ -912,7 +910,7 @@ Available commands: aSOFTWARE_DESC[$software_id]='Minecraft server with web interface (C++)' aSOFTWARE_CATX[$software_id]=5 aSOFTWARE_DOCS[$software_id]='https://dietpi.com/docs/software/gaming/#cuberite' - # - RISC-V: Missing binary + # - RISC-V: https://cuberite.org/ aSOFTWARE_AVAIL_G_HW_ARCH[$software_id,11]=0 #------------------ software_id=53 @@ -1141,7 +1139,7 @@ Available commands: aSOFTWARE_CATX[$software_id]=8 aSOFTWARE_DOCS[$software_id]='https://dietpi.com/docs/software/programming/#docker-compose' aSOFTWARE_DEPS[$software_id]='162' - # - RISC-V: Missing package: https://download.docker.com/linux/debian/dists/ + # - RISC-V: https://download.docker.com/linux/debian/dists/ aSOFTWARE_AVAIL_G_HW_ARCH[$software_id,11]=0 #------------------ software_id=193 @@ -1149,7 +1147,7 @@ Available commands: aSOFTWARE_DESC[$software_id]='The certified Kubernetes distribution built for IoT & Edge computing' aSOFTWARE_CATX[$software_id]=8 aSOFTWARE_DOCS[$software_id]='https://dietpi.com/docs/software/cloud/#k3s' - # - RISC-V: Not yet supported: https://github.com/k3s-io/k3s/issues/7151 + # - RISC-V: Not yet supported: https://get.k3s.io/ aSOFTWARE_AVAIL_G_HW_ARCH[$software_id,11]=0 #------------------ software_id=142 @@ -1157,8 +1155,6 @@ Available commands: aSOFTWARE_DESC[$software_id]='The simplest production-grade upstream K8s, light and focused' aSOFTWARE_CATX[$software_id]=8 aSOFTWARE_DOCS[$software_id]='https://dietpi.com/docs/software/cloud/#microk8s' - # - RISC-V: Missing package: https://packages.debian.org/sid/snapd - aSOFTWARE_AVAIL_G_HW_ARCH[$software_id,11]=0 #------------------ software_id=200 aSOFTWARE_NAME[$software_id]='DietPi-Dashboard' @@ -1186,7 +1182,7 @@ Available commands: aSOFTWARE_DESC[$software_id]='Provides secure connections to your networked devices' aSOFTWARE_CATX[$software_id]=9 aSOFTWARE_DOCS[$software_id]='https://dietpi.com/docs/software/remote_desktop/#remot3it' - # - RISC-V: Missing package + # - RISC-V: https://www.remote.it/download-list aSOFTWARE_AVAIL_G_HW_ARCH[$software_id,11]=0 #------------------ software_id=138 @@ -1195,7 +1191,7 @@ Available commands: aSOFTWARE_CATX[$software_id]=9 aSOFTWARE_DOCS[$software_id]='https://dietpi.com/docs/software/remote_desktop/#virtualhere' aSOFTWARE_DEPS[$software_id]='152' - # - RISC-V: Missing package + # - RISC-V: https://github.com/virtualhere/script/blob/main/install_server aSOFTWARE_AVAIL_G_HW_ARCH[$software_id,11]=0 # Hardware Projects @@ -1293,7 +1289,7 @@ Available commands: aSOFTWARE_DESC[$software_id]='platform for analytics and monitoring' aSOFTWARE_CATX[$software_id]=10 aSOFTWARE_DOCS[$software_id]='https://dietpi.com/docs/software/hardware_projects/#grafana' - # - RISC-V: Missing package + # - RISC-V: https://apt.grafana.com/dists/stable/main/binary-riscv64/Packages aSOFTWARE_AVAIL_G_HW_ARCH[$software_id,11]=0 # System Security @@ -1407,8 +1403,6 @@ Available commands: aSOFTWARE_CATX[$software_id]=13 aSOFTWARE_DOCS[$software_id]='https://dietpi.com/docs/software/dns_servers/#adguard-home' aSOFTWARE_CONFLICTS[$software_id]='93' - # - RISC-V: Missing binary: https://github.com/AdguardTeam/AdGuardHome/releases - aSOFTWARE_AVAIL_G_HW_ARCH[$software_id,11]=0 #------------------ software_id=182 aSOFTWARE_NAME[$software_id]='Unbound' @@ -1526,7 +1520,7 @@ Available commands: aSOFTWARE_DESC[$software_id]='Open source home automation platform' aSOFTWARE_CATX[$software_id]=17 aSOFTWARE_DOCS[$software_id]='https://dietpi.com/docs/software/home_automation/#domoticz' - # - RISC-V: Missing archive: https://github.com/domoticz/domoticz/releases, https://www.domoticz.com/downloads/ + # - RISC-V: https://github.com/domoticz/domoticz/releases, https://www.domoticz.com/downloads/ aSOFTWARE_AVAIL_G_HW_ARCH[$software_id,11]=0 # - Bookworm/Trixie ARM: https://github.com/domoticz/domoticz/issues/5233#issuecomment-1904906172 (( $G_HW_ARCH < 10 && $G_DISTRO > 6 )) && aSOFTWARE_AVAIL_G_DISTRO[$software_id,$G_DISTRO]=0 @@ -1552,7 +1546,7 @@ Available commands: aSOFTWARE_DESC[$software_id]='Bringing HomeKit support where there is none' aSOFTWARE_CATX[$software_id]=17 aSOFTWARE_DOCS[$software_id]='https://dietpi.com/docs/software/home_automation/#homebridge' - # - RISC-V: Missing packages: https://repo.homebridge.io/dists/stable/Release + # - RISC-V: https://repo.homebridge.io/dists/stable/Release aSOFTWARE_AVAIL_G_HW_ARCH[$software_id,11]=0 #------------------ @@ -1611,7 +1605,7 @@ Available commands: aSOFTWARE_DESC[$software_id]='contribute to a decentralized internet' aSOFTWARE_CATX[$software_id]=19 aSOFTWARE_DOCS[$software_id]='https://dietpi.com/docs/software/distributed_projects/#ipfs-node' - # - RISC-V: Missing package: https://dist.ipfs.io/go-ipfs/ + # - RISC-V: https://dist.ipfs.io/go-ipfs/ aSOFTWARE_AVAIL_G_HW_ARCH[$software_id,11]=0 # SSH Clients @@ -1764,7 +1758,7 @@ Available commands: aSOFTWARE_CATX[$software_id]=26 aSOFTWARE_DOCS[$software_id]='https://dietpi.com/docs/software/programming/#vscodium' aSOFTWARE_DEPS[$software_id]='5 6 17' - # - RISC-V: Missing package + # - RISC-V: https://paulcarroty.gitlab.io/vscodium-deb-rpm-repo/debs/dists/vscodium/Release aSOFTWARE_AVAIL_G_HW_ARCH[$software_id,11]=0 #------------------ software_id=188 @@ -1798,7 +1792,7 @@ Available commands: aSOFTWARE_DESC[$software_id]='Runtime libraries and repository' aSOFTWARE_CATX[$software_id]=26 aSOFTWARE_DOCS[$software_id]='https://dietpi.com/docs/software/programming/#mono' - # - RISC-V: No package: https://download.mono-project.com/repo/debian/dists/buster/main/, https://packages.debian.org/sid/mono-runtime + # - RISC-V: https://download.mono-project.com/repo/debian/dists/buster/main/, https://packages.debian.org/trixie/mono-runtime aSOFTWARE_AVAIL_G_HW_ARCH[$software_id,11]=0 #------------------ software_id=34 @@ -1852,7 +1846,7 @@ Available commands: aSOFTWARE_DEPS[$software_id]='5 6' # - ARMv6: https://github.com/RPi-Distro/chromium-browser/issues/21 aSOFTWARE_AVAIL_G_HW_ARCH[$software_id,1]=0 - # - RISC-V: Missing package: https://packages.debian.org/sid/chromium + # - RISC-V: https://packages.debian.org/trixie/chromium aSOFTWARE_AVAIL_G_HW_ARCH[$software_id,11]=0 #------------------ software_id=67 @@ -6100,7 +6094,8 @@ _EOF_ 1) local arch='armv6';; 2) local arch='armv7';; 3) local arch='arm64';; - *) local arch='amd64';; + 10) local arch='amd64';; + *) local arch='riscv64';; esac Download_Install "https://static.adguard.com/adguardhome/release/AdGuardHome_linux_$arch.tar.gz" diff --git a/dietpi/func/dietpi-set_software b/dietpi/func/dietpi-set_software index ac6c45dbc0..2f9eaff946 100755 --- a/dietpi/func/dietpi-set_software +++ b/dietpi/func/dietpi-set_software @@ -308,13 +308,8 @@ $FP_SCRIPT rpi_kernel_choice Supported on Debian Bookworm or newer on R # RPi Trixie: Suite does not exist yet: https://archive.raspberrypi.com/debian/dists/ (( $G_HW_MODEL < 10 || ( $G_HW_MODEL == 75 && ${G_RASPBIAN:-0} == 1 ) )) && G_EXEC eval "echo 'deb https://archive.raspberrypi.com/debian ${G_DISTRO_NAME/trixie/bookworm} main' > /etc/apt/sources.list.d/raspi.list" - # RISC-V: Provided via Sid only - if (( $G_HW_ARCH == 11 )) - then - G_EXEC eval 'echo '\''deb https://deb.debian.org/debian sid main contrib non-free non-free-firmware'\'' > /etc/apt/sources.list' - # Raspbian - elif (( $G_RASPBIAN )) + if (( $G_RASPBIAN )) then [[ $INPUT_MODE_VALUE == 'default' ]] && INPUT_MODE_VALUE='http://raspbian.raspberrypi.com/raspbian' From 522abbd7b8f663865d97041ed496e8dd40672afe Mon Sep 17 00:00:00 2001 From: MichaIng Date: Mon, 6 Jan 2025 15:56:33 +0700 Subject: [PATCH 032/112] v9.10 - DietPi-Software | Syncthing: 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 07393cfb39..64e6627626 100755 --- a/dietpi/dietpi-software +++ b/dietpi/dietpi-software @@ -8995,7 +8995,7 @@ _EOF_ *) local arch='arm';; esac - local fallback_url="https://github.com/syncthing/syncthing/releases/download/v1.28.1/syncthing-linux-$arch-v1.28.1.tar.gz" + local fallback_url="https://github.com/syncthing/syncthing/releases/download/v1.29.0/syncthing-linux-$arch-v1.29.0.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 From 1b26497b1c3e9e5e3897449048bdd7a303a850f2 Mon Sep 17 00:00:00 2001 From: MichaIng Date: Mon, 6 Jan 2025 16:39:23 +0700 Subject: [PATCH 033/112] v9.10 - CI | Armbian: Build own kernel package for Orange Pi 5 Max with package name suffix, to enable onboard WiFi support: https://github.com/MichaIng/DietPi/issues/7338 --- .github/workflows/armbian.yml | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/.github/workflows/armbian.yml b/.github/workflows/armbian.yml index 618d1ccbf8..e3fad44e4a 100644 --- a/.github/workflows/armbian.yml +++ b/.github/workflows/armbian.yml @@ -66,6 +66,11 @@ jobs: git fetch origin main git rebase origin/main fi + # Workaround for onboard WiFi on Orange Pi 5 Max + if [ '${{ github.event.inputs.board }}' = 'orangepi5-max' ] && [ '${{ github.event.inputs.asset }}' = 'kernel' ] + then + git cherry-pick origin/orangepi5max || git cherry-pick dietpi/orangepi5max + fi - name: Obtain version suffix run: | cd build @@ -82,6 +87,10 @@ jobs: ;; *) echo 'ERROR: Invalid asset "${{ github.event.inputs.asset }}"'; exit 1;; esac + if [ '${{ github.event.inputs.board }}' = 'orangepi5-max' ] && [ '${{ github.event.inputs.asset }}' = 'kernel' ] + then + package="${package}_orangepi5max" + fi if curl -fO "https://dietpi.com/downloads/binaries/$package.deb" then cur_version=$(dpkg-deb -f "$package.deb" Version) @@ -112,6 +121,10 @@ jobs: for i in * do mv -v "$i" "${i%%_*}.deb" + if [ '${{ github.event.inputs.board }}' = 'orangepi5-max' ] && [ '${{ github.event.inputs.asset }}' = 'kernel' ] + then + mv -v "$i" "${i%.deb}_orangepi5max.deb" + fi i="${i%%_*}.deb" files="$files,$i" urls="$urls,\"https://dietpi.com/downloads/binaries/testing/$i\"" From 8fd032726036338db314005cb834602a357468e1 Mon Sep 17 00:00:00 2001 From: MichaIng Date: Mon, 6 Jan 2025 19:54:59 +0700 Subject: [PATCH 034/112] v9.10 - DietPi-Software | PaperMC: Resolved an issue where the installation failed, because the API URL changed. Many thanks to @onkeld for reporting this issue: https://github.com/MichaIng/DietPi/issues/7349 --- CHANGELOG.txt | 1 + dietpi/dietpi-software | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.txt b/CHANGELOG.txt index 6437b7645b..6b2eec68af 100644 --- a/CHANGELOG.txt +++ b/CHANGELOG.txt @@ -14,6 +14,7 @@ Bug fixes: - DietPi-Software | Raspotify: Resolved an issue where the service failed to start, if Avahi-Daemon was not installed. librespot has it as new default DNS discovery backend, and official pre-compiled Raspotify binaries are not compiled with the old DNS-SD backend anymore. Avahi-Daemon is hence installed now by DietPi-Software as well. Many thanks to @gergokis for reporting this issue: https://github.com/MichaIng/DietPi/issues/7323 - DietPi-Software | Navidrome: Resolved an issue where the service failed to start, since the latest release archive does not ship with the needed permissions. Many thanks to @nclro for reporting this issue: https://github.com/MichaIng/DietPi/issues/7336 - DietPi-Software | Home Assistant: Worked around an issue where the installation failed on ARMv6 and RISC-V systems, due to an incompatibility between two dependencies. Many thanks to @jankkhvej for reporting this issue: https://github.com/MichaIng/DietPi/issues/7329 +- DietPi-Software | PaperMC: Resolved an issue where the installation failed, because the API URL changed. Many thanks to @onkeld for reporting this issue: https://github.com/MichaIng/DietPi/issues/7349 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 64e6627626..65d68342c2 100755 --- a/dietpi/dietpi-software +++ b/dietpi/dietpi-software @@ -11504,7 +11504,7 @@ _EOF_ if [[ -f '/mnt/dietpi_userdata/papermc/eula.txt' ]] || G_WHIP_BUTTON_OK_TEXT='Yes' G_WHIP_BUTTON_CANCEL_TEXT='Abort' G_WHIP_YESNO 'Do you agree to the Minecraft EULA found at:\n\nhttps://account.mojang.com/documents/minecraft_eula' then # Collect latest version of PaperMC - local url='https://papermc.io/api/v2/projects/paper' + local url='https://api.papermc.io/v2/projects/paper' local version=$(curl -sSfL "$url"); version=${version%\"*} version=${version##*\"} local build=$(curl -sSfL "$url/versions/$version"); build=${build%]*} build=${build##*[,[]} #local file=$(curl -sSfL "$url/versions/$version/builds/$build"); file=${file##*\"name\":\"} file=${file%%\"*} From 52880db7808473c81541d0a2d2b96279ff882ef2 Mon Sep 17 00:00:00 2001 From: MichaIng Date: Mon, 6 Jan 2025 20:37:52 +0700 Subject: [PATCH 035/112] v9.10 - DietPi-Software | PaperMC: Allow unintended reinstalls, if the EULA has been accepted already. Update existing Geyser and Floodgate plugins in this case, but skip installing them otherwise. --- .github/workflows/dietpi-software.bash | 4 ++++ dietpi/dietpi-software | 5 +++-- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/.github/workflows/dietpi-software.bash b/.github/workflows/dietpi-software.bash index 85d46bbe4c..98ecde4882 100644 --- a/.github/workflows/dietpi-software.bash +++ b/.github/workflows/dietpi-software.bash @@ -390,6 +390,10 @@ G_EXEC rm rootfs/root/.ssh/known_hosts # Apply software IDs to install for i in $SOFTWARE; do G_CONFIG_INJECT "AUTO_SETUP_INSTALL_SOFTWARE_ID=$i" "AUTO_SETUP_INSTALL_SOFTWARE_ID=$i" rootfs/boot/dietpi.txt; done +# Enable unattended PaperMC install +G_EXEC mkdir -p /mnt/dietpi_userdata/papermc +G_EXEC eval 'echo '\''eula=true'\'' > /mnt/dietpi_userdata/papermc/eula.txt' + # Workaround for "Could not execute systemctl: at /usr/bin/deb-systemd-invoke line 145." during Apache2 DEB postinst in 32-bit ARM Bookworm container: https://lists.ubuntu.com/archives/foundations-bugs/2022-January/467253.html G_CONFIG_INJECT 'AUTO_SETUP_WEB_SERVER_INDEX=' 'AUTO_SETUP_WEB_SERVER_INDEX=-2' rootfs/boot/dietpi.txt diff --git a/dietpi/dietpi-software b/dietpi/dietpi-software index 65d68342c2..a40b9ee4dc 100755 --- a/dietpi/dietpi-software +++ b/dietpi/dietpi-software @@ -946,7 +946,7 @@ Available commands: aSOFTWARE_CATX[$software_id]=5 aSOFTWARE_DOCS[$software_id]='https://dietpi.com/docs/software/gaming/#papermc' aSOFTWARE_DEPS[$software_id]='196' - aSOFTWARE_INTERACTIVE[$software_id]=1 + [[ -f '/mnt/dietpi_userdata/papermc/eula.txt' ]] || aSOFTWARE_INTERACTIVE[$software_id]=1 # - ARMv6 as of Java 16+ need aSOFTWARE_AVAIL_G_HW_ARCH[$software_id,1]=0 #------------------ @@ -11511,7 +11511,7 @@ _EOF_ # Download and install PaperMC Download_Install "$url/versions/$version/builds/$build/downloads/paper-$version-$build.jar" /opt/papermc/paperclip.jar G_EXEC mkdir -p /mnt/dietpi_userdata/papermc - G_EXEC eval 'echo "eula=true" > /mnt/dietpi_userdata/papermc/eula.txt' + G_EXEC eval 'echo '\''eula=true'\'' > /mnt/dietpi_userdata/papermc/eula.txt' # User Create_User -d /mnt/dietpi_userdata/papermc papermc @@ -11519,6 +11519,7 @@ _EOF_ # Bedrock compatibility G_WHIP_BUTTON_OK_TEXT='Yes' G_WHIP_BUTTON_CANCEL_TEXT='Skip' + [[ -f '/mnt/dietpi_userdata/papermc/plugins/Geyser-Spigot.jar' ]] && G_WHIP_DEFAULT_ITEM='Yes' if G_WHIP_YESNO 'Would you like to install the Geyser and Floodgate plugins for compatibility with Bedrock Edition?\n\nNote that this may be buggy.' then Download_Install 'https://download.geysermc.org/v2/projects/geyser/versions/latest/builds/latest/downloads/spigot' /mnt/dietpi_userdata/papermc/plugins/Geyser-Spigot.jar From d86953a79e52c6c50c1078bd275e318996b1232b Mon Sep 17 00:00:00 2001 From: MichaIng Date: Mon, 6 Jan 2025 20:41:32 +0700 Subject: [PATCH 036/112] v9.10 - CI | DietPi-Software test: Test Java as well when testing PaperMC --- .github/workflows/dietpi-software.bash | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/dietpi-software.bash b/.github/workflows/dietpi-software.bash index 98ecde4882..2832f36064 100644 --- a/.github/workflows/dietpi-software.bash +++ b/.github/workflows/dietpi-software.bash @@ -254,7 +254,7 @@ do 38|40|48|54|55|57|59|76|79|82|90|160|210) Process_Software 88 89 webserver;; 159) Process_Software 36 37 65 88 89 96 121 124 128 129 152 160 163 webserver;; 47|114|168) Process_Software 88 89 91 webserver;; - 8|33|131|179|206) Process_Software 196;; + 8|33|131|179|181|206) Process_Software 196;; 32|148|119) Process_Software 128;; 129) Process_Software 88 89 128 webserver;; 49|165|177) Process_Software 0 17 88;; From 6bd87f268889e85318aa99c1974daac6c1ac7f81 Mon Sep 17 00:00:00 2001 From: MichaIng Date: Mon, 6 Jan 2025 20:52:20 +0700 Subject: [PATCH 037/112] v9.10 - CI | DietPi-Software test: Fix PaperMC workaround, and test Geyser and Floodgate installs as well --- .github/workflows/dietpi-software.bash | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/.github/workflows/dietpi-software.bash b/.github/workflows/dietpi-software.bash index 2832f36064..7836b790a8 100644 --- a/.github/workflows/dietpi-software.bash +++ b/.github/workflows/dietpi-software.bash @@ -391,8 +391,9 @@ G_EXEC rm rootfs/root/.ssh/known_hosts for i in $SOFTWARE; do G_CONFIG_INJECT "AUTO_SETUP_INSTALL_SOFTWARE_ID=$i" "AUTO_SETUP_INSTALL_SOFTWARE_ID=$i" rootfs/boot/dietpi.txt; done # Enable unattended PaperMC install -G_EXEC mkdir -p /mnt/dietpi_userdata/papermc -G_EXEC eval 'echo '\''eula=true'\'' > /mnt/dietpi_userdata/papermc/eula.txt' +G_EXEC mkdir -p rootfs/mnt/dietpi_userdata/papermc/plugins +G_EXEC eval 'echo '\''eula=true'\'' > rootfs/mnt/dietpi_userdata/papermc/eula.txt' +G_EXEC touch rootfs/mnt/dietpi_userdata/papermc/plugins/Geyser-Spigot.jar # Workaround for "Could not execute systemctl: at /usr/bin/deb-systemd-invoke line 145." during Apache2 DEB postinst in 32-bit ARM Bookworm container: https://lists.ubuntu.com/archives/foundations-bugs/2022-January/467253.html G_CONFIG_INJECT 'AUTO_SETUP_WEB_SERVER_INDEX=' 'AUTO_SETUP_WEB_SERVER_INDEX=-2' rootfs/boot/dietpi.txt From e0430a708188d27f645bfafe96e258f2540da154 Mon Sep 17 00:00:00 2001 From: MichaIng Date: Mon, 6 Jan 2025 21:34:42 +0700 Subject: [PATCH 038/112] v9.10 - DietPi-Software | PaperMC: Resolved an issue where the installation failed on Bullseye and Bookworm systems, as Minecraft 1.21 requires Java 21, available on Debian Trixie only. PaperMC 1.20.4 will be installed in those cases now, the latest version which supports Java 17. As a side note: In the same turn, the installation has been re-enabled on ARMv6 systems, using PaperMC 1.16.5, the latest one supporting Java 8. --- CHANGELOG.txt | 1 + dietpi/dietpi-software | 10 ++++++---- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.txt b/CHANGELOG.txt index 6b2eec68af..489f0ceef1 100644 --- a/CHANGELOG.txt +++ b/CHANGELOG.txt @@ -15,6 +15,7 @@ Bug fixes: - DietPi-Software | Navidrome: Resolved an issue where the service failed to start, since the latest release archive does not ship with the needed permissions. Many thanks to @nclro for reporting this issue: https://github.com/MichaIng/DietPi/issues/7336 - DietPi-Software | Home Assistant: Worked around an issue where the installation failed on ARMv6 and RISC-V systems, due to an incompatibility between two dependencies. Many thanks to @jankkhvej for reporting this issue: https://github.com/MichaIng/DietPi/issues/7329 - DietPi-Software | PaperMC: Resolved an issue where the installation failed, because the API URL changed. Many thanks to @onkeld for reporting this issue: https://github.com/MichaIng/DietPi/issues/7349 +- DietPi-Software | PaperMC: Resolved an issue where the installation failed on Bullseye and Bookworm systems, as Minecraft 1.21 requires Java 21, available on Debian Trixie only. PaperMC 1.20.4 will be installed in those cases now, the latest version which supports Java 17. As a side note: In the same turn, the installation has been re-enabled on ARMv6 systems, using PaperMC 1.16.5, the latest one supporting Java 8. 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 a40b9ee4dc..e73b726022 100755 --- a/dietpi/dietpi-software +++ b/dietpi/dietpi-software @@ -947,8 +947,6 @@ Available commands: aSOFTWARE_DOCS[$software_id]='https://dietpi.com/docs/software/gaming/#papermc' aSOFTWARE_DEPS[$software_id]='196' [[ -f '/mnt/dietpi_userdata/papermc/eula.txt' ]] || aSOFTWARE_INTERACTIVE[$software_id]=1 - # - ARMv6 as of Java 16+ need - aSOFTWARE_AVAIL_G_HW_ARCH[$software_id,1]=0 #------------------ software_id=62 aSOFTWARE_NAME[$software_id]='Box86' @@ -11503,9 +11501,13 @@ _EOF_ # Make sure user agrees to the EULA if [[ -f '/mnt/dietpi_userdata/papermc/eula.txt' ]] || G_WHIP_BUTTON_OK_TEXT='Yes' G_WHIP_BUTTON_CANCEL_TEXT='Abort' G_WHIP_YESNO 'Do you agree to the Minecraft EULA found at:\n\nhttps://account.mojang.com/documents/minecraft_eula' then - # Collect latest version of PaperMC + # Collect latest build of latest supported version of PaperMC local url='https://api.papermc.io/v2/projects/paper' - local version=$(curl -sSfL "$url"); version=${version%\"*} version=${version##*\"} + # - Minecraft 1.20.5 and above requires Java 21: https://minecraft.wiki/w/Java_Edition_1.20.5 + local version='1.20.4' + # - ARMv6: Minecraft 1.17 requires Java 16: https://minecraft.wiki/w/Java_Edition_1.17 + (( $G_HW_ARCH == 1 )) && version='1.16.5' + (( $G_HW_ARCH > 1 && $G_DISTRO > 7 )) && { version=$(curl -sSfL "$url"); version=${version%\"*}; version=${version##*\"}; } local build=$(curl -sSfL "$url/versions/$version"); build=${build%]*} build=${build##*[,[]} #local file=$(curl -sSfL "$url/versions/$version/builds/$build"); file=${file##*\"name\":\"} file=${file%%\"*} # Download and install PaperMC From cc870ab4d34885c5e52b8c9f671a26b4a5e8bcd7 Mon Sep 17 00:00:00 2001 From: MichaIng Date: Tue, 7 Jan 2025 13:21:38 +0700 Subject: [PATCH 039/112] v9.10 - DietPi-Software | Komga: Resolved an issue where the service start on fresh installs failed, since the latest version does not auto-generate the needed .komga sub directory anymore. --- CHANGELOG.txt | 1 + dietpi/dietpi-software | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.txt b/CHANGELOG.txt index 489f0ceef1..0cec0c5dcc 100644 --- a/CHANGELOG.txt +++ b/CHANGELOG.txt @@ -14,6 +14,7 @@ Bug fixes: - DietPi-Software | Raspotify: Resolved an issue where the service failed to start, if Avahi-Daemon was not installed. librespot has it as new default DNS discovery backend, and official pre-compiled Raspotify binaries are not compiled with the old DNS-SD backend anymore. Avahi-Daemon is hence installed now by DietPi-Software as well. Many thanks to @gergokis for reporting this issue: https://github.com/MichaIng/DietPi/issues/7323 - DietPi-Software | Navidrome: Resolved an issue where the service failed to start, since the latest release archive does not ship with the needed permissions. Many thanks to @nclro for reporting this issue: https://github.com/MichaIng/DietPi/issues/7336 - DietPi-Software | Home Assistant: Worked around an issue where the installation failed on ARMv6 and RISC-V systems, due to an incompatibility between two dependencies. Many thanks to @jankkhvej for reporting this issue: https://github.com/MichaIng/DietPi/issues/7329 +- DietPi-Software | Komga: Resolved an issue where the service start on fresh installs failed, since the latest version does not auto-generate the needed .komga sub directory anymore. - DietPi-Software | PaperMC: Resolved an issue where the installation failed, because the API URL changed. Many thanks to @onkeld for reporting this issue: https://github.com/MichaIng/DietPi/issues/7349 - DietPi-Software | PaperMC: Resolved an issue where the installation failed on Bullseye and Bookworm systems, as Minecraft 1.21 requires Java 21, available on Debian Trixie only. PaperMC 1.20.4 will be installed in those cases now, the latest version which supports Java 17. As a side note: In the same turn, the installation has been re-enabled on ARMv6 systems, using PaperMC 1.16.5, the latest one supporting Java 8. diff --git a/dietpi/dietpi-software b/dietpi/dietpi-software index e73b726022..7dde7b6f16 100755 --- a/dietpi/dietpi-software +++ b/dietpi/dietpi-software @@ -7504,7 +7504,7 @@ _EOF_ Create_User -G dietpi -d /mnt/dietpi_userdata/komga komga # Data - G_EXEC mkdir -p /mnt/dietpi_userdata/{ebooks,comics} + G_EXEC mkdir -p /mnt/dietpi_userdata/{ebooks,comics,komga/.komga} # Config [[ -f '/mnt/dietpi_userdata/komga/application.yml' ]] || cat << _EOF_ > /mnt/dietpi_userdata/komga/application.yml From ade062f207d048cc0e5b6bb17c337e6b4c830b59 Mon Sep 17 00:00:00 2001 From: MichaIng Date: Tue, 7 Jan 2025 13:29:51 +0700 Subject: [PATCH 040/112] v9.10 - CI | DietPi-Software test: Give Komga on RISC-V more time to start, to allow testing whether the incompatible embedded lib issue has been solved --- .github/workflows/dietpi-software.bash | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/dietpi-software.bash b/.github/workflows/dietpi-software.bash index 7836b790a8..ebfcf3b534 100644 --- a/.github/workflows/dietpi-software.bash +++ b/.github/workflows/dietpi-software.bash @@ -210,7 +210,7 @@ Process_Software() 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;; + 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;; 181) aSERVICES[i]='papermc' aTCP[i]='25565 25575';; 182) aSERVICES[i]='unbound' aUDP[i]='53'; [[ ${aSERVICES[126]} ]] && aUDP[i]+=' 5335';; # Uses port 5335 if Pi-hole or AdGuard Home is installed, but those do listen on port 53 instead From b6943322b352311484ca35f8b6116c7119270da5 Mon Sep 17 00:00:00 2001 From: MichaIng Date: Tue, 7 Jan 2025 13:53:19 +0700 Subject: [PATCH 041/112] v9.10 - DietPi-Software | Java heap size limits are not Xperimental feature anymore - CI | DietPi-Software test: Workaround failing Java apps if 64-bit host memory leads to too large heap size in emulated 32-bit containers: https://stackoverflow.com/questions/4401396 --- .github/workflows/dietpi-software.bash | 3 +++ dietpi/dietpi-software | 12 ++++++------ 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/.github/workflows/dietpi-software.bash b/.github/workflows/dietpi-software.bash index ebfcf3b534..87e1880804 100644 --- a/.github/workflows/dietpi-software.bash +++ b/.github/workflows/dietpi-software.bash @@ -408,6 +408,9 @@ G_EXEC eval 'echo -e '\''[Service]\nAmbientCapabilities='\'' > rootfs/etc/system # Workaround for failing 32-bit ARM Rust builds on ext4 in QEMU emulated container on 64-bit host: https://github.com/rust-lang/cargo/issues/9545 (( $arch < 3 && $G_HW_ARCH > 9 )) && G_EXEC eval 'echo -e '\''tmpfs /mnt/dietpi_userdata tmpfs size=3G,noatime,lazytime\ntmpfs /root tmpfs size=3G,noatime,lazytime'\'' >> rootfs/etc/fstab' +# Workaround failing Java apps if 64-bit host memory leads to too large heap size in emulated 32-bit containers: https://stackoverflow.com/questions/4401396 +(( $arch < 3 && $G_HW_ARCH > 2)) && G_EXEC sed --follow-symlinks -i '/# Start DietPi-Software/a\sed -i '\''s|-mx${memory_limit}m|-mx1024m|'\'' /boot/dietpi/dietpi-software' rootfs/boot/dietpi/dietpi-login + # Workaround for Node.js on ARMv6 (( $arch == 1 )) && G_EXEC sed --follow-symlinks -i '/# Start DietPi-Software/a\sed -i '\''/G_EXEC chmod +x node-install.sh/a\\sed -i "/^ARCH=/c\\ARCH=armv6l" node-install.sh'\'' /boot/dietpi/dietpi-software' rootfs/boot/dietpi/dietpi-login diff --git a/dietpi/dietpi-software b/dietpi/dietpi-software index 7dde7b6f16..4c5ec3d225 100755 --- a/dietpi/dietpi-software +++ b/dietpi/dietpi-software @@ -6194,7 +6194,7 @@ After=network-online.target remote-fs.target SyslogIdentifier=Airsonic User=airsonic WorkingDirectory=/mnt/dietpi_userdata/airsonic -ExecStart=/usr/bin/java -Xmx${memory_limit}m -Dairsonic.home=/mnt/dietpi_userdata/airsonic -Dserver.servlet.context-path=/airsonic -Dserver.port=8080 -jar /mnt/dietpi_userdata/airsonic/airsonic.war +ExecStart=/usr/bin/java -mx${memory_limit}m -Dairsonic.home=/mnt/dietpi_userdata/airsonic -Dserver.servlet.context-path=/airsonic -Dserver.port=8080 -jar /mnt/dietpi_userdata/airsonic/airsonic.war SuccessExitStatus=143 [Install] @@ -7476,7 +7476,7 @@ SyslogIdentifier=Ubooquity User=ubooquity LogsDirectory=ubooquity WorkingDirectory=/mnt/dietpi_userdata/ubooquity -ExecStart=/usr/bin/java -Xmx${memory_limit}m -jar /mnt/dietpi_userdata/ubooquity/Ubooquity.jar --headless --remoteadmin --adminport 2038 --libraryport 2039 +ExecStart=/usr/bin/java -mx${memory_limit}m -jar /mnt/dietpi_userdata/ubooquity/Ubooquity.jar --headless --remoteadmin --adminport 2038 --libraryport 2039 SuccessExitStatus=143 [Install] @@ -7538,7 +7538,7 @@ After=network-online.target remote-fs.target SyslogIdentifier=Komga User=komga WorkingDirectory=/mnt/dietpi_userdata/komga -ExecStart=/usr/bin/java -Xmx${memory_limit}m -jar komga.jar +ExecStart=/usr/bin/java -mx${memory_limit}m -jar komga.jar SuccessExitStatus=143 [Install] @@ -11543,7 +11543,7 @@ _EOF_ G_EXEC chown -R papermc:papermc /mnt/dietpi_userdata/papermc # Assure 1.5 GiB overall memory (-100 MiB to avoid tiny swap space) is available. - local heap_size='512' + local memory_limit=512 if (( $RAM_TOTAL < 1436 )) then G_DIETPI-NOTIFY 2 'Stable PaperMC operation requires at least 1.5 GiB system memory. We will now increase your swap size to satisfy this requirement.' @@ -11552,7 +11552,7 @@ _EOF_ # On 2 GiB+ physical RAM devices, apply 1 GiB heap size by default elif (( $RAM_PHYS > 1848 )) then - heap_size='1024' + memory_limit=1024 fi # Service @@ -11568,7 +11568,7 @@ SyslogIdentifier=PaperMC User=papermc LogsDirectory=papermc WorkingDirectory=/mnt/dietpi_userdata/papermc -ExecStart=/usr/bin/java -Xmx${heap_size}m -jar /opt/papermc/paperclip.jar --nogui --noconsole +ExecStart=/usr/bin/java -mx${memory_limit}m -jar /opt/papermc/paperclip.jar --nogui --noconsole SuccessExitStatus=143 [Install] From 20e633736c1da512639a52c38b6ba46db2179c9c Mon Sep 17 00:00:00 2001 From: MichaIng Date: Tue, 7 Jan 2025 16:41:05 +0700 Subject: [PATCH 042/112] v9.10 (#7352) - DietPi-Software | PaperMC: Fix Geyser plugin version for older PaperMC versions - CI | DietPi-Software test: Give PaperMC more time to start, and assure that files in /mnt/dietpi_userdata remain there, even when it is overmounted by a tmpfs, to work around the 32-bit QEMU bug - CI | Fix poweroff from automation service and give PaperMC in emulated container more time to start up - DietPi-Software | Disable Java and Java applications on ARMv6: https://github.com/MichaIng/DietPi/issues/6919 --- .build/images/dietpi-build | 2 +- .build/software/Amiberry/container_build.bash | 2 +- .build/software/dietpi-software-build.bash | 2 +- .github/workflows/dietpi-software.bash | 22 ++++- CHANGELOG.txt | 3 +- dietpi/dietpi-software | 90 ++++++++----------- 6 files changed, 61 insertions(+), 60 deletions(-) diff --git a/.build/images/dietpi-build b/.build/images/dietpi-build index 2a931f5470..6376917b29 100755 --- a/.build/images/dietpi-build +++ b/.build/images/dietpi-build @@ -621,7 +621,7 @@ After=dietpi-postboot.service Type=idle StandardOutput=tty ExecStart=/bin/dash -c 'infocmp "$TERM" > /dev/null 2>&1 || export TERM=dumb; exec /boot/dietpi/dietpi-login' -ExecStop=/usr/sbin/systemctl start poweroff.target +ExecStop=/usr/bin/systemctl start poweroff.target [Install] WantedBy=multi-user.target diff --git a/.build/software/Amiberry/container_build.bash b/.build/software/Amiberry/container_build.bash index 5063d9a470..34816e2640 100755 --- a/.build/software/Amiberry/container_build.bash +++ b/.build/software/Amiberry/container_build.bash @@ -131,7 +131,7 @@ After=dietpi-postboot.service Type=idle StandardOutput=tty ExecStart=/bin/dash -c 'infocmp "$TERM" > /dev/null 2>&1 || { echo "[ WARN ] Unsupported TERM=\"$TERM\", switching to TERM=\"dumb\""; export TERM=dumb; }; exec /boot/dietpi/dietpi-login' -ExecStop=/usr/sbin/systemctl start poweroff.target +ExecStop=/usr/bin/systemctl start poweroff.target [Install] WantedBy=multi-user.target diff --git a/.build/software/dietpi-software-build.bash b/.build/software/dietpi-software-build.bash index 7fdf703373..201d6f033c 100644 --- a/.build/software/dietpi-software-build.bash +++ b/.build/software/dietpi-software-build.bash @@ -135,7 +135,7 @@ After=dietpi-postboot.service Type=idle StandardOutput=tty ExecStart=/bin/dash -c 'infocmp "$TERM" > /dev/null 2>&1 || { echo "[ WARN ] Unsupported TERM=\"$TERM\", switching to TERM=\"dumb\""; export TERM=dumb; }; exec /boot/dietpi/dietpi-login' -ExecStop=/usr/sbin/systemctl start poweroff.target +ExecStop=/usr/bin/systemctl start poweroff.target [Install] WantedBy=multi-user.target diff --git a/.github/workflows/dietpi-software.bash b/.github/workflows/dietpi-software.bash index 87e1880804..6d330a068e 100644 --- a/.github/workflows/dietpi-software.bash +++ b/.github/workflows/dietpi-software.bash @@ -212,7 +212,7 @@ Process_Software() 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;; - 181) aSERVICES[i]='papermc' aTCP[i]='25565 25575';; + 181) aSERVICES[i]='papermc' aTCP[i]='25565 25575'; (( $arch == 10 )) && aDELAY[i]=60 || aDELAY[i]=600;; 182) aSERVICES[i]='unbound' aUDP[i]='53'; [[ ${aSERVICES[126]} ]] && aUDP[i]+=' 5335';; # Uses port 5335 if Pi-hole or AdGuard Home is installed, but those do listen on port 53 instead 183) aSERVICES[i]='vaultwarden' aTCP[i]='8001'; (( $arch < 10 )) && aDELAY[i]=20;; 184) aSERVICES[i]='tor';; # aTCP[i]='443 9051' Interactive install with ports depending on choice and relay type @@ -254,7 +254,7 @@ do 38|40|48|54|55|57|59|76|79|82|90|160|210) Process_Software 88 89 webserver;; 159) Process_Software 36 37 65 88 89 96 121 124 128 129 152 160 163 webserver;; 47|114|168) Process_Software 88 89 91 webserver;; - 8|33|131|179|181|206) Process_Software 196;; + 8|33|53|80|131|133|164|179|181|206) Process_Software 196;; 32|148|119) Process_Software 128;; 129) Process_Software 88 89 128 webserver;; 49|165|177) Process_Software 0 17 88;; @@ -369,7 +369,7 @@ Type=idle StandardOutput=tty Environment=HOME=/root ExecStart=/bin/dash -c 'infocmp "$TERM" > /dev/null 2>&1 || export TERM=dumb; exec /boot/dietpi/dietpi-login' -ExecStop=/usr/sbin/systemctl start poweroff.target +ExecStop=/usr/bin/systemctl start poweroff.target [Install] WantedBy=multi-user.target @@ -406,9 +406,23 @@ G_EXEC eval 'echo -e '\''[Service]\nPrivateUsers=0'\'' > rootfs/etc/systemd/syst G_EXEC eval 'echo -e '\''[Service]\nAmbientCapabilities='\'' > rootfs/etc/systemd/system/homebridge.service.d/dietpi-container.conf' # Workaround for failing 32-bit ARM Rust builds on ext4 in QEMU emulated container on 64-bit host: https://github.com/rust-lang/cargo/issues/9545 -(( $arch < 3 && $G_HW_ARCH > 9 )) && G_EXEC eval 'echo -e '\''tmpfs /mnt/dietpi_userdata tmpfs size=3G,noatime,lazytime\ntmpfs /root tmpfs size=3G,noatime,lazytime'\'' >> rootfs/etc/fstab' +if (( $arch < 3 && $G_HW_ARCH > 9 )) +then + G_EXEC eval 'echo -e '\''tmpfs /mnt/dietpi_userdata tmpfs size=3G,noatime,lazytime\ntmpfs /root tmpfs size=3G,noatime,lazytime'\'' >> rootfs/etc/fstab' + cat << '_EOF_' > rootfs/boot/Automation_Custom_PreScript.sh +#!/bin/dash -e +findmnt /mnt/dietpi_userdata > /dev/null 2>&1 || exit 0 +umount /mnt/dietpi_userdata +mkdir /mnt/dietpi_userdata_bak +mv /mnt/dietpi_userdata/* /mnt/dietpi_userdata_bak/ +mount /mnt/dietpi_userdata +mv /mnt/dietpi_userdata_bak/* /mnt/dietpi_userdata/ +rm -R /mnt/dietpi_userdata_bak +_EOF_ +fi # Workaround failing Java apps if 64-bit host memory leads to too large heap size in emulated 32-bit containers: https://stackoverflow.com/questions/4401396 +# shellcheck disable=SC2016 (( $arch < 3 && $G_HW_ARCH > 2)) && G_EXEC sed --follow-symlinks -i '/# Start DietPi-Software/a\sed -i '\''s|-mx${memory_limit}m|-mx1024m|'\'' /boot/dietpi/dietpi-software' rootfs/boot/dietpi/dietpi-login # Workaround for Node.js on ARMv6 diff --git a/CHANGELOG.txt b/CHANGELOG.txt index 0cec0c5dcc..a3e609491c 100644 --- a/CHANGELOG.txt +++ b/CHANGELOG.txt @@ -16,7 +16,8 @@ Bug fixes: - DietPi-Software | Home Assistant: Worked around an issue where the installation failed on ARMv6 and RISC-V systems, due to an incompatibility between two dependencies. Many thanks to @jankkhvej for reporting this issue: https://github.com/MichaIng/DietPi/issues/7329 - DietPi-Software | Komga: Resolved an issue where the service start on fresh installs failed, since the latest version does not auto-generate the needed .komga sub directory anymore. - DietPi-Software | PaperMC: Resolved an issue where the installation failed, because the API URL changed. Many thanks to @onkeld for reporting this issue: https://github.com/MichaIng/DietPi/issues/7349 -- DietPi-Software | PaperMC: Resolved an issue where the installation failed on Bullseye and Bookworm systems, as Minecraft 1.21 requires Java 21, available on Debian Trixie only. PaperMC 1.20.4 will be installed in those cases now, the latest version which supports Java 17. As a side note: In the same turn, the installation has been re-enabled on ARMv6 systems, using PaperMC 1.16.5, the latest one supporting Java 8. +- DietPi-Software | PaperMC: Resolved an issue where the installation failed on Bullseye and Bookworm systems, as Minecraft 1.21 requires Java 21, available on Debian Trixie only. PaperMC 1.20.4 will be installed in those cases now, the latest version which supports Java 17. +- DietPi-Software | Java: Since the Java 8 package from Raspbian cannot be successfully installed anymore, due to a dependency conflict, and newer (Hotspot VM) Java versions are not compatible with ARMv6, Java and all Java applications have been disabled for this architecture (RPi 1 and Zero). You can still uninstall related applications via dietpi-software, but not install or reinstall them. We are sorry for this step, but our related bug report at Raspbian did not get any traction, and also on Raspberry Pi forum the issue did not really come up since the year it exists. Java applications on Linux anyway consume a lot of resources (for the runtime) and are slow, hence the interest running such on old RPi 1 and Zero (1) models seems to be minimal, and it had limitations due to Java 8 only. If anyone is seriously interested, please push the existing Raspbian bug report, as a fix at Raspbian side is theoretically very simple: https://bugs.launchpad.net/raspbian/+bug/2087632. If there was a 3rd party APT repository with recent ARMv6-compatible Java versions, that would be an option as well. 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 4c5ec3d225..9adbffdf92 100755 --- a/dietpi/dietpi-software +++ b/dietpi/dietpi-software @@ -359,6 +359,8 @@ Available commands: aSOFTWARE_CATX[$software_id]=2 aSOFTWARE_DOCS[$software_id]='https://dietpi.com/docs/software/media/#airsonic' aSOFTWARE_DEPS[$software_id]='5 7 196' + # - ARMv6: No functional Java available + aSOFTWARE_AVAIL_G_HW_ARCH[$software_id,1]=0 #------------------ software_id=35 aSOFTWARE_NAME[$software_id]='Lyrion Music Server' @@ -529,6 +531,8 @@ Available commands: aSOFTWARE_CATX[$software_id]=2 aSOFTWARE_DOCS[$software_id]='https://dietpi.com/docs/software/media/#ubooquity' aSOFTWARE_DEPS[$software_id]='196' + # - ARMv6: No functional Java available + aSOFTWARE_AVAIL_G_HW_ARCH[$software_id,1]=0 #------------------ software_id=179 aSOFTWARE_NAME[$software_id]='Komga' @@ -538,6 +542,8 @@ Available commands: aSOFTWARE_DEPS[$software_id]='196' # - RISC-V: An embedded Java library has no RISC-V support yet: "Caused by: java.lang.Exception: No native library found for os.name=Linux, os.arch=riscv64" #aSOFTWARE_AVAIL_G_HW_ARCH[$software_id,11]=0 + # - ARMv6: No functional Java available + aSOFTWARE_AVAIL_G_HW_ARCH[$software_id,1]=0 #------------------ software_id=86 aSOFTWARE_NAME[$software_id]='Roon Extension Manager' @@ -919,6 +925,8 @@ Available commands: aSOFTWARE_CATX[$software_id]=5 aSOFTWARE_DOCS[$software_id]='https://dietpi.com/docs/software/gaming/#mineos' aSOFTWARE_DEPS[$software_id]='9 17 196' + # - ARMv6: No functional Java available + aSOFTWARE_AVAIL_G_HW_ARCH[$software_id,1]=0 #------------------ software_id=156 aSOFTWARE_NAME[$software_id]='Steam' @@ -939,6 +947,8 @@ Available commands: aSOFTWARE_CATX[$software_id]=5 aSOFTWARE_DOCS[$software_id]='https://dietpi.com/docs/software/gaming/#nukkit' aSOFTWARE_DEPS[$software_id]='196' + # - ARMv6: No functional Java available + aSOFTWARE_AVAIL_G_HW_ARCH[$software_id,1]=0 #------------------ software_id=181 aSOFTWARE_NAME[$software_id]='PaperMC' @@ -946,6 +956,9 @@ Available commands: aSOFTWARE_CATX[$software_id]=5 aSOFTWARE_DOCS[$software_id]='https://dietpi.com/docs/software/gaming/#papermc' aSOFTWARE_DEPS[$software_id]='196' + # - ARMv6: No functional Java available + aSOFTWARE_AVAIL_G_HW_ARCH[$software_id,1]=0 + # Allow unattended installs if EULA has been accepted already [[ -f '/mnt/dietpi_userdata/papermc/eula.txt' ]] || aSOFTWARE_INTERACTIVE[$software_id]=1 #------------------ software_id=62 @@ -1255,6 +1268,8 @@ Available commands: aSOFTWARE_CATX[$software_id]=10 aSOFTWARE_DOCS[$software_id]='https://dietpi.com/docs/software/hardware_projects/#blynk-server' aSOFTWARE_DEPS[$software_id]='196 9' + # - ARMv6: No functional Java available + aSOFTWARE_AVAIL_G_HW_ARCH[$software_id,1]=0 #------------------ software_id=166 aSOFTWARE_NAME[$software_id]='Audiophonics PI-SPC' @@ -1536,7 +1551,7 @@ Available commands: aSOFTWARE_CATX[$software_id]=17 aSOFTWARE_DOCS[$software_id]='https://dietpi.com/docs/software/home_automation/#openhab' aSOFTWARE_DEPS[$software_id]='196' - # - ARMv6: Requires at least Java 11 + # - ARMv6: No functional Java available aSOFTWARE_AVAIL_G_HW_ARCH[$software_id,1]=0 #------------------ software_id=211 @@ -1582,6 +1597,8 @@ Available commands: aSOFTWARE_CATX[$software_id]=19 aSOFTWARE_DOCS[$software_id]='https://dietpi.com/docs/software/distributed_projects/#yacy' aSOFTWARE_DEPS[$software_id]='196' + # - ARMv6: No functional Java available + aSOFTWARE_AVAIL_G_HW_ARCH[$software_id,1]=0 #------------------ software_id=141 aSOFTWARE_NAME[$software_id]='ADS-B Feeder' @@ -1772,12 +1789,16 @@ Available commands: aSOFTWARE_CATX[$software_id]=26 aSOFTWARE_DOCS[$software_id]='https://dietpi.com/docs/software/programming/#java' aSOFTWARE_DEPS[$software_id]='196' + # - ARMv6: No functional Java available + aSOFTWARE_AVAIL_G_HW_ARCH[$software_id,1]=0 #------------------ software_id=196 aSOFTWARE_NAME[$software_id]='Java JRE' aSOFTWARE_DESC[$software_id]='OpenJDK Runtime Environment' aSOFTWARE_CATX[$software_id]=26 aSOFTWARE_DOCS[$software_id]='https://dietpi.com/docs/software/programming/#java' + # - ARMv6: No functional Java available + aSOFTWARE_AVAIL_G_HW_ARCH[$software_id,1]=0 #------------------ software_id=9 aSOFTWARE_NAME[$software_id]='Node.js' @@ -2960,13 +2981,8 @@ unix_socket_directories = '/run/postgresql'" > "$i/00dietpi.conf" if To_Install 196 # Java JRE then - # ARMv6 - if (( $G_HW_ARCH == 1 )) - then - local version=8 - # Trixie without openHAB - elif (( $G_DISTRO > 7 && ${aSOFTWARE_INSTALL_STATE[206]} < 1 )) + if (( $G_DISTRO > 7 && ${aSOFTWARE_INSTALL_STATE[206]} < 1 )) then local version=21 @@ -2981,13 +2997,8 @@ unix_socket_directories = '/run/postgresql'" > "$i/00dietpi.conf" if To_Install 8 # Java JDK then - # ARMv6 - if (( $G_HW_ARCH == 1 )) - then - local version=8 - # Trixie without openHAB - elif (( $G_DISTRO > 7 && ${aSOFTWARE_INSTALL_STATE[206]} < 1 )) + if (( $G_DISTRO > 7 && ${aSOFTWARE_INSTALL_STATE[206]} < 1 )) then local version=21 @@ -4115,13 +4126,8 @@ _EOF_ if To_Install 133 yacy # YaCy then # Get latest download - if (( $G_HW_ARCH == 1 )) - then - local file='yacy_v1.926_202308282208_376bcfd54_last_java_8.tar.gz' - else - local file=$(curl -sSfL 'https://download.yacy.net/?C=N;O=D' | grep -wo 'yacy_v[0-9._a-f]*\.tar\.gz' | head -1) - [[ $file ]] || { file='yacy_v1.940_202405270005_70454654f.tar.gz'; G_DIETPI-NOTIFY 1 "Automatic latest ${aSOFTWARE_NAME[$software_id]} version detection failed. \"$file\" will be installed as fallback, but a newer version might be available. Please report this at: https://github.com/MichaIng/DietPi/issues"; } - fi + local file=$(curl -sSfL 'https://download.yacy.net/?C=N;O=D' | grep -wo 'yacy_v[0-9._a-f]*\.tar\.gz' | head -1) + [[ $file ]] || { file='yacy_v1.940_202405270005_70454654f.tar.gz'; G_DIETPI-NOTIFY 1 "Automatic latest ${aSOFTWARE_NAME[$software_id]} version detection failed. \"$file\" 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://download.yacy.net/$file" /etc @@ -6166,15 +6172,9 @@ _EOF_ if To_Install 33 airsonic # Airsonic-Advanced then - # ARMv6: Download latest v10 as v11 does not support Java 8 - if (( $G_HW_ARCH == 1 )) - then - Download_Install 'https://github.com/airsonic-advanced/airsonic-advanced/releases/download/v10.6.0/airsonic.war' /mnt/dietpi_userdata/airsonic/airsonic.war - else - # Since v11 is not yet released, pull latest pre-release - local fallback_url='https://github.com/airsonic-advanced/airsonic-advanced/releases/download/11.0.0-SNAPSHOT.20240424015024/airsonic.war' - Download_Install "$(curl -sSfL 'https://api.github.com/repos/airsonic-advanced/airsonic-advanced/releases' | mawk -F\" '/^ *"browser_download_url": ".*\/airsonic\.war"$/{print $4}' | head -1)" /mnt/dietpi_userdata/airsonic/airsonic.war - fi + # Since v11 is not yet released, pull latest pre-release + local fallback_url='https://github.com/airsonic-advanced/airsonic-advanced/releases/download/11.0.0-SNAPSHOT.20240424015024/airsonic.war' + Download_Install "$(curl -sSfL 'https://api.github.com/repos/airsonic-advanced/airsonic-advanced/releases' | mawk -F\" '/^ *"browser_download_url": ".*\/airsonic\.war"$/{print $4}' | head -1)" /mnt/dietpi_userdata/airsonic/airsonic.war # User Create_User -g dietpi -G audio -d /mnt/dietpi_userdata/airsonic airsonic @@ -6794,15 +6794,7 @@ _EOF_ # RPi: Install build deps for the "onoff" Node module (( $G_HW_MODEL > 9 )) || aDEPS=('python3' 'make' 'g++') - # ARMv6: Install Java 8 build and apply Log4Shell mitigation as the last Java 8 build does not contain it: https://github.com/Peterkn2001/blynk-server/releases - local log4shell= - if (( $G_HW_ARCH == 1 )) - then - log4shell=' -Dlog4j2.formatMsgNoLookups=true' - Download_Install 'https://github.com/Peterkn2001/blynk-server/releases/download/v0.41.16/server-0.41.16-java8.jar' /mnt/dietpi_userdata/blynk/blynkserver.jar - else - Download_Install 'https://github.com/Peterkn2001/blynk-server/releases/download/v0.41.17/server-0.41.17.jar' /mnt/dietpi_userdata/blynk/blynkserver.jar - fi + Download_Install 'https://github.com/Peterkn2001/blynk-server/releases/download/v0.41.17/server-0.41.17.jar' /mnt/dietpi_userdata/blynk/blynkserver.jar # RPi: Install "onoff" for GPIO access (( $G_HW_MODEL > 9 )) || G_EXEC_OUTPUT=1 G_EXEC npm i -g --no-audit onoff@latest @@ -6833,7 +6825,7 @@ _EOF_ Create_User -d /mnt/dietpi_userdata/blynk blynk # Service - cat << _EOF_ > /etc/systemd/system/blynkserver.service + cat << '_EOF_' > /etc/systemd/system/blynkserver.service [Unit] Description=Blynk Server (DietPi) Wants=network-online.target @@ -6844,7 +6836,7 @@ SyslogIdentifier=Blynk User=blynk LogsDirectory=blynk WorkingDirectory=/mnt/dietpi_userdata/blynk -ExecStart=/usr/bin/java$log4shell -jar /mnt/dietpi_userdata/blynk/blynkserver.jar +ExecStart=/usr/bin/java -jar /mnt/dietpi_userdata/blynk/blynkserver.jar SuccessExitStatus=143 # Hardening @@ -7491,14 +7483,8 @@ _EOF_ if To_Install 179 komga # Komga then - # Komga v1 requires Java >=17: https://komga.org/blog/prepare-v1/ - if (( $G_HW_ARCH == 1 )) - then - Download_Install 'https://github.com/gotson/komga/releases/download/v0.165.0/komga-0.165.0.jar' /mnt/dietpi_userdata/komga/komga.jar - else - local fallback_url='https://github.com/gotson/komga/releases/download/1.16.0/komga-1.16.0.jar' - Download_Install "$(curl -sSfL 'https://api.github.com/repos/gotson/komga/releases/latest' | mawk -F\" '/^ *"browser_download_url": ".*\/komga-[^"\/]*\.jar"$/{print $4}')" /mnt/dietpi_userdata/komga/komga.jar - fi + local fallback_url='https://github.com/gotson/komga/releases/download/1.16.0/komga-1.16.0.jar' + Download_Install "$(curl -sSfL 'https://api.github.com/repos/gotson/komga/releases/latest' | mawk -F\" '/^ *"browser_download_url": ".*\/komga-[^"\/]*\.jar"$/{print $4}')" /mnt/dietpi_userdata/komga/komga.jar # User Create_User -G dietpi -d /mnt/dietpi_userdata/komga komga @@ -11505,9 +11491,7 @@ _EOF_ local url='https://api.papermc.io/v2/projects/paper' # - Minecraft 1.20.5 and above requires Java 21: https://minecraft.wiki/w/Java_Edition_1.20.5 local version='1.20.4' - # - ARMv6: Minecraft 1.17 requires Java 16: https://minecraft.wiki/w/Java_Edition_1.17 - (( $G_HW_ARCH == 1 )) && version='1.16.5' - (( $G_HW_ARCH > 1 && $G_DISTRO > 7 )) && { version=$(curl -sSfL "$url"); version=${version%\"*}; version=${version##*\"}; } + (( $G_DISTRO > 7 )) && { version=$(curl -sSfL "$url"); version=${version%\"*}; version=${version##*\"}; } local build=$(curl -sSfL "$url/versions/$version"); build=${build%]*} build=${build##*[,[]} #local file=$(curl -sSfL "$url/versions/$version/builds/$build"); file=${file##*\"name\":\"} file=${file%%\"*} # Download and install PaperMC @@ -11524,7 +11508,9 @@ _EOF_ [[ -f '/mnt/dietpi_userdata/papermc/plugins/Geyser-Spigot.jar' ]] && G_WHIP_DEFAULT_ITEM='Yes' if G_WHIP_YESNO 'Would you like to install the Geyser and Floodgate plugins for compatibility with Bedrock Edition?\n\nNote that this may be buggy.' then - Download_Install 'https://download.geysermc.org/v2/projects/geyser/versions/latest/builds/latest/downloads/spigot' /mnt/dietpi_userdata/papermc/plugins/Geyser-Spigot.jar + local version='2.2.3' + (( $G_DISTRO > 7 )) && version='latest' + Download_Install "https://download.geysermc.org/v2/projects/geyser/versions/$version/builds/latest/downloads/spigot" /mnt/dietpi_userdata/papermc/plugins/Geyser-Spigot.jar Download_Install 'https://download.geysermc.org/v2/projects/floodgate/versions/latest/builds/latest/downloads/spigot' /mnt/dietpi_userdata/papermc/plugins/floodgate-spigot.jar fi From f8229fbe44b04abc4673027d1baa3f598e2e1d44 Mon Sep 17 00:00:00 2001 From: StephanStS Date: Tue, 7 Jan 2025 15:25:42 +0100 Subject: [PATCH 043/112] Removed software "Network Tools" (#7351) * Removed software "Network Tools" Removed iftop, IPTraf, Iperf, MTR-Tiny, nLoad, tcpdump from dietpi-software - Very rare usage. - Software is removed, otherwise documentation would be needed. Removed Software category "Network Tools" Software Avahi moved to category "Advanced Networking" * v9.10 - DietPi-Patches | Remove obsolete install states - DietPi-Survey_report | Remove network tools from tracked software titles * Update CHANGELOG.txt Co-authored-by: MichaIng --------- Co-authored-by: MichaIng --- .meta/dietpi-survey_report | 6 ++ .update/patches | 6 ++ CHANGELOG.txt | 3 + dietpi/dietpi-software | 142 +++++++------------------------------ 4 files changed, 42 insertions(+), 115 deletions(-) diff --git a/.meta/dietpi-survey_report b/.meta/dietpi-survey_report index 005dd6cabf..2803d2b0b7 100755 --- a/.meta/dietpi-survey_report +++ b/.meta/dietpi-survey_report @@ -742,6 +742,12 @@ shopt -s extglob aSOFTWARE_NAME9_9[i]=${aSOFTWARE_NAME9_8[i]} aSOFTWARE_NAME9_10[i]=${aSOFTWARE_NAME9_9[i]} done + unset -v 'aSOFTWARE_NAME9_10[10]' # iftop + unset -v 'aSOFTWARE_NAME9_10[11]' # IPTraf + unset -v 'aSOFTWARE_NAME9_10[12]' # Iperf + unset -v 'aSOFTWARE_NAME9_10[13]' # MTR-Tiny + unset -v 'aSOFTWARE_NAME9_10[14]' # nLoad + unset -v 'aSOFTWARE_NAME9_10[15]' # tcpdump # Pre-create software counter array so that we can see also software (available in newest version) with 0 installs for i in "${aSOFTWARE_NAME9_10[@]}" diff --git a/.update/patches b/.update/patches index 10bf45f42d..9e66330d27 100755 --- a/.update/patches +++ b/.update/patches @@ -2091,6 +2091,12 @@ Patch_9_10() G_EXEC rm /etc/apt/trusted.gpg.d/dietpi-raspotify.gpg fi fi + + # Remove obsolete install states: https://github.com/MichaIng/DietPi/pull/7351 + for i in {10..15} + do + grep -q "^[[:blank:]]*aSOFTWARE_INSTALL_STATE\[$i\]=" /boot/dietpi/.installed && G_EXEC sed --follow-symlinks -i "/^[[:blank:]]*aSOFTWARE_INSTALL_STATE\[$i\]=/d" /boot/dietpi/.installed + done fi } diff --git a/CHANGELOG.txt b/CHANGELOG.txt index a3e609491c..bb5eb487d6 100644 --- a/CHANGELOG.txt +++ b/CHANGELOG.txt @@ -8,6 +8,9 @@ Enhancements: - RISC-V | Additional software options have been enabled for RISC-V systems: NZBGet, MicroK8s and AdGuard Home - DietPi-Software | myMPD: We enabled the software option for ARMv6 Bookworm systems, since packages for Raspbian Bookworm are now available. Many thanks to @hackslikeus for bringing up the topic: https://github.com/MichaIng/DietPi/issues/7345 +Removed software: +- DietPi-Software | A number of software options have been removed, which were installed just as single APT package, without any configuration or dependant. Running `dietpi-software` for such is overkill, as one can just use the native Debian package manager directly, like "apt install tcpdump". Affected software titles: iftop, IPTraf, Iperf, MTR-Tiny, nLoad, tcpdump + Bug fixes: - DietPi-Software | Sonarr: Resolved an issue where the internal updater did not work due to permission limits in the systemd unit. Many thanks to @tellice for reporting this issue: https://github.com/MichaIng/DietPi/issues/7321 - DietPi-Software | Fail2Ban: Resolved an issue where a fixed Dropbear filter could not be installed, because the directory did not exist yet. Many thanks to @augustresende for reporting this issue: https://github.com/MichaIng/DietPi/issues/7325 diff --git a/dietpi/dietpi-software b/dietpi/dietpi-software index 9adbffdf92..e0639537aa 100755 --- a/dietpi/dietpi-software +++ b/dietpi/dietpi-software @@ -232,10 +232,9 @@ Available commands: '●─ File Managers ' #22 '●─ System ' #23 '●─ Databases & Data Stores ' #24 - '●─ Network Tools ' #25 - '●─ Development & Programming ' #26 - '●─ Text Editors ' #27 - '●─ Desktop Utilities ' #28 + '●─ Development & Programming ' #25 + '●─ Text Editors ' #26 + '●─ Desktop Utilities ' #27 ) #-------------------------------------------------------------------------------- @@ -1512,6 +1511,11 @@ Available commands: aSOFTWARE_CATX[$software_id]=16 aSOFTWARE_DOCS[$software_id]='https://dietpi.com/docs/software/advanced_networking/#haproxy' #------------------ + software_id=152 + aSOFTWARE_NAME[$software_id]='Avahi-Daemon' + aSOFTWARE_DESC[$software_id]='Hostname broadcast via mDNS (Zeroconf, Bonjour)' + aSOFTWARE_CATX[$software_id]=25 + #------------------ software_id=171 aSOFTWARE_NAME[$software_id]='frp' aSOFTWARE_DESC[$software_id]='reverse proxy' @@ -1717,60 +1721,23 @@ Available commands: aSOFTWARE_CATX[$software_id]=24 aSOFTWARE_DOCS[$software_id]='https://dietpi.com/docs/software/databases/#postgresql' - # Network Tools - #-------------------------------------------------------------------------------- - software_id=10 - aSOFTWARE_NAME[$software_id]='iftop' - aSOFTWARE_DESC[$software_id]='displays bandwidth usage information' - aSOFTWARE_CATX[$software_id]=25 - #------------------ - software_id=11 - aSOFTWARE_NAME[$software_id]='IPTraf' - aSOFTWARE_DESC[$software_id]='interactive colorful IP LAN monitor' - aSOFTWARE_CATX[$software_id]=25 - #------------------ - software_id=12 - aSOFTWARE_NAME[$software_id]='Iperf' - aSOFTWARE_DESC[$software_id]='internet protocol bandwidth measuring tool' - aSOFTWARE_CATX[$software_id]=25 - #------------------ - software_id=13 - aSOFTWARE_NAME[$software_id]='MTR-Tiny' - aSOFTWARE_DESC[$software_id]='full screen ncurses traceroute tool' - aSOFTWARE_CATX[$software_id]=25 - #------------------ - software_id=14 - aSOFTWARE_NAME[$software_id]='nLoad' - aSOFTWARE_DESC[$software_id]='realtime console network usage monitor' - aSOFTWARE_CATX[$software_id]=25 - #------------------ - software_id=15 - aSOFTWARE_NAME[$software_id]='tcpdump' - aSOFTWARE_DESC[$software_id]='command-line network traffic analyzer' - aSOFTWARE_CATX[$software_id]=25 - #------------------ - software_id=152 - aSOFTWARE_NAME[$software_id]='Avahi-Daemon' - aSOFTWARE_DESC[$software_id]='Hostname broadcast via mDNS (Zeroconf, Bonjour)' - aSOFTWARE_CATX[$software_id]=25 - # Development & Programming #-------------------------------------------------------------------------------- software_id=17 aSOFTWARE_NAME[$software_id]='Git' aSOFTWARE_DESC[$software_id]='Clone and manage Git repositories locally' - aSOFTWARE_CATX[$software_id]=26 + aSOFTWARE_CATX[$software_id]=25 #------------------ software_id=130 aSOFTWARE_NAME[$software_id]='Python 3' aSOFTWARE_DESC[$software_id]='Runtime system, pip package installer and development headers' - aSOFTWARE_CATX[$software_id]=26 + aSOFTWARE_CATX[$software_id]=25 aSOFTWARE_DOCS[$software_id]='https://dietpi.com/docs/software/programming/#python-3' #------------------ software_id=189 aSOFTWARE_NAME[$software_id]='VSCodium' aSOFTWARE_DESC[$software_id]='FLOSS version of MS VSCode' - aSOFTWARE_CATX[$software_id]=26 + aSOFTWARE_CATX[$software_id]=25 aSOFTWARE_DOCS[$software_id]='https://dietpi.com/docs/software/programming/#vscodium' aSOFTWARE_DEPS[$software_id]='5 6 17' # - RISC-V: https://paulcarroty.gitlab.io/vscodium-deb-rpm-repo/debs/dists/vscodium/Release @@ -1779,14 +1746,14 @@ Available commands: software_id=188 aSOFTWARE_NAME[$software_id]='Go' aSOFTWARE_DESC[$software_id]='Runtime environment and package installer' - aSOFTWARE_CATX[$software_id]=26 + aSOFTWARE_CATX[$software_id]=25 aSOFTWARE_DOCS[$software_id]='https://dietpi.com/docs/software/programming/#go' aSOFTWARE_DEPS[$software_id]='17' #------------------ software_id=8 aSOFTWARE_NAME[$software_id]='Java JDK' aSOFTWARE_DESC[$software_id]='OpenJDK Development Kit' - aSOFTWARE_CATX[$software_id]=26 + aSOFTWARE_CATX[$software_id]=25 aSOFTWARE_DOCS[$software_id]='https://dietpi.com/docs/software/programming/#java' aSOFTWARE_DEPS[$software_id]='196' # - ARMv6: No functional Java available @@ -1795,7 +1762,7 @@ Available commands: software_id=196 aSOFTWARE_NAME[$software_id]='Java JRE' aSOFTWARE_DESC[$software_id]='OpenJDK Runtime Environment' - aSOFTWARE_CATX[$software_id]=26 + aSOFTWARE_CATX[$software_id]=25 aSOFTWARE_DOCS[$software_id]='https://dietpi.com/docs/software/programming/#java' # - ARMv6: No functional Java available aSOFTWARE_AVAIL_G_HW_ARCH[$software_id,1]=0 @@ -1803,13 +1770,13 @@ Available commands: software_id=9 aSOFTWARE_NAME[$software_id]='Node.js' aSOFTWARE_DESC[$software_id]='JavaScript runtime environment' - aSOFTWARE_CATX[$software_id]=26 + aSOFTWARE_CATX[$software_id]=25 aSOFTWARE_DOCS[$software_id]='https://dietpi.com/docs/software/webserver_stack/#nodejs' #------------------ software_id=150 aSOFTWARE_NAME[$software_id]='Mono' aSOFTWARE_DESC[$software_id]='Runtime libraries and repository' - aSOFTWARE_CATX[$software_id]=26 + aSOFTWARE_CATX[$software_id]=25 aSOFTWARE_DOCS[$software_id]='https://dietpi.com/docs/software/programming/#mono' # - RISC-V: https://download.mono-project.com/repo/debian/dists/buster/main/, https://packages.debian.org/trixie/mono-runtime aSOFTWARE_AVAIL_G_HW_ARCH[$software_id,11]=0 @@ -1817,7 +1784,7 @@ Available commands: software_id=34 aSOFTWARE_NAME[$software_id]='PHP Composer' aSOFTWARE_DESC[$software_id]='Package manager for PHP' - aSOFTWARE_CATX[$software_id]=26 + aSOFTWARE_CATX[$software_id]=25 aSOFTWARE_DOCS[$software_id]='https://dietpi.com/docs/software/webserver_stack/#php-composer' aSOFTWARE_DEPS[$software_id]='89' @@ -1826,41 +1793,41 @@ Available commands: software_id=18 aSOFTWARE_NAME[$software_id]='Emacs' aSOFTWARE_DESC[$software_id]='GNU Emacs editor' - aSOFTWARE_CATX[$software_id]=27 + aSOFTWARE_CATX[$software_id]=26 #------------------ software_id=19 aSOFTWARE_NAME[$software_id]='Jed' aSOFTWARE_DESC[$software_id]='editor for programmers' - aSOFTWARE_CATX[$software_id]=27 + aSOFTWARE_CATX[$software_id]=26 #------------------ software_id=20 aSOFTWARE_NAME[$software_id]='Vim' aSOFTWARE_DESC[$software_id]='vi enhanced text editor' - aSOFTWARE_CATX[$software_id]=27 + aSOFTWARE_CATX[$software_id]=26 #------------------ software_id=21 aSOFTWARE_NAME[$software_id]='Vim-Tiny' aSOFTWARE_DESC[$software_id]='compact release of vim' - aSOFTWARE_CATX[$software_id]=27 + aSOFTWARE_CATX[$software_id]=26 #------------------ software_id=127 aSOFTWARE_NAME[$software_id]='Neovim' aSOFTWARE_DESC[$software_id]='heavily refactored vim fork' - aSOFTWARE_CATX[$software_id]=27 + aSOFTWARE_CATX[$software_id]=26 # Desktop Utilities #-------------------------------------------------------------------------------- software_id=22 aSOFTWARE_NAME[$software_id]='QuiteRSS' aSOFTWARE_DESC[$software_id]='cross-platform, free rss reader' - aSOFTWARE_CATX[$software_id]=28 + aSOFTWARE_CATX[$software_id]=27 aSOFTWARE_DOCS[$software_id]='https://dietpi.com/docs/software/desktop/#quiterss' aSOFTWARE_DEPS[$software_id]='6' #------------------ software_id=113 aSOFTWARE_NAME[$software_id]='Chromium' aSOFTWARE_DESC[$software_id]='web browser for desktop or autostart' - aSOFTWARE_CATX[$software_id]=28 + aSOFTWARE_CATX[$software_id]=27 aSOFTWARE_DOCS[$software_id]='https://dietpi.com/docs/software/desktop/#chromium' aSOFTWARE_DEPS[$software_id]='5 6' # - ARMv6: https://github.com/RPi-Distro/chromium-browser/issues/21 @@ -1871,7 +1838,7 @@ Available commands: software_id=67 aSOFTWARE_NAME[$software_id]='Firefox' aSOFTWARE_DESC[$software_id]='web browser for desktop' - aSOFTWARE_CATX[$software_id]=28 + aSOFTWARE_CATX[$software_id]=27 aSOFTWARE_DOCS[$software_id]='https://dietpi.com/docs/software/desktop/#firefox' aSOFTWARE_DEPS[$software_id]='5 6' # - ARMv6: https://github.com/RPi-Distro/chromium-browser/issues/21#issuecomment-997044303 @@ -1880,14 +1847,14 @@ Available commands: software_id=174 aSOFTWARE_NAME[$software_id]='GIMP' aSOFTWARE_DESC[$software_id]='mspaint on steroids' - aSOFTWARE_CATX[$software_id]=28 + aSOFTWARE_CATX[$software_id]=27 aSOFTWARE_DOCS[$software_id]='https://dietpi.com/docs/software/desktop/#gimp' aSOFTWARE_DEPS[$software_id]='6' #------------------ software_id=175 aSOFTWARE_NAME[$software_id]='Xfce Power Manager' aSOFTWARE_DESC[$software_id]='with brightness control, recommended for LXDE/LXQt' - aSOFTWARE_CATX[$software_id]=28 + aSOFTWARE_CATX[$software_id]=27 aSOFTWARE_DOCS[$software_id]='https://dietpi.com/docs/software/desktop/#xfce-power-manager' aSOFTWARE_DEPS[$software_id]='6' @@ -2773,11 +2740,6 @@ _EOF_ G_AGI emacs fi - if To_Install 12 - then - G_AGI iperf - fi - if To_Install 3 # Midnight Commander then G_AGI mc @@ -2788,31 +2750,6 @@ _EOF_ G_AGI jed fi - if To_Install 10 - then - G_AGI iftop - fi - - if To_Install 11 - then - G_AGI iptraf - fi - - if To_Install 13 - then - G_AGI mtr-tiny - fi - - if To_Install 14 - then - G_AGI nload - fi - - if To_Install 15 - then - G_AGI tcpdump - fi - if To_Install 0 # OpenSSH Client then G_AGI openssh-client @@ -14014,31 +13951,6 @@ _EOF_ [[ -d '/mnt/dietpi_userdata/jellyfin' ]] && G_EXEC rm -R /mnt/dietpi_userdata/jellyfin fi - if To_Uninstall 15 - then - G_AGP tcpdump - fi - - if To_Uninstall 14 - then - G_AGP nload - fi - - if To_Uninstall 13 - then - G_AGP mtr-tiny - fi - - if To_Uninstall 11 - then - G_AGP iptraf - fi - - if To_Uninstall 10 - then - G_AGP iftop - fi - if To_Uninstall 19 then G_AGP jed From f90d2c464c455b48c774f2082bd2209d1255c365 Mon Sep 17 00:00:00 2001 From: MichaIng Date: Wed, 8 Jan 2025 13:07:11 +0700 Subject: [PATCH 044/112] Live patch 3 v9.9 (#7355) - Live patch 3 | Fix Sonarr v4 permissions for updater for installed Sonarr v4 instances --- .update/version | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/.update/version b/.update/version index f5cb2a5332..1725a59608 100644 --- a/.update/version +++ b/.update/version @@ -15,18 +15,21 @@ G_MIN_DEBIAN=6 G_OLD_DEBIAN_BRANCH='8' # Live patches G_LIVE_PATCH_DESC=( - [0]='Fix Sonarr v4 permissions for updater. Only needed if you plan to install or migrate to Sonarr v4 via dietpi-software.' + [0]='Fix Sonarr v4 permissions for updater in dietpi-software. Only needed if you plan to install or migrate to Sonarr v4 via dietpi-software.' [1]='Fix install of patches Fail2Ban Dropbear filter: https://github.com/MichaIng/DietPi/issues/7325' [2]='Install patched Fail2Ban Dropbear filter: https://github.com/fail2ban/fail2ban/pull/3597' + [3]='Fix Sonarr v4 permissions for updater for installed Sonarr v4 instances' ) G_LIVE_PATCH_COND=( [0]='grep -q '\''^ReadWritePaths=-/usr/lib/sonarr'\'' /boot/dietpi/dietpi-software' - [1]='[[ ! -d /etc/fail2ban/filter.d ]] && grep -q '\''^ G_EXEC mkdir -p /etc/fail2ban/fail2ban.d'\'' /boot/dietpi/dietpi-software' + [1]='[[ ! -d /etc/fail2ban/filter.d ]] && grep -q '\''mkdir -p /etc/fail2ban/fail2ban.d'\'' /boot/dietpi/dietpi-software' [2]='[[ -d /etc/fail2ban/filter.d && ! -f /etc/fail2ban/filter.d/dropbear.local ]]' + [3]='[[ -f /opt/sonarr/Sonarr ]] && grep -q '\''/usr/lib/sonarr'\'' /etc/systemd/system/sonarr.service 2> /dev/null' ) # shellcheck disable=SC2016 G_LIVE_PATCH=( [0]='sed -i '\''s|^ReadWritePaths=-/usr/lib/sonarr|ReadWritePaths=-$install_dir|'\'' /boot/dietpi/dietpi-software' - [1]='sed -i '\''s|^ G_EXEC mkdir -p /etc/fail2ban/fail2ban.d| G_EXEC mkdir -p /etc/fail2ban/{fail2ban,filter}.d|'\'' /boot/dietpi/dietpi-software' - [2]='curl -sSf https://raw.githubusercontent.com/fail2ban/fail2ban/eb8b443/config/filter.d/dropbear.conf -o /etc/fail2ban/filter.d/dropbear.local' + [1]='sed -i '\''s|mkdir -p /etc/fail2ban/fail2ban.d|mkdir -p /etc/fail2ban/{fail2ban,filter}.d|'\'' /boot/dietpi/dietpi-software' + [2]='curl -sSf https://raw.githubusercontent.com/fail2ban/fail2ban/master/config/filter.d/dropbear.conf -o /etc/fail2ban/filter.d/dropbear.local' + [3]='sed -i '\''s|/usr/lib/sonarr|/opt/sonarr|'\'' /etc/systemd/system/sonarr.service && systemctl daemon-reload' ) From 585989ef1bb07656b6a83aa980888dd19eda66df Mon Sep 17 00:00:00 2001 From: MichaIng Date: Wed, 8 Jan 2025 13:11:11 +0700 Subject: [PATCH 045/112] v9.10 - CHANGELOG | Add entry about fixed Orange Pi 5 Max onboard WiFi --- CHANGELOG.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.txt b/CHANGELOG.txt index bb5eb487d6..910f50c715 100644 --- a/CHANGELOG.txt +++ b/CHANGELOG.txt @@ -12,6 +12,7 @@ Removed software: - DietPi-Software | A number of software options have been removed, which were installed just as single APT package, without any configuration or dependant. Running `dietpi-software` for such is overkill, as one can just use the native Debian package manager directly, like "apt install tcpdump". Affected software titles: iftop, IPTraf, Iperf, MTR-Tiny, nLoad, tcpdump Bug fixes: +- Orange Pi 5 Max | Resolved an issue where onboard WiFi was not working. Many thanks to @diego-hsp for reporting this issue: https://github.com/MichaIng/DietPi/issues/7338 - DietPi-Software | Sonarr: Resolved an issue where the internal updater did not work due to permission limits in the systemd unit. Many thanks to @tellice for reporting this issue: https://github.com/MichaIng/DietPi/issues/7321 - DietPi-Software | Fail2Ban: Resolved an issue where a fixed Dropbear filter could not be installed, because the directory did not exist yet. Many thanks to @augustresende for reporting this issue: https://github.com/MichaIng/DietPi/issues/7325 - DietPi-Software | Raspotify: Resolved an issue where the service failed to start, if Avahi-Daemon was not installed. librespot has it as new default DNS discovery backend, and official pre-compiled Raspotify binaries are not compiled with the old DNS-SD backend anymore. Avahi-Daemon is hence installed now by DietPi-Software as well. Many thanks to @gergokis for reporting this issue: https://github.com/MichaIng/DietPi/issues/7323 From 098be2d64afff882e49bc398b90c2184e01e32e3 Mon Sep 17 00:00:00 2001 From: MichaIng Date: Wed, 8 Jan 2025 19:49:31 +0700 Subject: [PATCH 046/112] v9.10 (#7356) - CI | Apply better workaround for failing services and hence missing login prompts in QEMU-emulated Trixie containers --- .build/images/dietpi-build | 26 +++++-------------- .build/software/Amiberry/container_build.bash | 23 +++++----------- .build/software/dietpi-software-build.bash | 26 +++++-------------- .build/software/vaultwarden/build.bash | 1 - .github/workflows/dietpi-software.bash | 25 +++++------------- 5 files changed, 28 insertions(+), 73 deletions(-) diff --git a/.build/images/dietpi-build b/.build/images/dietpi-build index 6376917b29..b221ab1c3c 100755 --- a/.build/images/dietpi-build +++ b/.build/images/dietpi-build @@ -609,24 +609,15 @@ then # Install Allo GUI via automated first run setup right here G_CONFIG_INJECT 'AUTO_SETUP_AUTOMATED=' 'AUTO_SETUP_AUTOMATED=1' rootfs/boot/dietpi.txt - # - Workaround for skipped autologin in emulated Trixie containers: https://gitlab.com/qemu-project/qemu/-/issues/1962 + # - Workaround for failing systemd services and hence missing autologin in emulated Trixie containers: https://gitlab.com/qemu-project/qemu/-/issues/1962, https://github.com/systemd/systemd/issues/31219 if (( $DISTRO == 8 && $G_HW_ARCH != $HW_ARCH && ( $G_HW_ARCH > 9 || $G_HW_ARCH < $HW_ARCH ) )) then - cat << '_EOF_' > rootfs/etc/systemd/system/dietpi-automation.service -[Unit] -Description=DietPi-Automation -After=dietpi-postboot.service - -[Service] -Type=idle -StandardOutput=tty -ExecStart=/bin/dash -c 'infocmp "$TERM" > /dev/null 2>&1 || export TERM=dumb; exec /boot/dietpi/dietpi-login' -ExecStop=/usr/bin/systemctl start poweroff.target - -[Install] -WantedBy=multi-user.target -_EOF_ - G_EXEC ln -s /etc/systemd/system/dietpi-automation.service rootfs/etc/systemd/system/multi-user.target.wants/ + for i in rootfs/usr/lib/systemd/system/*.service + do + grep -q '^ImportCredential=' "$i" || continue + G_EXEC mkdir "${i/usr\/lib/etc}.d" + G_EXEC eval "echo -e '[Service]\nImportCredential=' > ${i/usr\/lib/etc}.d/dietpi-no-ImportCredential.conf" + done fi G_CONFIG_INJECT 'AUTO_SETUP_INSTALL_SOFTWARE_ID=' 'AUTO_SETUP_INSTALL_SOFTWARE_ID=159' rootfs/boot/dietpi.txt # Revert autostart option, in case Amiberry image was generated before @@ -711,9 +702,6 @@ _EOF_ # Revert ARMv6 Workaround (( $HW_ARCH == 1 )) && G_EXEC rm rootfs/usr/local/bin/uname - # Revert workaround for skipped autologin in emulated Trixie containers: https://gitlab.com/qemu-project/qemu/-/issues/1962 - (( $DISTRO == 8 )) && G_EXEC rm rootfs/etc/systemd/system/{multi-user.target.wants/,}dietpi-automation.service - [[ -f 'rootfs/success' ]] || { G_DIETPI-NOTIFY 1 'The container setup did not finish successfully, aborting...'; exit 1; } G_EXEC rm rootfs/success G_EXEC sync diff --git a/.build/software/Amiberry/container_build.bash b/.build/software/Amiberry/container_build.bash index 34816e2640..151102be26 100755 --- a/.build/software/Amiberry/container_build.bash +++ b/.build/software/Amiberry/container_build.bash @@ -119,24 +119,15 @@ G_EXEC mount "${FP_LOOP}p1" rootfs # Enable automated setup G_CONFIG_INJECT 'AUTO_SETUP_AUTOMATED=' 'AUTO_SETUP_AUTOMATED=1' rootfs/boot/dietpi.txt -# - Workaround for skipped autologin in emulated Trixie containers: https://gitlab.com/qemu-project/qemu/-/issues/1962 +# - Workaround for failing systemd services and hence missing autologin in emulated Trixie containers: https://gitlab.com/qemu-project/qemu/-/issues/1962, https://github.com/systemd/systemd/issues/31219 if [[ $DISTRO == 'trixie' ]] && (( $G_HW_ARCH != $arch && ( $G_HW_ARCH > 9 || $G_HW_ARCH < $arch ) )) then - cat << '_EOF_' > rootfs/etc/systemd/system/dietpi-automation.service -[Unit] -Description=DietPi-Automation -After=dietpi-postboot.service - -[Service] -Type=idle -StandardOutput=tty -ExecStart=/bin/dash -c 'infocmp "$TERM" > /dev/null 2>&1 || { echo "[ WARN ] Unsupported TERM=\"$TERM\", switching to TERM=\"dumb\""; export TERM=dumb; }; exec /boot/dietpi/dietpi-login' -ExecStop=/usr/bin/systemctl start poweroff.target - -[Install] -WantedBy=multi-user.target -_EOF_ - G_EXEC ln -s /etc/systemd/system/dietpi-automation.service rootfs/etc/systemd/system/multi-user.target.wants/ + for i in rootfs/usr/lib/systemd/system/*.service + do + grep -q '^ImportCredential=' "$i" || continue + G_EXEC mkdir "${i/usr\/lib/etc}.d" + G_EXEC eval "echo -e '[Service]\nImportCredential=' > ${i/usr\/lib/etc}.d/dietpi-no-ImportCredential.conf" + done fi # Workaround invalid TERM on login diff --git a/.build/software/dietpi-software-build.bash b/.build/software/dietpi-software-build.bash index 201d6f033c..3ad4b9e642 100644 --- a/.build/software/dietpi-software-build.bash +++ b/.build/software/dietpi-software-build.bash @@ -123,24 +123,15 @@ G_EXEC mount "${FP_LOOP}p1" rootfs # Enable automated setup G_CONFIG_INJECT 'AUTO_SETUP_AUTOMATED=' 'AUTO_SETUP_AUTOMATED=1' rootfs/boot/dietpi.txt -# - Workaround for skipped autologin in emulated Trixie containers: https://gitlab.com/qemu-project/qemu/-/issues/1962 +# - Workaround for failing systemd services and hence missing autologin in emulated Trixie containers: https://gitlab.com/qemu-project/qemu/-/issues/1962, https://github.com/systemd/systemd/issues/31219 if [[ $DISTRO == 'trixie' ]] && (( $G_HW_ARCH != $arch && ( $G_HW_ARCH > 9 || $G_HW_ARCH < $arch ) )) then - cat << '_EOF_' > rootfs/etc/systemd/system/dietpi-automation.service -[Unit] -Description=DietPi-Automation -After=dietpi-postboot.service - -[Service] -Type=idle -StandardOutput=tty -ExecStart=/bin/dash -c 'infocmp "$TERM" > /dev/null 2>&1 || { echo "[ WARN ] Unsupported TERM=\"$TERM\", switching to TERM=\"dumb\""; export TERM=dumb; }; exec /boot/dietpi/dietpi-login' -ExecStop=/usr/bin/systemctl start poweroff.target - -[Install] -WantedBy=multi-user.target -_EOF_ - G_EXEC ln -s /etc/systemd/system/dietpi-automation.service rootfs/etc/systemd/system/multi-user.target.wants/ + for i in rootfs/usr/lib/systemd/system/*.service + do + grep -q '^ImportCredential=' "$i" || continue + G_EXEC mkdir "${i/usr\/lib/etc}.d" + G_EXEC eval "echo -e '[Service]\nImportCredential=' > ${i/usr\/lib/etc}.d/dietpi-no-ImportCredential.conf" + done fi # Install Go for Gogs @@ -159,9 +150,6 @@ G_EXEC sed --follow-symlinks -i 's|Prompt_on_Failure$|{ journalctl -n 50; ss -tu # Avoid DietPi-Survey uploads to not mess with the statistics G_EXEC rm rootfs/root/.ssh/known_hosts -# 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. -(( $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' #!/bin/dash diff --git a/.build/software/vaultwarden/build.bash b/.build/software/vaultwarden/build.bash index 5948118d08..d9ead499c7 100755 --- a/.build/software/vaultwarden/build.bash +++ b/.build/software/vaultwarden/build.bash @@ -22,7 +22,6 @@ G_DIETPI-NOTIFY 2 'Installing Rust via rustup' grep -q '^ID=raspbian' /etc/os-release && G_HW_ARCH_NAME='armv6l' host=('--default-host' 'arm-unknown-linux-gnueabihf') || host=() # - ARMv7: Apply workaround for failing crates index update in in emulated 32-bit ARM environments: https://github.com/rust-lang/cargo/issues/8719. CARGO_REGISTRIES_CRATES_IO_PROTOCOL='sparse' does not solve everything: https://github.com/rust-lang/cargo/issues/8719#issuecomment-1928540617 # - ARMv8: Apply workaround for increased cargo fetch RAM usage: https://github.com/rust-lang/cargo/issues/10583 -# - Trixie: Set missing HOME, since the script runs from a systemd unit without login shell and hence no HOME set. export HOME=$(mktemp -d) CARGO_NET_GIT_FETCH_WITH_CLI='true' G_EXEC cd "$HOME" G_EXEC curl -sSfo rustup-init.sh 'https://sh.rustup.rs' diff --git a/.github/workflows/dietpi-software.bash b/.github/workflows/dietpi-software.bash index 6d330a068e..22f6725a92 100644 --- a/.github/workflows/dietpi-software.bash +++ b/.github/workflows/dietpi-software.bash @@ -355,26 +355,15 @@ G_EXEC eval 'echo '\''infocmp "$TERM" > /dev/null 2>&1 || { echo "[ INFO ] Unsup # Enable automated setup G_CONFIG_INJECT 'AUTO_SETUP_AUTOMATED=' 'AUTO_SETUP_AUTOMATED=1' rootfs/boot/dietpi.txt -# - Workaround for skipped autologin in emulated Trixie containers: https://gitlab.com/qemu-project/qemu/-/issues/1962 -# - Set HOME path, required e.g. go builds, which is otherwise missing when started from a systemd unit. +# - Workaround for failing systemd services and hence missing autologin in emulated Trixie containers: https://gitlab.com/qemu-project/qemu/-/issues/1962, https://github.com/systemd/systemd/issues/31219 if [[ $DISTRO == 'trixie' ]] && (( $G_HW_ARCH != $arch && ( $G_HW_ARCH > 9 || $G_HW_ARCH < $arch ) )) then - cat << '_EOF_' > rootfs/etc/systemd/system/dietpi-automation.service -[Unit] -Description=DietPi-Automation -After=dietpi-postboot.service - -[Service] -Type=idle -StandardOutput=tty -Environment=HOME=/root -ExecStart=/bin/dash -c 'infocmp "$TERM" > /dev/null 2>&1 || export TERM=dumb; exec /boot/dietpi/dietpi-login' -ExecStop=/usr/bin/systemctl start poweroff.target - -[Install] -WantedBy=multi-user.target -_EOF_ - G_EXEC ln -s /etc/systemd/system/dietpi-automation.service rootfs/etc/systemd/system/multi-user.target.wants/ + for i in rootfs/usr/lib/systemd/system/*.service + do + grep -q '^ImportCredential=' "$i" || continue + G_EXEC mkdir "${i/usr\/lib/etc}.d" + G_EXEC eval "echo -e '[Service]\nImportCredential=' > ${i/usr\/lib/etc}.d/dietpi-no-ImportCredential.conf" + done fi # Workaround for failing IPv4 network connectivity check as GitHub Actions runners do not receive external ICMP echo replies. From fb3e5913959dc7b64abb74a578018e86e79e3664 Mon Sep 17 00:00:00 2001 From: MichaIng Date: Thu, 9 Jan 2025 12:50:18 +0700 Subject: [PATCH 047/112] v9.10 - DietPi-Software | Gitea: 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 e0639537aa..d49b6b8124 100755 --- a/dietpi/dietpi-software +++ b/dietpi/dietpi-software @@ -10613,7 +10613,7 @@ _EOF_ *) local arch='arm-6';; esac - local fallback_url="https://github.com/go-gitea/gitea/releases/download/v1.22.6/gitea-1.22.6-linux-$arch.xz" + local fallback_url="https://github.com/go-gitea/gitea/releases/download/v1.23.0/gitea-1.23.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 From 7def240fdd5e6fe68a7562ee32d546b7441f4603 Mon Sep 17 00:00:00 2001 From: MichaIng Date: Thu, 9 Jan 2025 15:25:09 +0700 Subject: [PATCH 048/112] v9.10 - DietPi-Software | Raspotify: Update description to align with official GitHub phrase --- dietpi/dietpi-software | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dietpi/dietpi-software b/dietpi/dietpi-software index d49b6b8124..37bebae3dd 100755 --- a/dietpi/dietpi-software +++ b/dietpi/dietpi-software @@ -515,7 +515,7 @@ Available commands: #------------------ software_id=167 aSOFTWARE_NAME[$software_id]='Raspotify' - aSOFTWARE_DESC[$software_id]='Spotify connect client' + aSOFTWARE_DESC[$software_id]='A Spotify Connect client that mostly Just Works™' aSOFTWARE_CATX[$software_id]=2 aSOFTWARE_DOCS[$software_id]='https://dietpi.com/docs/software/media/#raspotify' aSOFTWARE_DEPS[$software_id]='5 152' From 256b615eae435e02b7b86866da94889be3772b57 Mon Sep 17 00:00:00 2001 From: MichaIng Date: Thu, 9 Jan 2025 16:51:29 +0700 Subject: [PATCH 049/112] v9.10 - DietPi-Software | Komga: 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 37bebae3dd..a375d11847 100755 --- a/dietpi/dietpi-software +++ b/dietpi/dietpi-software @@ -7420,7 +7420,7 @@ _EOF_ if To_Install 179 komga # Komga then - local fallback_url='https://github.com/gotson/komga/releases/download/1.16.0/komga-1.16.0.jar' + local fallback_url='https://github.com/gotson/komga/releases/download/1.17.0/komga-1.17.0.jar Download_Install "$(curl -sSfL 'https://api.github.com/repos/gotson/komga/releases/latest' | mawk -F\" '/^ *"browser_download_url": ".*\/komga-[^"\/]*\.jar"$/{print $4}')" /mnt/dietpi_userdata/komga/komga.jar # User From 986ff068436c7bb9952ce82817c8cf0ab2d2e057 Mon Sep 17 00:00:00 2001 From: MichaIng Date: Fri, 10 Jan 2025 09:58:35 +0700 Subject: [PATCH 050/112] v9.10 - DietPi-Software | Komga: Update fallback URL --- dietpi/dietpi-software | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/dietpi/dietpi-software b/dietpi/dietpi-software index a375d11847..5395f7034a 100755 --- a/dietpi/dietpi-software +++ b/dietpi/dietpi-software @@ -7420,7 +7420,7 @@ _EOF_ if To_Install 179 komga # Komga then - local fallback_url='https://github.com/gotson/komga/releases/download/1.17.0/komga-1.17.0.jar + local fallback_url='https://github.com/gotson/komga/releases/download/1.17.0/komga-1.17.0.jar' Download_Install "$(curl -sSfL 'https://api.github.com/repos/gotson/komga/releases/latest' | mawk -F\" '/^ *"browser_download_url": ".*\/komga-[^"\/]*\.jar"$/{print $4}')" /mnt/dietpi_userdata/komga/komga.jar # User @@ -8916,7 +8916,7 @@ _EOF_ *) local arch='arm';; esac - local fallback_url="https://github.com/syncthing/syncthing/releases/download/v1.29.0/syncthing-linux-$arch-v1.29.0.tar.gz" + local fallback_url="https://github.com/syncthing/syncthing/releases/download/v1.29.1/syncthing-linux-$arch-v1.29.1.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 From 61f9705128316f4e1c368fb3244b63e4bfdd181a Mon Sep 17 00:00:00 2001 From: MichaIng Date: Fri, 10 Jan 2025 10:47:31 +0700 Subject: [PATCH 051/112] v9.10 - U-Boot script | Remove deprecated swapaccount parameter: https://github.com/torvalds/linux/commit/b25806d --- .build/images/U-Boot/boot.cmd | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.build/images/U-Boot/boot.cmd b/.build/images/U-Boot/boot.cmd index 5dfbb64fc3..601f377d92 100644 --- a/.build/images/U-Boot/boot.cmd +++ b/.build/images/U-Boot/boot.cmd @@ -28,7 +28,7 @@ fi setenv bootargs "root=${rootdev} rootfstype=${rootfstype} rootwait ${consoleargs} consoleblank=0 coherent_pool=2M usb-storage.quirks=${usbstoragequirks} ${extraargs}" # Add bootargs for Docker -if test "${docker_optimizations}" = "on"; then setenv bootargs "${bootargs} cgroup_enable=memory swapaccount=1"; fi +if test "${docker_optimizations}" = "on"; then setenv bootargs "${bootargs} cgroup_enable=memory"; fi # Load kernel, initramfs and device tree load "${devtype}" "${devnum}" "${kernel_addr_r}" "${prefix}Image" From 3ba6e0dc1462fb710affc37db60a6f30282fdff6 Mon Sep 17 00:00:00 2001 From: MichaIng Date: Fri, 10 Jan 2025 12:33:20 +0700 Subject: [PATCH 052/112] v9.10 - DietPi-Software | Sonarr: Resolved an issue where configs were lost during Sonarr v3 => v4 migration/reinstall. --- CHANGELOG.txt | 1 + dietpi/dietpi-software | 2 ++ 2 files changed, 3 insertions(+) diff --git a/CHANGELOG.txt b/CHANGELOG.txt index 910f50c715..d9afa0983e 100644 --- a/CHANGELOG.txt +++ b/CHANGELOG.txt @@ -14,6 +14,7 @@ Removed software: Bug fixes: - Orange Pi 5 Max | Resolved an issue where onboard WiFi was not working. Many thanks to @diego-hsp for reporting this issue: https://github.com/MichaIng/DietPi/issues/7338 - DietPi-Software | Sonarr: Resolved an issue where the internal updater did not work due to permission limits in the systemd unit. Many thanks to @tellice for reporting this issue: https://github.com/MichaIng/DietPi/issues/7321 +- DietPi-Software | Sonarr: Resolved an issue where configs were lost during Sonarr v3 => v4 migration/reinstall. - DietPi-Software | Fail2Ban: Resolved an issue where a fixed Dropbear filter could not be installed, because the directory did not exist yet. Many thanks to @augustresende for reporting this issue: https://github.com/MichaIng/DietPi/issues/7325 - DietPi-Software | Raspotify: Resolved an issue where the service failed to start, if Avahi-Daemon was not installed. librespot has it as new default DNS discovery backend, and official pre-compiled Raspotify binaries are not compiled with the old DNS-SD backend anymore. Avahi-Daemon is hence installed now by DietPi-Software as well. Many thanks to @gergokis for reporting this issue: https://github.com/MichaIng/DietPi/issues/7323 - DietPi-Software | Navidrome: Resolved an issue where the service failed to start, since the latest release archive does not ship with the needed permissions. Many thanks to @nclro for reporting this issue: https://github.com/MichaIng/DietPi/issues/7336 diff --git a/dietpi/dietpi-software b/dietpi/dietpi-software index 5395f7034a..feb27381e4 100755 --- a/dietpi/dietpi-software +++ b/dietpi/dietpi-software @@ -9435,7 +9435,9 @@ _EOF_ [[ -f '/etc/apt/trusted.gpg.d/dietpi-sonarr.gpg' ]] && G_EXEC rm /etc/apt/trusted.gpg.d/dietpi-sonarr.gpg if dpkg-query -s 'sonarr' &> /dev/null then + [[ -d '/mnt/dietpi_userdata/sonarr' ]] && G_EXEC mv /mnt/dietpi_userdata/sonarr{,_bak} G_AGP sonarr + [[ -d '/mnt/dietpi_userdata/sonarr_bak' ]] && G_EXEC mv /mnt/dietpi_userdata/sonarr{_bak,} # Offer to uninstall Mono if (( ${aSOFTWARE_INSTALL_STATE[150]} == 2 )) then From aeacf455ee322490d12b4f1a987d132902621044 Mon Sep 17 00:00:00 2001 From: MichaIng Date: Sun, 12 Jan 2025 10:48:24 +0700 Subject: [PATCH 053/112] v9.10 - DietPi-Software | Gitea: 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 feb27381e4..99daa75946 100755 --- a/dietpi/dietpi-software +++ b/dietpi/dietpi-software @@ -10615,7 +10615,7 @@ _EOF_ *) local arch='arm-6';; esac - local fallback_url="https://github.com/go-gitea/gitea/releases/download/v1.23.0/gitea-1.23.0-linux-$arch.xz" + local fallback_url="https://github.com/go-gitea/gitea/releases/download/v1.23.1/gitea-1.23.1-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 From 8be8c29cda8e36066773ac85df98b25ef9d13b5a Mon Sep 17 00:00:00 2001 From: MichaIng Date: Mon, 13 Jan 2025 15:06:17 +0700 Subject: [PATCH 054/112] v9.10 - DietPi-Software | Add PHP 8.4 for Trixie and update fallback URLs --- dietpi/dietpi-services | 2 +- dietpi/dietpi-software | 7 ++++--- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/dietpi/dietpi-services b/dietpi/dietpi-services index 387ccc3f0b..af5c453d51 100755 --- a/dietpi/dietpi-services +++ b/dietpi/dietpi-services @@ -134,9 +134,9 @@ _EOF_ 'postgresql' # - PHP - 'php7.3-fpm' # Buster 'php7.4-fpm' # Bullseye 'php8.2-fpm' # Bookworm + 'php8.4-fpm' # Trixie # - Webservers 'apache2' diff --git a/dietpi/dietpi-software b/dietpi/dietpi-software index 99daa75946..b500eb9a59 100755 --- a/dietpi/dietpi-software +++ b/dietpi/dietpi-software @@ -181,7 +181,8 @@ Available commands: # PHP version case $G_DISTRO in 6) PHP_VERSION='7.4';; - *) PHP_VERSION='8.2';; + 7) PHP_VERSION='8.2';; + *) PHP_VERSION='8.4';; esac # Available for [$software_id,$G_*] 2D array @@ -8916,7 +8917,7 @@ _EOF_ *) local arch='arm';; esac - local fallback_url="https://github.com/syncthing/syncthing/releases/download/v1.29.1/syncthing-linux-$arch-v1.29.1.tar.gz" + local fallback_url="https://github.com/syncthing/syncthing/releases/download/v1.29.2/syncthing-linux-$arch-v1.29.2.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 @@ -11666,7 +11667,7 @@ _EOF_ *) local arch='amd64';; esac - local fallback_url="https://github.com/rclone/rclone/releases/download/v1.68.2/rclone-v1.68.2-linux-$arch.deb" + local fallback_url="https://github.com/rclone/rclone/releases/download/v1.69.0/rclone-v1.69.0-linux-$arch.deb" Download_Install "$(curl -sSfL 'https://api.github.com/repos/rclone/rclone/releases/latest' | mawk -F\" "/^ *\"browser_download_url\": \".*\/rclone-v[^\"\/]*-linux-$arch.deb\"$/{print \$4}")" fi fi From e6bf2ef8bb951c4a425c51838e3e2e46e6a403d5 Mon Sep 17 00:00:00 2001 From: MichaIng Date: Thu, 16 Jan 2025 15:49:58 +0700 Subject: [PATCH 055/112] v9.10 - DietPi-Software | Update fallback URLs and HAPoxy version --- dietpi/dietpi-software | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/dietpi/dietpi-software b/dietpi/dietpi-software index b500eb9a59..6b3c21ee25 100755 --- a/dietpi/dietpi-software +++ b/dietpi/dietpi-software @@ -6158,7 +6158,7 @@ _EOF_ *) local arch='amd64';; esac - local fallback_url="https://github.com/navidrome/navidrome/releases/download/v0.54.3/navidrome_0.54.3_linux_$arch.tar.gz" + local fallback_url="https://github.com/navidrome/navidrome/releases/download/v0.54.4/navidrome_0.54.4_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 @@ -6868,7 +6868,7 @@ _EOF_ if To_Install 98 haproxy # HAProxy then - local version='3.0.5' # https://www.haproxy.org/download/ + local version='3.1.2' # https://www.haproxy.org/download/ aDEPS=('make' 'gcc' 'libpcre2-dev' 'libssl-dev' 'zlib1g-dev' 'libsystemd-dev') Download_Install "https://www.haproxy.org/download/${version%.*}/src/haproxy-$version.tar.gz" @@ -7421,7 +7421,7 @@ _EOF_ if To_Install 179 komga # Komga then - local fallback_url='https://github.com/gotson/komga/releases/download/1.17.0/komga-1.17.0.jar' + local fallback_url='https://github.com/gotson/komga/releases/download/1.18.0/komga-1.18.0.jar' Download_Install "$(curl -sSfL 'https://api.github.com/repos/gotson/komga/releases/latest' | mawk -F\" '/^ *"browser_download_url": ".*\/komga-[^"\/]*\.jar"$/{print $4}')" /mnt/dietpi_userdata/komga/komga.jar # User From 40b0fbca6128bd50688ccbfebd04673ea7b8a9a0 Mon Sep 17 00:00:00 2001 From: MichaIng Date: Sun, 19 Jan 2025 12:37:24 +0100 Subject: [PATCH 056/112] v9.10 - DietPi-Software | Snapcast: Update fallback URLs --- dietpi/dietpi-software | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/dietpi/dietpi-software b/dietpi/dietpi-software index 6b3c21ee25..1016ac421f 100755 --- a/dietpi/dietpi-software +++ b/dietpi/dietpi-software @@ -11596,7 +11596,7 @@ _EOF_ getent passwd snapserver > /dev/null && G_EXEC userdel snapserver else local arch=$(dpkg --print-architecture) - local fallback_url="https://github.com/badaix/snapcast/releases/download/v0.29.0/snapserver_0.29.0-1_${arch}_$G_DISTRO_NAME.deb" + local fallback_url="https://github.com/badaix/snapcast/releases/download/v0.30.0/snapserver_0.30.0-1_${arch}_$G_DISTRO_NAME.deb" Download_Install "$(curl -sSfL 'https://api.github.com/repos/badaix/snapcast/releases/latest' | mawk -F\" "/^ *\"browser_download_url\": \".*\/snapserver_[^\"\/]*_${arch}_$G_DISTRO_NAME.deb\"/{print \$4}")" # Fix /var/lib/snapserver permissions, just in case Debian's package was previously used, which uses the "_snapserver" user, instead of "snapserver" @@ -11617,7 +11617,7 @@ _EOF_ G_AGI snapclient else local arch=$(dpkg --print-architecture) - local fallback_url="https://github.com/badaix/snapcast/releases/download/v0.29.0/snapclient_0.29.0-1_${arch}_$G_DISTRO_NAME.deb" + local fallback_url="https://github.com/badaix/snapcast/releases/download/v0.30.0/snapclient_0.30.0-1_${arch}_$G_DISTRO_NAME.deb" Download_Install "$(curl -sSfL 'https://api.github.com/repos/badaix/snapcast/releases/latest' | mawk -F\" "/^ *\"browser_download_url\": \".*\/snapclient_[^\"\/]*_${arch}_$G_DISTRO_NAME.deb\"/{print \$4}")" fi G_EXEC systemctl stop snapclient From 9c27a6fcde39468b5939a719842dd691d5df1a04 Mon Sep 17 00:00:00 2001 From: MichaIng Date: Sun, 19 Jan 2025 14:38:30 +0100 Subject: [PATCH 057/112] v9.10 - DietPi-Software | Raspotify: Unlock on RISC-V --- dietpi/dietpi-software | 2 -- 1 file changed, 2 deletions(-) diff --git a/dietpi/dietpi-software b/dietpi/dietpi-software index 1016ac421f..ae3766cc1f 100755 --- a/dietpi/dietpi-software +++ b/dietpi/dietpi-software @@ -520,8 +520,6 @@ Available commands: aSOFTWARE_CATX[$software_id]=2 aSOFTWARE_DOCS[$software_id]='https://dietpi.com/docs/software/media/#raspotify' aSOFTWARE_DEPS[$software_id]='5 152' - # - RISC-V: https://github.com/dtcooper/raspotify/releases - aSOFTWARE_AVAIL_G_HW_ARCH[$software_id,11]=0 # - Bookworm/Trixie on ARMv6 (older package): "/usr/bin/librespot: error while loading shared libraries: ld-linux.so.3: cannot open shared object file: No such file or directory" (( $G_HW_ARCH == 1 && $G_DISTRO > 6 )) && aSOFTWARE_AVAIL_G_DISTRO[$software_id,$G_DISTRO]=0 #------------------ From 64a54bcaa9d8f8d89368cd252787ccc5f553a325 Mon Sep 17 00:00:00 2001 From: MichaIng Date: Sun, 19 Jan 2025 18:00:00 +0100 Subject: [PATCH 058/112] v9.10 - DietPi-Software | Bazarr: Resolved an issue where the installation failed on RISC-V systems due to missing build dependencies. --- CHANGELOG.txt | 1 + dietpi/dietpi-software | 7 ++++++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.txt b/CHANGELOG.txt index d9afa0983e..0a8bad6f4c 100644 --- a/CHANGELOG.txt +++ b/CHANGELOG.txt @@ -23,6 +23,7 @@ Bug fixes: - DietPi-Software | PaperMC: Resolved an issue where the installation failed, because the API URL changed. Many thanks to @onkeld for reporting this issue: https://github.com/MichaIng/DietPi/issues/7349 - DietPi-Software | PaperMC: Resolved an issue where the installation failed on Bullseye and Bookworm systems, as Minecraft 1.21 requires Java 21, available on Debian Trixie only. PaperMC 1.20.4 will be installed in those cases now, the latest version which supports Java 17. - DietPi-Software | Java: Since the Java 8 package from Raspbian cannot be successfully installed anymore, due to a dependency conflict, and newer (Hotspot VM) Java versions are not compatible with ARMv6, Java and all Java applications have been disabled for this architecture (RPi 1 and Zero). You can still uninstall related applications via dietpi-software, but not install or reinstall them. We are sorry for this step, but our related bug report at Raspbian did not get any traction, and also on Raspberry Pi forum the issue did not really come up since the year it exists. Java applications on Linux anyway consume a lot of resources (for the runtime) and are slow, hence the interest running such on old RPi 1 and Zero (1) models seems to be minimal, and it had limitations due to Java 8 only. If anyone is seriously interested, please push the existing Raspbian bug report, as a fix at Raspbian side is theoretically very simple: https://bugs.launchpad.net/raspbian/+bug/2087632. If there was a 3rd party APT repository with recent ARMv6-compatible Java versions, that would be an option as well. +- DietPi-Software | Bazarr: Resolved an issue where the installation failed on RISC-V systems due to missing build dependencies. 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 ae3766cc1f..71e595901f 100755 --- a/dietpi/dietpi-software +++ b/dietpi/dietpi-software @@ -9710,6 +9710,11 @@ _EOF_ then aDEPS+=('libopenblas0-pthread') # libopenblas0-pthread runtime library for piwheels wheel: https://piwheels.org/project/numpy/ (( $G_HW_ARCH == 1 )) && aDEPS+=('unar') # ARMv6 does not support unrar-nonfree and Bazarr does not support unrar-free, so we need to use "unar": https://github.com/morpheus65535/bazarr/issues/2172 + + elif (( $G_HW_ARCH == 11 )) + then + # libxslt1-dev for lxml + aDEPS+=('libxslt1-dev') fi # Download @@ -10043,7 +10048,7 @@ _EOF_ 3) local arch='arm64';; *) local arch='x64';; esac - local fallback_url="https://github.com/Readarr/Readarr/releases/download/v0.4.7.2718/Readarr.develop.0.4.7.2718.linux-core-$arch.tar.gz" + local fallback_url="https://github.com/Readarr/Readarr/releases/download/v0.4.9.2730/Readarr.develop.0.4.9.2730.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)" # Install: Remove previous instance on reinstall From 08a62db733d123c76e262cee5bcf8fcacd979a95 Mon Sep 17 00:00:00 2001 From: MichaIng Date: Sun, 19 Jan 2025 18:57:31 +0100 Subject: [PATCH 059/112] v9.10 - DietPi-Software | Bazarr: Fix install on all Trixie systems, and install piwheels numpy deps only if numpy from piwheels is installed --- CHANGELOG.txt | 2 +- dietpi/dietpi-software | 16 ++++++---------- 2 files changed, 7 insertions(+), 11 deletions(-) diff --git a/CHANGELOG.txt b/CHANGELOG.txt index 0a8bad6f4c..05945e5281 100644 --- a/CHANGELOG.txt +++ b/CHANGELOG.txt @@ -23,7 +23,7 @@ Bug fixes: - DietPi-Software | PaperMC: Resolved an issue where the installation failed, because the API URL changed. Many thanks to @onkeld for reporting this issue: https://github.com/MichaIng/DietPi/issues/7349 - DietPi-Software | PaperMC: Resolved an issue where the installation failed on Bullseye and Bookworm systems, as Minecraft 1.21 requires Java 21, available on Debian Trixie only. PaperMC 1.20.4 will be installed in those cases now, the latest version which supports Java 17. - DietPi-Software | Java: Since the Java 8 package from Raspbian cannot be successfully installed anymore, due to a dependency conflict, and newer (Hotspot VM) Java versions are not compatible with ARMv6, Java and all Java applications have been disabled for this architecture (RPi 1 and Zero). You can still uninstall related applications via dietpi-software, but not install or reinstall them. We are sorry for this step, but our related bug report at Raspbian did not get any traction, and also on Raspberry Pi forum the issue did not really come up since the year it exists. Java applications on Linux anyway consume a lot of resources (for the runtime) and are slow, hence the interest running such on old RPi 1 and Zero (1) models seems to be minimal, and it had limitations due to Java 8 only. If anyone is seriously interested, please push the existing Raspbian bug report, as a fix at Raspbian side is theoretically very simple: https://bugs.launchpad.net/raspbian/+bug/2087632. If there was a 3rd party APT repository with recent ARMv6-compatible Java versions, that would be an option as well. -- DietPi-Software | Bazarr: Resolved an issue where the installation failed on RISC-V systems due to missing build dependencies. +- DietPi-Software | Bazarr: Resolved an issue where the installation failed on Trixie systems due to missing build dependencies. 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 71e595901f..4a2506afaa 100755 --- a/dietpi/dietpi-software +++ b/dietpi/dietpi-software @@ -9706,16 +9706,12 @@ _EOF_ then # APT deps aDEPS=('unzip') - if (( $G_HW_ARCH < 3 )) - then - aDEPS+=('libopenblas0-pthread') # libopenblas0-pthread runtime library for piwheels wheel: https://piwheels.org/project/numpy/ - (( $G_HW_ARCH == 1 )) && aDEPS+=('unar') # ARMv6 does not support unrar-nonfree and Bazarr does not support unrar-free, so we need to use "unar": https://github.com/morpheus65535/bazarr/issues/2172 - - elif (( $G_HW_ARCH == 11 )) - then - # libxslt1-dev for lxml - aDEPS+=('libxslt1-dev') - fi + # - ARMv6 does not support unrar-nonfree and Bazarr does not support unrar-free, so we need to use "unar": https://github.com/morpheus65535/bazarr/issues/2172 + (( $G_HW_ARCH == 1 )) && aDEPS+=('unar') + # - ARMv6/7 with piwheels: libopenblas0-pthread runtime library for piwheels wheel: https://piwheels.org/project/numpy/ + (( $G_DISTRO < 8 && $G_HW_ARCH < 3 )) && aDEPS+=('libopenblas0-pthread') + # - ARMv6/7/RISC-V without piwheels: libxslt1-dev for lxml + (( $G_DISTRO > 7 && ( $G_HW_ARCH < 3 || $G_HW_ARCH == 11 ) )) && aDEPS+=('libxslt1-dev') # Download Download_Install 'https://github.com/morpheus65535/bazarr/releases/latest/download/bazarr.zip' bazarr From 2381f0f08303c005331d24083cef33c0aebe2a90 Mon Sep 17 00:00:00 2001 From: MichaIng Date: Sun, 19 Jan 2025 20:33:21 +0100 Subject: [PATCH 060/112] v9.10 - DietPi-Software | Mono: Resolved an issue where the installation failed on Trixie systems due to conflicting dependencies of packages from the Mono repo. It is now installed from the Debian repository, which ships the latest version since Trixie. --- CHANGELOG.txt | 1 + dietpi/dietpi-software | 22 +++++++++++++--------- 2 files changed, 14 insertions(+), 9 deletions(-) diff --git a/CHANGELOG.txt b/CHANGELOG.txt index 05945e5281..9e84d30eaf 100644 --- a/CHANGELOG.txt +++ b/CHANGELOG.txt @@ -24,6 +24,7 @@ Bug fixes: - DietPi-Software | PaperMC: Resolved an issue where the installation failed on Bullseye and Bookworm systems, as Minecraft 1.21 requires Java 21, available on Debian Trixie only. PaperMC 1.20.4 will be installed in those cases now, the latest version which supports Java 17. - DietPi-Software | Java: Since the Java 8 package from Raspbian cannot be successfully installed anymore, due to a dependency conflict, and newer (Hotspot VM) Java versions are not compatible with ARMv6, Java and all Java applications have been disabled for this architecture (RPi 1 and Zero). You can still uninstall related applications via dietpi-software, but not install or reinstall them. We are sorry for this step, but our related bug report at Raspbian did not get any traction, and also on Raspberry Pi forum the issue did not really come up since the year it exists. Java applications on Linux anyway consume a lot of resources (for the runtime) and are slow, hence the interest running such on old RPi 1 and Zero (1) models seems to be minimal, and it had limitations due to Java 8 only. If anyone is seriously interested, please push the existing Raspbian bug report, as a fix at Raspbian side is theoretically very simple: https://bugs.launchpad.net/raspbian/+bug/2087632. If there was a 3rd party APT repository with recent ARMv6-compatible Java versions, that would be an option as well. - DietPi-Software | Bazarr: Resolved an issue where the installation failed on Trixie systems due to missing build dependencies. +- DietPi-Software | Mono: Resolved an issue where the installation failed on Trixie systems due to conflicting dependencies of packages from the Mono repo. It is now installed from the Debian repository, which ships the latest version since Trixie. 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 4a2506afaa..a8dfc16eed 100755 --- a/dietpi/dietpi-software +++ b/dietpi/dietpi-software @@ -2993,16 +2993,20 @@ unix_socket_directories = '/run/postgresql'" > "$i/00dietpi.conf" if To_Install 150 # Mono: https://www.mono-project.com/download/stable/#download-lin-debian then - # APT key - G_EXEC curl -sSfL 'https://download.mono-project.com/repo/xamarin_ring.gpg' -o /etc/apt/trusted.gpg.d/dietpi-mono.gpg + # Trixie: Install from Debian repo instead: "mono-devel : Depends: libglib2.0-0 (>= 2.58.3) but it is not installable" + if (( $G_DISTRO < 8 )) + then + # APT key + G_EXEC curl -sSfL 'https://download.mono-project.com/repo/xamarin_ring.gpg' -o /etc/apt/trusted.gpg.d/dietpi-mono.gpg - # APT list - # - Only Buster suites are available: https://download.mono-project.com/repo/debian/dists/ - # - On Raspbian use separate suite: https://github.com/MichaIng/DietPi/issues/1023 - local suite='buster' - (( $G_RASPBIAN )) && suite='raspbianbuster' - G_EXEC eval "echo 'deb https://download.mono-project.com/repo/debian $suite main' > /etc/apt/sources.list.d/dietpi-mono.list" - G_AGUP + # APT list + # - Only Buster suites are available: https://download.mono-project.com/repo/debian/dists/ + # - On Raspbian use separate suite: https://github.com/MichaIng/DietPi/issues/1023 + local suite='buster' + (( $G_RASPBIAN )) && suite='raspbianbuster' + G_EXEC eval "echo 'deb https://download.mono-project.com/repo/debian $suite main' > /etc/apt/sources.list.d/dietpi-mono.list" + G_AGUP + fi # APT package G_AGI mono-devel From 5d1733dc5b13baeeca89a316f8b1c94aaf8f9563 Mon Sep 17 00:00:00 2001 From: MichaIng Date: Sun, 19 Jan 2025 21:52:32 +0100 Subject: [PATCH 061/112] v9.10 - DietPi-Software | Remove trailing space --- dietpi/dietpi-software | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dietpi/dietpi-software b/dietpi/dietpi-software index a8dfc16eed..b6fe9b856f 100755 --- a/dietpi/dietpi-software +++ b/dietpi/dietpi-software @@ -9713,7 +9713,7 @@ _EOF_ # - ARMv6 does not support unrar-nonfree and Bazarr does not support unrar-free, so we need to use "unar": https://github.com/morpheus65535/bazarr/issues/2172 (( $G_HW_ARCH == 1 )) && aDEPS+=('unar') # - ARMv6/7 with piwheels: libopenblas0-pthread runtime library for piwheels wheel: https://piwheels.org/project/numpy/ - (( $G_DISTRO < 8 && $G_HW_ARCH < 3 )) && aDEPS+=('libopenblas0-pthread') + (( $G_DISTRO < 8 && $G_HW_ARCH < 3 )) && aDEPS+=('libopenblas0-pthread') # - ARMv6/7/RISC-V without piwheels: libxslt1-dev for lxml (( $G_DISTRO > 7 && ( $G_HW_ARCH < 3 || $G_HW_ARCH == 11 ) )) && aDEPS+=('libxslt1-dev') From 7857e8eb6ce1b71ec36824018c77cf4f57db55fe Mon Sep 17 00:00:00 2001 From: MichaIng Date: Mon, 20 Jan 2025 10:24:41 +0100 Subject: [PATCH 062/112] v9.10 - DietPi-Software | Bazarr: Add further dependencies for numpy build where no wheels are available --- dietpi/dietpi-software | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/dietpi/dietpi-software b/dietpi/dietpi-software index b6fe9b856f..bd9cb2f0c1 100755 --- a/dietpi/dietpi-software +++ b/dietpi/dietpi-software @@ -9712,10 +9712,10 @@ _EOF_ aDEPS=('unzip') # - ARMv6 does not support unrar-nonfree and Bazarr does not support unrar-free, so we need to use "unar": https://github.com/morpheus65535/bazarr/issues/2172 (( $G_HW_ARCH == 1 )) && aDEPS+=('unar') - # - ARMv6/7 with piwheels: libopenblas0-pthread runtime library for piwheels wheel: https://piwheels.org/project/numpy/ + # - ARMv6/7 with piwheels: libopenblas0-pthread for numpy from piwheels: https://piwheels.org/project/numpy/ (( $G_DISTRO < 8 && $G_HW_ARCH < 3 )) && aDEPS+=('libopenblas0-pthread') - # - ARMv6/7/RISC-V without piwheels: libxslt1-dev for lxml - (( $G_DISTRO > 7 && ( $G_HW_ARCH < 3 || $G_HW_ARCH == 11 ) )) && aDEPS+=('libxslt1-dev') + # - ARMv6/7/RISC-V without piwheels: libxslt1-dev for lxml; g++, pkg-config and libopenblas-dev for numpy + (( $G_DISTRO > 7 && ( $G_HW_ARCH < 3 || $G_HW_ARCH == 11 ) )) && aDEPS+=('libxslt1-dev' 'g++' 'pkg-config' 'libopenblas-dev') # Download Download_Install 'https://github.com/morpheus65535/bazarr/releases/latest/download/bazarr.zip' bazarr From efbeae11bea699208571fcbdfdd0af55c3d8d563 Mon Sep 17 00:00:00 2001 From: MichaIng Date: Mon, 20 Jan 2025 10:32:30 +0100 Subject: [PATCH 063/112] v9.10 - DietPi-Software | Ampache: Update fallback URLs --- dietpi/dietpi-software | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/dietpi/dietpi-software b/dietpi/dietpi-software index bd9cb2f0c1..12e83aa00b 100755 --- a/dietpi/dietpi-software +++ b/dietpi/dietpi-software @@ -7521,10 +7521,10 @@ _EOF_ # Download: Ampache v7 requires PHP 8.2 if (( $G_DISTRO > 6 )) then - local fallback_url="https://github.com/ampache/ampache/releases/download/7.1.1/ampache-7.1.1_all_php$PHP_VERSION.zip" + local fallback_url="https://github.com/ampache/ampache/releases/download/7.2.0/ampache-7.2.0_all_php$PHP_VERSION.zip" Download_Install "$(curl -sSfL 'https://api.github.com/repos/ampache/ampache/releases/latest' | mawk -F\" "/^ *\"browser_download_url\": \".*\/ampache-[0-9\.]*_all_php$PHP_VERSION.zip\"$/{print \$4}")" ampache else - local fallback_url="https://github.com/ampache/ampache/releases/download/6.6.5/ampache-6.6.5_all_php$PHP_VERSION.zip" + local fallback_url="https://github.com/ampache/ampache/releases/download/6.6.6/ampache-6.6.6_all_php$PHP_VERSION.zip" Download_Install "$(curl -sSfL 'https://api.github.com/repos/ampache/ampache/releases' | mawk -F\" "/^ *\"browser_download_url\": \".*\/ampache-[0-9\.]*_all_php$PHP_VERSION.zip\"$/{print \$4}")" ampache fi From 333bd4e5f0fbe3b13bb60616d1d60214cae970d4 Mon Sep 17 00:00:00 2001 From: MichaIng Date: Mon, 20 Jan 2025 10:48:21 +0100 Subject: [PATCH 064/112] v9.10 - DietPi-Software | vaultwarden: Our builds will now show the package version within the web UI. Many thanks to @gh3597 for reporting it missing and how to add it: https://github.com/MichaIng/DietPi/issues/7364 --- .build/software/vaultwarden/build.bash | 17 +++++++++-------- CHANGELOG.txt | 1 + 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/.build/software/vaultwarden/build.bash b/.build/software/vaultwarden/build.bash index d9ead499c7..fd7840b7e3 100755 --- a/.build/software/vaultwarden/build.bash +++ b/.build/software/vaultwarden/build.bash @@ -34,6 +34,14 @@ export PATH="$HOME/.cargo/bin:$PATH" # - vaultwarden version=$(curl -sSf 'https://api.github.com/repos/dani-garcia/vaultwarden/releases/latest' | mawk -F\" '/^ *"tag_name": "[^"]*",$/{print $4}') [[ $version ]] || { G_DIETPI-NOTIFY 1 'No latest vaultwarden version found, aborting ...'; exit 1; } +# - Obtain version suffix +G_EXEC curl -sSfo package.deb "https://dietpi.com/downloads/binaries/$G_DISTRO_NAME/vaultwarden_$G_HW_ARCH_NAME.deb" +old_version=$(dpkg-deb -f package.deb Version) || exit 1 +G_EXEC rm package.deb +suffix=${old_version#*-dietpi} +[[ $old_version == "$version-"* ]] && pkg_version+="-dietpi$((suffix+1))" || pkg_version+="-dietpi1" +# - Env var to show version in web UI: https://github.com/MichaIng/DietPi/issues/7364 +export VW_VERSION=$pkg_version # - web vault wv_url=$(curl -sSf 'https://api.github.com/repos/dani-garcia/bw_web_builds/releases/latest' | mawk -F\" '/^ *"browser_download_url": ".*\.tar\.gz"$/{print $4}') [[ $wv_url ]] || { G_DIETPI-NOTIFY 1 'No latest web vault version found, aborting ...'; exit 1; } @@ -213,17 +221,10 @@ DEPS_APT_VERSIONED=${DEPS_APT_VERSIONED%,} # shellcheck disable=SC2001 [[ $G_HW_ARCH_NAME == 'armv6l' ]] && DEPS_APT_VERSIONED=$(sed 's/+rp[it][0-9]\+[^)]*)/)/g' <<< "$DEPS_APT_VERSIONED") || DEPS_APT_VERSIONED=$(sed 's/+b[0-9]\+)/)/g' <<< "$DEPS_APT_VERSIONED") -# - Obtain version suffix -G_EXEC curl -sSfo package.deb "https://dietpi.com/downloads/binaries/$G_DISTRO_NAME/vaultwarden_$G_HW_ARCH_NAME.deb" -old_version=$(dpkg-deb -f package.deb Version) -G_EXEC rm package.deb -suffix=${old_version#*-dietpi} -[[ $old_version == "$version-"* ]] && version+="-dietpi$((suffix+1))" || version+="-dietpi1" - # - control cat << _EOF_ > "$DIR/DEBIAN/control" Package: vaultwarden -Version: $version +Version: $pkg_version Architecture: $(dpkg --print-architecture) Maintainer: MichaIng Date: $(date -uR) diff --git a/CHANGELOG.txt b/CHANGELOG.txt index 9e84d30eaf..b52088b0af 100644 --- a/CHANGELOG.txt +++ b/CHANGELOG.txt @@ -7,6 +7,7 @@ Enhancements: - RISC-V | Debian Trixie does now support this architecture, hence our VisionFive 2 and Star64 images are now provided with Debian Trixie/testing instead of Debian Sid/unstable, and existing systemd will be migrated to the Trixie suite. - RISC-V | Additional software options have been enabled for RISC-V systems: NZBGet, MicroK8s and AdGuard Home - DietPi-Software | myMPD: We enabled the software option for ARMv6 Bookworm systems, since packages for Raspbian Bookworm are now available. Many thanks to @hackslikeus for bringing up the topic: https://github.com/MichaIng/DietPi/issues/7345 +- DietPi-Software | vaultwarden: Our builds will now show the package version within the web UI. Many thanks to @gh3597 for reporting it missing and how to add it: https://github.com/MichaIng/DietPi/issues/7364 Removed software: - DietPi-Software | A number of software options have been removed, which were installed just as single APT package, without any configuration or dependant. Running `dietpi-software` for such is overkill, as one can just use the native Debian package manager directly, like "apt install tcpdump". Affected software titles: iftop, IPTraf, Iperf, MTR-Tiny, nLoad, tcpdump From d944e6dac077b988d652436256db6fc9a12cf1e5 Mon Sep 17 00:00:00 2001 From: MichaIng Date: Mon, 20 Jan 2025 17:09:42 +0100 Subject: [PATCH 065/112] v9.10 - DietPi-Software | Bazarr: Add further dependency for RISC-V --- dietpi/dietpi-software | 2 ++ 1 file changed, 2 insertions(+) diff --git a/dietpi/dietpi-software b/dietpi/dietpi-software index 12e83aa00b..418174d5d8 100755 --- a/dietpi/dietpi-software +++ b/dietpi/dietpi-software @@ -9716,6 +9716,8 @@ _EOF_ (( $G_DISTRO < 8 && $G_HW_ARCH < 3 )) && aDEPS+=('libopenblas0-pthread') # - ARMv6/7/RISC-V without piwheels: libxslt1-dev for lxml; g++, pkg-config and libopenblas-dev for numpy (( $G_DISTRO > 7 && ( $G_HW_ARCH < 3 || $G_HW_ARCH == 11 ) )) && aDEPS+=('libxslt1-dev' 'g++' 'pkg-config' 'libopenblas-dev') + # - RISC-V: make for cmake > ninja + (( $G_HW_ARCH == 11 )) && aDEPS+=('make') # Download Download_Install 'https://github.com/morpheus65535/bazarr/releases/latest/download/bazarr.zip' bazarr From 02b2704f35fbac995d87e9fcf6b2152347c0ca2c Mon Sep 17 00:00:00 2001 From: MichaIng Date: Mon, 20 Jan 2025 22:24:39 +0100 Subject: [PATCH 066/112] v9.10 - DietPi-Software | Bazarr: The cmake Python module has some larger dependencies to compile. Test whether the cmake APT package satisfies the dependency as well, though it shouldn't. --- dietpi/dietpi-software | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/dietpi/dietpi-software b/dietpi/dietpi-software index 418174d5d8..55d472e034 100755 --- a/dietpi/dietpi-software +++ b/dietpi/dietpi-software @@ -9716,8 +9716,8 @@ _EOF_ (( $G_DISTRO < 8 && $G_HW_ARCH < 3 )) && aDEPS+=('libopenblas0-pthread') # - ARMv6/7/RISC-V without piwheels: libxslt1-dev for lxml; g++, pkg-config and libopenblas-dev for numpy (( $G_DISTRO > 7 && ( $G_HW_ARCH < 3 || $G_HW_ARCH == 11 ) )) && aDEPS+=('libxslt1-dev' 'g++' 'pkg-config' 'libopenblas-dev') - # - RISC-V: make for cmake > ninja - (( $G_HW_ARCH == 11 )) && aDEPS+=('make') + # - RISC-V: cmake for ninja + (( $G_HW_ARCH == 11 )) && aDEPS+=('cmake') # Download Download_Install 'https://github.com/morpheus65535/bazarr/releases/latest/download/bazarr.zip' bazarr From 1246f7fa89eb6712dd7cd0c7e7c1c21786f44052 Mon Sep 17 00:00:00 2001 From: MichaIng Date: Mon, 20 Jan 2025 23:06:26 +0100 Subject: [PATCH 067/112] v9.10 - DietPi-Software | Bazarr: Add further deps for RISC-V --- dietpi/dietpi-software | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/dietpi/dietpi-software b/dietpi/dietpi-software index 55d472e034..00391c6459 100755 --- a/dietpi/dietpi-software +++ b/dietpi/dietpi-software @@ -9716,8 +9716,8 @@ _EOF_ (( $G_DISTRO < 8 && $G_HW_ARCH < 3 )) && aDEPS+=('libopenblas0-pthread') # - ARMv6/7/RISC-V without piwheels: libxslt1-dev for lxml; g++, pkg-config and libopenblas-dev for numpy (( $G_DISTRO > 7 && ( $G_HW_ARCH < 3 || $G_HW_ARCH == 11 ) )) && aDEPS+=('libxslt1-dev' 'g++' 'pkg-config' 'libopenblas-dev') - # - RISC-V: cmake for ninja - (( $G_HW_ARCH == 11 )) && aDEPS+=('cmake') + # - RISC-V: cmake for ninja, make for patchelf and ninja + (( $G_HW_ARCH == 11 )) && aDEPS+=('cmake' 'make') # Download Download_Install 'https://github.com/morpheus65535/bazarr/releases/latest/download/bazarr.zip' bazarr From 8045156dcc5b1eb21ab0927660e2b00305cc4ba2 Mon Sep 17 00:00:00 2001 From: MichaIng Date: Mon, 20 Jan 2025 23:36:38 +0100 Subject: [PATCH 068/112] v9.10 - DietPi-Software | Bazarr: Add further RISC-V dependency --- dietpi/dietpi-software | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/dietpi/dietpi-software b/dietpi/dietpi-software index 00391c6459..0385698f47 100755 --- a/dietpi/dietpi-software +++ b/dietpi/dietpi-software @@ -9716,8 +9716,8 @@ _EOF_ (( $G_DISTRO < 8 && $G_HW_ARCH < 3 )) && aDEPS+=('libopenblas0-pthread') # - ARMv6/7/RISC-V without piwheels: libxslt1-dev for lxml; g++, pkg-config and libopenblas-dev for numpy (( $G_DISTRO > 7 && ( $G_HW_ARCH < 3 || $G_HW_ARCH == 11 ) )) && aDEPS+=('libxslt1-dev' 'g++' 'pkg-config' 'libopenblas-dev') - # - RISC-V: cmake for ninja, make for patchelf and ninja - (( $G_HW_ARCH == 11 )) && aDEPS+=('cmake' 'make') + # - RISC-V: cmake for ninja, make and autoconf for patchelf + (( $G_HW_ARCH == 11 )) && aDEPS+=('cmake' 'make' 'autoconf') # Download Download_Install 'https://github.com/morpheus65535/bazarr/releases/latest/download/bazarr.zip' bazarr From 4ff6d78dccdc89341bb7991ebe544ba5ae1a3d99 Mon Sep 17 00:00:00 2001 From: MichaIng Date: Tue, 21 Jan 2025 01:32:24 +0100 Subject: [PATCH 069/112] v9.10 - DietPi-Software | Bazarr: RISC-V deps update --- dietpi/dietpi-software | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/dietpi/dietpi-software b/dietpi/dietpi-software index 0385698f47..cf1c16f068 100755 --- a/dietpi/dietpi-software +++ b/dietpi/dietpi-software @@ -9716,8 +9716,8 @@ _EOF_ (( $G_DISTRO < 8 && $G_HW_ARCH < 3 )) && aDEPS+=('libopenblas0-pthread') # - ARMv6/7/RISC-V without piwheels: libxslt1-dev for lxml; g++, pkg-config and libopenblas-dev for numpy (( $G_DISTRO > 7 && ( $G_HW_ARCH < 3 || $G_HW_ARCH == 11 ) )) && aDEPS+=('libxslt1-dev' 'g++' 'pkg-config' 'libopenblas-dev') - # - RISC-V: cmake for ninja, make and autoconf for patchelf - (( $G_HW_ARCH == 11 )) && aDEPS+=('cmake' 'make' 'autoconf') + # - RISC-V: cmake for ninja; make and automake for patchelf + (( $G_HW_ARCH == 11 )) && aDEPS+=('cmake' 'make' 'automake') # Download Download_Install 'https://github.com/morpheus65535/bazarr/releases/latest/download/bazarr.zip' bazarr From 27401e0dd8eabaa70c4d2616113f3c0315697e4d Mon Sep 17 00:00:00 2001 From: MichaIng Date: Tue, 21 Jan 2025 15:32:07 +0100 Subject: [PATCH 070/112] Live patch 1 v9.9 - Live patch 1 | Fix typo in description --- .update/version | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.update/version b/.update/version index 1725a59608..dee42fcbb1 100644 --- a/.update/version +++ b/.update/version @@ -16,7 +16,7 @@ G_OLD_DEBIAN_BRANCH='8' # Live patches G_LIVE_PATCH_DESC=( [0]='Fix Sonarr v4 permissions for updater in dietpi-software. Only needed if you plan to install or migrate to Sonarr v4 via dietpi-software.' - [1]='Fix install of patches Fail2Ban Dropbear filter: https://github.com/MichaIng/DietPi/issues/7325' + [1]='Fix install of patched Fail2Ban Dropbear filter: https://github.com/MichaIng/DietPi/issues/7325' [2]='Install patched Fail2Ban Dropbear filter: https://github.com/fail2ban/fail2ban/pull/3597' [3]='Fix Sonarr v4 permissions for updater for installed Sonarr v4 instances' ) From 77511bdf3cac538d72a15dbf4e05391bcbc96d26 Mon Sep 17 00:00:00 2001 From: MichaIng Date: Tue, 21 Jan 2025 16:15:08 +0100 Subject: [PATCH 071/112] v9.10 - DietPi-Banner | Remove support for legacy "2" input, print error message and usage info in case of invalid input, and some coding enhancements --- dietpi/func/dietpi-banner | 76 ++++++++++++++++++--------------------- 1 file changed, 34 insertions(+), 42 deletions(-) diff --git a/dietpi/func/dietpi-banner b/dietpi/func/dietpi-banner index 2fda70472d..12a3e03826 100755 --- a/dietpi/func/dietpi-banner +++ b/dietpi/func/dietpi-banner @@ -12,14 +12,14 @@ # - Location: /boot/dietpi/func/dietpi-banner # - Checks /run/dietpi/.update_available, /run/dietpi/.live_patches, /run/dietpi/.apt_updates, /run/dietpi/.dietpi_motd and /boot/dietpi/.prep_info # - # Usage: - # - dietpi-banner = banner customisation menu - # - dietpi-banner 0 = top section + LAN IP - # - dietpi-banner 1 = clear terminal + top section + chosen entries + credits - #//////////////////////////////////// + USAGE=' +- dietpi-banner = banner customisation menu +- dietpi-banner 0 = top section + LAN IP +- dietpi-banner 1 = clear terminal + top section + chosen entries + credits +' #//////////////////////////////////// # Grab input - [[ $1 == [01] ]] && INPUT=$1 || INPUT=2 + INPUT=$* # Import DietPi-Globals -------------------------------------------------------------- . /boot/dietpi/func/dietpi-globals @@ -97,7 +97,7 @@ Check_DietPi_Update() { [[ -f '/run/dietpi/.update_available' ]] || return 1 - AVAILABLE_UPDATE=$(&1)" + (( ${aENABLED[1]} )) && echo -e "$GREEN_BULLET ${aCOLOUR[1]}${aDESCRIPTION[1]} $GREEN_SEPARATOR $(uptime -p 2>&1)" # CPU temp - (( ${aENABLED[2]} == 1 )) && echo -e "$GREEN_BULLET ${aCOLOUR[1]}${aDESCRIPTION[2]} $GREEN_SEPARATOR $(print_full_info=1 G_OBTAIN_CPU_TEMP 2>&1)" + (( ${aENABLED[2]} )) && echo -e "$GREEN_BULLET ${aCOLOUR[1]}${aDESCRIPTION[2]} $GREEN_SEPARATOR $(print_full_info=1 G_OBTAIN_CPU_TEMP 2>&1)" # RAM usage - (( ${aENABLED[17]} == 1 )) && echo -e "$GREEN_BULLET ${aCOLOUR[1]}${aDESCRIPTION[17]} $GREEN_SEPARATOR $(free -b | mawk 'NR==2 {CONVFMT="%.0f"; print $3/1024^2" of "$2/1024^2" MiB ("$3/$2*100"%)"}')" + (( ${aENABLED[17]} )) && echo -e "$GREEN_BULLET ${aCOLOUR[1]}${aDESCRIPTION[17]} $GREEN_SEPARATOR $(free -b | mawk 'NR==2 {CONVFMT="%.0f"; print $3/1024^2" of "$2/1024^2" MiB ("$3/$2*100"%)"}')" # Load average - (( ${aENABLED[18]} == 1 )) && echo -e "$GREEN_BULLET ${aCOLOUR[1]}${aDESCRIPTION[18]} $GREEN_SEPARATOR $(mawk '{print $1 ", " $2 ", " $3}' /proc/loadavg) ($(nproc) cores)" + (( ${aENABLED[18]} )) && echo -e "$GREEN_BULLET ${aCOLOUR[1]}${aDESCRIPTION[18]} $GREEN_SEPARATOR $(mawk '{print $1 ", " $2 ", " $3}' /proc/loadavg) ($(nproc) cores)" # Hostname - (( ${aENABLED[3]} == 1 && ${aENABLED[14]} != 1 )) && echo -e "$GREEN_BULLET ${aCOLOUR[1]}${aDESCRIPTION[3]} $GREEN_SEPARATOR $(&1)" + (( ${aENABLED[4]} )) && echo -e "$GREEN_BULLET ${aCOLOUR[1]}${aDESCRIPTION[4]} $GREEN_SEPARATOR $(hostname -y 2>&1)" # LAN IP Print_Local_Ip # WAN IP + location info - (( ${aENABLED[6]} == 1 )) && echo -e "$GREEN_BULLET ${aCOLOUR[1]}${aDESCRIPTION[6]} $GREEN_SEPARATOR $(G_GET_WAN_IP 2>&1)" + (( ${aENABLED[6]} )) && echo -e "$GREEN_BULLET ${aCOLOUR[1]}${aDESCRIPTION[6]} $GREEN_SEPARATOR $(G_GET_WAN_IP 2>&1)" # DietPi-VPN connection status - (( ${aENABLED[13]} == 1 )) && echo -e "$GREEN_BULLET ${aCOLOUR[1]}${aDESCRIPTION[13]} $GREEN_SEPARATOR $(/boot/dietpi/dietpi-vpn status 2>&1)" + (( ${aENABLED[13]} )) && echo -e "$GREEN_BULLET ${aCOLOUR[1]}${aDESCRIPTION[13]} $GREEN_SEPARATOR $(/boot/dietpi/dietpi-vpn status 2>&1)" # Disk usage (RootFS) - (( ${aENABLED[7]} == 1 )) && echo -e "$GREEN_BULLET ${aCOLOUR[1]}${aDESCRIPTION[7]} $GREEN_SEPARATOR $(df -h --output=used,size,pcent / | mawk 'NR==2 {print $1" of "$2" ("$3")"}' 2>&1)" + (( ${aENABLED[7]} )) && echo -e "$GREEN_BULLET ${aCOLOUR[1]}${aDESCRIPTION[7]} $GREEN_SEPARATOR $(df -h --output=used,size,pcent / | mawk 'NR==2 {print $1" of "$2" ("$3")"}' 2>&1)" # Disk usage (DietPi userdata) - (( ${aENABLED[8]} == 1 )) && echo -e "$GREEN_BULLET ${aCOLOUR[1]}${aDESCRIPTION[8]} $GREEN_SEPARATOR $(df -h --output=used,size,pcent /mnt/dietpi_userdata | mawk 'NR==2 {print $1" of "$2" ("$3")"}' 2>&1)" + (( ${aENABLED[8]} )) && echo -e "$GREEN_BULLET ${aCOLOUR[1]}${aDESCRIPTION[8]} $GREEN_SEPARATOR $(df -h --output=used,size,pcent /mnt/dietpi_userdata | mawk 'NR==2 {print $1" of "$2" ("$3")"}' 2>&1)" # Weather - (( ${aENABLED[9]} == 1 )) && echo -e "$GREEN_BULLET ${aCOLOUR[1]}${aDESCRIPTION[9]} $GREEN_SEPARATOR $(curl -sSfLm 3 'https://wttr.in/?format=4' 2>&1)" + (( ${aENABLED[9]} )) && echo -e "$GREEN_BULLET ${aCOLOUR[1]}${aDESCRIPTION[9]} $GREEN_SEPARATOR $(curl -sSfLm 3 'https://wttr.in/?format=4' 2>&1)" # Let's Encrypt cert status - if (( ${aENABLED[16]} == 1 )) + if (( ${aENABLED[16]} )) then echo -en "$GREEN_BULLET ${aCOLOUR[1]}${aDESCRIPTION[16]} $GREEN_SEPARATOR " if [[ $EUID == 0 ]] @@ -290,9 +290,9 @@ $GREEN_LINE" fi fi # Custom - (( ${aENABLED[10]} == 1 )) && echo -e "$GREEN_BULLET ${aCOLOUR[1]}${aDESCRIPTION[10]} $GREEN_SEPARATOR $(bash "$FP_CUSTOM" 2>&1)" + (( ${aENABLED[10]} )) && echo -e "$GREEN_BULLET ${aCOLOUR[1]}${aDESCRIPTION[10]} $GREEN_SEPARATOR $(bash "$FP_CUSTOM" 2>&1)" # MOTD - if (( ${aENABLED[12]} == 1 )) + if (( ${aENABLED[12]} )) then local motd fp_motd='/run/dietpi/.dietpi_motd' [[ -f $fp_motd ]] || curl -sSfLm 3 'https://dietpi.com/motd' -o "$fp_motd" @@ -301,9 +301,9 @@ $GREEN_LINE" fi echo -e "$GREEN_LINE\n" - (( ${aENABLED[15]} == 1 )) && Print_Credits + (( ${aENABLED[15]} )) && Print_Credits Print_Updates - (( ${aENABLED[11]} == 1 )) && Print_Useful_Commands + (( ${aENABLED[11]} )) && Print_Useful_Commands } Menu_Main() @@ -330,7 +330,7 @@ $GREEN_LINE" # Custom entry (( $i == 10 )) || continue - [[ -f $FP_CUSTOM ]] && G_WHIP_DEFAULT_ITEM=$(<"$FP_CUSTOM") || G_WHIP_DEFAULT_ITEM="echo 'Hello World!'" + [[ -f $FP_CUSTOM ]] && read -r G_WHIP_DEFAULT_ITEM < "$FP_CUSTOM" || G_WHIP_DEFAULT_ITEM='echo '\''Hello World!\' G_WHIP_INPUTBOX 'You have chosen to show a custom entry in the banner. Please enter the desired command here.\n NB: It is executed as bash script, so it needs to be in bash compatible syntax. @@ -350,19 +350,11 @@ NB: It is executed as bash script, so it needs to be in bash compatible syntax. #///////////////////////////////////////////////////////////////////////////////////// # Main Loop #///////////////////////////////////////////////////////////////////////////////////// - if (( $INPUT == 0 )) - then - Print_Header - Print_Local_Ip - - elif (( $INPUT == 1 )) - then - Print_Banner - - elif (( $INPUT == 2 )) - then - Menu_Main - Print_Banner + case $INPUT in + 0) Print_Header; Print_Local_Ip;; + 1) Print_Banner;; + '') Menu_Main; Print_Banner;; + *) G_DIETPI-NOTIFY 1 "Invalid input \"$*\"\n\nUsage:$USAGE"; exit 1;; fi #----------------------------------------------------------------------------------- From 1134bb2e10272b2dbab618af0e2a66c71c57dc87 Mon Sep 17 00:00:00 2001 From: MichaIng Date: Tue, 21 Jan 2025 16:23:53 +0100 Subject: [PATCH 072/112] v9.10 - DietPi-Banner | Syntax --- dietpi/func/dietpi-banner | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/dietpi/func/dietpi-banner b/dietpi/func/dietpi-banner index 12a3e03826..e1b7d136c6 100755 --- a/dietpi/func/dietpi-banner +++ b/dietpi/func/dietpi-banner @@ -330,7 +330,7 @@ $GREEN_LINE" # Custom entry (( $i == 10 )) || continue - [[ -f $FP_CUSTOM ]] && read -r G_WHIP_DEFAULT_ITEM < "$FP_CUSTOM" || G_WHIP_DEFAULT_ITEM='echo '\''Hello World!\' + [[ -f $FP_CUSTOM ]] && read -r G_WHIP_DEFAULT_ITEM < "$FP_CUSTOM" || G_WHIP_DEFAULT_ITEM='echo '\''Hello World!'\' G_WHIP_INPUTBOX 'You have chosen to show a custom entry in the banner. Please enter the desired command here.\n NB: It is executed as bash script, so it needs to be in bash compatible syntax. @@ -355,7 +355,7 @@ NB: It is executed as bash script, so it needs to be in bash compatible syntax. 1) Print_Banner;; '') Menu_Main; Print_Banner;; *) G_DIETPI-NOTIFY 1 "Invalid input \"$*\"\n\nUsage:$USAGE"; exit 1;; - fi + esac #----------------------------------------------------------------------------------- exit 0 From 307b600263d7fbcd65b9cb40fc1061f018653b69 Mon Sep 17 00:00:00 2001 From: MichaIng Date: Wed, 22 Jan 2025 16:02:22 +0100 Subject: [PATCH 073/112] v9.10 - DietPi-Software | phpMyAdmin: 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 cf1c16f068..809ffe823e 100755 --- a/dietpi/dietpi-software +++ b/dietpi/dietpi-software @@ -3777,7 +3777,7 @@ _EOF_ # Quick install: https://docs.phpmyadmin.net/en/latest/setup.html#quick-install # - Get latest version name local version=$(curl -sSfL 'https://api.github.com/repos/phpmyadmin/phpmyadmin/releases' | mawk -F\" '/^ *"name": "/ && $4!~/rc/ {print $4}' | sort -rV | head -1) - [[ $version ]] || { version='5.2.1'; 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='5.2.2'; 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://files.phpmyadmin.net/phpMyAdmin/$version/phpMyAdmin-$version-english.tar.xz" # - Reinstall: Clean install but preserve existing config file [[ -f '/var/www/phpmyadmin/config.inc.php' ]] && G_EXEC mv /var/www/phpmyadmin/config.inc.php "phpMyAdmin-$version-english/" From 5e9027b59d82a9b1ee05419885e1604a8071d788 Mon Sep 17 00:00:00 2001 From: MichaIng Date: Thu, 23 Jan 2025 20:15:07 +0100 Subject: [PATCH 074/112] v9.10 - DietPi-Software | TasmoAdmin: 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 809ffe823e..718d2e166b 100755 --- a/dietpi/dietpi-software +++ b/dietpi/dietpi-software @@ -11203,7 +11203,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.2.1/tasmoadmin_v4.2.1.tar.gz' + local fallback_url='https://github.com/TasmoAdmin/TasmoAdmin/releases/download/v4.2.2/tasmoadmin_v4.2.2.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 800f3a88e8b744fe27e4032c1e9e9e181faf2175 Mon Sep 17 00:00:00 2001 From: MichaIng Date: Thu, 23 Jan 2025 22:39:17 +0100 Subject: [PATCH 075/112] v9.10 - CI | DietPi-Build: Build VM UEFI installer images by default --- .github/workflows/dietpi-build.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/dietpi-build.yml b/.github/workflows/dietpi-build.yml index af3f1ee8ac..98ea9096a7 100644 --- a/.github/workflows/dietpi-build.yml +++ b/.github/workflows/dietpi-build.yml @@ -34,6 +34,7 @@ jobs: '"-m 15 -d 6", "-m 15 -d 7", "-m 15 -d 8", '\ '"-m 16 -d 6", "-m 16 -d 7", "-m 16 -d 8", '\ '"-m 20 -d 6 -v all", "-m 20 -d 7 -v all", "-m 20 -d 8 -v all", '\ + '"-m 20 -d 6 -g gpt", "-m 20 -d 7 -g gpt", "-m 20 -d 8 -g gpt", '\ '"-m 21 -d 6", "-m 21 -d 7", "-m 21 -d 8", '\ '"-m 21 -d 6 -i", "-m 21 -d 7 -i", "-m 21 -d 8 -i", '\ '"-m 21 -d 6 -p gpt", "-m 21 -d 7 -p gpt", "-m 21 -d 8 -p gpt", '\ From d3a452bba69c6c0554da9e7256db96cea2b97ef5 Mon Sep 17 00:00:00 2001 From: MichaIng Date: Fri, 24 Jan 2025 14:55:52 +0100 Subject: [PATCH 076/112] v9.10 - CI | Armbian: Do not try to cherry-pick the Orange Pi 5 Max branch, if it was selected already --- .github/workflows/armbian.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/armbian.yml b/.github/workflows/armbian.yml index e3fad44e4a..4152300acb 100644 --- a/.github/workflows/armbian.yml +++ b/.github/workflows/armbian.yml @@ -67,7 +67,7 @@ jobs: git rebase origin/main fi # Workaround for onboard WiFi on Orange Pi 5 Max - if [ '${{ github.event.inputs.board }}' = 'orangepi5-max' ] && [ '${{ github.event.inputs.asset }}' = 'kernel' ] + if [ '${{ github.event.inputs.board }}' = 'orangepi5-max' ] && [ '${{ github.event.inputs.asset }}' = 'kernel' ] && [ '${{ github.event.inputs.gitbranch }}' != 'orangepi5max' ] then git cherry-pick origin/orangepi5max || git cherry-pick dietpi/orangepi5max fi From f575756666acb3726e94904699e8a9c4ced7eb09 Mon Sep 17 00:00:00 2001 From: MichaIng Date: Fri, 24 Jan 2025 16:03:24 +0100 Subject: [PATCH 077/112] v9.10 - CI | Armbian: Fix Orange Pi 5 Max file renaming --- .github/workflows/armbian.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/armbian.yml b/.github/workflows/armbian.yml index 4152300acb..1ac67cf43f 100644 --- a/.github/workflows/armbian.yml +++ b/.github/workflows/armbian.yml @@ -123,7 +123,7 @@ jobs: mv -v "$i" "${i%%_*}.deb" if [ '${{ github.event.inputs.board }}' = 'orangepi5-max' ] && [ '${{ github.event.inputs.asset }}' = 'kernel' ] then - mv -v "$i" "${i%.deb}_orangepi5max.deb" + mv -v "${i%%_*}.deb" "${i%.deb}_orangepi5max.deb" fi i="${i%%_*}.deb" files="$files,$i" From 660775d892925ac46a4857307788512ddbdb279e Mon Sep 17 00:00:00 2001 From: MichaIng Date: Fri, 24 Jan 2025 17:18:14 +0100 Subject: [PATCH 078/112] v9.10 - CI | Armbian: Really fix Orange Pi 5 Max file renaming --- .github/workflows/armbian.yml | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/.github/workflows/armbian.yml b/.github/workflows/armbian.yml index 1ac67cf43f..389bd8e901 100644 --- a/.github/workflows/armbian.yml +++ b/.github/workflows/armbian.yml @@ -120,12 +120,14 @@ jobs: cd build/output/debs for i in * do - mv -v "$i" "${i%%_*}.deb" if [ '${{ github.event.inputs.board }}' = 'orangepi5-max' ] && [ '${{ github.event.inputs.asset }}' = 'kernel' ] then - mv -v "${i%%_*}.deb" "${i%.deb}_orangepi5max.deb" + mv -v "$i" "${i%%_*}_orangepi5max.deb" + i="${i%%_*}_orangepi5max.deb" + else + mv -v "$i" "${i%%_*}.deb" + i="${i%%_*}.deb" fi - i="${i%%_*}.deb" files="$files,$i" urls="$urls,\"https://dietpi.com/downloads/binaries/testing/$i\"" done From debb35191c306a42552466b1972d25186590cbcc Mon Sep 17 00:00:00 2001 From: MichaIng Date: Fri, 24 Jan 2025 22:39:16 +0100 Subject: [PATCH 079/112] v9.10 - DietPi-Software | Update fallback URLs --- dietpi/dietpi-software | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/dietpi/dietpi-software b/dietpi/dietpi-software index 718d2e166b..ae7753d84f 100755 --- a/dietpi/dietpi-software +++ b/dietpi/dietpi-software @@ -9982,7 +9982,7 @@ _EOF_ 3) local arch='arm64';; *) local arch='x64';; esac - local fallback_url="https://github.com/Prowlarr/Prowlarr/releases/download/v1.29.2.4915/Prowlarr.master.1.29.2.4915.linux-core-$arch.tar.gz" + local fallback_url="https://github.com/Prowlarr/Prowlarr/releases/download/v1.30.2.4939/Prowlarr.master.1.30.2.4939.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}")" # Install: Remove previous instance on reinstall @@ -11601,7 +11601,7 @@ _EOF_ getent passwd snapserver > /dev/null && G_EXEC userdel snapserver else local arch=$(dpkg --print-architecture) - local fallback_url="https://github.com/badaix/snapcast/releases/download/v0.30.0/snapserver_0.30.0-1_${arch}_$G_DISTRO_NAME.deb" + local fallback_url="https://github.com/badaix/snapcast/releases/download/v0.31.0/snapserver_0.31.0-1_${arch}_$G_DISTRO_NAME.deb" Download_Install "$(curl -sSfL 'https://api.github.com/repos/badaix/snapcast/releases/latest' | mawk -F\" "/^ *\"browser_download_url\": \".*\/snapserver_[^\"\/]*_${arch}_$G_DISTRO_NAME.deb\"/{print \$4}")" # Fix /var/lib/snapserver permissions, just in case Debian's package was previously used, which uses the "_snapserver" user, instead of "snapserver" @@ -11622,7 +11622,7 @@ _EOF_ G_AGI snapclient else local arch=$(dpkg --print-architecture) - local fallback_url="https://github.com/badaix/snapcast/releases/download/v0.30.0/snapclient_0.30.0-1_${arch}_$G_DISTRO_NAME.deb" + local fallback_url="https://github.com/badaix/snapcast/releases/download/v0.31.0/snapclient_0.31.0-1_${arch}_$G_DISTRO_NAME.deb" Download_Install "$(curl -sSfL 'https://api.github.com/repos/badaix/snapcast/releases/latest' | mawk -F\" "/^ *\"browser_download_url\": \".*\/snapclient_[^\"\/]*_${arch}_$G_DISTRO_NAME.deb\"/{print \$4}")" fi G_EXEC systemctl stop snapclient From 921da14fc750a309bf4c0490672757b330aa334e Mon Sep 17 00:00:00 2001 From: MichaIng Date: Sat, 25 Jan 2025 17:13:31 +0100 Subject: [PATCH 080/112] v9.10 - CI | vaultwarden: Fix package version string --- .build/software/vaultwarden/build.bash | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.build/software/vaultwarden/build.bash b/.build/software/vaultwarden/build.bash index fd7840b7e3..d33d9b5934 100755 --- a/.build/software/vaultwarden/build.bash +++ b/.build/software/vaultwarden/build.bash @@ -39,7 +39,7 @@ G_EXEC curl -sSfo package.deb "https://dietpi.com/downloads/binaries/$G_DISTRO_N old_version=$(dpkg-deb -f package.deb Version) || exit 1 G_EXEC rm package.deb suffix=${old_version#*-dietpi} -[[ $old_version == "$version-"* ]] && pkg_version+="-dietpi$((suffix+1))" || pkg_version+="-dietpi1" +[[ $old_version == "$version-"* ]] && pkg_version="$version-dietpi$((suffix+1))" || pkg_version+="$version-dietpi1" # - Env var to show version in web UI: https://github.com/MichaIng/DietPi/issues/7364 export VW_VERSION=$pkg_version # - web vault From 875aa968bf9c2c52c17ab10442e5189ca4b25e31 Mon Sep 17 00:00:00 2001 From: MichaIng Date: Sat, 25 Jan 2025 23:04:44 +0100 Subject: [PATCH 081/112] Live patches: Remove those merged from master --- .update/version | 22 +++------------------- 1 file changed, 3 insertions(+), 19 deletions(-) diff --git a/.update/version b/.update/version index 79803190b8..2dd1677285 100644 --- a/.update/version +++ b/.update/version @@ -14,22 +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=( - [0]='Fix Sonarr v4 permissions for updater in dietpi-software. Only needed if you plan to install or migrate to Sonarr v4 via dietpi-software.' - [1]='Fix install of patched Fail2Ban Dropbear filter: https://github.com/MichaIng/DietPi/issues/7325' - [2]='Install patched Fail2Ban Dropbear filter: https://github.com/fail2ban/fail2ban/pull/3597' - [3]='Fix Sonarr v4 permissions for updater for installed Sonarr v4 instances' -) -G_LIVE_PATCH_COND=( - [0]='grep -q '\''^ReadWritePaths=-/usr/lib/sonarr'\'' /boot/dietpi/dietpi-software' - [1]='[[ ! -d /etc/fail2ban/filter.d ]] && grep -q '\''mkdir -p /etc/fail2ban/fail2ban.d'\'' /boot/dietpi/dietpi-software' - [2]='[[ -d /etc/fail2ban/filter.d && ! -f /etc/fail2ban/filter.d/dropbear.local ]]' - [3]='[[ -f /opt/sonarr/Sonarr ]] && grep -q '\''/usr/lib/sonarr'\'' /etc/systemd/system/sonarr.service 2> /dev/null' -) -# shellcheck disable=SC2016 -G_LIVE_PATCH=( - [0]='sed -i '\''s|^ReadWritePaths=-/usr/lib/sonarr|ReadWritePaths=-$install_dir|'\'' /boot/dietpi/dietpi-software' - [1]='sed -i '\''s|mkdir -p /etc/fail2ban/fail2ban.d|mkdir -p /etc/fail2ban/{fail2ban,filter}.d|'\'' /boot/dietpi/dietpi-software' - [2]='curl -sSf https://raw.githubusercontent.com/fail2ban/fail2ban/master/config/filter.d/dropbear.conf -o /etc/fail2ban/filter.d/dropbear.local' - [3]='sed -i '\''s|/usr/lib/sonarr|/opt/sonarr|'\'' /etc/systemd/system/sonarr.service && systemctl daemon-reload' -) +G_LIVE_PATCH_DESC=() +G_LIVE_PATCH_COND=() +G_LIVE_PATCH=() From 8adf92beb343e7668ddc5fc38989c12c534e86d8 Mon Sep 17 00:00:00 2001 From: MichaIng Date: Sun, 26 Jan 2025 00:22:12 +0100 Subject: [PATCH 082/112] v9.10 - CHANGELOG | Add missing entries and typo - DietPi-Software | Bazarr: Install UnRAR for RISC-V as well - DietPi-Software | Navidrome: Apply execute permissions to executable as intended - DietPi-Software | Fail2Ban: Since our pull request to fix Dropbear filters has been merged, download it from the official GitHub repo master branch, instead of writing it manually. --- CHANGELOG.txt | 5 +++-- dietpi/dietpi-software | 26 +++----------------------- 2 files changed, 6 insertions(+), 25 deletions(-) diff --git a/CHANGELOG.txt b/CHANGELOG.txt index b52088b0af..6b4c5cb51f 100644 --- a/CHANGELOG.txt +++ b/CHANGELOG.txt @@ -4,8 +4,8 @@ v9.10 New images: Enhancements: -- RISC-V | Debian Trixie does now support this architecture, hence our VisionFive 2 and Star64 images are now provided with Debian Trixie/testing instead of Debian Sid/unstable, and existing systemd will be migrated to the Trixie suite. -- RISC-V | Additional software options have been enabled for RISC-V systems: NZBGet, MicroK8s and AdGuard Home +- RISC-V | Debian Trixie does now support this architecture, hence our VisionFive 2 and Star64 images are now provided with Debian Trixie/testing instead of Debian Sid/unstable, and existing systems will be migrated to the Trixie suite. +- RISC-V | Additional software options have been enabled for RISC-V systems: Bazarr, Raspotify, NZBGet, MicroK8s and AdGuard Home - DietPi-Software | myMPD: We enabled the software option for ARMv6 Bookworm systems, since packages for Raspbian Bookworm are now available. Many thanks to @hackslikeus for bringing up the topic: https://github.com/MichaIng/DietPi/issues/7345 - DietPi-Software | vaultwarden: Our builds will now show the package version within the web UI. Many thanks to @gh3597 for reporting it missing and how to add it: https://github.com/MichaIng/DietPi/issues/7364 @@ -26,6 +26,7 @@ Bug fixes: - DietPi-Software | Java: Since the Java 8 package from Raspbian cannot be successfully installed anymore, due to a dependency conflict, and newer (Hotspot VM) Java versions are not compatible with ARMv6, Java and all Java applications have been disabled for this architecture (RPi 1 and Zero). You can still uninstall related applications via dietpi-software, but not install or reinstall them. We are sorry for this step, but our related bug report at Raspbian did not get any traction, and also on Raspberry Pi forum the issue did not really come up since the year it exists. Java applications on Linux anyway consume a lot of resources (for the runtime) and are slow, hence the interest running such on old RPi 1 and Zero (1) models seems to be minimal, and it had limitations due to Java 8 only. If anyone is seriously interested, please push the existing Raspbian bug report, as a fix at Raspbian side is theoretically very simple: https://bugs.launchpad.net/raspbian/+bug/2087632. If there was a 3rd party APT repository with recent ARMv6-compatible Java versions, that would be an option as well. - DietPi-Software | Bazarr: Resolved an issue where the installation failed on Trixie systems due to missing build dependencies. - DietPi-Software | Mono: Resolved an issue where the installation failed on Trixie systems due to conflicting dependencies of packages from the Mono repo. It is now installed from the Debian repository, which ships the latest version since Trixie. +- DietPi-Software | Gogs: Resolved an issue where the installation failed on ARMv7 systems, since the latest release v0.13.2 does not provide binaries for this architecture anymore. We provide now own builds for those, like we do for ARMv6 and RISC-V already. 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 ae7753d84f..90b0400d8c 100755 --- a/dietpi/dietpi-software +++ b/dietpi/dietpi-software @@ -701,9 +701,7 @@ Available commands: # FFmpeg x86_64 binaries are shipped with Bazarr: https://github.com/morpheus65535/bazarr-binaries/tree/master/bin/Linux/x86_64/ffmpeg (( $G_HW_ARCH == 10 )) || aSOFTWARE_DEPS[$software_id]+=' 7' # UnRAR x86_64 and ARMv8 binaries are shipped with Bazarr, ARMv6 needs to use "unar": https://github.com/morpheus65535/bazarr-binaries/tree/master/bin/Linux, https://github.com/morpheus65535/bazarr/issues/2172 - (( $G_HW_ARCH == 2 )) && aSOFTWARE_DEPS[$software_id]+=' 170' - # - RISC-V: webrtcvad-wheels build fails with: "cbits/webrtc/typedefs.h:61:2: error: #error Please add support for your architecture in typedefs.h" - #aSOFTWARE_AVAIL_G_HW_ARCH[$software_id,11]=0 + (( $G_HW_ARCH == 2 || $G_HW_ARCH == 11 )) && aSOFTWARE_DEPS[$software_id]+=' 170' #------------------ software_id=147 aSOFTWARE_NAME[$software_id]='Jackett' @@ -6239,7 +6237,7 @@ WantedBy=multi-user.target _EOF_ # Permissions G_EXEC chown -R root:root /opt/navidrome - G_EXEC chmod +x /opt/navidrome + G_EXEC chmod +x /opt/navidrome/navidrome G_EXEC chown -R navidrome:root /mnt/dietpi_userdata/navidrome Download_Test_Media @@ -7252,26 +7250,8 @@ _EOF_ G_EXEC eval 'echo -e '\''[Definition]\nlogtarget = SYSOUT'\'' > /etc/fail2ban/fail2ban.d/97_dietpi.conf' # Fix Dropbear filter for STDOUT logging since Bookworm: https://github.com/fail2ban/fail2ban/pull/3597 - [[ -f '/etc/fail2ban/filter.d/dropbear.local' ]] || cat << '_EOF_' > /etc/fail2ban/filter.d/dropbear.local -[INCLUDES] -before = common.conf - -[Definition] - -_daemon = dropbear - -# Fix filter for STDOUT logging since Bookworm: https://github.com/fail2ban/fail2ban/pull/3597 -prefregex = ^%(__prefix_line)s(\[\d+\] [A-Z][a-z]+ \d\d \d\d:\d\d:\d\d )?(?:[Ll]ogin|[Bb]ad|[Ee]xit).+$ + [[ -f '/etc/fail2ban/filter.d/dropbear.local' ]] || G_EXEC curl -sSf 'https://raw.githubusercontent.com/fail2ban/fail2ban/master/config/filter.d/dropbear.conf' /etc/fail2ban/filter.d/dropbear.local -failregex = ^[Ll]ogin attempt for nonexistent user ('.*' )?from :\d+$ - ^[Bb]ad (PAM )?password attempt for .+ from (:\d+)?$ - ^[Ee]xit before auth \(user '.+', \d+ fails\): Max auth tries reached - user '.+' from :\d+\s*$ - -ignoreregex = - -# Add journalmatch to enhance performance since Bookworm -journalmatch = _SYSTEMD_UNIT=dropbear.service + _COMM=dropbear -_EOF_ G_AGI python3-systemd fail2ban Remove_SysV fail2ban 1 From c7c1e5a3ccad82bd72e57cd22664316c1c596e25 Mon Sep 17 00:00:00 2001 From: MichaIng Date: Sun, 26 Jan 2025 00:22:58 +0100 Subject: [PATCH 083/112] v9.10 - CHANGELOG | This release does not contain new images (yet) --- CHANGELOG.txt | 2 -- 1 file changed, 2 deletions(-) diff --git a/CHANGELOG.txt b/CHANGELOG.txt index 6b4c5cb51f..41af09298b 100644 --- a/CHANGELOG.txt +++ b/CHANGELOG.txt @@ -1,8 +1,6 @@ v9.10 (2025-01-25) -New images: - Enhancements: - RISC-V | Debian Trixie does now support this architecture, hence our VisionFive 2 and Star64 images are now provided with Debian Trixie/testing instead of Debian Sid/unstable, and existing systems will be migrated to the Trixie suite. - RISC-V | Additional software options have been enabled for RISC-V systems: Bazarr, Raspotify, NZBGet, MicroK8s and AdGuard Home From c63f5f252c6501a53479dcb79165e039754b58aa Mon Sep 17 00:00:00 2001 From: MichaIng Date: Sun, 26 Jan 2025 00:36:40 +0100 Subject: [PATCH 084/112] DietPi-Banner: Add DietPi Bluesky profile to web links --- dietpi/func/dietpi-banner | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dietpi/func/dietpi-banner b/dietpi/func/dietpi-banner index e1b7d136c6..e75dff0f75 100755 --- a/dietpi/func/dietpi-banner +++ b/dietpi/func/dietpi-banner @@ -204,7 +204,7 @@ $GREEN_LINE" [[ -f '/boot/dietpi/.prep_info' ]] && mawk 'NR==1 {sub(/^0$/,"DietPi Core Team");a=$0} NR==2 {print " Image by : "a" (pre-image: "$0")"}' /boot/dietpi/.prep_info echo -e " Patreon Legends : Chris Gelatt, ADSB.im - Website : https://dietpi.com/ | https://x.com/DietPi_ + Website : https://dietpi.com/ | https://x.com/DietPi_ | Bsky: @dietpi.com Contribute : https://dietpi.com/contribute.html Web Hosting by : https://myvirtualserver.com$COLOUR_RESET\n" } From 3ddc6684954870b8691740d8395b70378ef479cc Mon Sep 17 00:00:00 2001 From: MichaIng Date: Sun, 26 Jan 2025 18:58:37 +0100 Subject: [PATCH 085/112] v9.10 - DietPi-Build | Use Error_Exit throughout the script - DietPi-Build | Do not enforce installer image when building x86_64 images with GPT partition. Let's see whether at least in VMs, UEFI images can be booted when flashed to the root drive directly. Also this failing on PCs was a result from years ago, while the underlying reason was never investigated. - DietPi-Build | Raise VM raw image size after installer image has been generated, to assure either passing "-i" or "-v all" has the exact same result for the installer image. --- .build/images/dietpi-build | 38 +++++++++++++++--------------- .github/workflows/dietpi-build.yml | 4 ++-- 2 files changed, 21 insertions(+), 21 deletions(-) diff --git a/.build/images/dietpi-build b/.build/images/dietpi-build index b221ab1c3c..9f9f5f36e1 100755 --- a/.build/images/dietpi-build +++ b/.build/images/dietpi-build @@ -19,11 +19,11 @@ else '11.'*|'bullseye/sid') G_DISTRO=6;; '12.'*|'bookworm/sid') G_DISTRO=7;; '13.'*|'trixie/sid') G_DISTRO=8;; - *) G_DIETPI-NOTIFY 1 "Unsupported distro version \"$debian_version\". Aborting ..."; exit 1;; + *) Error_Exit "Unsupported distro version \"$debian_version\". Aborting ...";; esac # Ubuntu ships with /etc/debian_version from Debian testing, hence we assume one version lower. grep -q '^ID=ubuntu' /etc/os-release && ((G_DISTRO--)) - (( $G_DISTRO < 6 )) && { G_DIETPI-NOTIFY 1 'Unsupported Ubuntu version. Aborting ...'; exit 1; } + (( $G_DISTRO < 6 )) && Error_Exit 'Unsupported Ubuntu version. Aborting ...' fi case $G_HW_ARCH_NAME in 'armv6l') export G_HW_ARCH=1;; @@ -31,7 +31,7 @@ case $G_HW_ARCH_NAME in 'aarch64') export G_HW_ARCH=3;; 'x86_64') export G_HW_ARCH=10;; 'riscv64') export G_HW_ARCH=11;; - *) G_DIETPI-NOTIFY 1 "Unsupported host system architecture \"$G_HW_ARCH_NAME\" detected, aborting..."; exit 1;; + *) Error_Exit "Unsupported host system architecture \"$G_HW_ARCH_NAME\" detected. Aborting ...";; esac readonly G_PROGRAM_NAME='DietPi-Build' G_CHECK_ROOT_USER @@ -80,7 +80,7 @@ do '--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;; + *) Error_Exit "Invalid input \"$1\". Aborting ...";; esac shift done @@ -164,17 +164,17 @@ case $HW_MODEL in 91) iname='OrangePi5Max' HW_ARCH=3 PTTYPE='gpt' partition_start=16 root_size=1200;; 92) iname='NanoPiM6' HW_ARCH=3 PTTYPE='gpt' partition_start=16 root_size=1200;; 93) iname='OrangePi5Pro' HW_ARCH=3 PTTYPE='gpt' partition_start=16 root_size=1200;; - *) G_DIETPI-NOTIFY 1 "Invalid hardware model \"$HW_MODEL\" passed, aborting..."; exit 1;; + *) Error_Exit "Invalid hardware model \"$HW_MODEL\" passed. Aborting ...";; esac if [[ $VMTYPE ]] then [[ $HW_MODEL == 20 ]] || Error_Exit "Unsupported option \"-v\" (virtual machine type) for hardware model \"$HW_MODEL\" passed, aborting ..." [[ $VMTYPE =~ ^(raw|vbox|vmx|esxi|hyperv|utm|proxmox|all)$ ]] || Error_Exit "Invalid virtual machine type \"$VMTYPE\" passed, aborting ..." - [[ $VMTYPE && ( $ITYPE == 'Installer' || $PTTYPE == 'gpt' ) ]] || Error_Exit 'The VM type option "-v" cannot be combined with "-i" or "-p gpt", since installer images result in an ISO, instead of a virtual disk image or appliance, and GPT partition table x86_64 images are forcefully installer images. Aborting ...' + [[ $ITYPE == 'Installer' ]] && Error_Exit 'The VM type option "-v" cannot be combined with "-i", since installer images result in an ISO, instead of a virtual disk image or appliance. Aborting ...' fi -[[ $EDITION =~ ^(|Amiberry|AlloGUI|all)$ ]] || { G_DIETPI-NOTIFY 1 "Invalid edition \"$EDITION\" passed, aborting..."; exit 1; } +[[ $EDITION =~ ^(|Amiberry|AlloGUI|all)$ ]] || Error_Exit "Invalid edition \"$EDITION\" passed. Aborting ..." # Check for valid target architecture and set variables accordingly repo='https://deb.debian.org/debian/' @@ -185,35 +185,34 @@ case $HW_ARCH in 3) iarch='ARMv8' parch='arm64';; 10) iarch='x86_64' parch='amd64';; 11) iarch='RISC-V' parch='riscv64' DISTRO=8;; # RISC-V architecture is available on Trixie only. - *) G_DIETPI-NOTIFY 1 "Invalid architecture \"$HW_ARCH\" passed, aborting..."; exit 1;; + *) Error_Exit "Invalid architecture \"$HW_ARCH\" passed. Aborting ...";; esac case $DISTRO in 6) distro='bullseye';; 7) distro='bookworm';; 8) distro='trixie';; - *) G_DIETPI-NOTIFY 1 "Invalid distro \"$DISTRO\" passed, aborting..."; exit 1;; + *) Error_Exit "Invalid distro \"$DISTRO\" passed. Aborting ...";; esac case $PTTYPE in 'msdos') :;; - 'gpt') [[ $HW_ARCH == 10 ]] && efi_size=64 iname="${iname%-BIOS}-UEFI" ITYPE='Installer';; - *) G_DIETPI-NOTIFY 1 "Invalid partition table type \"$PTTYPE\" passed, aborting..."; exit 1;; + 'gpt') [[ $HW_ARCH == 10 ]] && efi_size=64 iname="${iname%-BIOS}-UEFI";; + *) Error_Exit "Invalid partition table type \"$PTTYPE\" passed. Aborting ...";; esac # Do not add trailing FAT partitions for VM, container and (Clonezilla) installer images, and if there is a boot FAT partition already -[[ $HW_MODEL == 20 || $HW_MODEL == 75 || $ITYPE == 'Installer' ]] && ADD_DOS_PART=0 -[[ $boot_size -gt 0 && $boot_fstype == 'fat'* ]] && ADD_DOS_PART=0 +[[ $HW_MODEL == 20 || $HW_MODEL == 75 || $ITYPE == 'Installer' || ( $boot_size -gt 0 && $boot_fstype == 'fat'* ) ]] && ADD_DOS_PART=0 fsname='' apackages=() afs_opts=() afsck=() aresize=() case $FSTYPE in 'ext4') apackages+=('e2fsprogs') afs_opts=('-e' 'remount-ro') afsck=('e2fsck' '-fyD') aresize=('resize2fs');; 'f2fs') fsname='F2FS' apackages+=('f2fs-tools') afsck=('fsck.f2fs' '-f') aresize=('resize.f2fs'); uname -r | grep -q '-azure$' && apackages+=('linux-modules-extra-azure');; 'btrfs') fsname='Btrfs' apackages+=('btrfs-progs') afsck=('btrfs' 'check' '--repair') aresize=('btrfs' 'filesystem' 'resize' 'max'); ((root_size+=128));; - *) G_DIETPI-NOTIFY 1 "Invalid filesystem type \"$FSTYPE\" passed, aborting..."; exit 1;; + *) Error_Exit "Invalid filesystem type \"$FSTYPE\" passed. Aborting ...";; esac -G_CHECK_URL "https://github.com/$GITOWNER/DietPi/tree/$GITBRANCH" || { G_DIETPI-NOTIFY 1 "Failed to access Git branch \"$GITBRANCH\", aborting..."; exit 1; } +G_CHECK_URL "https://github.com/$GITOWNER/DietPi/tree/$GITBRANCH" || Error_Exit "Failed to access Git branch \"$GITBRANCH\". Aborting ..." # Image name OUTPUT_IMG_NAME="DietPi_$iname-$iarch-${distro^}" @@ -223,7 +222,7 @@ OUTPUT_IMG_NAME="DietPi_$iname-$iarch-${distro^}" # - x86_64 installer images if [[ $ITYPE == 'Installer' ]] then - [[ $HW_ARCH == 10 ]] || { G_DIETPI-NOTIFY 1 "Unsupported option \"-i\" (installer image) for architecture \"$HW_ARCH\" passed, aborting..."; exit 1; } + [[ $HW_ARCH == 10 ]] || Error_Exit "Unsupported option \"-i\" (installer image) for architecture \"$HW_ARCH\" passed. Aborting ..." CLONING_TOOL='Clonezilla' fi @@ -702,7 +701,7 @@ _EOF_ # Revert ARMv6 Workaround (( $HW_ARCH == 1 )) && G_EXEC rm rootfs/usr/local/bin/uname - [[ -f 'rootfs/success' ]] || { G_DIETPI-NOTIFY 1 'The container setup did not finish successfully, aborting...'; exit 1; } + [[ -f 'rootfs/success' ]] || Error_Exit 'The container setup did not finish successfully. Aborting ...' G_EXEC rm rootfs/success G_EXEC sync G_EXEC sleep 1 @@ -719,8 +718,6 @@ fi ########################################## # Virtual machines ########################################## -# Since qemu-img does not support VMDK and VHDX resizing, we need to resize the raw .img. It is usually done as sparse file, hence the actual disk usage does not change. -G_EXEC qemu-img resize "$OUTPUT_IMG_NAME.img" 8G ####### ISO ############################## if [[ $VMTYPE == all ]] @@ -731,6 +728,9 @@ then CLONING_TOOL='dd' OUTPUT_IMG_NAME=${OUTPUT_IMG_NAME%_Installer} fi +# Since qemu-img does not support VMDK and VHDX resizing, we need to resize the raw .img. It is usually done as sparse file, hence the actual disk usage does not change. +G_EXEC qemu-img resize "$OUTPUT_IMG_NAME.img" 8G + ####### VMX/VMware/Parallels ############# if [[ $VMTYPE =~ ^(vmx|all)$ ]] then diff --git a/.github/workflows/dietpi-build.yml b/.github/workflows/dietpi-build.yml index 98ea9096a7..33b40f021d 100644 --- a/.github/workflows/dietpi-build.yml +++ b/.github/workflows/dietpi-build.yml @@ -34,10 +34,10 @@ jobs: '"-m 15 -d 6", "-m 15 -d 7", "-m 15 -d 8", '\ '"-m 16 -d 6", "-m 16 -d 7", "-m 16 -d 8", '\ '"-m 20 -d 6 -v all", "-m 20 -d 7 -v all", "-m 20 -d 8 -v all", '\ - '"-m 20 -d 6 -g gpt", "-m 20 -d 7 -g gpt", "-m 20 -d 8 -g gpt", '\ + '"-m 20 -d 6 -g gpt -i", "-m 20 -d 7 -g gpt -i", "-m 20 -d 8 -g gpt -i", '\ '"-m 21 -d 6", "-m 21 -d 7", "-m 21 -d 8", '\ '"-m 21 -d 6 -i", "-m 21 -d 7 -i", "-m 21 -d 8 -i", '\ - '"-m 21 -d 6 -p gpt", "-m 21 -d 7 -p gpt", "-m 21 -d 8 -p gpt", '\ + '"-m 21 -d 6 -p gpt -i", "-m 21 -d 7 -p gpt -i", "-m 21 -d 8 -p gpt -i", '\ '"-m 40 -d 6", "-m 40 -d 7", "-m 40 -d 8", '\ '"-m 42 -d 6", "-m 42 -d 7", "-m 42 -d 8", '\ '"-m 43 -d 6", "-m 43 -d 7", "-m 43 -d 8", '\ From 8a76d9b2bfb6b39d3162b3385f9e48e22c0bab18 Mon Sep 17 00:00:00 2001 From: MichaIng Date: Mon, 27 Jan 2025 16:15:34 +0100 Subject: [PATCH 086/112] v9.10 - DietPi-Software | Update fallback URLs --- dietpi/dietpi-software | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/dietpi/dietpi-software b/dietpi/dietpi-software index 90b0400d8c..1a963feb59 100755 --- a/dietpi/dietpi-software +++ b/dietpi/dietpi-software @@ -7403,7 +7403,7 @@ _EOF_ if To_Install 179 komga # Komga then - local fallback_url='https://github.com/gotson/komga/releases/download/1.18.0/komga-1.18.0.jar' + local fallback_url='https://github.com/gotson/komga/releases/download/1.19.0/komga-1.19.0.jar' Download_Install "$(curl -sSfL 'https://api.github.com/repos/gotson/komga/releases/latest' | mawk -F\" '/^ *"browser_download_url": ".*\/komga-[^"\/]*\.jar"$/{print $4}')" /mnt/dietpi_userdata/komga/komga.jar # User @@ -10030,7 +10030,7 @@ _EOF_ 3) local arch='arm64';; *) local arch='x64';; esac - local fallback_url="https://github.com/Readarr/Readarr/releases/download/v0.4.9.2730/Readarr.develop.0.4.9.2730.linux-core-$arch.tar.gz" + local fallback_url="https://github.com/Readarr/Readarr/releases/download/v0.4.10.2734/Readarr.develop.0.4.10.2734.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)" # Install: Remove previous instance on reinstall From cbd936385fa17b3f52081b4f3c19cb72ea86b390 Mon Sep 17 00:00:00 2001 From: MichaIng Date: Mon, 27 Jan 2025 16:25:05 +0100 Subject: [PATCH 087/112] v9.10 - CI | Shairport Sync: Remove Buster support and fix typo in config (from upstream) --- .build/software/shairport-sync/build.bash | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/.build/software/shairport-sync/build.bash b/.build/software/shairport-sync/build.bash index d0511597e4..215b5bb3f2 100755 --- a/.build/software/shairport-sync/build.bash +++ b/.build/software/shairport-sync/build.bash @@ -7,15 +7,12 @@ # ------------------------- # Build deps -# - Workaround for CI on Buster: Mask Avahi daemon service, since it can fail to start, failing the package install -(( $G_DISTRO == 5 )) && G_EXEC systemctl mask avahi-daemon G_AGUP G_AGDUG automake pkg-config make g++ libpopt-dev libconfig-dev libssl-dev libsoxr-dev libavahi-client-dev libasound2-dev libglib2.0-dev libmosquitto-dev avahi-daemon git libplist-dev libsodium-dev libgcrypt20-dev libavformat-dev xxd -(( $G_DISTRO == 5 )) && G_EXEC systemctl unmask avahi-daemon adeps=('libc6' 'libasound2' 'libavahi-client3' 'libsoxr0' 'libconfig9' 'libpopt0' 'libglib2.0-0' 'libmosquitto1' 'avahi-daemon') adeps2=('libsodium23' 'libgcrypt20') case $G_DISTRO in - 5|6) adeps+=('libssl1.1'); adeps2+=('libavcodec58' 'libplist3');; + 6) adeps+=('libssl1.1'); adeps2+=('libavcodec58' 'libplist3');; 7) adeps+=('libssl3'); adeps2+=('libavcodec59' 'libplist3');; 8) adeps+=('libssl3'); adeps2+=('libavcodec61' 'libplist-2.0-4');; *) G_DIETPI-NOTIFY 1 "Unsupported distro version: $G_DISTRO_NAME (ID=$G_DISTRO)"; exit 1;; @@ -202,7 +199,7 @@ alsa = // output_rate = "auto"; // can be "auto", 44100, 88200, 176400 or 352800, but the device must have the capability. // output_format = "auto"; // can be "auto", "U8", "S8", "S16", "S16_LE", "S16_BE", "S24", "S24_LE", "S24_BE", "S24_3LE", "S24_3BE", "S32", "S32_LE" or "S32_BE" but the device must have the capability. Except where stated using (*LE or *BE), endianness matches that of the processor. -// disable_synchronization = "no"; // Set to "yes" to disable synchronization. Default is "no" This is really meant for troubleshootingG. +// disable_synchronization = "no"; // Set to "yes" to disable synchronization. Default is "no" This is really meant for troubleshooting. // period_size = ; // Use this optional advanced setting to set the alsa period size near to this value // buffer_size = ; // Use this optional advanced setting to set the alsa buffer size near to this value From d94e6f1361039c7acb18bc86cbdddb0e2e770612 Mon Sep 17 00:00:00 2001 From: MichaIng Date: Mon, 27 Jan 2025 16:41:32 +0100 Subject: [PATCH 088/112] ci: dietpi-software test: test test builds of APT-hosted packages --- .github/workflows/dietpi-software.bash | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/dietpi-software.bash b/.github/workflows/dietpi-software.bash index 22f6725a92..42fbbfe6d3 100644 --- a/.github/workflows/dietpi-software.bash +++ b/.github/workflows/dietpi-software.bash @@ -346,6 +346,7 @@ if [[ $TEST == 'true' ]] then # shellcheck disable=SC2016 G_EXEC sed --follow-symlinks -i '/# Start DietPi-Software/a\sed -i '\''s|dietpi.com/downloads/binaries/$G_DISTRO_NAME/|dietpi.com/downloads/binaries/$G_DISTRO_NAME/testing/|'\'' /boot/dietpi/dietpi-software' rootfs/boot/dietpi/dietpi-login + G_EXEC sed --follow-symlinks -i '/# Start DietPi-Software/a\sed -Ei '\''s|G_AGI (gmediarender|shairport-sync|squeezelite|vaultwarden|ympd)|Download_Install "https://dietpi.com/downloads/binaries/$G_DISTRO_NAME/testing/\1_$G_HW_ARCH_NAME.deb"|'\'' /boot/dietpi/dietpi-software' rootfs/boot/dietpi/dietpi-login G_CONFIG_INJECT 'SOFTWARE_DIETPI_DASHBOARD_VERSION=' 'SOFTWARE_DIETPI_DASHBOARD_VERSION=Nightly' rootfs/boot/dietpi.txt fi From 568344b315c2357b357dad751d6c7e4c02006d91 Mon Sep 17 00:00:00 2001 From: MichaIng Date: Mon, 27 Jan 2025 17:16:51 +0100 Subject: [PATCH 089/112] ci: dietpi-software test: satisfy shellcheck --- .github/workflows/dietpi-software.bash | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/dietpi-software.bash b/.github/workflows/dietpi-software.bash index 42fbbfe6d3..d736f9936e 100644 --- a/.github/workflows/dietpi-software.bash +++ b/.github/workflows/dietpi-software.bash @@ -346,6 +346,7 @@ if [[ $TEST == 'true' ]] then # shellcheck disable=SC2016 G_EXEC sed --follow-symlinks -i '/# Start DietPi-Software/a\sed -i '\''s|dietpi.com/downloads/binaries/$G_DISTRO_NAME/|dietpi.com/downloads/binaries/$G_DISTRO_NAME/testing/|'\'' /boot/dietpi/dietpi-software' rootfs/boot/dietpi/dietpi-login + # shellcheck disable=SC2016 G_EXEC sed --follow-symlinks -i '/# Start DietPi-Software/a\sed -Ei '\''s|G_AGI (gmediarender|shairport-sync|squeezelite|vaultwarden|ympd)|Download_Install "https://dietpi.com/downloads/binaries/$G_DISTRO_NAME/testing/\1_$G_HW_ARCH_NAME.deb"|'\'' /boot/dietpi/dietpi-software' rootfs/boot/dietpi/dietpi-login G_CONFIG_INJECT 'SOFTWARE_DIETPI_DASHBOARD_VERSION=' 'SOFTWARE_DIETPI_DASHBOARD_VERSION=Nightly' rootfs/boot/dietpi.txt fi From 2134d199e8b082c70e6f61761665bbad02a2e65f Mon Sep 17 00:00:00 2001 From: MichaIng Date: Mon, 27 Jan 2025 18:18:37 +0100 Subject: [PATCH 090/112] ci: fix download of Shairport Sync testing builds --- .github/workflows/dietpi-software.bash | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/dietpi-software.bash b/.github/workflows/dietpi-software.bash index d736f9936e..e98f21e519 100644 --- a/.github/workflows/dietpi-software.bash +++ b/.github/workflows/dietpi-software.bash @@ -347,7 +347,7 @@ then # shellcheck disable=SC2016 G_EXEC sed --follow-symlinks -i '/# Start DietPi-Software/a\sed -i '\''s|dietpi.com/downloads/binaries/$G_DISTRO_NAME/|dietpi.com/downloads/binaries/$G_DISTRO_NAME/testing/|'\'' /boot/dietpi/dietpi-software' rootfs/boot/dietpi/dietpi-login # shellcheck disable=SC2016 - G_EXEC sed --follow-symlinks -i '/# Start DietPi-Software/a\sed -Ei '\''s|G_AGI (gmediarender|shairport-sync|squeezelite|vaultwarden|ympd)|Download_Install "https://dietpi.com/downloads/binaries/$G_DISTRO_NAME/testing/\1_$G_HW_ARCH_NAME.deb"|'\'' /boot/dietpi/dietpi-software' rootfs/boot/dietpi/dietpi-login + G_EXEC sed --follow-symlinks -i '/# Start DietPi-Software/a\sed -Ei '\''s|G_AGI "?(gmediarender|shairport-sync$airplay2|squeezelite|vaultwarden|ympd)"?|Download_Install "https://dietpi.com/downloads/binaries/$G_DISTRO_NAME/testing/\1_$G_HW_ARCH_NAME.deb"|'\'' /boot/dietpi/dietpi-software' rootfs/boot/dietpi/dietpi-login G_CONFIG_INJECT 'SOFTWARE_DIETPI_DASHBOARD_VERSION=' 'SOFTWARE_DIETPI_DASHBOARD_VERSION=Nightly' rootfs/boot/dietpi.txt fi From de3965af94b042a372e51e61483ecd879cc0b14f Mon Sep 17 00:00:00 2001 From: MichaIng Date: Mon, 27 Jan 2025 22:24:50 +0100 Subject: [PATCH 091/112] ci: dietpi-software test: fix test software patch --- .github/workflows/dietpi-software.bash | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/dietpi-software.bash b/.github/workflows/dietpi-software.bash index e98f21e519..2adef6356a 100644 --- a/.github/workflows/dietpi-software.bash +++ b/.github/workflows/dietpi-software.bash @@ -347,7 +347,7 @@ then # shellcheck disable=SC2016 G_EXEC sed --follow-symlinks -i '/# Start DietPi-Software/a\sed -i '\''s|dietpi.com/downloads/binaries/$G_DISTRO_NAME/|dietpi.com/downloads/binaries/$G_DISTRO_NAME/testing/|'\'' /boot/dietpi/dietpi-software' rootfs/boot/dietpi/dietpi-login # shellcheck disable=SC2016 - G_EXEC sed --follow-symlinks -i '/# Start DietPi-Software/a\sed -Ei '\''s|G_AGI "?(gmediarender|shairport-sync$airplay2|squeezelite|vaultwarden|ympd)"?|Download_Install "https://dietpi.com/downloads/binaries/$G_DISTRO_NAME/testing/\1_$G_HW_ARCH_NAME.deb"|'\'' /boot/dietpi/dietpi-software' rootfs/boot/dietpi/dietpi-login + G_EXEC sed --follow-symlinks -i '/# Start DietPi-Software/a\sed -Ei '\''s@G_AGI "?(gmediarender|shairport-sync\\$airplay2|squeezelite|vaultwarden|ympd)"?@Download_Install "https://dietpi.com/downloads/binaries/$G_DISTRO_NAME/testing/\\1_$G_HW_ARCH_NAME.deb"@'\'' /boot/dietpi/dietpi-software' rootfs/boot/dietpi/dietpi-login G_CONFIG_INJECT 'SOFTWARE_DIETPI_DASHBOARD_VERSION=' 'SOFTWARE_DIETPI_DASHBOARD_VERSION=Nightly' rootfs/boot/dietpi.txt fi From e1c5bd0bd8b170cca093500b3d228a011f3d8067 Mon Sep 17 00:00:00 2001 From: MichaIng Date: Mon, 27 Jan 2025 22:33:53 +0100 Subject: [PATCH 092/112] ci: dietpi-software test: another fix for testing Shairport Sync --- .github/workflows/dietpi-software.bash | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/dietpi-software.bash b/.github/workflows/dietpi-software.bash index 2adef6356a..6f7a1cc170 100644 --- a/.github/workflows/dietpi-software.bash +++ b/.github/workflows/dietpi-software.bash @@ -347,7 +347,7 @@ then # shellcheck disable=SC2016 G_EXEC sed --follow-symlinks -i '/# Start DietPi-Software/a\sed -i '\''s|dietpi.com/downloads/binaries/$G_DISTRO_NAME/|dietpi.com/downloads/binaries/$G_DISTRO_NAME/testing/|'\'' /boot/dietpi/dietpi-software' rootfs/boot/dietpi/dietpi-login # shellcheck disable=SC2016 - G_EXEC sed --follow-symlinks -i '/# Start DietPi-Software/a\sed -Ei '\''s@G_AGI "?(gmediarender|shairport-sync\\$airplay2|squeezelite|vaultwarden|ympd)"?@Download_Install "https://dietpi.com/downloads/binaries/$G_DISTRO_NAME/testing/\\1_$G_HW_ARCH_NAME.deb"@'\'' /boot/dietpi/dietpi-software' rootfs/boot/dietpi/dietpi-login + G_EXEC sed --follow-symlinks -i '/# Start DietPi-Software/a\sed -Ei '\''s@G_AGI "?(gmediarender|shairport-sync\\$airplay2|squeezelite|vaultwarden|ympd)"?@Download_Install "https://dietpi.com/downloads/binaries/$G_DISTRO_NAME/testing/\\1""_$G_HW_ARCH_NAME.deb"@'\'' /boot/dietpi/dietpi-software' rootfs/boot/dietpi/dietpi-login G_CONFIG_INJECT 'SOFTWARE_DIETPI_DASHBOARD_VERSION=' 'SOFTWARE_DIETPI_DASHBOARD_VERSION=Nightly' rootfs/boot/dietpi.txt fi From a94ed0d4fe62f2a9076f363c52be53e5cc824006 Mon Sep 17 00:00:00 2001 From: MichaIng Date: Mon, 27 Jan 2025 22:45:04 +0100 Subject: [PATCH 093/112] ci: dietpi-software test: another fix for testing test builds --- .github/workflows/dietpi-software.bash | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/dietpi-software.bash b/.github/workflows/dietpi-software.bash index 6f7a1cc170..36fc6fdcab 100644 --- a/.github/workflows/dietpi-software.bash +++ b/.github/workflows/dietpi-software.bash @@ -345,9 +345,9 @@ fi if [[ $TEST == 'true' ]] then # shellcheck disable=SC2016 - G_EXEC sed --follow-symlinks -i '/# Start DietPi-Software/a\sed -i '\''s|dietpi.com/downloads/binaries/$G_DISTRO_NAME/|dietpi.com/downloads/binaries/$G_DISTRO_NAME/testing/|'\'' /boot/dietpi/dietpi-software' rootfs/boot/dietpi/dietpi-login + G_EXEC sed --follow-symlinks -i '/# Start DietPi-Software/a\sed -Ei '\''s@G_AGI "?(gmediarender|shairport-sync\\$airplay2|squeezelite|vaultwarden|ympd)"?@Download_Install "https://dietpi.com/downloads/binaries/$G_DISTRO_NAME/\\1""_$G_HW_ARCH_NAME.deb"@'\'' /boot/dietpi/dietpi-software' rootfs/boot/dietpi/dietpi-login # shellcheck disable=SC2016 - G_EXEC sed --follow-symlinks -i '/# Start DietPi-Software/a\sed -Ei '\''s@G_AGI "?(gmediarender|shairport-sync\\$airplay2|squeezelite|vaultwarden|ympd)"?@Download_Install "https://dietpi.com/downloads/binaries/$G_DISTRO_NAME/testing/\\1""_$G_HW_ARCH_NAME.deb"@'\'' /boot/dietpi/dietpi-software' rootfs/boot/dietpi/dietpi-login + G_EXEC sed --follow-symlinks -i '/# Start DietPi-Software/a\sed -i '\''s|dietpi.com/downloads/binaries/$G_DISTRO_NAME/|dietpi.com/downloads/binaries/$G_DISTRO_NAME/testing/|'\'' /boot/dietpi/dietpi-software' rootfs/boot/dietpi/dietpi-login G_CONFIG_INJECT 'SOFTWARE_DIETPI_DASHBOARD_VERSION=' 'SOFTWARE_DIETPI_DASHBOARD_VERSION=Nightly' rootfs/boot/dietpi.txt fi From e145ed1f6419d03a6dd5712d5c95876515edc0b6 Mon Sep 17 00:00:00 2001 From: MichaIng Date: Mon, 27 Jan 2025 22:46:54 +0100 Subject: [PATCH 094/112] ci: dietpi-software test: fix order --- .github/workflows/dietpi-software.bash | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/dietpi-software.bash b/.github/workflows/dietpi-software.bash index 36fc6fdcab..7c627c1584 100644 --- a/.github/workflows/dietpi-software.bash +++ b/.github/workflows/dietpi-software.bash @@ -345,9 +345,9 @@ fi if [[ $TEST == 'true' ]] then # shellcheck disable=SC2016 - G_EXEC sed --follow-symlinks -i '/# Start DietPi-Software/a\sed -Ei '\''s@G_AGI "?(gmediarender|shairport-sync\\$airplay2|squeezelite|vaultwarden|ympd)"?@Download_Install "https://dietpi.com/downloads/binaries/$G_DISTRO_NAME/\\1""_$G_HW_ARCH_NAME.deb"@'\'' /boot/dietpi/dietpi-software' rootfs/boot/dietpi/dietpi-login + G_EXEC sed --follow-symlinks -i '/# Start DietPi-Software/a\G_EXEC sed -i '\''s|dietpi.com/downloads/binaries/$G_DISTRO_NAME/|dietpi.com/downloads/binaries/$G_DISTRO_NAME/testing/|'\'' /boot/dietpi/dietpi-software' rootfs/boot/dietpi/dietpi-login # shellcheck disable=SC2016 - G_EXEC sed --follow-symlinks -i '/# Start DietPi-Software/a\sed -i '\''s|dietpi.com/downloads/binaries/$G_DISTRO_NAME/|dietpi.com/downloads/binaries/$G_DISTRO_NAME/testing/|'\'' /boot/dietpi/dietpi-software' rootfs/boot/dietpi/dietpi-login + G_EXEC sed --follow-symlinks -i '/# Start DietPi-Software/a\G_EXEC sed -Ei '\''s@G_AGI "?(gmediarender|shairport-sync\\$airplay2|squeezelite|vaultwarden|ympd)"?@Download_Install "https://dietpi.com/downloads/binaries/$G_DISTRO_NAME/\\1""_$G_HW_ARCH_NAME.deb"@'\'' /boot/dietpi/dietpi-software' rootfs/boot/dietpi/dietpi-login G_CONFIG_INJECT 'SOFTWARE_DIETPI_DASHBOARD_VERSION=' 'SOFTWARE_DIETPI_DASHBOARD_VERSION=Nightly' rootfs/boot/dietpi.txt fi From 4c5457ca5ee215b9d9d38367d791c9ce84398a97 Mon Sep 17 00:00:00 2001 From: MichaIng Date: Tue, 28 Jan 2025 15:20:48 +0100 Subject: [PATCH 095/112] dietpi-software: Domoticz: update download URL Fixes: https://github.com/MichaIng/DietPi/issues/7375 Additionally, some minor coding enhancements/hardenings have been applied. --- CHANGELOG.txt | 1 + dietpi/dietpi-software | 28 ++++++++++++++-------------- 2 files changed, 15 insertions(+), 14 deletions(-) diff --git a/CHANGELOG.txt b/CHANGELOG.txt index 41af09298b..8a5f6aaddf 100644 --- a/CHANGELOG.txt +++ b/CHANGELOG.txt @@ -25,6 +25,7 @@ Bug fixes: - DietPi-Software | Bazarr: Resolved an issue where the installation failed on Trixie systems due to missing build dependencies. - DietPi-Software | Mono: Resolved an issue where the installation failed on Trixie systems due to conflicting dependencies of packages from the Mono repo. It is now installed from the Debian repository, which ships the latest version since Trixie. - DietPi-Software | Gogs: Resolved an issue where the installation failed on ARMv7 systems, since the latest release v0.13.2 does not provide binaries for this architecture anymore. We provide now own builds for those, like we do for ARMv6 and RISC-V already. +- DietPi-Software | Domoticz: Resolved an issue where the installation failed, because of a changed download URL. Many thanks to @IgrekLg for reporting this issue: https://github.com/MichaIng/DietPi/issues/7375 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 1a963feb59..c5d09d79dc 100755 --- a/dietpi/dietpi-software +++ b/dietpi/dietpi-software @@ -4908,11 +4908,11 @@ The install script will now exit. After applying one of the the above, rerun die if To_Install 121 roonbridge # Roon Bridge then case $G_HW_ARCH in - 2) local url='https://download.roonlabs.net/builds/RoonBridge_linuxarmv7hf.tar.bz2';; - 3) local url='https://download.roonlabs.net/builds/RoonBridge_linuxarmv8.tar.bz2';; - *) local url='https://download.roonlabs.net/builds/RoonBridge_linuxx64.tar.bz2';; + 2) local arch='rmv7hf';; + 3) local arch='armv8';; + *) local arch='x64';; esac - Download_Install "$url" + Download_Install "https://download.roonlabs.net/builds/RoonBridge_linuxa$arch.tar.bz2" # Always perform a clean install [[ -d '/opt/roonbridge' ]] && G_EXEC rm -R /opt/roonbridge @@ -5047,7 +5047,7 @@ _EOF_ # Do not pre-create obsolete cache dir G_EXEC mkdir -p /etc/systemd/system/mopidy.service.d - echo -e '[Service]\nExecStartPre=' > /etc/systemd/system/mopidy.service.d/dietpi.conf + G_EXEC eval 'echo -e '\''[Service]\nExecStartPre='\'' > /etc/systemd/system/mopidy.service.d/dietpi.conf' Download_Test_Media fi @@ -5784,11 +5784,11 @@ _EOF_ G_EXEC eval "echo 'nameserver 127.0.0.1' > /etc/resolv.conf" # Unbound is running and configured in the very next config step, so it is safe to switch the DNS nameserver right now. fi - echo 'ControlPort 9051' >> /etc/tor/torrc - echo 'CookieAuthentication 1' >> /etc/tor/torrc - [[ $nickname ]] && echo "Nickname $nickname" >> /etc/tor/torrc - [[ $email ]] && echo "ContactInfo $email" >> /etc/tor/torrc - [[ $ipv6 ]] && echo "ORPort [$ipv6]:$orport" >> /etc/tor/torrc + G_EXEC eval 'echo '\''ControlPort 9051'\'' >> /etc/tor/torrc' + G_EXEC eval 'echo '\''CookieAuthentication 1'\'' >> /etc/tor/torrc' + [[ $nickname ]] && G_EXEC eval "echo 'Nickname $nickname' >> /etc/tor/torrc" + [[ $email ]] && G_EXEC eval "echo 'ContactInfo $email' >> /etc/tor/torrc" + [[ $ipv6 ]] && G_EXEC eval "echo 'ORPort [$ipv6]:$orport' >> /etc/tor/torrc" fi if To_Install 182 unbound # Unbound @@ -11504,16 +11504,16 @@ _EOF_ if To_Install 140 domoticz # Domoticz then - # APT deps - aDEPS=('libusb-0.1-4' 'libcurl3-gnutls') # https://github.com/MichaIng/DietPi/issues/6404 + # APT deps: https://install.domoticz.com/, https://github.com/MichaIng/DietPi/issues/6404 + aDEPS=('libusb-0.1-4' 'libcurl3-gnutls') - # x86_64 builds provided via GitHub differ from those provided via domoticz.com and were compiled against libssl3. Hence download those for Bookworm/Trixie systems, else the ones from domoticz.com, compiled against libssl1.1. Currently, there are not builds for ARM and libssl3. + # x86_64 builds provided via GitHub differ from those provided via domoticz.com and were compiled against libssl3. Hence download those for Bookworm/Trixie systems, else the ones from domoticz.com, compiled against libssl1.1. Currently, there are no builds for ARM and libssl3. if (( $G_HW_ARCH == 10 && $G_DISTRO > 6 )) then local fallback_url="https://github.com/domoticz/domoticz/releases/download/2024.1/domoticz_linux_2024.1_${G_HW_ARCH_NAME/armv6l/armv7l}.tgz" Download_Install "$(curl -sSfL 'https://api.github.com/repos/domoticz/domoticz/releases/latest' | mawk -F\" "/^ *\"browser_download_url\": \".*\/domoticz_linux_[^\"\/]*_${G_HW_ARCH_NAME/armv6l/armv7l}.tgz\"$/{print \$4}")" ./domoticz else - Download_Install "https://releases.domoticz.com/releases/release/domoticz_linux_${G_HW_ARCH_NAME/armv6l/armv7l}.tgz" ./domoticz + Download_Install "https://releases.domoticz.com/release/domoticz_linux_${G_HW_ARCH_NAME/armv6l/armv7l}.tgz" ./domoticz fi # Reinstall: Clean old install dir From 97fc20ea47e7cbc132d7bbc7029674a7c65977c7 Mon Sep 17 00:00:00 2001 From: MichaIng Date: Wed, 29 Jan 2025 17:11:32 +0100 Subject: [PATCH 096/112] changelog: Update URL --- CHANGELOG.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.txt b/CHANGELOG.txt index 8a5f6aaddf..470f26b67c 100644 --- a/CHANGELOG.txt +++ b/CHANGELOG.txt @@ -1113,7 +1113,7 @@ Fixes: - DietPi-Config | Resolved an issue where on Raspberry Pi, when the full KMS display driver is used, the sound card selection could have been falsely applied. With full KMS enabled, for each HDMI port an additional HDMI sound card appears (replacing the regular firmware HDMI sound device), even when no HDMI device is attached and with onboard audio disabled. This lead to an incrementation of external sound card indices. The appearance of the KMS HDMI sound cards is now aligned with the onboard firmware HDMI sound cards, i.e. if not onboard "auto" or HDMI is selected in dietpi-config, now the KMS HDMI sound devices are disabled as well, making use of the "noaudio" device tree overlay parameter. - DietPi-Software | Resolved an issue where on first boot, choice and preference menu selections triggered an error as the install state file did not exist yet. Many thanks to @bsheeres for reporting this issue: https://github.com/MichaIng/DietPi/issues/5080 - DietPi-Software | Resolved an issue where the deprecated AUTO_SETUP_FILE_SERVER_INDEX dietpi.txt option was applied inverted. "-1" should have installed ProFTPD and "-2" Samba, while it was done the opposite way. However, note that this setting is not present on current images and deprecated. Use AUTO_SETUP_INSTALL_SOFTWARE_ID instead to mark any one or multiple file servers for automatic install. Many thanks to @bsheeres for reporting this issue: https://github.com/MichaIng/DietPi/issues/5081 -- DietPi-Software | Browsers: On the ARMv6 Raspberry Pi models Raspberry Pi 1 and Zero (1) since Bullseye, Chromium and Firefox fail to start due to hardware and build limitations which are outside of our control. Since those are currently the only two browser available from dietpi-software, they have been disabled together with the browser preference menu for those systems, until we find and implement a good additional compatible browser. Further info: https://github.com/RPi-Distro/chromium-browser/issues/21 +- DietPi-Software | Browsers: On the ARMv6 Raspberry Pi models Raspberry Pi 1 and Zero (1) since Bullseye, Chromium and Firefox fail to start due to hardware and build limitations which are outside of our control. Since those are currently the only two browser available from dietpi-software, they have been disabled together with the browser preference menu for those systems, until we find and implement a good additional compatible browser. Further info: https://github.com/RPi-Distro/chromium/issues/21 - DietPi-Software | Kodi: Resolved an issue where subsequent Kodi reinstalls created duplicates of the CMA parameter for the KMS overlay setting in config.txt. The duplicates are patched out during DietPi update. - DietPi-Software | Docker: Resolved an issue where the install was aborted due to an incorrect check for missing kernel modules. Many thanks to @dragonandy for reporting this issue: https://github.com/MichaIng/DietPi/issues/5061 - DietPi-Software | Pi-hole: Resolved an issue where the teleporter import log was not shown but denied by the X-Frame-Options header: https://discourse.pi-hole.net/t/unable-to-restore-teleporter-backup-fresh-install-no-funky-changes-made/51573 From 37d1f088065f9487f61eb6d6b00277b3f26bf4f5 Mon Sep 17 00:00:00 2001 From: MichaIng Date: Thu, 30 Jan 2025 16:18:31 +0100 Subject: [PATCH 097/112] dietpi-software: Add support for automatied APT package installs - DietPi-Software | The new AUTO_SETUP_APT_INSTALLS dietpi.txt setting can now be used to have APT packages automatically installed after the first run setup of DietPi systems. See dietpi.txt for details. - DietPi-Software | The AUTO_SETUP_INSTALL_SOFTWARE_ID dietpi.txt settings now allows to define multiple software IDs in a single line, separated by space. For now, multiple AUTO_SETUP_INSTALL_SOFTWARE_ID lines are still supported, but this will change in the future. If you keep a dietpi.txt for future DietPi instances, and make use of the AUTO_SETUP_INSTALL_SOFTWARE_ID setting, please update it accordingly. --- CHANGELOG.txt | 2 ++ dietpi.txt | 18 ++++++++++----- dietpi/dietpi-software | 50 ++++++++++++++++++++++++++---------------- 3 files changed, 45 insertions(+), 25 deletions(-) diff --git a/CHANGELOG.txt b/CHANGELOG.txt index 470f26b67c..706a8f18ac 100644 --- a/CHANGELOG.txt +++ b/CHANGELOG.txt @@ -4,6 +4,8 @@ v9.10 Enhancements: - RISC-V | Debian Trixie does now support this architecture, hence our VisionFive 2 and Star64 images are now provided with Debian Trixie/testing instead of Debian Sid/unstable, and existing systems will be migrated to the Trixie suite. - RISC-V | Additional software options have been enabled for RISC-V systems: Bazarr, Raspotify, NZBGet, MicroK8s and AdGuard Home +- DietPi-Software | The new AUTO_SETUP_APT_INSTALLS dietpi.txt setting can now be used to have APT packages automatically installed after the first run setup of DietPi systems. See dietpi.txt for details. +- DietPi-Software | The AUTO_SETUP_INSTALL_SOFTWARE_ID dietpi.txt settings now allows to define multiple software IDs in a single line, separated by space. For now, multiple AUTO_SETUP_INSTALL_SOFTWARE_ID lines are still supported, but this will change in the future. If you keep a dietpi.txt for future DietPi instances, and make use of the AUTO_SETUP_INSTALL_SOFTWARE_ID setting, please update it accordingly. - DietPi-Software | myMPD: We enabled the software option for ARMv6 Bookworm systems, since packages for Raspbian Bookworm are now available. Many thanks to @hackslikeus for bringing up the topic: https://github.com/MichaIng/DietPi/issues/7345 - DietPi-Software | vaultwarden: Our builds will now show the package version within the web UI. Many thanks to @gh3597 for reporting it missing and how to add it: https://github.com/MichaIng/DietPi/issues/7364 diff --git a/dietpi.txt b/dietpi.txt index 0a2d49965c..3df2a09cf2 100644 --- a/dietpi.txt +++ b/dietpi.txt @@ -59,6 +59,12 @@ AUTO_SETUP_HEADLESS=0 # Unmask (enable) systemd-logind service (including dbus), which is masked by default on DietPi AUTO_UNMASK_LOGIND=0 +# Install APT packages automatically after first run setup. +# - Add as many APT package names as you wish, separated by space. +# - They will be installed after dietpi-software options and before the script defined via AUTO_SETUP_CUSTOM_SCRIPT_EXEC (see below) is executed. +# - E.g. the following (without the leading "#") will install the APT packages iotop, iptables and xz-utils: +#AUTO_SETUP_APT_INSTALLS=iotop iptables xz-utils + # Custom Script (pre-networking and pre-DietPi install) # - Allows you to automatically execute a custom script before network is up on first boot. # - Copy your script to /boot/Automation_Custom_PreScript.sh and it will be executed automatically. @@ -111,14 +117,14 @@ AUTO_SETUP_AUTOSTART_TARGET_INDEX=0 AUTO_SETUP_AUTOSTART_LOGIN_USER=root ##### Non-interactive first run setup ##### -# On first login, run update, initial setup and software installs without any user input +# On first boot, run update, initial setup and software installs without any user interaction. # - Setting this to "1" is required for AUTO_SETUP_GLOBAL_PASSWORD and AUTO_SETUP_INSTALL_SOFTWARE_ID. # - Setting this to "1" indicates that you accept the DietPi GPLv2 license, available at /boot/dietpi-LICENSE.txt, superseding AUTO_SETUP_ACCEPT_LICENSE. AUTO_SETUP_AUTOMATED=0 -# Global password to be applied for the system +# On first boot, apply this password for login users and software installs automatically. # - Requires AUTO_SETUP_AUTOMATED=1 -# - Affects "root" and "dietpi" users login passwords and is used by dietpi-software as default for software installs which require a password. +# - Affects "root" and "dietpi" user's login passwords and is used by dietpi-software as default for software installs which require a password. # - During first run setup, the password is removed from this file and instead encrypted and saved to root filesystem. # - WARN: The default SSH server Dropbear does not support passwords over 100 characters. # - WARN: We cannot guarantee that all software options can handle special characters like \"$. @@ -127,10 +133,10 @@ AUTO_SETUP_GLOBAL_PASSWORD=dietpi # Software to automatically install # - Requires AUTO_SETUP_AUTOMATED=1 # - List of available software IDs: https://github.com/MichaIng/DietPi/wiki/DietPi-Software-list -# - Add as many entries as you wish, one each line. +# - Add as many software IDs as you wish, separated by space. # - DietPi will automatically install all dependencies, like ALSA/X11 for desktops etc. -# - E.g. the following (without the leading "#") will install the LXDE desktop automatically on first boot: -#AUTO_SETUP_INSTALL_SOFTWARE_ID=23 +# - E.g. the following (without the leading "#") will install the LXDE desktop, the TigerVNC server and the Kodi media centre automatically on first boot: +#AUTO_SETUP_INSTALL_SOFTWARE_ID=23 28 31 #------------------------------------------------------------------------------------------------------ ##### Misc DietPi program settings ##### diff --git a/dietpi/dietpi-software b/dietpi/dietpi-software index c5d09d79dc..4fea37bccb 100755 --- a/dietpi/dietpi-software +++ b/dietpi/dietpi-software @@ -14644,30 +14644,34 @@ _EOF_ # Find all software entries of AUTO_SETUP_INSTALL_SOFTWARE_ID= in dietpi.txt. Then set to state 1 for installation. G_DIETPI-NOTIFY 2 'Checking AUTO_SETUP_INSTALL_SOFTWARE_ID entries' - while read -r software_id + # - Pre-v9.10: Support multiple AUTO_SETUP_INSTALL_SOFTWARE_ID lines + while read -ra software_ids do - # Skip if software does not exist, is not supported on architecture, hardware model or Debian version - if [[ ! ${aSOFTWARE_NAME[$software_id]} ]] - then - G_DIETPI-NOTIFY 1 "Software title with ID $software_id does not exist. Skipping it." - - elif (( ! ${aSOFTWARE_AVAIL_G_HW_ARCH[$software_id,$G_HW_ARCH]:=1} )) - then - G_DIETPI-NOTIFY 1 "Software title ${aSOFTWARE_NAME[$software_id]} is not supported on $G_HW_ARCH_NAME systems. Skipping it." + # v9.10: Support multiple IDs per AUTO_SETUP_INSTALL_SOFTWARE_ID line + for software_id in "${software_ids[@]}" + do + # Skip if software does not exist, is not supported on architecture, hardware model or Debian version + if [[ ! ${aSOFTWARE_NAME[$software_id]} ]] + then + G_DIETPI-NOTIFY 1 "Software title with ID $software_id does not exist. Skipping it." - elif (( ! ${aSOFTWARE_AVAIL_G_HW_MODEL[$software_id,$G_HW_MODEL]:=1} )) - then - G_DIETPI-NOTIFY 1 "Software title ${aSOFTWARE_NAME[$software_id]} is not supported on $G_HW_MODEL_NAME. Skipping it." + elif (( ! ${aSOFTWARE_AVAIL_G_HW_ARCH[$software_id,$G_HW_ARCH]:=1} )) + then + G_DIETPI-NOTIFY 1 "Software title ${aSOFTWARE_NAME[$software_id]} is not supported on ${RPI_64KERNEL_32OS:-$G_HW_ARCH_NAME} systems. Skipping it." - elif (( ! ${aSOFTWARE_AVAIL_G_DISTRO[$software_id,$G_DISTRO]:=1} )); then + elif (( ! ${aSOFTWARE_AVAIL_G_HW_MODEL[$software_id,$G_HW_MODEL]:=1} )) + then + G_DIETPI-NOTIFY 1 "Software title ${aSOFTWARE_NAME[$software_id]} is not supported on $G_HW_MODEL_NAME. Skipping it." - G_DIETPI-NOTIFY 1 "Software title ${aSOFTWARE_NAME[$software_id]} is not supported on Debian ${G_DISTRO_NAME^}. Skipping it." - else - aSOFTWARE_INSTALL_STATE[$software_id]=1 - G_DIETPI-NOTIFY 0 "Software title ${aSOFTWARE_NAME[$software_id]} flagged for installation." - fi + elif (( ! ${aSOFTWARE_AVAIL_G_DISTRO[$software_id,$G_DISTRO]:=1} )); then - done < <(grep '^[[:blank:]]*AUTO_SETUP_INSTALL_SOFTWARE_ID=' /boot/dietpi.txt | mawk '{print $1}' | sed 's/[^0-9]*//g') + G_DIETPI-NOTIFY 1 "Software title ${aSOFTWARE_NAME[$software_id]} is not supported on Debian ${G_DISTRO_NAME^}. Skipping it." + else + aSOFTWARE_INSTALL_STATE[$software_id]=1 + G_DIETPI-NOTIFY 0 "Software title ${aSOFTWARE_NAME[$software_id]} flagged for installation." + fi + done + done < <(grep '^[[:blank:]]*AUTO_SETUP_INSTALL_SOFTWARE_ID=' /boot/dietpi.txt | sed -e 's/^[^=]*=//' -e 's/#.*$//') } # Setup steps after software installs @@ -14806,6 +14810,14 @@ _EOF_ G_DIETPI-NOTIFY 0 'Applied final first run setup steps' + # Process automatic APT package installs + local packages=() package + read -ra packages < <($(sed -n '/^[[:blank:]]*AUTO_SETUP_APT_INSTALLS=/{s/^[^=]*=//p;q}' /boot/dietpi.txt) + for package in "${packages[@]}" + do + G_EXEC_NOHALT=1 G_AGI "$package" + done + # Custom 1st run script [[ $AUTOINSTALL_CUSTOMSCRIPTURL != '0' || -f '/boot/Automation_Custom_Script.sh' ]] || return 0 From 29fb272e79405c7f47528999f6dbe11b97a7de1a Mon Sep 17 00:00:00 2001 From: MichaIng Date: Thu, 30 Jan 2025 17:23:16 +0100 Subject: [PATCH 098/112] dietpi-software: push forgotten amendement --- dietpi/dietpi-software | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dietpi/dietpi-software b/dietpi/dietpi-software index 4fea37bccb..98913f7966 100755 --- a/dietpi/dietpi-software +++ b/dietpi/dietpi-software @@ -14812,7 +14812,7 @@ _EOF_ # Process automatic APT package installs local packages=() package - read -ra packages < <($(sed -n '/^[[:blank:]]*AUTO_SETUP_APT_INSTALLS=/{s/^[^=]*=//p;q}' /boot/dietpi.txt) + read -ra packages < <(sed -n '/^[[:blank:]]*AUTO_SETUP_APT_INSTALLS=/{s/^[^=]*=//p;q}' /boot/dietpi.txt) for package in "${packages[@]}" do G_EXEC_NOHALT=1 G_AGI "$package" From 326b2f054fc6742c5cc9c08586b207a8d6230d84 Mon Sep 17 00:00:00 2001 From: MichaIng Date: Thu, 30 Jan 2025 17:58:37 +0100 Subject: [PATCH 099/112] dietpi-software: Removal of file managers and text editors (#7354) But preserve Midnight Commander as popular file manager, moving into System Stats & Management category. --- .meta/dietpi-survey_report | 6 ++ .update/patches | 2 +- CHANGELOG.txt | 2 +- dietpi/dietpi-software | 164 ++++++++----------------------------- 4 files changed, 42 insertions(+), 132 deletions(-) diff --git a/.meta/dietpi-survey_report b/.meta/dietpi-survey_report index 2803d2b0b7..ab4afe172b 100755 --- a/.meta/dietpi-survey_report +++ b/.meta/dietpi-survey_report @@ -742,12 +742,18 @@ shopt -s extglob aSOFTWARE_NAME9_9[i]=${aSOFTWARE_NAME9_8[i]} aSOFTWARE_NAME9_10[i]=${aSOFTWARE_NAME9_9[i]} done + unset -v 'aSOFTWARE_NAME9_10[4]' # ViFM unset -v 'aSOFTWARE_NAME9_10[10]' # iftop unset -v 'aSOFTWARE_NAME9_10[11]' # IPTraf unset -v 'aSOFTWARE_NAME9_10[12]' # Iperf unset -v 'aSOFTWARE_NAME9_10[13]' # MTR-Tiny unset -v 'aSOFTWARE_NAME9_10[14]' # nLoad unset -v 'aSOFTWARE_NAME9_10[15]' # tcpdump + unset -v 'aSOFTWARE_NAME9_10[18]' # Emacs + unset -v 'aSOFTWARE_NAME9_10[19]' # Jed + unset -v 'aSOFTWARE_NAME9_10[20]' # Vim + unset -v 'aSOFTWARE_NAME9_10[21]' # Vim-Tiny + unset -v 'aSOFTWARE_NAME9_10[127]' # NeoVim # Pre-create software counter array so that we can see also software (available in newest version) with 0 installs for i in "${aSOFTWARE_NAME9_10[@]}" diff --git a/.update/patches b/.update/patches index 9e66330d27..54fc0d766c 100755 --- a/.update/patches +++ b/.update/patches @@ -2093,7 +2093,7 @@ Patch_9_10() fi # Remove obsolete install states: https://github.com/MichaIng/DietPi/pull/7351 - for i in {10..15} + for i in 4 {10..15} {18..21} 127 do grep -q "^[[:blank:]]*aSOFTWARE_INSTALL_STATE\[$i\]=" /boot/dietpi/.installed && G_EXEC sed --follow-symlinks -i "/^[[:blank:]]*aSOFTWARE_INSTALL_STATE\[$i\]=/d" /boot/dietpi/.installed done diff --git a/CHANGELOG.txt b/CHANGELOG.txt index 706a8f18ac..c9c8f78f40 100644 --- a/CHANGELOG.txt +++ b/CHANGELOG.txt @@ -10,7 +10,7 @@ Enhancements: - DietPi-Software | vaultwarden: Our builds will now show the package version within the web UI. Many thanks to @gh3597 for reporting it missing and how to add it: https://github.com/MichaIng/DietPi/issues/7364 Removed software: -- DietPi-Software | A number of software options have been removed, which were installed just as single APT package, without any configuration or dependant. Running `dietpi-software` for such is overkill, as one can just use the native Debian package manager directly, like "apt install tcpdump". Affected software titles: iftop, IPTraf, Iperf, MTR-Tiny, nLoad, tcpdump +- DietPi-Software | A number of software options have been removed from our menus, which were installed just as single APT package, without any configuration or dependant. Running dietpi-software for such is overkill, as one can just use the native Debian package manager directly, like "apt install tcpdump". Affected packages: vifm, iftop, iptraf, iperf, mtr-tiny, nload, tcpdump, emacs, jed, vim, vim-tiny, neovim. Note: They won't be removed from your system, and they are upgraded as usual via "apt upgrade" or DietPi updates. The only difference is that you cannot install or uninstall them via dietpi-software anymore, but instead via APT directly. The new AUTO_SETUP_APT_INSTALLS dietpi.txt allows to automate this the same way as AUTO_SETUP_INSTALL_SOFTWARE_ID did before. Bug fixes: - Orange Pi 5 Max | Resolved an issue where onboard WiFi was not working. Many thanks to @diego-hsp for reporting this issue: https://github.com/MichaIng/DietPi/issues/7338 diff --git a/dietpi/dietpi-software b/dietpi/dietpi-software index 98913f7966..83bc35fcba 100755 --- a/dietpi/dietpi-software +++ b/dietpi/dietpi-software @@ -230,12 +230,10 @@ Available commands: '●─ Distributed Projects ' #19 '●─ SSH Clients ' #20 '●─ File Server Clients ' #21 - '●─ File Managers ' #22 - '●─ System ' #23 - '●─ Databases & Data Stores ' #24 - '●─ Development & Programming ' #25 - '●─ Text Editors ' #26 - '●─ Desktop Utilities ' #27 + '●─ System ' #22 + '●─ Databases & Data Stores ' #23 + '●─ Development & Programming ' #24 + '●─ Desktop Utilities ' #25 ) #-------------------------------------------------------------------------------- @@ -1091,6 +1089,11 @@ Available commands: # System Stats & Management #-------------------------------------------------------------------------------- + software_id=3 + aSOFTWARE_NAME[$software_id]='MC' + aSOFTWARE_DESC[$software_id]='Midnight Commander - a powerful file manager' + aSOFTWARE_CATX[$software_id]=8 + #------------------ software_id=63 aSOFTWARE_NAME[$software_id]='LinuxDash' aSOFTWARE_DESC[$software_id]='web interface system stats' @@ -1511,7 +1514,7 @@ Available commands: software_id=152 aSOFTWARE_NAME[$software_id]='Avahi-Daemon' aSOFTWARE_DESC[$software_id]='Hostname broadcast via mDNS (Zeroconf, Bonjour)' - aSOFTWARE_CATX[$software_id]=25 + aSOFTWARE_CATX[$software_id]=16 #------------------ software_id=171 aSOFTWARE_NAME[$software_id]='frp' @@ -1645,77 +1648,65 @@ Available commands: aSOFTWARE_CATX[$software_id]=21 aSOFTWARE_DOCS[$software_id]=' dietpi-drive_manager > Add network drive' - # File Managers - #-------------------------------------------------------------------------------- - software_id=3 - aSOFTWARE_NAME[$software_id]='MC' - aSOFTWARE_DESC[$software_id]='Midnight Commander - a powerful file manager' - aSOFTWARE_CATX[$software_id]=22 - #------------------ - software_id=4 - aSOFTWARE_NAME[$software_id]='ViFM' - aSOFTWARE_DESC[$software_id]='file manager with vi bindings' - aSOFTWARE_CATX[$software_id]=22 - # System #-------------------------------------------------------------------------------- software_id=5 aSOFTWARE_NAME[$software_id]='ALSA' aSOFTWARE_DESC[$software_id]='Advanced Linux Sound Architecture' - aSOFTWARE_CATX[$software_id]=23 + aSOFTWARE_CATX[$software_id]=22 #------------------ software_id=7 aSOFTWARE_NAME[$software_id]='FFmpeg' aSOFTWARE_DESC[$software_id]='Audio & video codec libary and programs' - aSOFTWARE_CATX[$software_id]=23 + aSOFTWARE_CATX[$software_id]=22 #------------------ software_id=6 aSOFTWARE_NAME[$software_id]='X.Org X Server' aSOFTWARE_DESC[$software_id]='aka X11 - X Window System implementation' - aSOFTWARE_CATX[$software_id]=23 + aSOFTWARE_CATX[$software_id]=22 #------------------ software_id=170 aSOFTWARE_NAME[$software_id]='UnRAR' aSOFTWARE_DESC[$software_id]='unarchiver for .rar files' - aSOFTWARE_CATX[$software_id]=23 + aSOFTWARE_CATX[$software_id]=22 # Databases & Data Stores #-------------------------------------------------------------------------------- software_id=87 aSOFTWARE_NAME[$software_id]='SQLite' aSOFTWARE_DESC[$software_id]='Persistent single-file database system' - aSOFTWARE_CATX[$software_id]=24 + aSOFTWARE_CATX[$software_id]=23 aSOFTWARE_DOCS[$software_id]='https://dietpi.com/docs/software/databases/#sqlite' #------------------ software_id=88 aSOFTWARE_NAME[$software_id]='MariaDB' aSOFTWARE_DESC[$software_id]='Persistent cached file-per-table database server' - aSOFTWARE_CATX[$software_id]=24 + aSOFTWARE_CATX[$software_id]=23 aSOFTWARE_DOCS[$software_id]='https://dietpi.com/docs/software/databases/#mariadb' #------------------ software_id=90 aSOFTWARE_NAME[$software_id]='phpMyAdmin' aSOFTWARE_DESC[$software_id]='Optional MariaDB web interface admin tools' - aSOFTWARE_CATX[$software_id]=24 + aSOFTWARE_CATX[$software_id]=23 aSOFTWARE_DOCS[$software_id]='https://dietpi.com/docs/software/databases/#phpmyadmin' aSOFTWARE_DEPS[$software_id]='88 89 webserver' #------------------ software_id=91 aSOFTWARE_NAME[$software_id]='Redis' aSOFTWARE_DESC[$software_id]='Volatile in-memory non-SQL database server' - aSOFTWARE_CATX[$software_id]=24 + aSOFTWARE_CATX[$software_id]=23 aSOFTWARE_DOCS[$software_id]='https://dietpi.com/docs/software/databases/#redis' #------------------ software_id=74 aSOFTWARE_NAME[$software_id]='InfluxDB' aSOFTWARE_DESC[$software_id]='Persistent time-series database server' - aSOFTWARE_CATX[$software_id]=24 + aSOFTWARE_CATX[$software_id]=23 aSOFTWARE_DOCS[$software_id]='https://dietpi.com/docs/software/databases/#influxdb' #------------------ software_id=194 aSOFTWARE_NAME[$software_id]='PostgreSQL' aSOFTWARE_DESC[$software_id]='Persistent advanced object-relational database server' - aSOFTWARE_CATX[$software_id]=24 + aSOFTWARE_CATX[$software_id]=23 aSOFTWARE_DOCS[$software_id]='https://dietpi.com/docs/software/databases/#postgresql' # Development & Programming @@ -1723,18 +1714,18 @@ Available commands: software_id=17 aSOFTWARE_NAME[$software_id]='Git' aSOFTWARE_DESC[$software_id]='Clone and manage Git repositories locally' - aSOFTWARE_CATX[$software_id]=25 + aSOFTWARE_CATX[$software_id]=24 #------------------ software_id=130 aSOFTWARE_NAME[$software_id]='Python 3' aSOFTWARE_DESC[$software_id]='Runtime system, pip package installer and development headers' - aSOFTWARE_CATX[$software_id]=25 + aSOFTWARE_CATX[$software_id]=24 aSOFTWARE_DOCS[$software_id]='https://dietpi.com/docs/software/programming/#python-3' #------------------ software_id=189 aSOFTWARE_NAME[$software_id]='VSCodium' aSOFTWARE_DESC[$software_id]='FLOSS version of MS VSCode' - aSOFTWARE_CATX[$software_id]=25 + aSOFTWARE_CATX[$software_id]=24 aSOFTWARE_DOCS[$software_id]='https://dietpi.com/docs/software/programming/#vscodium' aSOFTWARE_DEPS[$software_id]='5 6 17' # - RISC-V: https://paulcarroty.gitlab.io/vscodium-deb-rpm-repo/debs/dists/vscodium/Release @@ -1743,14 +1734,14 @@ Available commands: software_id=188 aSOFTWARE_NAME[$software_id]='Go' aSOFTWARE_DESC[$software_id]='Runtime environment and package installer' - aSOFTWARE_CATX[$software_id]=25 + aSOFTWARE_CATX[$software_id]=24 aSOFTWARE_DOCS[$software_id]='https://dietpi.com/docs/software/programming/#go' aSOFTWARE_DEPS[$software_id]='17' #------------------ software_id=8 aSOFTWARE_NAME[$software_id]='Java JDK' aSOFTWARE_DESC[$software_id]='OpenJDK Development Kit' - aSOFTWARE_CATX[$software_id]=25 + aSOFTWARE_CATX[$software_id]=24 aSOFTWARE_DOCS[$software_id]='https://dietpi.com/docs/software/programming/#java' aSOFTWARE_DEPS[$software_id]='196' # - ARMv6: No functional Java available @@ -1759,7 +1750,7 @@ Available commands: software_id=196 aSOFTWARE_NAME[$software_id]='Java JRE' aSOFTWARE_DESC[$software_id]='OpenJDK Runtime Environment' - aSOFTWARE_CATX[$software_id]=25 + aSOFTWARE_CATX[$software_id]=24 aSOFTWARE_DOCS[$software_id]='https://dietpi.com/docs/software/programming/#java' # - ARMv6: No functional Java available aSOFTWARE_AVAIL_G_HW_ARCH[$software_id,1]=0 @@ -1767,13 +1758,13 @@ Available commands: software_id=9 aSOFTWARE_NAME[$software_id]='Node.js' aSOFTWARE_DESC[$software_id]='JavaScript runtime environment' - aSOFTWARE_CATX[$software_id]=25 + aSOFTWARE_CATX[$software_id]=24 aSOFTWARE_DOCS[$software_id]='https://dietpi.com/docs/software/webserver_stack/#nodejs' #------------------ software_id=150 aSOFTWARE_NAME[$software_id]='Mono' aSOFTWARE_DESC[$software_id]='Runtime libraries and repository' - aSOFTWARE_CATX[$software_id]=25 + aSOFTWARE_CATX[$software_id]=24 aSOFTWARE_DOCS[$software_id]='https://dietpi.com/docs/software/programming/#mono' # - RISC-V: https://download.mono-project.com/repo/debian/dists/buster/main/, https://packages.debian.org/trixie/mono-runtime aSOFTWARE_AVAIL_G_HW_ARCH[$software_id,11]=0 @@ -1781,50 +1772,23 @@ Available commands: software_id=34 aSOFTWARE_NAME[$software_id]='PHP Composer' aSOFTWARE_DESC[$software_id]='Package manager for PHP' - aSOFTWARE_CATX[$software_id]=25 + aSOFTWARE_CATX[$software_id]=24 aSOFTWARE_DOCS[$software_id]='https://dietpi.com/docs/software/webserver_stack/#php-composer' aSOFTWARE_DEPS[$software_id]='89' - # Text Editors - #-------------------------------------------------------------------------------- - software_id=18 - aSOFTWARE_NAME[$software_id]='Emacs' - aSOFTWARE_DESC[$software_id]='GNU Emacs editor' - aSOFTWARE_CATX[$software_id]=26 - #------------------ - software_id=19 - aSOFTWARE_NAME[$software_id]='Jed' - aSOFTWARE_DESC[$software_id]='editor for programmers' - aSOFTWARE_CATX[$software_id]=26 - #------------------ - software_id=20 - aSOFTWARE_NAME[$software_id]='Vim' - aSOFTWARE_DESC[$software_id]='vi enhanced text editor' - aSOFTWARE_CATX[$software_id]=26 - #------------------ - software_id=21 - aSOFTWARE_NAME[$software_id]='Vim-Tiny' - aSOFTWARE_DESC[$software_id]='compact release of vim' - aSOFTWARE_CATX[$software_id]=26 - #------------------ - software_id=127 - aSOFTWARE_NAME[$software_id]='Neovim' - aSOFTWARE_DESC[$software_id]='heavily refactored vim fork' - aSOFTWARE_CATX[$software_id]=26 - # Desktop Utilities #-------------------------------------------------------------------------------- software_id=22 aSOFTWARE_NAME[$software_id]='QuiteRSS' aSOFTWARE_DESC[$software_id]='cross-platform, free rss reader' - aSOFTWARE_CATX[$software_id]=27 + aSOFTWARE_CATX[$software_id]=25 aSOFTWARE_DOCS[$software_id]='https://dietpi.com/docs/software/desktop/#quiterss' aSOFTWARE_DEPS[$software_id]='6' #------------------ software_id=113 aSOFTWARE_NAME[$software_id]='Chromium' aSOFTWARE_DESC[$software_id]='web browser for desktop or autostart' - aSOFTWARE_CATX[$software_id]=27 + aSOFTWARE_CATX[$software_id]=25 aSOFTWARE_DOCS[$software_id]='https://dietpi.com/docs/software/desktop/#chromium' aSOFTWARE_DEPS[$software_id]='5 6' # - ARMv6: https://github.com/RPi-Distro/chromium-browser/issues/21 @@ -1835,7 +1799,7 @@ Available commands: software_id=67 aSOFTWARE_NAME[$software_id]='Firefox' aSOFTWARE_DESC[$software_id]='web browser for desktop' - aSOFTWARE_CATX[$software_id]=27 + aSOFTWARE_CATX[$software_id]=25 aSOFTWARE_DOCS[$software_id]='https://dietpi.com/docs/software/desktop/#firefox' aSOFTWARE_DEPS[$software_id]='5 6' # - ARMv6: https://github.com/RPi-Distro/chromium-browser/issues/21#issuecomment-997044303 @@ -1844,14 +1808,14 @@ Available commands: software_id=174 aSOFTWARE_NAME[$software_id]='GIMP' aSOFTWARE_DESC[$software_id]='mspaint on steroids' - aSOFTWARE_CATX[$software_id]=27 + aSOFTWARE_CATX[$software_id]=25 aSOFTWARE_DOCS[$software_id]='https://dietpi.com/docs/software/desktop/#gimp' aSOFTWARE_DEPS[$software_id]='6' #------------------ software_id=175 aSOFTWARE_NAME[$software_id]='Xfce Power Manager' aSOFTWARE_DESC[$software_id]='with brightness control, recommended for LXDE/LXQt' - aSOFTWARE_CATX[$software_id]=27 + aSOFTWARE_CATX[$software_id]=25 aSOFTWARE_DOCS[$software_id]='https://dietpi.com/docs/software/desktop/#xfce-power-manager' aSOFTWARE_DEPS[$software_id]='6' @@ -2712,41 +2676,11 @@ _EOF_ G_AGI git fi - if To_Install 4 # Vifm - then - G_AGI vifm - fi - - if To_Install 20 # Vim - then - G_AGI vim - fi - - if To_Install 21 # Vim-Tiny - then - G_AGI vim-tiny - fi - - if To_Install 127 # Neovim - then - G_AGI neovim - fi - - if To_Install 18 # Emacs - then - G_AGI emacs - fi - if To_Install 3 # Midnight Commander then G_AGI mc fi - if To_Install 19 - then - G_AGI jed - fi - if To_Install 0 # OpenSSH Client then G_AGI openssh-client @@ -13939,36 +13873,11 @@ _EOF_ [[ -d '/mnt/dietpi_userdata/jellyfin' ]] && G_EXEC rm -R /mnt/dietpi_userdata/jellyfin fi - if To_Uninstall 19 - then - G_AGP jed - fi - if To_Uninstall 3 # Midnight Commander then G_AGP mc fi - if To_Uninstall 18 # Emacs - then - G_AGP emacs - fi - - if To_Uninstall 20 # Vim - then - G_AGP vim - fi - - if To_Uninstall 21 # Vim-Tiny - then - G_AGP vim-tiny - fi - - if To_Uninstall 127 # Neovim - then - G_AGP neovim - fi - if To_Uninstall 0 # OpenSSH Client then # The OpenSSH server depends on the OpenSSH client, hence only mark it for autoremoval only. @@ -14178,11 +14087,6 @@ _EOF_ [[ -f '/root/.config/configstore/update-notifier-npm.json' ]] && G_EXEC rm /root/.config/configstore/update-notifier-npm.json fi - if To_Uninstall 4 - then - G_AGP vifm - fi - if To_Uninstall 170 # UnRAR then G_AGP unrar From 344a5b2d2d95129ac2870ce684e44de97866e1d3 Mon Sep 17 00:00:00 2001 From: MichaIng Date: Thu, 30 Jan 2025 18:03:51 +0100 Subject: [PATCH 100/112] changelog: update release date --- CHANGELOG.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.txt b/CHANGELOG.txt index c9c8f78f40..24010adf6e 100644 --- a/CHANGELOG.txt +++ b/CHANGELOG.txt @@ -1,5 +1,5 @@ v9.10 -(2025-01-25) +(2025-02-01) Enhancements: - RISC-V | Debian Trixie does now support this architecture, hence our VisionFive 2 and Star64 images are now provided with Debian Trixie/testing instead of Debian Sid/unstable, and existing systems will be migrated to the Trixie suite. From 9507569a6571739bd085eb08377fd8bde4eb8d12 Mon Sep 17 00:00:00 2001 From: MichaIng Date: Thu, 30 Jan 2025 20:32:05 +0100 Subject: [PATCH 101/112] dietpi-software: unhide webservers and PHP in software list --- dietpi/dietpi-software | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/dietpi/dietpi-software b/dietpi/dietpi-software index 83bc35fcba..95c7f17f0d 100755 --- a/dietpi/dietpi-software +++ b/dietpi/dietpi-software @@ -1367,7 +1367,7 @@ Available commands: software_id=83 aSOFTWARE_NAME[$software_id]='Apache' aSOFTWARE_DESC[$software_id]='Popular webserver' - aSOFTWARE_CATX[$software_id]=-1 + aSOFTWARE_CATX[$software_id]=12 aSOFTWARE_DOCS[$software_id]='https://dietpi.com/docs/software/webserver_stack/#apache2' aSOFTWARE_CONFLICTS[$software_id]='78 79 81 82 84 85' aSOFTWARE_AVAIL_G_HW_MODEL[$software_id,70]=0 @@ -1375,21 +1375,21 @@ Available commands: software_id=84 aSOFTWARE_NAME[$software_id]='Lighttpd' aSOFTWARE_DESC[$software_id]='Extremely lightweight webserver' - aSOFTWARE_CATX[$software_id]=-1 + aSOFTWARE_CATX[$software_id]=12 aSOFTWARE_DOCS[$software_id]='https://dietpi.com/docs/software/webserver_stack/#lighttpd' aSOFTWARE_CONFLICTS[$software_id]='75 76 78 79 83 85' #------------------ software_id=85 aSOFTWARE_NAME[$software_id]='Nginx' aSOFTWARE_DESC[$software_id]='Lightweight webserver' - aSOFTWARE_CATX[$software_id]=-1 + aSOFTWARE_CATX[$software_id]=12 aSOFTWARE_DOCS[$software_id]='https://dietpi.com/docs/software/webserver_stack/#nginx' aSOFTWARE_CONFLICTS[$software_id]='75 76 81 82 83 84' #------------------ software_id=89 aSOFTWARE_NAME[$software_id]='PHP' aSOFTWARE_DESC[$software_id]='Hypertext Preprocessor for dynamic web content' - aSOFTWARE_CATX[$software_id]=-1 + aSOFTWARE_CATX[$software_id]=12 aSOFTWARE_DOCS[$software_id]='https://dietpi.com/docs/software/webserver_stack/#php' #------------------ software_id=92 From f5967f836f9f172c3b49f8d5c89513e0f5285b32 Mon Sep 17 00:00:00 2001 From: MichaIng Date: Thu, 30 Jan 2025 23:55:50 +0100 Subject: [PATCH 102/112] dietpi-software: minor text change --- dietpi/dietpi-software | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dietpi/dietpi-software b/dietpi/dietpi-software index 95c7f17f0d..e3f170ecfe 100755 --- a/dietpi/dietpi-software +++ b/dietpi/dietpi-software @@ -11736,7 +11736,7 @@ _EOF_ G_EXEC cd /mnt/dietpi_userdata/filebrowser G_EXEC /opt/filebrowser/filebrowser config init G_EXEC /opt/filebrowser/filebrowser config set -a 0.0.0.0 -p 8084 -r /mnt - G_EXEC_DESC="Setting up File Browser login user 'dietpi'" G_EXEC /opt/filebrowser/filebrowser users add dietpi "$GLOBAL_PW" --perm.admin + G_EXEC_DESC='Setting up File Browser login user "dietpi"' G_EXEC /opt/filebrowser/filebrowser users add dietpi "$GLOBAL_PW" --perm.admin fi # Permissions From 9ea98e2e99f26047135c3e7544fd73a9c2b00596 Mon Sep 17 00:00:00 2001 From: MichaIng Date: Fri, 31 Jan 2025 12:42:13 +0100 Subject: [PATCH 103/112] dietpi-software: disable RPi Cam Web Interface on Bookworm On Raspbian, it was still enabled, as the gpac package is available there (while it has been removed from Debian Bookworm). However, the RPi Cam Web Interface uses raspimjpeg, which strictly requires the legacy RPi camera module MMAL library, which has been removed from the RPi kernel with Bookworm, also the older libraspberrypi0 packages. --- dietpi/dietpi-software | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/dietpi/dietpi-software b/dietpi/dietpi-software index e3f170ecfe..e49dce97e4 100755 --- a/dietpi/dietpi-software +++ b/dietpi/dietpi-software @@ -1063,16 +1063,16 @@ Available commands: #-------------------------------------------------------------------------------- software_id=59 aSOFTWARE_NAME[$software_id]='RPi Cam Web Interface' - aSOFTWARE_DESC[$software_id]='Web interface & controls for your RPi camera' + aSOFTWARE_DESC[$software_id]='Web interface & controls for your RPi camera module' aSOFTWARE_CATX[$software_id]=7 - aSOFTWARE_DOCS[$software_id]='https://dietpi.com/docs/software/camera/#rpi-cam-control' + aSOFTWARE_DOCS[$software_id]='https://dietpi.com/docs/software/camera/#rpi-cam-web-interface' aSOFTWARE_DEPS[$software_id]='89 webserver' # RPi only (( $G_HW_MODEL > 9 )) && aSOFTWARE_AVAIL_G_HW_MODEL[$software_id,$G_HW_MODEL]=0 # - ARMv8: https://github.com/silvanmelchior/RPi_Cam_Web_Interface/tree/master/bin aSOFTWARE_AVAIL_G_HW_ARCH[$software_id,3]=0 - # - Bookworm since gpac/MP4Box is currently not available on Debian (but on Raspbian): https://packages.debian.org/gpac - (( $G_RASPBIAN )) || (( $G_DISTRO < 7 )) || aSOFTWARE_AVAIL_G_DISTRO[$software_id,$G_DISTRO]=0 + # - Bookworm: raspimjpeg depends on legacy MMAL, removed from RPi userland libs since Bookworm + (( $G_DISTRO > 6 )) && aSOFTWARE_AVAIL_G_DISTRO[$software_id,$G_DISTRO]=0 #------------------ software_id=136 aSOFTWARE_NAME[$software_id]='motionEye' @@ -11717,7 +11717,7 @@ _EOF_ *) local arch='amd64';; esac - local fallback_url="https://github.com/filebrowser/filebrowser/releases/download/v2.31.2/linux-$arch-filebrowser.tar.gz" + local fallback_url="https://github.com/filebrowser/filebrowser/releases/download/v2.32.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 92a94a33041a42ff37099a51cc516277ce8ea941 Mon Sep 17 00:00:00 2001 From: MichaIng Date: Fri, 31 Jan 2025 13:58:31 +0100 Subject: [PATCH 104/112] dietpi-software: Domoticz: update dependencies --- dietpi/dietpi-software | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/dietpi/dietpi-software b/dietpi/dietpi-software index e49dce97e4..43d65e75c7 100755 --- a/dietpi/dietpi-software +++ b/dietpi/dietpi-software @@ -11439,12 +11439,14 @@ _EOF_ if To_Install 140 domoticz # Domoticz then # APT deps: https://install.domoticz.com/, https://github.com/MichaIng/DietPi/issues/6404 - aDEPS=('libusb-0.1-4' 'libcurl3-gnutls') + aDEPS=('libusb-0.1-4') + # - Since Trixie, curl moved to the GnuTLS flavour of libcurl. + (( $G_DISTRO < 8 )) && aDEPS+=('libcurl3-gnutls') # x86_64 builds provided via GitHub differ from those provided via domoticz.com and were compiled against libssl3. Hence download those for Bookworm/Trixie systems, else the ones from domoticz.com, compiled against libssl1.1. Currently, there are no builds for ARM and libssl3. if (( $G_HW_ARCH == 10 && $G_DISTRO > 6 )) then - local fallback_url="https://github.com/domoticz/domoticz/releases/download/2024.1/domoticz_linux_2024.1_${G_HW_ARCH_NAME/armv6l/armv7l}.tgz" + local fallback_url="https://github.com/domoticz/domoticz/releases/download/2024.7/domoticz_linux_2024.7_${G_HW_ARCH_NAME/armv6l/armv7l}.tgz" Download_Install "$(curl -sSfL 'https://api.github.com/repos/domoticz/domoticz/releases/latest' | mawk -F\" "/^ *\"browser_download_url\": \".*\/domoticz_linux_[^\"\/]*_${G_HW_ARCH_NAME/armv6l/armv7l}.tgz\"$/{print \$4}")" ./domoticz else Download_Install "https://releases.domoticz.com/release/domoticz_linux_${G_HW_ARCH_NAME/armv6l/armv7l}.tgz" ./domoticz From 9f111b066ddcdd70cdbb55ecde56f19e2ccf2692 Mon Sep 17 00:00:00 2001 From: MichaIng Date: Fri, 31 Jan 2025 19:17:40 +0100 Subject: [PATCH 105/112] dietpi-build: make UEFI and ISO options independent - Merge "-i" and "-v" options into "-v"/"--variant", which can be defined for all builds but has an effect for x86_64 only so far. The previous "-i" flag can be achieved with "-v iso" now, and ISO images are build with "-v all" as well, for VM as well as PC images. "-v raw" is not invalid, as it can be achieved by just skipping the option, and raw images are implied with "-v all" as well. - Add long forms for all CLI options. - Print output image name when running DietPi-Imager --- .build/images/dietpi-build | 107 ++++++++++++++--------------- .github/workflows/dietpi-build.yml | 7 +- 2 files changed, 55 insertions(+), 59 deletions(-) diff --git a/.build/images/dietpi-build b/.build/images/dietpi-build index 9f9f5f36e1..c8aad5c075 100755 --- a/.build/images/dietpi-build +++ b/.build/images/dietpi-build @@ -48,8 +48,7 @@ HW_ARCH= DISTRO=7 # 6=Bullseye, 7=Bookworm, 8=Trixie PTTYPE='msdos' FSTYPE='ext4' -ITYPE= -VMTYPE= +VARIANT= GITBRANCH='master' GITOWNER='MichaIng' EDITION= @@ -63,17 +62,16 @@ TEST_UBOOT=0 while (( $# )) do case $1 in - '-m') shift; HW_MODEL=$1;; - '-a') shift; HW_ARCH=$1;; - '-d') shift; DISTRO=$1;; - '-p') shift; PTTYPE=$1;; - '-f') shift; FSTYPE=$1;; - '-i') ITYPE='Installer';; - '-v') shift; VMTYPE=$1;; - '-b') shift; GITBRANCH=$1;; - '-o') shift; GITOWNER=$1;; - '-e') shift; EDITION=$1;; - '-s') shift; SUFFIX=$1;; + '-m'|'--model') shift; HW_MODEL=$1;; + '-a'|'--arch') shift; HW_ARCH=$1;; + '-d'|'--distro') shift; DISTRO=$1;; + '-p'|'--parttype') shift; PTTYPE=$1;; + '-f'|'--fstype') shift; FSTYPE=$1;; + '-v'|'--variant') shift; VARIANT=$1;; + '-b'|'--branch') shift; GITBRANCH=$1;; + '-o'|'--owner') shift; GITOWNER=$1;; + '-e'|'--edition') shift; EDITION=$1;; + '-s'|'--suffix') shift; SUFFIX=$1;; '--skip-archive') SKIP_ARCHIVE=1;; '--upload-script') shift; UPLOAD_SCRIPT=$1;; '--no-dos-part') ADD_DOS_PART=0;; @@ -103,8 +101,8 @@ case $HW_MODEL in 12) iname='OdroidC2' HW_ARCH=3 partition_start=4 root_size=1148;; 15) iname='OdroidN2' HW_ARCH=3 partition_start=4 root_size=1148;; 16) iname='OdroidC4' HW_ARCH=3 partition_start=4 root_size=1148;; - 20) iname='VM' HW_ARCH=${HW_ARCH:-10} VMTYPE=${VMTYPE:-raw};; - 21) iname='NativePC-BIOS' HW_ARCH=10 root_size=1663;; + 20) iname='VM' HW_ARCH=${HW_ARCH:-10};; + 21) iname='NativePC' HW_ARCH=10 root_size=1663;; 40) iname='PINEA64' HW_ARCH=3 partition_start=4 root_size=1020;; 42) iname='ROCKPro64' HW_ARCH=3 partition_start=16 root_size=1100;; 43) iname='ROCK64' HW_ARCH=3 partition_start=16 root_size=1100;; @@ -167,12 +165,7 @@ case $HW_MODEL in *) Error_Exit "Invalid hardware model \"$HW_MODEL\" passed. Aborting ...";; esac -if [[ $VMTYPE ]] -then - [[ $HW_MODEL == 20 ]] || Error_Exit "Unsupported option \"-v\" (virtual machine type) for hardware model \"$HW_MODEL\" passed, aborting ..." - [[ $VMTYPE =~ ^(raw|vbox|vmx|esxi|hyperv|utm|proxmox|all)$ ]] || Error_Exit "Invalid virtual machine type \"$VMTYPE\" passed, aborting ..." - [[ $ITYPE == 'Installer' ]] && Error_Exit 'The VM type option "-v" cannot be combined with "-i", since installer images result in an ISO, instead of a virtual disk image or appliance. Aborting ...' -fi +[[ $VARIANT =~ ^(|iso|vbox|vmx|esxi|hyperv|utm|proxmox|all)$ ]] || Error_Exit "Invalid variant \"$VARIANT\" passed, aborting ..." [[ $EDITION =~ ^(|Amiberry|AlloGUI|all)$ ]] || Error_Exit "Invalid edition \"$EDITION\" passed. Aborting ..." @@ -196,13 +189,13 @@ case $DISTRO in esac case $PTTYPE in - 'msdos') :;; - 'gpt') [[ $HW_ARCH == 10 ]] && efi_size=64 iname="${iname%-BIOS}-UEFI";; + 'msdos') [[ $HW_MODEL == 21 ]] && iname+='-BIOS';; + 'gpt') [[ $HW_ARCH == 10 ]] && efi_size=64 iname+='-UEFI';; *) Error_Exit "Invalid partition table type \"$PTTYPE\" passed. Aborting ...";; esac -# Do not add trailing FAT partitions for VM, container and (Clonezilla) installer images, and if there is a boot FAT partition already -[[ $HW_MODEL == 20 || $HW_MODEL == 75 || $ITYPE == 'Installer' || ( $boot_size -gt 0 && $boot_fstype == 'fat'* ) ]] && ADD_DOS_PART=0 +# Do not add trailing FAT partition for VM, container and ISO installer images, and if there is a boot FAT partition already +[[ $HW_MODEL == 20 || $HW_MODEL == 75 || $VARIANT == 'iso' || ( $boot_size -gt 0 && $boot_fstype == 'fat'* ) ]] && ADD_DOS_PART=0 fsname='' apackages=() afs_opts=() afsck=() aresize=() case $FSTYPE in @@ -217,14 +210,13 @@ G_CHECK_URL "https://github.com/$GITOWNER/DietPi/tree/$GITBRANCH" || Error_Exit # Image name OUTPUT_IMG_NAME="DietPi_$iname-$iarch-${distro^}" [[ $fsname ]] && OUTPUT_IMG_NAME+="_$fsname" -[[ $ITYPE ]] && OUTPUT_IMG_NAME+="_$ITYPE" -[[ $SUFFIX ]] && OUTPUT_IMG_NAME+="_$SUFFIX" -# - x86_64 installer images -if [[ $ITYPE == 'Installer' ]] +if [[ $VARIANT == 'iso' ]] then - [[ $HW_ARCH == 10 ]] || Error_Exit "Unsupported option \"-i\" (installer image) for architecture \"$HW_ARCH\" passed. Aborting ..." + [[ $HW_ARCH == 10 ]] || Error_Exit "Unsupported variant \"$VARIANT\" (installer image) for architecture \"$HW_ARCH\" passed. Aborting ..." CLONING_TOOL='Clonezilla' + OUTPUT_IMG_NAME+='_Installer' fi +[[ $SUFFIX ]] && OUTPUT_IMG_NAME+="_$SUFFIX" ########################################## # Dependencies @@ -240,7 +232,7 @@ emulation=0 (( $emulation )) && { apackages+=('qemu-user-static'); (( $G_DISTRO < 7 )) && apackages+=('binfmt-support'); } # Virtual machine disk conversion -[[ $VMTYPE && $VMTYPE != 'raw' ]] && apackages+=('qemu-utils') +[[ $HW_MODEL == 20 && ! $VARIANT =~ ^(|iso)$ ]] && apackages+=('qemu-utils') G_AG_CHECK_INSTALL_PREREQ --no-install-recommends parted mmdebstrap dbus systemd-container xz-utils "${apackages[@]}" @@ -492,7 +484,7 @@ G_EXEC losetup -d "$FP_LOOP" # DietPi-Imager ########################################## # Do not pack and upload raw VM image if not explicitly requested -[[ $VMTYPE && ! $VMTYPE =~ ^(raw|all)$ ]] && SKIP_ARCHIVE=1 UPLOAD_SCRIPT='' +[[ $VARIANT =~ ^(|iso|all)$ ]] || SKIP_ARCHIVE=1 UPLOAD_SCRIPT='' export FP_ROOT_DEV CLONING_TOOL OUTPUT_IMG_NAME MOUNT_IT='Off' SKIP_FIRSTBOOT_RESIZE=1 IMAGER_ARGS=("$OUTPUT_IMG_NAME.img") (( $SKIP_ARCHIVE )) && IMAGER_ARGS+=('--skip-archive') @@ -500,13 +492,26 @@ IMAGER_ARGS=("$OUTPUT_IMG_NAME.img") (( $ADD_DOS_PART )) && IMAGER_ARGS+=('--add-dos-part') [[ $HW_MODEL == [1245] ]] && IMAGER_ARGS+=('--configs-to-boot') [[ $SIGN_PASS ]] && IMAGER_ARGS+=('--sign' "$SIGN_PASS") + +####### IMG/ISO ########################## if [[ ! $EDITION || $EDITION == 'all' ]] then - G_DIETPI-NOTIFY 2 "Running DietPi-Imager for $G_GITOWNER/$G_GITBRANCH" + [[ $VARIANT == 'iso' ]] && ext='iso' || ext='img' + G_DIETPI-NOTIFY 2 "Running DietPi-Imager from $G_GITOWNER/$G_GITBRANCH to generate $OUTPUT_IMG_NAME.$ext" bash -c "$(curl -sSf "https://raw.githubusercontent.com/$G_GITOWNER/DietPi/$G_GITBRANCH/.build/images/dietpi-imager")" 'DietPi-Imager' "${IMAGER_ARGS[@]}" || exit 1 fi -# Amiberry edition: Install automatically on first boot, enable autostart option and onboard audio on RPi +####### ALL/ISO ########################## +if [[ $HW_ARCH == 10 && $VARIANT == 'all' ]] +then + CLONING_TOOL='Clonezilla' OUTPUT_IMG_NAME="${OUTPUT_IMG_NAME}_Installer" + G_DIETPI-NOTIFY 2 "Running DietPi-Imager from $G_GITOWNER/$G_GITBRANCH to generate $OUTPUT_IMG_NAME.iso" + bash -c "$(curl -sSf "https://raw.githubusercontent.com/$G_GITOWNER/DietPi/$G_GITBRANCH/.build/images/dietpi-imager")" 'DietPi-Imager' "${IMAGER_ARGS[@]}" || exit 1 + CLONING_TOOL='dd' OUTPUT_IMG_NAME=${OUTPUT_IMG_NAME%_Installer} +fi + +####### Amiberry ######################### +# - Install automatically on first boot, enable autostart option and onboard audio on RPi if [[ $EDITION == 'Amiberry' || ( $EDITION == 'all' && $HW_MODEL == 0 ) ]] then G_EXEC mv "$OUTPUT_IMG_NAME.img" "${OUTPUT_IMG_NAME}_Amiberry.img" @@ -556,11 +561,12 @@ then G_EXEC rmdir rootfs G_EXEC losetup -d "$FP_LOOP" - G_DIETPI-NOTIFY 2 "Running DietPi-Imager for $G_GITOWNER/$G_GITBRANCH" + G_DIETPI-NOTIFY 2 "Running DietPi-Imager from $G_GITOWNER/$G_GITBRANCH to generate $OUTPUT_IMG_NAME.img" bash -c "$(curl -sSf "https://raw.githubusercontent.com/$G_GITOWNER/DietPi/$G_GITBRANCH/.build/images/dietpi-imager")" 'DietPi-Imager' "${IMAGER_ARGS[@]}" || exit 1 fi -# AlloGUI edition: Pre-install Allo GUI with all managed audiophile software +####### AlloGUI ########################## +# - Pre-install Allo GUI with all managed audiophile software # - Temporarily skip Trixie AlloGUI builds: The netdata package is currently not available (only on Raspbian, not Debian) and systemd-logind fails to start within the container as of a new change/bug, to investigate. if [[ $EDITION == 'AlloGUI' || ( $EDITION == 'all' && $HW_MODEL =~ ^(0|70)$ && $DISTRO != 8 ) ]] then @@ -709,30 +715,21 @@ _EOF_ G_EXEC rmdir rootfs G_EXEC losetup -d "$FP_LOOP" - G_DIETPI-NOTIFY 2 "Running DietPi-Imager for $G_GITOWNER/$G_GITBRANCH" + G_DIETPI-NOTIFY 2 "Running DietPi-Imager from $G_GITOWNER/$G_GITBRANCH to generate $OUTPUT_IMG_NAME.img" bash -c "$(curl -sSf "https://raw.githubusercontent.com/$G_GITOWNER/DietPi/$G_GITBRANCH/.build/images/dietpi-imager")" 'DietPi-Imager' "${IMAGER_ARGS[@]}" || exit 1 fi -[[ $VMTYPE && $VMTYPE != 'raw' ]] || exit 0 +[[ $HW_MODEL == 20 && ! $VARIANT =~ ^(|iso)$ ]] || exit 0 ########################################## # Virtual machines ########################################## -####### ISO ############################## -if [[ $VMTYPE == all ]] -then - CLONING_TOOL='Clonezilla' OUTPUT_IMG_NAME="${OUTPUT_IMG_NAME}_Installer" - G_DIETPI-NOTIFY 2 "Running DietPi-Imager for $G_GITOWNER/$G_GITBRANCH" - bash -c "$(curl -sSf "https://raw.githubusercontent.com/$G_GITOWNER/DietPi/$G_GITBRANCH/.build/images/dietpi-imager")" 'DietPi-Imager' "${IMAGER_ARGS[@]}" || exit 1 - CLONING_TOOL='dd' OUTPUT_IMG_NAME=${OUTPUT_IMG_NAME%_Installer} -fi - # Since qemu-img does not support VMDK and VHDX resizing, we need to resize the raw .img. It is usually done as sparse file, hence the actual disk usage does not change. G_EXEC qemu-img resize "$OUTPUT_IMG_NAME.img" 8G ####### VMX/VMware/Parallels ############# -if [[ $VMTYPE =~ ^(vmx|all)$ ]] +if [[ $VARIANT =~ ^(vmx|all)$ ]] then image_name=${OUTPUT_IMG_NAME/_VM-/_VMX-} # Convert raw image to VMDK @@ -791,7 +788,7 @@ _EOF_ fi ####### ESXi ############################# -if [[ $VMTYPE =~ ^(esxi|all)$ ]] +if [[ $VARIANT =~ ^(esxi|all)$ ]] then image_name=${OUTPUT_IMG_NAME/_VM-/_ESXi-} # Convert raw image to VMDK @@ -908,7 +905,7 @@ SHA1($image_name.vmdk)= $(sha1sum "$image_name.vmdk" | mawk '{print $1}') _EOF_ # Pack everything as OVA appliance for ESXi import G_EXEC tar -cf "$image_name.ova" "$image_name."{ovf,vmdk,mf} - [[ $VMTYPE == 'all' ]] || G_EXEC rm "$image_name.vmdk" + [[ $VARIANT == 'all' ]] || G_EXEC rm "$image_name.vmdk" G_EXEC rm "$image_name."{ovf,mf} G_EXEC_DESC='Creating ESXi xz archive' G_EXEC xz -9e -T0 -M75% "$image_name.ova" @@ -919,11 +916,11 @@ _EOF_ fi ####### VirtualBox ####################### -if [[ $VMTYPE =~ ^(vbox|all)$ ]] +if [[ $VARIANT =~ ^(vbox|all)$ ]] then image_name=${OUTPUT_IMG_NAME/_VM-/_VirtualBox-} # Reuse or convert raw image to VMDK - if [[ $VMTYPE == 'all' ]] + if [[ $VARIANT == 'all' ]] then G_EXEC mv "${OUTPUT_IMG_NAME/_VM-/_ESXi-}.vmdk" "$image_name.vmdk" else @@ -1070,7 +1067,7 @@ _EOF_ fi ####### Hyper-V ########################## -if [[ $VMTYPE =~ ^(hyperv|all)$ ]] +if [[ $VARIANT =~ ^(hyperv|all)$ ]] then image_name=${OUTPUT_IMG_NAME/_VM-/_Hyper-V-} # Convert raw image to VHDX @@ -1084,7 +1081,7 @@ then fi ####### UTM ############################## -if [[ $VMTYPE =~ ^(utm|all)$ ]] +if [[ $VARIANT =~ ^(utm|all)$ ]] then image_name=${OUTPUT_IMG_NAME/_VM-/_UTM-} # Create directory which is interpreted as VM appliance file on macOS @@ -1250,7 +1247,7 @@ _EOF_ fi ####### Proxmox ############################ -if [[ $VMTYPE =~ ^(proxmox|all)$ ]] +if [[ $VARIANT =~ ^(proxmox|all)$ ]] then # Convert raw image to QCOW2 image_name=${OUTPUT_IMG_NAME/_VM-/_Proxmox-} diff --git a/.github/workflows/dietpi-build.yml b/.github/workflows/dietpi-build.yml index 33b40f021d..9b653722e0 100644 --- a/.github/workflows/dietpi-build.yml +++ b/.github/workflows/dietpi-build.yml @@ -34,10 +34,9 @@ jobs: '"-m 15 -d 6", "-m 15 -d 7", "-m 15 -d 8", '\ '"-m 16 -d 6", "-m 16 -d 7", "-m 16 -d 8", '\ '"-m 20 -d 6 -v all", "-m 20 -d 7 -v all", "-m 20 -d 8 -v all", '\ - '"-m 20 -d 6 -g gpt -i", "-m 20 -d 7 -g gpt -i", "-m 20 -d 8 -g gpt -i", '\ - '"-m 21 -d 6", "-m 21 -d 7", "-m 21 -d 8", '\ - '"-m 21 -d 6 -i", "-m 21 -d 7 -i", "-m 21 -d 8 -i", '\ - '"-m 21 -d 6 -p gpt -i", "-m 21 -d 7 -p gpt -i", "-m 21 -d 8 -p gpt -i", '\ + '"-m 20 -d 6 -v all -g gpt", "-m 20 -d 7 -g gpt -v all", "-m 20 -d 8 -g gpt -v all", '\ + '"-m 21 -d 6 -v all", "-m 21 -d 7 -v all", "-m 21 -d 8 -v all", '\ + '"-m 21 -d 6 -v all -g gpt", "-m 21 -d 7 -g gpt -v all", "-m 21 -d 8 -g gpt -v all", '\ '"-m 40 -d 6", "-m 40 -d 7", "-m 40 -d 8", '\ '"-m 42 -d 6", "-m 42 -d 7", "-m 42 -d 8", '\ '"-m 43 -d 6", "-m 43 -d 7", "-m 43 -d 8", '\ From 6a9e7f18b3b7c9995610ec7fce9753242ce4837b Mon Sep 17 00:00:00 2001 From: StephanStS Date: Sat, 1 Feb 2025 19:30:35 +0100 Subject: [PATCH 106/112] dietpi-software: Certbot moved to "System security" (#7378) Changed grouping of Certbot in accordance with documentation. --- dietpi/dietpi-software | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/dietpi/dietpi-software b/dietpi/dietpi-software index 43d65e75c7..a4e7e2a921 100755 --- a/dietpi/dietpi-software +++ b/dietpi/dietpi-software @@ -1311,6 +1311,12 @@ Available commands: aSOFTWARE_DESC[$software_id]='prevents brute-force attacks with ip ban' aSOFTWARE_CATX[$software_id]=11 aSOFTWARE_DOCS[$software_id]='https://dietpi.com/docs/software/system_security/#fail2ban' + #------------------ + software_id=92 + aSOFTWARE_NAME[$software_id]='Certbot' + aSOFTWARE_DESC[$software_id]="Obtain and renew Let's Encrypt SSL certs for HTTPS" + aSOFTWARE_CATX[$software_id]=11 + aSOFTWARE_DOCS[$software_id]='https://dietpi.com/docs/software/system_security/#lets-encrypt' # Webserver Stacks #-------------------------------------------------------------------------------- @@ -1391,12 +1397,6 @@ Available commands: aSOFTWARE_DESC[$software_id]='Hypertext Preprocessor for dynamic web content' aSOFTWARE_CATX[$software_id]=12 aSOFTWARE_DOCS[$software_id]='https://dietpi.com/docs/software/webserver_stack/#php' - #------------------ - software_id=92 - aSOFTWARE_NAME[$software_id]='Certbot' - aSOFTWARE_DESC[$software_id]="Obtain and renew Let's Encrypt SSL certs for HTTPS" - aSOFTWARE_CATX[$software_id]=12 - aSOFTWARE_DOCS[$software_id]='https://dietpi.com/docs/software/system_security/#lets-encrypt' # DNS Servers #-------------------------------------------------------------------------------- From 501dd7af44fb37a46a6787869e3b2203d4eff896 Mon Sep 17 00:00:00 2001 From: MichaIng Date: Sun, 2 Feb 2025 15:21:13 +0100 Subject: [PATCH 107/112] version: rc up --- .update/version | 2 +- CHANGELOG.txt | 2 +- dietpi/func/dietpi-globals | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.update/version b/.update/version index 2dd1677285..694e4a7368 100644 --- a/.update/version +++ b/.update/version @@ -3,7 +3,7 @@ # Available DietPi version G_REMOTE_VERSION_CORE=9 G_REMOTE_VERSION_SUB=10 -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/CHANGELOG.txt b/CHANGELOG.txt index 24010adf6e..a06c80dabc 100644 --- a/CHANGELOG.txt +++ b/CHANGELOG.txt @@ -1,5 +1,5 @@ v9.10 -(2025-02-01) +(2025-02-02) Enhancements: - RISC-V | Debian Trixie does now support this architecture, hence our VisionFive 2 and Star64 images are now provided with Debian Trixie/testing instead of Debian Sid/unstable, and existing systems will be migrated to the Trixie suite. diff --git a/dietpi/func/dietpi-globals b/dietpi/func/dietpi-globals index eac4ba6d49..fe2c2ee40a 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=10 - [[ $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 5e15ff83fc3d8401c8e416d6f5f4651436587b4a Mon Sep 17 00:00:00 2001 From: StephanStS Date: Sun, 2 Feb 2025 16:38:33 +0100 Subject: [PATCH 108/112] dietpi-software: Docs links adjusted with changed DietPi-Docs grouping (#7379) --- dietpi/dietpi-software | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/dietpi/dietpi-software b/dietpi/dietpi-software index a4e7e2a921..acab09a154 100755 --- a/dietpi/dietpi-software +++ b/dietpi/dietpi-software @@ -1132,13 +1132,13 @@ Available commands: aSOFTWARE_NAME[$software_id]='Docker' aSOFTWARE_DESC[$software_id]='Build, ship, and run distributed applications' aSOFTWARE_CATX[$software_id]=8 - aSOFTWARE_DOCS[$software_id]='https://dietpi.com/docs/software/programming/#docker' + aSOFTWARE_DOCS[$software_id]='https://dietpi.com/docs/software/system_stats/#docker' #------------------ software_id=185 aSOFTWARE_NAME[$software_id]='Portainer' aSOFTWARE_DESC[$software_id]='Simplifies container management in Docker (standalone host)' aSOFTWARE_CATX[$software_id]=8 - aSOFTWARE_DOCS[$software_id]='https://dietpi.com/docs/software/programming/#portainer' + aSOFTWARE_DOCS[$software_id]='https://dietpi.com/docs/software/system_stats/#portainer' aSOFTWARE_DEPS[$software_id]='162' # - ARMv6: https://dietpi.com/forum/t/armv6-bookworm-software-test-matrix-question/16380/11 aSOFTWARE_AVAIL_G_HW_ARCH[$software_id,1]=0 @@ -1147,7 +1147,7 @@ Available commands: aSOFTWARE_NAME[$software_id]='Docker Compose' aSOFTWARE_DESC[$software_id]='Manage multi-container Docker applications' aSOFTWARE_CATX[$software_id]=8 - aSOFTWARE_DOCS[$software_id]='https://dietpi.com/docs/software/programming/#docker-compose' + aSOFTWARE_DOCS[$software_id]='https://dietpi.com/docs/software/system_stats/#docker-compose' aSOFTWARE_DEPS[$software_id]='162' # - RISC-V: https://download.docker.com/linux/debian/dists/ aSOFTWARE_AVAIL_G_HW_ARCH[$software_id,11]=0 @@ -1759,7 +1759,7 @@ Available commands: aSOFTWARE_NAME[$software_id]='Node.js' aSOFTWARE_DESC[$software_id]='JavaScript runtime environment' aSOFTWARE_CATX[$software_id]=24 - aSOFTWARE_DOCS[$software_id]='https://dietpi.com/docs/software/webserver_stack/#nodejs' + aSOFTWARE_DOCS[$software_id]='https://dietpi.com/docs/software/programming/#nodejs' #------------------ software_id=150 aSOFTWARE_NAME[$software_id]='Mono' @@ -1773,7 +1773,7 @@ Available commands: aSOFTWARE_NAME[$software_id]='PHP Composer' aSOFTWARE_DESC[$software_id]='Package manager for PHP' aSOFTWARE_CATX[$software_id]=24 - aSOFTWARE_DOCS[$software_id]='https://dietpi.com/docs/software/webserver_stack/#php-composer' + aSOFTWARE_DOCS[$software_id]='https://dietpi.com/docs/software/programming/#php-composer' aSOFTWARE_DEPS[$software_id]='89' # Desktop Utilities From 3e7e8b7de0514bbb2c524559df909dcde7e48985 Mon Sep 17 00:00:00 2001 From: MichaIng Date: Mon, 3 Feb 2025 14:55:19 +0100 Subject: [PATCH 109/112] dietpi-software: update fallback URLs --- dietpi/dietpi-software | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/dietpi/dietpi-software b/dietpi/dietpi-software index acab09a154..8b7fbca5aa 100755 --- a/dietpi/dietpi-software +++ b/dietpi/dietpi-software @@ -7337,7 +7337,7 @@ _EOF_ if To_Install 179 komga # Komga then - local fallback_url='https://github.com/gotson/komga/releases/download/1.19.0/komga-1.19.0.jar' + local fallback_url='https://github.com/gotson/komga/releases/download/1.19.1/komga-1.19.1.jar' Download_Install "$(curl -sSfL 'https://api.github.com/repos/gotson/komga/releases/latest' | mawk -F\" '/^ *"browser_download_url": ".*\/komga-[^"\/]*\.jar"$/{print $4}')" /mnt/dietpi_userdata/komga/komga.jar # User @@ -9472,7 +9472,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.17.2.9580/Radarr.master.5.17.2.9580.linux-core-$arch.tar.gz" + local fallback_url="https://github.com/Radarr/Radarr/releases/download/v5.18.4.9674/Radarr.master.5.18.4.9674.linux-core-$arch.tar.gz" fi Download_Install "$url" @@ -9562,7 +9562,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.8.2.4493/Lidarr.master.2.8.2.4493.linux-core-$arch.tar.gz" + local fallback_url="https://github.com/Lidarr/Lidarr/releases/download/v2.9.6.4552/Lidarr.master.2.9.6.4552.linux-core-$arch.tar.gz" fi Download_Install "$url" From 305fbfb47b431bc17ce8ab4dc973208bd16f94ef Mon Sep 17 00:00:00 2001 From: MichaIng Date: Mon, 3 Feb 2025 23:30:31 +0100 Subject: [PATCH 110/112] v9.10 - DietPi-Software | Switch to Java 25 on Trixie, next LTS --- dietpi/dietpi-software | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/dietpi/dietpi-software b/dietpi/dietpi-software index 8b7fbca5aa..584037af08 100755 --- a/dietpi/dietpi-software +++ b/dietpi/dietpi-software @@ -2852,7 +2852,7 @@ unix_socket_directories = '/run/postgresql'" > "$i/00dietpi.conf" # Trixie without openHAB if (( $G_DISTRO > 7 && ${aSOFTWARE_INSTALL_STATE[206]} < 1 )) then - local version=21 + local version=25 # Bullseye/Bookworm else @@ -2868,7 +2868,7 @@ unix_socket_directories = '/run/postgresql'" > "$i/00dietpi.conf" # Trixie without openHAB if (( $G_DISTRO > 7 && ${aSOFTWARE_INSTALL_STATE[206]} < 1 )) then - local version=21 + local version=25 # Bullseye/Bookworm else From 3bd60e9318f99bcc3775046ce1a9419f535bce1c Mon Sep 17 00:00:00 2001 From: MichaIng Date: Fri, 7 Feb 2025 00:38:55 +0100 Subject: [PATCH 111/112] dietpi-software: Gitea: Update fallback URL --- dietpi/dietpi-software | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/dietpi/dietpi-software b/dietpi/dietpi-software index 584037af08..21335949bc 100755 --- a/dietpi/dietpi-software +++ b/dietpi/dietpi-software @@ -3766,7 +3766,7 @@ _EOF_ G_EXEC chmod 700 /var/www/phpmyadmin/tmp fi - if To_Install 125 synapse # Synapse + if To_Install 125 synapse # Synapse: https://element-hq.github.io/synapse/latest/setup/installation.html#installing-as-a-python-module-from-pypi then # APT deps for Synapse with PostgreSQL case $G_HW_ARCH in @@ -10535,7 +10535,7 @@ _EOF_ *) local arch='arm-6';; esac - local fallback_url="https://github.com/go-gitea/gitea/releases/download/v1.23.1/gitea-1.23.1-linux-$arch.xz" + local fallback_url="https://github.com/go-gitea/gitea/releases/download/v1.23.3/gitea-1.23.3-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 From e01cd7b856577657b1703ea086ab87315b3d24c3 Mon Sep 17 00:00:00 2001 From: MichaIng Date: Fri, 7 Feb 2025 00:43:13 +0100 Subject: [PATCH 112/112] dietpi-globals: G_CONFIG_INJECT: Fix detection of values with spaces For whichever reason, G_CONFIG_INJECT assumed that the desired value is already set, even if the line contains more characters after the desired value. Probably the idea was to allow comments after the line. However, of course values themselves can contain spaces, and it can be intended to remove those parts. This was found when trying to remove kernel command-line parameters from the end of the line, which did not work as of above bug. --- dietpi/func/dietpi-globals | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dietpi/func/dietpi-globals b/dietpi/func/dietpi-globals index fe2c2ee40a..be58c97e30 100644 --- a/dietpi/func/dietpi-globals +++ b/dietpi/func/dietpi-globals @@ -2077,7 +2077,7 @@ NB: # shellcheck disable=SC2015 G_DIETPI-NOTIFY 0 "Current setting in $yellow$file$reset will be preserved: $yellow$([[ $GCI_PASSWORD == 1 ]] && echo "${setting_raw//\\/\\\\}" || grep -Em1 "^[[:blank:]]*$pattern" "$file" | sed 's|\\|\\\\|g')$reset" - elif error=$(grep -Eq "^[[:blank:]]*$setting([[:space:]]|$)" "$file" 2>&1); then + elif error=$(grep -Eq "^[[:blank:]]*$setting$" "$file" 2>&1); then # shellcheck disable=SC2015 G_DIETPI-NOTIFY 0 "Desired setting in $yellow$file$reset was already set: $yellow$([[ $GCI_PASSWORD == 1 ]] && echo "${setting_raw//\\/\\\\}" || grep -Em1 "^[[:blank:]]*$pattern" "$file" | sed 's|\\|\\\\|g')$reset"