From 114f9e12d4590c68c9dbeba4fd38aa19644752a0 Mon Sep 17 00:00:00 2001 From: MichaIng Date: Sun, 12 Feb 2023 01:54:23 +0100 Subject: [PATCH 001/155] v8.15 - CI | Add Orange Pi 5 to "all" image builds --- .github/workflows/dietpi-build.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/dietpi-build.yml b/.github/workflows/dietpi-build.yml index 146f9991e8..dac9fc19f8 100644 --- a/.github/workflows/dietpi-build.yml +++ b/.github/workflows/dietpi-build.yml @@ -73,7 +73,8 @@ jobs: '"-m 76 -d 6", "-m 76 -d 7", '\ '"-m 77 -d 6", "-m 77 -d 7", '\ '"-m 78 -d 6", "-m 78 -d 7", '\ - '"-m 79 -d 6", "-m 79 -d 7"]' >> "$GITHUB_OUTPUT" + '"-m 79 -d 6", "-m 79 -d 7", '\ + '"-m 80 -d 6", "-m 80 -d 7"]' >> "$GITHUB_OUTPUT" else echo buildargs='["${{ github.event.inputs.buildargs }}"]' >> "$GITHUB_OUTPUT" fi From 9bde7a28eae30fd5ca7b0a86c0cc2e7a3ce942ed Mon Sep 17 00:00:00 2001 From: MichaIng Date: Sun, 12 Feb 2023 02:17:07 +0100 Subject: [PATCH 002/155] v8.15 - DietPi-Imager | Reorder device specific kernel/bootloader/firmware installs and fix VM builds that way --- .build/images/dietpi-installer | 186 ++++++++++++++++----------------- 1 file changed, 93 insertions(+), 93 deletions(-) diff --git a/.build/images/dietpi-installer b/.build/images/dietpi-installer index c860ea13f6..912a1c9874 100644 --- a/.build/images/dietpi-installer +++ b/.build/images/dietpi-installer @@ -899,52 +899,52 @@ fi' /boot/boot.cmd # All but VMs: Drive power management control (( $G_HW_MODEL == 20 )) || aPACKAGES_REQUIRED_INSTALL+=('hdparm') + fi - # x86_64: Kernel/bootloader/initramfs - # - We need to install those directly to allow G_AGA() autoremove possible older packages later: https://github.com/MichaIng/DietPi/issues/1285#issuecomment-354602594 - if (( $G_HW_ARCH == 10 )) - then - local apackages=('linux-image-amd64' 'os-prober') - - # As linux-image-amd64 pulls initramfs, pre-install the intended implementation here already - if (( $G_HW_MODEL == 20 )) - then - # VM: Install tiny-initramfs with limited features but sufficient and much smaller + faster - apackages+=('tiny-initramfs') - else - # Install and use zstd for better initramfs compression - apackages+=('initramfs-tools' 'zstd') - G_CONFIG_INJECT 'COMPRESS=' 'COMPRESS=zstd' /etc/initramfs-tools/initramfs.conf - fi + # Assure that dir for additional sources is present + [[ -d '/etc/apt/sources.list.d' ]] || G_EXEC mkdir /etc/apt/sources.list.d - # Grub EFI with secure boot compatibility - if [[ -d '/boot/efi' ]] || dpkg-query -s 'grub-efi-amd64' &> /dev/null - then - apackages+=('grub-efi-amd64' 'grub-efi-amd64-signed' 'shim-signed') + ### Kernel/bootloader/initramfs packages: We need to install those directly to allow G_AGA() autoremove possible older packages later: https://github.com/MichaIng/DietPi/issues/1285#issuecomment-354602594 - # Grub BIOS - else - apackages+=('grub-pc') - fi + # x86_64 PCs and VMs + if [[ $G_HW_ARCH == 10 && $G_HW_MODEL =~ ^20|21$ ]] + then + local apackages=('linux-image-amd64' 'os-prober') - # Skip creating kernel symlinks and remove existing ones - echo 'do_symlinks=0' > /etc/kernel-img.conf - G_EXEC rm -f /{,boot/}{initrd.img,vmlinuz}{,.old} + # As linux-image-amd64 pulls initramfs, pre-install the intended implementation here already + if (( $G_HW_MODEL == 20 )) + then + # VM: Install tiny-initramfs with limited features but sufficient and much smaller + faster + apackages+=('tiny-initramfs') + else + # Install and use zstd for better initramfs compression + apackages+=('initramfs-tools' 'zstd') + G_CONFIG_INJECT 'COMPRESS=' 'COMPRESS=zstd' /etc/initramfs-tools/initramfs.conf + fi - G_AGI "${apackages[@]}" - unset -v apackages + # Grub EFI with secure boot compatibility + if [[ -d '/boot/efi' ]] || dpkg-query -s 'grub-efi-amd64' &> /dev/null + then + apackages+=('grub-efi-amd64' 'grub-efi-amd64-signed' 'shim-signed') - # Remove obsolete combined keyring - [[ -f '/etc/apt/trusted.gpg' ]] && G_EXEC rm /etc/apt/trusted.gpg - [[ -f '/etc/apt/trusted.gpg~' ]] && G_EXEC rm '/etc/apt/trusted.gpg~' + # Grub BIOS + else + apackages+=('grub-pc') fi - fi - # Assure that dir for additional sources is present - [[ -d '/etc/apt/sources.list.d' ]] || G_EXEC mkdir /etc/apt/sources.list.d + # Skip creating kernel symlinks and remove existing ones + echo 'do_symlinks=0' > /etc/kernel-img.conf + G_EXEC rm -f /{,boot/}{initrd.img,vmlinuz}{,.old} + + G_AGI "${apackages[@]}" + unset -v apackages + + # Remove obsolete combined keyring + [[ -f '/etc/apt/trusted.gpg' ]] && G_EXEC rm /etc/apt/trusted.gpg + [[ -f '/etc/apt/trusted.gpg~' ]] && G_EXEC rm '/etc/apt/trusted.gpg~' # DietPi-Build with Armbian kernel/bootloader/firmware - if [[ ( $G_HW_MODEL =~ ^(12|15|16|40|42|43|44|45|46|47|48|52|54|55|56|57|58|59|60|62|63|64|65|66|67|68|72|73|74|77|78|80)$ && -f '/boot/dietpiEnv.txt' ) || ( $G_HW_MODEL == 11 && $(findmnt -Ufnro TARGET -T /boot) == '/' ) || ( $G_HW_MODEL == 10 && $(findmnt -t vfat -M /boot) ) ]] + elif [[ ( $G_HW_MODEL =~ ^12|15|16|40|42|43|44|45|46|47|48|52|54|55|56|57|58|59|60|62|63|64|65|66|67|68|72|73|74|77|78|80$ && -f '/boot/dietpiEnv.txt' ) || ( $G_HW_MODEL == 10 && $(findmnt -t vfat -M /boot) ) || ( $G_HW_MODEL == 11 && $(findmnt -Ufnro TARGET -T /boot) == '/' ) ]] then # Bootstrap Armbian repository G_EXEC eval 'curl -sSfL '\''https://apt.armbian.com/armbian.key'\'' | gpg --dearmor -o /etc/apt/trusted.gpg.d/dietpi-armbian.gpg --yes' @@ -1078,9 +1078,62 @@ _EOF_ G_EXEC rm u-boot-nanopir1.bin fi - # Armbian grab currently installed packages - elif [[ $G_HW_MODEL != 75 && $(dpkg-query -Wf '${Package} ') == *'armbian'* ]]; then + # RPi + elif (( $G_HW_MODEL < 10 )) + then + # ARMv6/7: Add raspi-copies-and-fills + local a32bit=() + [[ $G_HW_ARCH == 3 ]] || a32bit=('raspi-copies-and-fills') + # Install our own raspberrypi-sys-mods + G_EXEC curl -sSfO 'https://dietpi.com/downloads/binaries/raspberrypi-sys-mods.deb' + G_AGI raspberrypi-bootloader raspberrypi-kernel libraspberrypi0 libraspberrypi-bin ./raspberrypi-sys-mods.deb raspberrypi-archive-keyring "${a32bit[@]}" + G_EXEC rm raspberrypi-sys-mods.deb + + # https://github.com/RPi-Distro/raspberrypi-sys-mods/pull/60 + [[ -f '/etc/apt/trusted.gpg.d/microsoft.gpg' ]] && G_EXEC rm /etc/apt/trusted.gpg.d/microsoft.gpg + [[ -f '/etc/apt/sources.list.d/vscode.list' ]] && G_EXEC rm /etc/apt/sources.list.d/vscode.list + + # Move Raspbian key to active place and remove obsolete combined keyring + [[ -f '/usr/share/keyrings/raspbian-archive-keyring.gpg' ]] && G_EXEC ln -sf /usr/share/keyrings/raspbian-archive-keyring.gpg /etc/apt/trusted.gpg.d/raspbian-archive-keyring.gpg + [[ -f '/etc/apt/trusted.gpg' ]] && G_EXEC rm /etc/apt/trusted.gpg + [[ -f '/etc/apt/trusted.gpg~' ]] && G_EXEC rm '/etc/apt/trusted.gpg~' + + # Quartz64 + elif [[ $G_HW_MODEL == 49 && $(findmnt -Ufnro TARGET -T /boot) == '/' ]] + then + case $HW_VARIANT in + 2) variant='quartz64b';; + 3) variant='soquartz';; + *) variant='quartz64a';; + esac + G_EXEC curl -sSfO "https://dietpi.com/downloads/binaries/firmware-$variant.deb" + G_EXEC_OUTPUT=1 G_EXEC dpkg -i "firmware-$variant.deb" + G_EXEC rm "firmware-$variant.deb" + # NanoPi R5S + elif (( $G_HW_MODEL == 76 )) && { [[ ! $(find /lib/modules -mindepth 1 -maxdepth 1 -type d) ]] || dpkg-query -s 'firmware-nanopi5' &> /dev/null; } + then + G_EXEC curl -sSfO 'https://dietpi.com/downloads/binaries/firmware-nanopi5.deb' + G_EXEC_OUTPUT=1 G_EXEC dpkg -i firmware-nanopi5.deb + G_EXEC rm firmware-nanopi5.deb + + # NanoPi R6S + elif (( $G_HW_MODEL == 79 )) && { [[ ! $(find /lib/modules -mindepth 1 -maxdepth 1 -type d) ]] || dpkg-query -s 'firmware-nanopi6' &> /dev/null; } + then + G_EXEC curl -sSfO 'https://dietpi.com/downloads/binaries/firmware-nanopi6.deb' + G_EXEC_OUTPUT=1 G_EXEC dpkg -i firmware-nanopi6.deb + G_EXEC rm firmware-nanopi6.deb + + # NanoPi M2/T2/Fire2 Linux 4.4: Requires dedicated boot partition, starting at 4 MiB for U-Boot, with ext4 filesystem + elif [[ $G_HW_MODEL == 61 && $(findmnt -Ufnro FSTYPE -M /boot) == 'ext4' ]] && (( $(sfdisk -qlo Start "$BOOT_DEVICE" | mawk 'NR==2') >= 8192 )) + then + G_EXEC curl -sSfO 'https://dietpi.com/downloads/binaries/firmware-nanopi2.deb' + G_EXEC_OUTPUT=1 G_EXEC dpkg -i firmware-nanopi2.deb + G_EXEC rm firmware-nanopi2.deb + + # Armbian grab currently installed packages + elif [[ $G_HW_MODEL != 75 && $(dpkg-query -Wf '${Package} ') == *'armbian'* ]] + then systemctl stop armbian-* local apackages=( @@ -1143,29 +1196,9 @@ _EOF_ G_EXEC rm -Rf /etc/apt/sources.list.d/{,.??,.[^.]}* G_EXEC eval "echo 'deb https://apt.armbian.com/ ${DISTRO_TARGET_NAME/bookworm/bullseye} main' > /etc/apt/sources.list.d/dietpi-armbian.list" - # RPi - elif (( $G_HW_MODEL < 10 )); then - - # ARMv6/7: Add raspi-copies-and-fills - local a32bit=() - [[ $G_HW_ARCH == 3 ]] || a32bit=('raspi-copies-and-fills') - # Install our own raspberrypi-sys-mods - G_EXEC curl -sSfO 'https://dietpi.com/downloads/binaries/raspberrypi-sys-mods.deb' - G_AGI raspberrypi-bootloader raspberrypi-kernel libraspberrypi0 libraspberrypi-bin ./raspberrypi-sys-mods.deb raspberrypi-archive-keyring "${a32bit[@]}" - G_EXEC rm raspberrypi-sys-mods.deb - - # https://github.com/RPi-Distro/raspberrypi-sys-mods/pull/60 - [[ -f '/etc/apt/trusted.gpg.d/microsoft.gpg' ]] && G_EXEC rm /etc/apt/trusted.gpg.d/microsoft.gpg - [[ -f '/etc/apt/sources.list.d/vscode.list' ]] && G_EXEC rm /etc/apt/sources.list.d/vscode.list - - # Move Raspbian key to active place and remove obsolete combined keyring - [[ -f '/usr/share/keyrings/raspbian-archive-keyring.gpg' ]] && G_EXEC ln -sf /usr/share/keyrings/raspbian-archive-keyring.gpg /etc/apt/trusted.gpg.d/raspbian-archive-keyring.gpg - [[ -f '/etc/apt/trusted.gpg' ]] && G_EXEC rm /etc/apt/trusted.gpg - [[ -f '/etc/apt/trusted.gpg~' ]] && G_EXEC rm '/etc/apt/trusted.gpg~' - # ROCK Pi S/Radxa Zero: Official legacy Radxa Debian image - elif [[ $G_HW_MODEL =~ ^(73|74)$ ]] && grep -q 'apt\.radxa\.com' /etc/apt/sources.list.d/*.list; then - + elif [[ $G_HW_MODEL =~ ^(73|74)$ ]] && grep -q 'apt\.radxa\.com' /etc/apt/sources.list.d/*.list + then # Install Radxa APT repo cleanly: No Bookworm repo available yet G_EXEC rm -Rf /etc/apt/sources.list.d/{,.??,.[^.]}* G_EXEC eval "curl -sSfL 'https://apt.radxa.com/${DISTRO_TARGET_NAME/bookworm/bullseye}-stable/public.key' | gpg --dearmor -o /etc/apt/trusted.gpg.d/dietpi-radxa.gpg --yes" @@ -1184,39 +1217,6 @@ _EOF_ # And install "file" which is used to detect whether the kernel image is compressed and in case uncompress it (( $G_HW_MODEL == 74 )) && G_AGI initramfs-tools linux-5.10-radxa-zero-latest bc file - # Quartz64 - elif [[ $G_HW_MODEL == 49 && $(findmnt -Ufnro TARGET -T /boot) == '/' ]] - then - case $HW_VARIANT in - 2) variant='quartz64b';; - 3) variant='soquartz';; - *) variant='quartz64a';; - esac - G_EXEC curl -sSfO "https://dietpi.com/downloads/binaries/firmware-$variant.deb" - G_EXEC_OUTPUT=1 G_EXEC dpkg -i "firmware-$variant.deb" - G_EXEC rm "firmware-$variant.deb" - - # NanoPi R5S - elif (( $G_HW_MODEL == 76 )) && { [[ ! $(find /lib/modules -mindepth 1 -maxdepth 1 -type d) ]] || dpkg-query -s 'firmware-nanopi5' &> /dev/null; } - then - G_EXEC curl -sSfO 'https://dietpi.com/downloads/binaries/firmware-nanopi5.deb' - G_EXEC_OUTPUT=1 G_EXEC dpkg -i firmware-nanopi5.deb - G_EXEC rm firmware-nanopi5.deb - - # NanoPi R6S - elif (( $G_HW_MODEL == 79 )) && { [[ ! $(find /lib/modules -mindepth 1 -maxdepth 1 -type d) ]] || dpkg-query -s 'firmware-nanopi6' &> /dev/null; } - then - G_EXEC curl -sSfO 'https://dietpi.com/downloads/binaries/firmware-nanopi6.deb' - G_EXEC_OUTPUT=1 G_EXEC dpkg -i firmware-nanopi6.deb - G_EXEC rm firmware-nanopi6.deb - - # NanoPi M2/T2/Fire2 Linux 4.4: Requires dedicated boot partition, starting at 4 MiB for U-Boot, with ext4 filesystem - elif [[ $G_HW_MODEL == 61 && $(findmnt -Ufnro FSTYPE -M /boot) == 'ext4' ]] && (( $(sfdisk -qlo Start "$BOOT_DEVICE" | mawk 'NR==2') >= 8192 )) - then - G_EXEC curl -sSfO 'https://dietpi.com/downloads/binaries/firmware-nanopi2.deb' - G_EXEC_OUTPUT=1 G_EXEC dpkg -i firmware-nanopi2.deb - G_EXEC rm firmware-nanopi2.deb - # Generic kernel + device tree + U-Boot package auto detect + initramfs-tools (not required on Sparky SBC) elif (( $G_HW_MODEL != 75 && $G_HW_MODEL != 70 )) then From 995808e623bda79960020c7b732123c7a53ad417 Mon Sep 17 00:00:00 2001 From: MichaIng Date: Sun, 12 Feb 2023 02:59:10 +0100 Subject: [PATCH 003/155] v8.15 - DietPi-Software | Navidrom: 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 9b2726beb6..3b48267ba4 100755 --- a/dietpi/dietpi-software +++ b/dietpi/dietpi-software @@ -6192,7 +6192,7 @@ _EOF_ *) local arch='x86_64';; esac - local fallback_url="https://github.com/navidrome/navidrome/releases/download/v0.49.1/navidrome_0.49.1_Linux_$arch.tar.gz" + local fallback_url="https://github.com/navidrome/navidrome/releases/download/v0.49.2/navidrome_0.49.2_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 f8a272aef9e6818b6573fa1daba6712360029b87 Mon Sep 17 00:00:00 2001 From: MichaIng Date: Sun, 12 Feb 2023 18:38:52 +0100 Subject: [PATCH 004/155] v8.15 - Init v8.15 - DietPi-Software | XRDP: TLS via snakeoil certificate is now enabled OOTB. This leads to a warning shown on Windows RDP clients until either a proper certificate signed by a trusted CA is used (e.g. by Let's Encrypt), or it is muted for the particular server via checkbox at the client. Many thanks to @amibumping for providing the needed step: https://github.com/MichaIng/DietPi/issues/5976 --- .meta/dietpi-survey_report | 4 +++- .update/version | 4 ++-- CHANGELOG.txt | 16 ++++++++++++++-- dietpi/dietpi-software | 3 +++ dietpi/func/dietpi-globals | 4 ++-- 5 files changed, 24 insertions(+), 7 deletions(-) diff --git a/.meta/dietpi-survey_report b/.meta/dietpi-survey_report index 538ea442db..34faa51bb9 100755 --- a/.meta/dietpi-survey_report +++ b/.meta/dietpi-survey_report @@ -637,15 +637,17 @@ shopt -s extglob aSOFTWARE_NAME8_12=() aSOFTWARE_NAME8_13=() aSOFTWARE_NAME8_14=() + aSOFTWARE_NAME8_15=() for i in "${!aSOFTWARE_NAME8_11[@]}" do aSOFTWARE_NAME8_12[$i]=${aSOFTWARE_NAME8_11[$i]} aSOFTWARE_NAME8_13[$i]=${aSOFTWARE_NAME8_12[$i]} aSOFTWARE_NAME8_14[$i]=${aSOFTWARE_NAME8_13[$i]} + aSOFTWARE_NAME8_15[$i]=${aSOFTWARE_NAME8_14[$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_NAME8_14[@]}" + for i in "${aSOFTWARE_NAME8_15[@]}" do aSOFTWARE["$i"]=0 done diff --git a/.update/version b/.update/version index 94be099780..13874ca67a 100644 --- a/.update/version +++ b/.update/version @@ -2,8 +2,8 @@ # shellcheck disable=SC2034 # Available DietPi version G_REMOTE_VERSION_CORE=8 -G_REMOTE_VERSION_SUB=14 -G_REMOTE_VERSION_RC=2 +G_REMOTE_VERSION_SUB=15 +G_REMOTE_VERSION_RC=-1 # Minimum DietPi version to allow update G_MIN_VERSION_CORE=6 G_MIN_VERSION_SUB=14 diff --git a/CHANGELOG.txt b/CHANGELOG.txt index 424fdeba09..624ee9f571 100644 --- a/CHANGELOG.txt +++ b/CHANGELOG.txt @@ -1,3 +1,17 @@ +v8.15 +(2023-03-11) + +Enhancements: +- DietPi-Software | XRDP: TLS via snakeoil certificate is now enabled OOTB. This leads to a warning shown on Windows RDP clients until either a proper certificate signed by a trusted CA is used (e.g. by Let's Encrypt), or it is muted for the particular server via checkbox at the client. Many thanks to @amibumping for providing the needed step: https://github.com/MichaIng/DietPi/issues/5976 + +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/XXXX + +For all additional issues that may appear after release, please see the following link for active tickets: https://github.com/MichaIng/DietPi/issues + +----------------------------------------------------------------------------------------------------------- + v8.14 (2023-02-11) @@ -37,8 +51,6 @@ 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/6139 -For all additional issues that may appear after release, please see the following link for active tickets: https://github.com/MichaIng/DietPi/issues - ----------------------------------------------------------------------------------------------------------- v8.13 diff --git a/dietpi/dietpi-software b/dietpi/dietpi-software index 3b48267ba4..2c206e89d8 100755 --- a/dietpi/dietpi-software +++ b/dietpi/dietpi-software @@ -3175,6 +3175,9 @@ _EOF_ # Workaround for failing mouse and keyboard input: https://github.com/neutrinolabs/xorgxrdp/issues/164 # - Solved on Bookworm, but G_CONFIG_INJECT detects and skips it then, and keeping it covers dist-upgraded systems. GGI_PRESERVE=1 G_CONFIG_INJECT 'Option[[:blank:]]+"DefaultServerLayout"' ' Option "DefaultServerLayout" "X11 Server"' /etc/X11/xrdp/xorg.conf 'Section[[:blank:]]+"ServerFlags"' + + # Enable TLS with snakeoil certificate: https://github.com/MichaIng/DietPi/issues/5976 + G_EXEC usermod -aG ssl-cert xrdp fi if To_Install 30 # NoMachine diff --git a/dietpi/func/dietpi-globals b/dietpi/func/dietpi-globals index a1dcc720c6..275dd8a88b 100644 --- a/dietpi/func/dietpi-globals +++ b/dietpi/func/dietpi-globals @@ -58,8 +58,8 @@ [[ -f '/boot/dietpi/.version' ]] && . /boot/dietpi/.version # - Assign defaults/code version as fallback [[ $G_DIETPI_VERSION_CORE ]] || G_DIETPI_VERSION_CORE=8 - [[ $G_DIETPI_VERSION_SUB ]] || G_DIETPI_VERSION_SUB=14 - [[ $G_DIETPI_VERSION_RC ]] || G_DIETPI_VERSION_RC=2 + [[ $G_DIETPI_VERSION_SUB ]] || G_DIETPI_VERSION_SUB=15 + [[ $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 fb38b1b410714af99281aa8882158afddfc0d78c Mon Sep 17 00:00:00 2001 From: MichaIng Date: Sun, 12 Feb 2023 20:27:53 +0100 Subject: [PATCH 005/155] v8.15 - DietPi-Build | Syntax --- .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 786ca8136c..f3664e79b9 100755 --- a/.build/images/dietpi-build +++ b/.build/images/dietpi-build @@ -525,7 +525,7 @@ then G_EXEC sed -Ei 's/^(arm_freq|over_voltage)=/#\1=/' /boot/config.txt # Sparky SBC: Fix Roon Bridge: https://dietpi.com/forum/t/allogui-not-working-apache-service-doesnt-start/15708/13 -elfi (( $G_HW_MODEL == 70 )) +elif (( $G_HW_MODEL == 70 )) then mkdir /etc/systemd/system/roonbridge.service.d echo -e '[Service]\nAmbientCapabilities=' > /etc/systemd/system/roonbridge.service.d/dietpi-no-caps.conf From 90127ecc43f8f3fa1bba9091725058f6184c5f6a Mon Sep 17 00:00:00 2001 From: MichaIng Date: Sun, 12 Feb 2023 21:06:16 +0100 Subject: [PATCH 006/155] v8.15 - DietPi-Software | Docker Compose: Resolved an issue where installing and uninstalling Docker Compose could have failed if pip was installed without the distutils module. Many thanks to @bccarbone for reporting this issue: https://github.com/MichaIng/DietPi/issues/6153 --- CHANGELOG.txt | 1 + dietpi/dietpi-software | 6 +++--- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.txt b/CHANGELOG.txt index 624ee9f571..ed7c267ed7 100644 --- a/CHANGELOG.txt +++ b/CHANGELOG.txt @@ -5,6 +5,7 @@ Enhancements: - DietPi-Software | XRDP: TLS via snakeoil certificate is now enabled OOTB. This leads to a warning shown on Windows RDP clients until either a proper certificate signed by a trusted CA is used (e.g. by Let's Encrypt), or it is muted for the particular server via checkbox at the client. Many thanks to @amibumping for providing the needed step: https://github.com/MichaIng/DietPi/issues/5976 Bug fixes: +- DietPi-Software | Docker Compose: Resolved an issue where installing and uninstalling Docker Compose could have failed if pip was installed without the distutils module. Many thanks to @bccarbone for reporting this issue: https://github.com/MichaIng/DietPi/issues/6153 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/XXXX diff --git a/dietpi/dietpi-software b/dietpi/dietpi-software index 2c206e89d8..2d9e39a35c 100755 --- a/dietpi/dietpi-software +++ b/dietpi/dietpi-software @@ -10405,8 +10405,8 @@ _EOF_ if To_Install 134 # Docker Compose then - command -v pip3 > /dev/null && G_EXEC_OUTPUT=1 G_EXEC pip3 uninstall -y docker-compose # Pre-v8.2 [[ -f '/usr/local/bin/docker-compose' ]] && G_EXEC rm /usr/local/bin/docker-compose # Pre-v8.14 + command -v docker-compose > /dev/null && command -v pip3 > /dev/null && G_EXEC_OUTPUT=1 G_EXEC pip3 uninstall -y docker-compose # Pre-v8.2 G_AGI docker-compose-plugin fi @@ -13773,9 +13773,9 @@ _EOF_ if To_Uninstall 134 # Docker Compose then - command -v pip3 > /dev/null && G_EXEC_OUTPUT=1 G_EXEC pip3 uninstall -y docker-compose # Pre-v8.2 - [[ -f '/usr/local/bin/docker-compose' ]] && G_EXEC rm /usr/local/bin/docker-compose # Pre-v8.14 G_AGP docker-compose-plugin + [[ -f '/usr/local/bin/docker-compose' ]] && G_EXEC rm /usr/local/bin/docker-compose # Pre-v8.14 + command -v docker-compose > /dev/null && command -v pip3 > /dev/null && G_EXEC_OUTPUT=1 G_EXEC pip3 uninstall -y docker-compose # Pre-v8.2 fi if To_Uninstall 162 # Docker From 18c58d4a04af4906c85cb0cdec4985cfdedc6e68 Mon Sep 17 00:00:00 2001 From: MichaIng Date: Mon, 13 Feb 2023 01:36:25 +0100 Subject: [PATCH 007/155] v8.15 (#6161) - CI | Add checks for trailing space and multiple newlines - Coding | Remove trailing spaces and multiple newlines --- .build/images/OdroidC1/boot.ini | 1 - .build/images/dietpi-build | 2 +- .build/images/dietpi-imager | 4 ++-- .build/images/dietpi-installer | 2 +- .build/software/gmediarender/build.bash | 2 +- .../software/raspberrypi-sys-mods/build.bash | 16 ++++++++-------- .build/software/shairport-sync/build.bash | 2 +- .conf/dps_119/cava.conf | 1 - .conf/dpv/protonvpn.template | 1 - .github/workflows/gogs.yml | 6 +++--- .github/workflows/shellcheck.yml | 19 +++++++++++++++---- .meta/dietpi-survey_report | 1 - .update/patches | 2 +- CONTRIBUTING.md | 2 +- README.md | 4 ++-- dietpi/dietpi-drive_manager | 1 - dietpi/func/dietpi-set_hardware | 1 - 17 files changed, 36 insertions(+), 31 deletions(-) diff --git a/.build/images/OdroidC1/boot.ini b/.build/images/OdroidC1/boot.ini index be0c62b3ae..7b25a6a967 100644 --- a/.build/images/OdroidC1/boot.ini +++ b/.build/images/OdroidC1/boot.ini @@ -53,7 +53,6 @@ setenv monitor_onoff "true" # - This might break boot for some brand models of cards. #setenv disableuhs "disableuhs" - # Disable VPU (Video decoding engine, saves RAM!!!) # - 0 = disabled # - 1 = enabled (default) diff --git a/.build/images/dietpi-build b/.build/images/dietpi-build index f3664e79b9..cc3fa8967e 100755 --- a/.build/images/dietpi-build +++ b/.build/images/dietpi-build @@ -151,7 +151,7 @@ case $DISTRO in 21) ((root_size+=448));; *) :;; esac - ;; + ;; *) G_DIETPI-NOTIFY 1 "Invalid distro \"$DISTRO\" passed, aborting..."; exit 1;; esac diff --git a/.build/images/dietpi-imager b/.build/images/dietpi-imager index b1858a17b7..a1e343a859 100644 --- a/.build/images/dietpi-imager +++ b/.build/images/dietpi-imager @@ -513,13 +513,13 @@ [[ $(readlink -f "$PWD/$OUTPUT_IMG_NAME.$OUTPUT_IMG_EXT") != "$(readlink -f "$FP_SOURCE_IMG")" ]] && G_EXEC mv "$FP_SOURCE_IMG" "$OUTPUT_IMG_NAME.$OUTPUT_IMG_EXT" # Check for sufficient free disk space to store the 7z archive with 100 MiB buffer - G_CHECK_FREESPACE . $(( $IMAGE_SIZE * 15/100 / 1024**2 + 100 )) || exit 1 + G_CHECK_FREESPACE . $(( $IMAGE_SIZE * 15/100 / 1024**2 + 100 )) || exit 1 # Drive source and dd target elif [[ $CLONING_TOOL == 'dd' ]] then # Check for sufficient free disk space to store the image and the 7z archive with 100 MiB buffer - G_CHECK_FREESPACE . $(( $IMAGE_SIZE * 115/100 / 1024**2 + 100 )) || exit 1 + G_CHECK_FREESPACE . $(( $IMAGE_SIZE * 115/100 / 1024**2 + 100 )) || exit 1 G_DIETPI-NOTIFY 2 "Creating final image with actually used size: $(( $IMAGE_SIZE / 1024**2 + 1 )) MiB" G_EXEC_OUTPUT=1 G_EXEC dd if="$FP_SOURCE" of="$OUTPUT_IMG_NAME.$OUTPUT_IMG_EXT" bs=1M status=progress count=$(( $IMAGE_SIZE / 1024**2 + 1 )) diff --git a/.build/images/dietpi-installer b/.build/images/dietpi-installer index 912a1c9874..15ba85abd8 100644 --- a/.build/images/dietpi-installer +++ b/.build/images/dietpi-installer @@ -1252,7 +1252,7 @@ _EOF_ aPACKAGES_REQUIRED_INSTALL+=('firmware-misc-nonfree') # Non-free misc incl. Ralink and MediaTek WiFi/BT aPACKAGES_REQUIRED_INSTALL+=('firmware-realtek') # Realtek Eth/WiFi/BT if (( $WIFI_REQUIRED )) - then + then aPACKAGES_REQUIRED_INSTALL+=('firmware-atheros') # Qualcomm/Atheros WiFi/BT aPACKAGES_REQUIRED_INSTALL+=('firmware-brcm80211') # Broadcom WiFi/BT aPACKAGES_REQUIRED_INSTALL+=('firmware-iwlwifi') # Intel WiFi/BT diff --git a/.build/software/gmediarender/build.bash b/.build/software/gmediarender/build.bash index 716fb4b413..c3187e0808 100644 --- a/.build/software/gmediarender/build.bash +++ b/.build/software/gmediarender/build.bash @@ -168,7 +168,7 @@ Homepage: https://github.com/hzeller/gmrender-resurrect Vcs-Git: https://github.com/hzeller/gmrender-resurrect.git Vcs-Browser: https://github.com/hzeller/gmrender-resurrect Description: Minimalist UPNP AV renderer - gmrender-resurrect is a minimalist UPNP AV renderer that can be used to + gmrender-resurrect is a minimalist UPNP AV renderer that can be used to play music controlled by a UPNP AV control point. This package contains only a renderer and will therefore require these things to be installed either on this device or another device on the local network in order to diff --git a/.build/software/raspberrypi-sys-mods/build.bash b/.build/software/raspberrypi-sys-mods/build.bash index b78551ca79..bb611c0955 100644 --- a/.build/software/raspberrypi-sys-mods/build.bash +++ b/.build/software/raspberrypi-sys-mods/build.bash @@ -35,15 +35,15 @@ License: BSD-3-Clause without specific prior written permission. . THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE HOLDERS OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, - EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, - PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF - LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. _EOF_ diff --git a/.build/software/shairport-sync/build.bash b/.build/software/shairport-sync/build.bash index 947e64f94b..1b52571438 100644 --- a/.build/software/shairport-sync/build.bash +++ b/.build/software/shairport-sync/build.bash @@ -76,7 +76,7 @@ general = // mdns_backend = "avahi"; // Run "shairport-sync -h" to get a list of all mdns_backends. The default is the first one. // interface = "name"; // Use this advanced setting to specify the interface on which Shairport Sync should provide its service. Leave it commented out to get the default, which is to select the interface(s) automatically. // port = ; // Listen for service requests on this port. 5000 for AirPlay 1, 7000 for AirPlay 2 -// udp_port_base = 6001; // (AirPlay 1 only) start allocating UDP ports from this port number when needed +// udp_port_base = 6001; // (AirPlay 1 only) start allocating UDP ports from this port number when needed // udp_port_range = 10; // (AirPlay 1 only) look for free ports in this number of places, starting at the UDP port base. Allow at least 10, though only three are needed in a steady state. // airplay_device_id_offset = 0; // (AirPlay 2 only) add this to the default airplay_device_id calculated from one of the device's MAC address // airplay_device_id = 0xL; // (AirPlay 2 only) use this as the airplay_device_id e.g. 0xDCA632D4E8F3L -- remember the "L" at the end as it's a 64-bit quantity! diff --git a/.conf/dps_119/cava.conf b/.conf/dps_119/cava.conf index 85e3ab284b..a2b05b53a5 100644 --- a/.conf/dps_119/cava.conf +++ b/.conf/dps_119/cava.conf @@ -112,7 +112,6 @@ source = /tmp/mpd.fifo # Accepts only non-negative values. 50 means half gravity, 200 means double. Set to 0 to disable "drop off". ; gravity = 100 - # In bar height, bars that would have been lower that this will not be drawn. ; ignore = 0 diff --git a/.conf/dpv/protonvpn.template b/.conf/dpv/protonvpn.template index 0d9cd57bee..c11b491f3a 100644 --- a/.conf/dpv/protonvpn.template +++ b/.conf/dpv/protonvpn.template @@ -50,7 +50,6 @@ auth-user-pass pull fast-io - -----BEGIN CERTIFICATE----- MIIFozCCA4ugAwIBAgIBATANBgkqhkiG9w0BAQ0FADBAMQswCQYDVQQGEwJDSDEV diff --git a/.github/workflows/gogs.yml b/.github/workflows/gogs.yml index 0e908dc3cb..73cadf96b0 100644 --- a/.github/workflows/gogs.yml +++ b/.github/workflows/gogs.yml @@ -63,18 +63,18 @@ jobs: dist_to_name=([5]='buster' [6]='bullseye' [7]='bookworm') arch_name=${arch_to_name[$arch]} dist_name=${dist_to_name[$dist]} - + # SSH server and client keys mkdir ~/.ssh umask 377 echo '${{ secrets.KNOWN_HOSTS }}' > ~/.ssh/known_hosts echo '${{ secrets.SSH_KEY }}' > ~/.ssh/id_ed25519 - + # Upload curl -T "rootfs/gogs_$arch_name.7z" --key ~/.ssh/id_ed25519 "${{ secrets.UPLOAD_URL }}$dist_name/" curl 'https://api.cloudflare.com/client/v4/zones/${{ secrets.CF_ZONE }}/purge_cache' -H 'Authorization: Bearer ${{ secrets.CF_TOKEN }}' -H 'Content-Type: application/json' \ --data "{\"files\":[\"https://dietpi.com/downloads/binaries/$dist_name/testing/\",\"https://dietpi.com/downloads/binaries/$dist_name/testing/gogs_$arch_name.7z\"]}" - + # Pre-v8.14 ARMv6 zip upload [ "$arch$dist" = '15' ] || exit 0 curl -T 'rootfs/gogs_armv6.zip' --key ~/.ssh/id_ed25519 '${{ secrets.UPLOAD_URL }}all/' diff --git a/.github/workflows/shellcheck.yml b/.github/workflows/shellcheck.yml index deb910f07c..2dd6ff8639 100644 --- a/.github/workflows/shellcheck.yml +++ b/.github/workflows/shellcheck.yml @@ -10,22 +10,26 @@ jobs: if: github.event_name != 'pull_request' || github.event.pull_request.head.repo.owner.login != github.event.pull_request.base.repo.owner.login # https://github.com/actions/runner-images runs-on: ubuntu-22.04 + defaults: + run: + shell: sh steps: - name: Setup tmpfs - run: sudo mount -t tmpfs -o "noatime,lazytime,uid=$UID" tmpfs "$GITHUB_WORKSPACE" + run: sudo mount -t tmpfs -o "noatime,lazytime,uid=$(id -u)" tmpfs "$GITHUB_WORKSPACE" - uses: actions/checkout@v3 - name: Setup DietPi-Globals run: | sudo mkdir -p /boot/dietpi/func sudo cp dietpi/func/dietpi-globals /boot/dietpi/func/ sudo ./dietpi/func/dietpi-obtain_hw_model - echo -e 'G_HW_MEMORY_SIZE=1024\nG_HW_ONBOARD_WIFI=1' | sudo tee -a /boot/dietpi/.hw_model + echo 'G_HW_MEMORY_SIZE=1024\nG_HW_ONBOARD_WIFI=1' | sudo tee -a /boot/dietpi/.hw_model - name: Download shellcheck run: | curl -sSfL "$(curl -sSfH 'Authorization: Bearer ${{ secrets.GITHUB_TOKEN }}' 'https://api.github.com/repos/koalaman/shellcheck/releases/latest' | mawk -F\" '/"browser_download_url.*\.linux\.x86_64\.tar\.xz"/{print $4;exit}')" -o shellcheck.tar.xz tar --wildcards --strip-components=1 -xf shellcheck.tar.xz '*/shellcheck' rm shellcheck.tar.xz - name: Run shellcheck + shell: bash run: | mapfile -t FILES < <(find . -not \( -path './.git' -prune \) -type f) # read all files to array for i in "${!FILES[@]}" @@ -34,6 +38,13 @@ jobs: [[ $(mawk '/^#!.*sh([[:blank:]]|$)/;{exit}' "${FILES[$i]}") ]] && continue # file has shell shebang unset -v "FILES[$i]" # else remove from array done - printf '%s\n' "${FILES[@]}" - df . ./shellcheck -C -xo all "${FILES[@]}" + - name: Check for trailing spaces + if: always() + run: | + rm shellcheck + ! grep -rn --exclude-dir='.git' -I '[[:blank:]]$' . + - name: Check for multiple newlines + if: always() + run: | + ! grep -rzPo --exclude-dir='.git' --exclude='*.png' '(^|\n)\N*\n\n\n+\N*(\n|$)' . diff --git a/.meta/dietpi-survey_report b/.meta/dietpi-survey_report index 34faa51bb9..5aed5570fc 100755 --- a/.meta/dietpi-survey_report +++ b/.meta/dietpi-survey_report @@ -427,7 +427,6 @@ shopt -s extglob unset -v 'aSOFTWARE_NAME6_26[27]' # TightVNC: Replaced by TigerVNC on Stretch+ unset -v 'aSOFTWARE_NAME6_26[140]' # SDL2: Merged into Amiberry for targeted minimal install - aSOFTWARE_NAME6_27=() for i in "${!aSOFTWARE_NAME6_26[@]}" do diff --git a/.update/patches b/.update/patches index 0a2798400b..23dfb87df9 100755 --- a/.update/patches +++ b/.update/patches @@ -660,7 +660,7 @@ Patch_8_2() - The database is recreated from scratch, using the global software password (default: "dietpi") for login instead of the hardcoded "allo". You can change the password with the following command: - mysql -e "update allo.users set password='\''$(php -r '\''echo password_hash("yourPassword",PASSWORD_BCRYPT);'\'')'\'' where id=1;" - The obsolete "allo" user is removed. Its home directory /home/allo remains, just in case you stored files there, but otherwise you can safely remove it.' - + echo 160 >> /var/tmp/dietpi/dietpi-update_reinstalls getent passwd allo > /dev/null && G_EXEC userdel allo if G_EXEC_NOHALT=1 G_EXEC systemctl start mariadb diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 47946614dc..20206468a8 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -13,7 +13,7 @@ Are you able to: - Contribute to DietPi with programming on GitHub? - Suggest new software that we can add to the `dietpi-software` install system? -If so, let us know! +If so, let us know! We are always looking for talented people who believe in the DietPi project, and, wish to contribute in any way you can. - Send us an email: diff --git a/README.md b/README.md index 0487e69ad0..e5a24d7ee8 100644 --- a/README.md +++ b/README.md @@ -15,7 +15,7 @@ ## Introduction -DietPi is an extremely lightweight Debian-based OS. It is highly optimised for minimal CPU and RAM resource usage, ensuring your SBC always runs at its maximum potential. +DietPi is an extremely lightweight Debian-based OS. It is highly optimised for minimal CPU and RAM resource usage, ensuring your SBC always runs at its maximum potential. The **dietpi programs** use lightweight whiptail menus. You'll spend more time enjoying DietPi and applications you need and less time staring at the command line. @@ -151,7 +151,7 @@ Are you able to: - Contribute to DietPi with programming on GitHub? - Suggest new software that we can add to the `dietpi-software` install system? -If so, let us know! +If so, let us know! We are always looking for talented people who believe in the DietPi project, and, wish to contribute in any way you can. - Send us an email: diff --git a/dietpi/dietpi-drive_manager b/dietpi/dietpi-drive_manager index 926df48690..310b1fc53e 100755 --- a/dietpi/dietpi-drive_manager +++ b/dietpi/dietpi-drive_manager @@ -894,7 +894,6 @@ Do you wish to ignore this warning, and, mount the drive regardless?" || return [[ -f '/etc/hdparm.conf' ]] && current_spindown=$(mawk '/spindown_time/{print $3;exit}' /etc/hdparm.conf) disable_error=1 G_CHECK_VALIDINT "$current_spindown" 0 251 && G_WHIP_DEFAULT_ITEM=$current_spindown || G_WHIP_DEFAULT_ITEM=241 - G_WHIP_MENU_ARRAY=('0' ': Disabled') local minutes seconds text diff --git a/dietpi/func/dietpi-set_hardware b/dietpi/func/dietpi-set_hardware index 2bc6d6aae5..6df7871ce6 100755 --- a/dietpi/func/dietpi-set_hardware +++ b/dietpi/func/dietpi-set_hardware @@ -2289,7 +2289,6 @@ _EOF_ RPi_Codec_Main - elif [[ $INPUT_DEVICE_NAME == 'rpi3_usb_boot' ]]; then RPi_USB_Boot_Main From a3af3517c0921cb10ba10de394cd396f7efbce9b Mon Sep 17 00:00:00 2001 From: MichaIng Date: Mon, 13 Feb 2023 14:45:44 +0100 Subject: [PATCH 008/155] v8.15 - DietPi-Software | Readarr: 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 2d9e39a35c..e127914e94 100755 --- a/dietpi/dietpi-software +++ b/dietpi/dietpi-software @@ -10058,7 +10058,7 @@ _EOF_ *) local arch='x64';; esac - local fallback_url="https://github.com/Readarr/Readarr/releases/download/v0.1.2.1558/Readarr.develop.0.1.2.1558.linux-core-$arch.tar.gz" + local fallback_url="https://github.com/Readarr/Readarr/releases/download/v0.1.3.1584/Readarr.develop.0.1.3.1584.linux-core-$arch.tar.gz" Download_Install "$(curl -sSfL 'https://api.github.com/repos/Readarr/Readarr/releases' | mawk -F\" "/\"browser_download_url\": .*linux-core-$arch\.tar\.gz\"/{print \$4}" | head -1)" G_EXEC mv Readarr /opt/readarr fi From e30d111ca1b8d658e16259a48c2537da4f3641d1 Mon Sep 17 00:00:00 2001 From: MichaIng Date: Mon, 13 Feb 2023 15:09:08 +0100 Subject: [PATCH 009/155] v8.15 - DietPi-Software | Change X-Robots-Tag header from "none" to "noindex, nofollow": https://github.com/nextcloud/server/pull/36689 --- .conf/dps_114/lighttpd.nextcloud.conf | 2 +- .conf/dps_114/nginx.nextcloud.conf | 2 +- .conf/dps_47/lighttpd.owncloud.conf | 2 +- .conf/dps_47/nginx.owncloud.conf | 2 +- .conf/dps_93/lighttpd.pihole.conf | 2 +- .conf/dps_93/nginx.pihole.conf | 2 +- dietpi/dietpi-software | 2 +- 7 files changed, 7 insertions(+), 7 deletions(-) diff --git a/.conf/dps_114/lighttpd.nextcloud.conf b/.conf/dps_114/lighttpd.nextcloud.conf index a4ed9312d3..95c06bd7fd 100644 --- a/.conf/dps_114/lighttpd.nextcloud.conf +++ b/.conf/dps_114/lighttpd.nextcloud.conf @@ -25,7 +25,7 @@ $HTTP["url"] =~ "^/nextcloud($|/)" { "X-Download-Options" => "noopen", "X-Frame-Options" => "SAMEORIGIN", "X-Permitted-Cross-Domain-Policies" => "none", - "X-Robots-Tag" => "none", + "X-Robots-Tag" => "noindex, nofollow", "X-XSS-Protection" => "1; mode=block", "Cache-Control" => "public, max-age=15778463", ) diff --git a/.conf/dps_114/nginx.nextcloud.conf b/.conf/dps_114/nginx.nextcloud.conf index 02d18a4806..9e14d43b1c 100644 --- a/.conf/dps_114/nginx.nextcloud.conf +++ b/.conf/dps_114/nginx.nextcloud.conf @@ -28,7 +28,7 @@ location ^~ /nextcloud { add_header X-Download-Options "noopen" always; add_header X-Frame-Options "SAMEORIGIN" always; add_header X-Permitted-Cross-Domain-Policies "none" always; - add_header X-Robots-Tag "none" always; + add_header X-Robots-Tag "noindex, nofollow" always; add_header X-XSS-Protection "1; mode=block" always; # Remove X-Powered-By, which is an information leak diff --git a/.conf/dps_47/lighttpd.owncloud.conf b/.conf/dps_47/lighttpd.owncloud.conf index d225c7ff3b..333c5568f7 100644 --- a/.conf/dps_47/lighttpd.owncloud.conf +++ b/.conf/dps_47/lighttpd.owncloud.conf @@ -18,7 +18,7 @@ $HTTP["url"] =~ "^/owncloud($|/)" { "X-Frame-Options" => "SAMEORIGIN", "X-Content-Type-Options" => "nosniff", "X-XSS-Protection" => "1; mode=block", - "X-Robots-Tag" => "none", + "X-Robots-Tag" => "noindex, nofollow", "X-Download-Options" => "noopen", "X-Permitted-Cross-Domain-Policies" => "none", "Referrer-Policy" => "no-referrer", diff --git a/.conf/dps_47/nginx.owncloud.conf b/.conf/dps_47/nginx.owncloud.conf index 19e3bc9bad..5dbf1c43be 100644 --- a/.conf/dps_47/nginx.owncloud.conf +++ b/.conf/dps_47/nginx.owncloud.conf @@ -10,7 +10,7 @@ location ^~ /owncloud { add_header X-Content-Type-Options nosniff always; add_header X-Frame-Options "SAMEORIGIN" always; add_header X-XSS-Protection "1; mode=block" always; - add_header X-Robots-Tag none always; + add_header X-Robots-Tag "noindex, nofollow" always; add_header X-Download-Options noopen always; add_header X-Permitted-Cross-Domain-Policies none always; add_header Referrer-Policy no-referrer always; diff --git a/.conf/dps_93/lighttpd.pihole.conf b/.conf/dps_93/lighttpd.pihole.conf index 3d81a2cab4..5b3ccac763 100644 --- a/.conf/dps_93/lighttpd.pihole.conf +++ b/.conf/dps_93/lighttpd.pihole.conf @@ -13,7 +13,7 @@ $HTTP["url"] =~ "^(/html)?/admin/" { "X-Content-Type-Options" => "nosniff", "X-Frame-Options" => "deny", "X-XSS-Protection" => "1; mode=block", - "X-Robots-Tag" => "none", + "X-Robots-Tag" => "noindex, nofollow", "X-Permitted-Cross-Domain-Policies" => "none", "Referrer-Policy" => "same-origin", "Content-Security-Policy" => "default-src 'self' 'unsafe-inline'" diff --git a/.conf/dps_93/nginx.pihole.conf b/.conf/dps_93/nginx.pihole.conf index f5039b06cb..fff74f6c9a 100644 --- a/.conf/dps_93/nginx.pihole.conf +++ b/.conf/dps_93/nginx.pihole.conf @@ -16,7 +16,7 @@ location ~ ^(?:/html|)/admin(?:$|/) { set $frame_options "deny"; add_header X-Frame-Options "$frame_option"; add_header X-XSS-Protection "1; mode=block"; - add_header X-Robots-Tag "none"; + add_header X-Robots-Tag "noindex, nofollow"; add_header X-Permitted-Cross-Domain-Policies "none"; add_header Referrer-Policy "same-origin"; add_header Content-Security-Policy "default-src 'self' 'unsafe-inline'"; diff --git a/dietpi/dietpi-software b/dietpi/dietpi-software index e127914e94..929b5f75a5 100755 --- a/dietpi/dietpi-software +++ b/dietpi/dietpi-software @@ -3474,7 +3474,7 @@ TraceEnable Off Header set X-Content-Type-Options "nosniff" Header set X-Frame-Options "sameorigin" Header set X-XSS-Protection "1; mode=block" -Header set X-Robots-Tag "none" +Header set X-Robots-Tag "noindex, nofollow" Header set X-Permitted-Cross-Domain-Policies "none" Header set Referrer-Policy "no-referrer" _EOF_ From e8c4041f5f31d933bd6408f04f1968aa05af2e38 Mon Sep 17 00:00:00 2001 From: MichaIng Date: Mon, 13 Feb 2023 15:31:57 +0100 Subject: [PATCH 010/155] v8.15 - DietPi-Software | HAProxy: Bump to latest version 2.7.2 --- dietpi/dietpi-software | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/dietpi/dietpi-software b/dietpi/dietpi-software index 929b5f75a5..e9f99487ab 100755 --- a/dietpi/dietpi-software +++ b/dietpi/dietpi-software @@ -6814,7 +6814,7 @@ _EOF_ if To_Install 98 # HAProxy then - local version='2.6.6' # https://www.haproxy.org/download/ + local version='2.7.2' # https://www.haproxy.org/download/ aDEPS=('make' 'gcc' 'libpcre3-dev' 'libssl-dev' 'zlib1g-dev' 'libsystemd-dev') Download_Install "https://www.haproxy.org/download/${version%.*}/src/haproxy-$version.tar.gz" @@ -6831,13 +6831,13 @@ _EOF_ G_EXEC mv {,/etc/systemd/system/}haproxy.service # - Error pages G_EXEC cd "$G_WORKING_DIR" - [[ -d '/etc/haproxy/errors' ]] || G_EXEC mkdir -p /etc/haproxy/errors + G_EXEC mkdir -p /etc/haproxy/errors G_EXEC mv "haproxy-$version/examples/errorfiles/"*.http /etc/haproxy/errors/ - # Clean up + # Cleanup G_EXEC rm -R "haproxy-$version" # Jail directory - [[ -d '/var/lib/haproxy' ]] || G_EXEC mkdir /var/lib/haproxy + G_EXEC mkdir -p /var/lib/haproxy # Config [[ -f '/etc/haproxy/haproxy.cfg' ]] || cat << _EOF_ > /etc/haproxy/haproxy.cfg From 80ebf26fb4c880cf29f55d0d30f3656ea8b37380 Mon Sep 17 00:00:00 2001 From: MichaIng Date: Mon, 13 Feb 2023 17:09:41 +0100 Subject: [PATCH 011/155] v8.15 - DietPi-Imager | fsck also ext[234] filesystems after regenerating their journal and zerofree, and use -y option in attempt to optimise extent trees, which is not implied by -p and -D --- .build/images/dietpi-build | 2 +- .build/images/dietpi-imager | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.build/images/dietpi-build b/.build/images/dietpi-build index cc3fa8967e..3f5953c854 100755 --- a/.build/images/dietpi-build +++ b/.build/images/dietpi-build @@ -163,7 +163,7 @@ esac fsname='' apackages=() afs_opts=() afsck=() aresize=() case $FSTYPE in - 'ext4') apackages+=('e2fsprogs') afs_opts=('-e' 'remount-ro') afsck=('e2fsck' '-fpD') aresize=('resize2fs');; + '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;; diff --git a/.build/images/dietpi-imager b/.build/images/dietpi-imager index a1e343a859..30a29f697a 100644 --- a/.build/images/dietpi-imager +++ b/.build/images/dietpi-imager @@ -93,7 +93,7 @@ { if [[ $ROOT_FS_TYPE == 'ext4' ]] then - G_EXEC_OUTPUT=1 G_EXEC e2fsck -fpD "$FP_ROOT_DEV" + G_EXEC_OUTPUT=1 G_EXEC e2fsck -fyD "$FP_ROOT_DEV" elif [[ $ROOT_FS_TYPE == 'f2fs' ]] then @@ -477,9 +477,9 @@ G_EXEC mount "$path" "$FP_MNT_TMP" G_EXEC_NOHALT=1 G_EXEC_OUTPUT=1 G_EXEC fstrim -v --quiet-unsupported "$FP_MNT_TMP" Unmount_tmp - # shellcheck disable=SC2015 - [[ $path == "$FP_ROOT_DEV" ]] && Run_fsck || G_EXEC_OUTPUT=1 G_EXEC fsck "$path" fi + # shellcheck disable=SC2015 + [[ $path == "$FP_ROOT_DEV" ]] && Run_fsck || G_EXEC_OUTPUT=1 G_EXEC fsck -y "$path" done < <(lsblk -rnpo NAME,FSTYPE "$FP_SOURCE"?*) G_EXEC rmdir "$FP_MNT_TMP" From cc4f93e051be008566add4a2d6832e30002a1fb0 Mon Sep 17 00:00:00 2001 From: MichaIng Date: Mon, 13 Feb 2023 17:17:16 +0100 Subject: [PATCH 012/155] v8.15 - DietPi-Imager | Use our subprocess-less G_SLEEP function --- .build/images/dietpi-imager | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/.build/images/dietpi-imager b/.build/images/dietpi-imager index 30a29f697a..0201c85132 100644 --- a/.build/images/dietpi-imager +++ b/.build/images/dietpi-imager @@ -75,7 +75,7 @@ Unmount_tmp() { G_EXEC sync - G_EXEC sleep 1 # Give the system 1 second to avoid "mount is busy" + G_SLEEP 1 # Give the system 1 second to avoid "mount is busy" G_EXEC umount -R "$FP_MNT_TMP" } @@ -176,7 +176,7 @@ G_EXEC_NOEXIT=1 G_EXEC partprobe "$FP_SOURCE" || return 1 G_EXEC_NOEXIT=1 G_EXEC partx -u "$FP_SOURCE" || return 1 G_DIETPI-NOTIFY 0 "Attached the image ($FP_SOURCE_IMG) as loopback device: $FP_SOURCE" - G_EXEC sleep 0.5 # Give the root filesystem a little time to be detected + G_SLEEP 0.5 # Give the root filesystem a little time to be detected fi Menu_Source_RootFS # Directly open this menu next @@ -301,7 +301,7 @@ - Root device: $FP_ROOT_DEV - Via $CLONING_TOOL to $OUTPUT_IMG_NAME.$OUTPUT_IMG_EXT - With intermediate mounting turned $MOUNT_IT" - G_EXEC sleep 0.5 # Give the root filesystem a little time to be detected + G_SLEEP 0.5 # Give the root filesystem a little time to be detected else local main_menu_choice Menu_Source_Type @@ -324,7 +324,7 @@ G_DIETPI-NOTIFY 2 'GPT partition table detected, moving GPT backup partition table to end of drive...' G_AG_CHECK_INSTALL_PREREQ gdisk G_EXEC_OUTPUT=1 G_EXEC sgdisk -e "$FP_SOURCE" - G_EXEC sleep 0.5 # Give the root filesystem a little time to be detected + G_SLEEP 0.5 # Give the root filesystem a little time to be detected else Error_Exit "Unknown partition table type ($PART_TABLE_TYPE), aborting..." fi @@ -373,10 +373,10 @@ # Disable and enable journal to clear it and allow further size reduction G_EXEC tune2fs -O '^has_journal' "$last_part_dev" G_EXEC sync - G_EXEC sleep 1 + G_SLEEP 1 G_EXEC tune2fs -O 'has_journal' "$last_part_dev" G_EXEC sync - G_EXEC sleep 1 + G_SLEEP 1 # Run multiple times until no change is done any more G_DIETPI-NOTIFY 2 'Shrinking last filesystem to minimum size...' @@ -466,10 +466,10 @@ then G_EXEC tune2fs -O '^has_journal' "$path" G_EXEC sync - G_EXEC sleep 1 + G_SLEEP 1 G_EXEC tune2fs -O 'has_journal' "$path" G_EXEC sync - G_EXEC sleep 1 + G_SLEEP 1 fi [[ ( -t 0 || -t 1 ) && $TERM != 'dumb' ]] && G_EXEC_OUTPUT=1 G_EXEC zerofree -v "$path" From c5ab2effd10255091d29432ba671700824d15ee0 Mon Sep 17 00:00:00 2001 From: MichaIng Date: Mon, 13 Feb 2023 17:38:15 +0100 Subject: [PATCH 013/155] v8.15 - Bookworm | Non-free firmware has been moved into a new component "non-free-firmware". To install and upgrade firmware packages, this hence needs to be additionally added --- .update/pre-patches | 15 +++++++++++++-- dietpi/func/dietpi-set_software | 7 ++++--- 2 files changed, 17 insertions(+), 5 deletions(-) diff --git a/.update/pre-patches b/.update/pre-patches index da58ebe00d..f28a1e5d7f 100755 --- a/.update/pre-patches +++ b/.update/pre-patches @@ -203,12 +203,12 @@ then fi fi -# v8.14: Update InfluxDB APT repo key: https://github.com/influxdata/influxdb/pull/24061 +# v8.14 if (( $G_DIETPI_VERSION_CORE < 8 || ( $G_DIETPI_VERSION_CORE == 8 && $G_DIETPI_VERSION_SUB < 14 ) )) then if [[ -f '/etc/apt/trusted.gpg.d/dietpi-influxdb.gpg' ]] && (( $(date -u '+%Y%m%d' -r '/etc/apt/trusted.gpg.d/dietpi-influxdb.gpg') < 20230127 )) then - G_DIETPI-NOTIFY 2 'Updating InfluxDB APT repo key' + G_DIETPI-NOTIFY 2 'Updating InfluxDB APT repo key' # https://github.com/influxdata/influxdb/pull/24061 G_EXEC curl -sSfLO 'https://repos.influxdata.com/influxdata-archive_compat.key' G_EXEC gpg --dearmor -o /etc/apt/trusted.gpg.d/dietpi-influxdb.gpg --yes influxdata-archive_compat.key G_EXEC rm influxdata-archive_compat.key @@ -225,5 +225,16 @@ then fi fi +# v8.15 +if (( $G_DIETPI_VERSION_CORE < 8 || ( $G_DIETPI_VERSION_CORE == 8 && $G_DIETPI_VERSION_SUB < 15 ) )) +then + if [[ $G_RASPBIAN != 1 ]] && (( $G_DISTRO == 7 )) && grep -q 'non-free' /etc/apt/sources.list && ! grep -q 'non-free-firmware' /etc/apt/sources.list + then + # https://www.debian.org/releases/bookworm/amd64/release-notes/ch-information.en.html#non-free-split + G_DIETPI-NOTIFY 2 'Adding new non-free-firmware component to APT lists, to re-enable firmware upgrades' + G_EXEC sed -i '/non-free/s/$/ non-free-firmware/' /etc/apt/sources.list + fi +fi + exit 0 } diff --git a/dietpi/func/dietpi-set_software b/dietpi/func/dietpi-set_software index 2ae01b6269..4f6d971b2f 100755 --- a/dietpi/func/dietpi-set_software +++ b/dietpi/func/dietpi-set_software @@ -116,7 +116,6 @@ deb https://deb.debian.org/debian-ports/ unreleased main contrib non-free'\'' > # Raspbian elif (( $G_RASPBIAN )) then - # Default? [[ $INPUT_MODE_VALUE == 'default' ]] && INPUT_MODE_VALUE='http://raspbian.raspberrypi.org/raspbian/' G_EXEC eval "echo 'deb $INPUT_MODE_VALUE $G_DISTRO_NAME main contrib non-free' > /etc/apt/sources.list" @@ -126,7 +125,6 @@ deb https://deb.debian.org/debian-ports/ unreleased main contrib non-free'\'' > # Debian else - # Default? [[ $INPUT_MODE_VALUE == 'default' ]] && INPUT_MODE_VALUE='https://deb.debian.org/debian/' G_EXEC eval "echo 'deb $INPUT_MODE_VALUE $G_DISTRO_NAME main contrib non-free @@ -134,9 +132,12 @@ deb $INPUT_MODE_VALUE $G_DISTRO_NAME-updates main contrib non-free deb https://deb.debian.org/debian-security/ $G_DISTRO_NAME/updates main contrib non-free deb $INPUT_MODE_VALUE $G_DISTRO_NAME-backports main contrib non-free' > /etc/apt/sources.list" - # On Bullseye, dir structure has changed: https://deb.debian.org/debian-security/dists/ + # Since Bullseye, dir structure has changed: https://deb.debian.org/debian-security/dists/ (( $G_DISTRO > 5 )) && G_EXEC sed -i '3s|/updates|-security|' /etc/apt/sources.list + # Since Bookworm, non-free firmware has been moved to new component: https://deb.debian.org/debian/pool/ + (( $G_DISTRO > 6 )) && G_EXEC sed -i 's/$/ non-free-firmware/' /etc/apt/sources.list + # Update dietpi.txt entry G_CONFIG_INJECT 'CONFIG_APT_DEBIAN_MIRROR=' "CONFIG_APT_DEBIAN_MIRROR=$INPUT_MODE_VALUE" /boot/dietpi.txt fi From 23e9c3ef810ab6af9640662ad42fbeace9f0f72a Mon Sep 17 00:00:00 2001 From: MichaIng Date: Mon, 13 Feb 2023 17:46:58 +0100 Subject: [PATCH 014/155] v8.15 - DietPi-Installer | Apply new non-free-firmware component manually for Bookworm until v8.15 has been released --- .build/images/dietpi-installer | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.build/images/dietpi-installer b/.build/images/dietpi-installer index 15ba85abd8..638f55fc8c 100644 --- a/.build/images/dietpi-installer +++ b/.build/images/dietpi-installer @@ -766,6 +766,8 @@ fi' /boot/boot.cmd # We need to forward $DISTRO_TARGET* to dietpi-set_software, as well as $G_HW_MODEL + $G_RASPBIAN for Debian vs Raspbian decision. G_DISTRO=$DISTRO_TARGET G_DISTRO_NAME=$DISTRO_TARGET_NAME G_HW_MODEL=$G_HW_MODEL G_RASPBIAN=$G_RASPBIAN G_EXEC /boot/dietpi/func/dietpi-set_software apt-mirror default + # ToDo: Temporary step until v8.15 release: Since Bookworm, non-free firmware has been moved to new component: https://deb.debian.org/debian/pool/ + (( $DISTRO_TARGET > 6 )) && G_EXEC sed -i 's/$/ non-free-firmware/' /etc/apt/sources.list # (Re)create DietPi runtime and logs dir, used by G_AGx G_EXEC mkdir -p /run/dietpi /var/tmp/dietpi/logs From 85415d602459aea0598764b2cfdc933c8b85a97e Mon Sep 17 00:00:00 2001 From: MichaIng Date: Mon, 13 Feb 2023 20:08:28 +0100 Subject: [PATCH 015/155] v8.15 - DietPi-Installer | Use rng-tools5 on NanoPi M4/T4/NEO4 but haveged on Quartz64 - DietPi-Set_software | Fix serial getty service override on Bullseye and below, where using a dash as console device somehow fails - DietPi-FS_partition_resize | reboot if resizing fails on ext4. This is mainly to resolve the issue on Quartz64 where for unknown reasons resizing leads to a CRC error in first superblock backup, leading to read-only remount, while actually nothing bad happened, fsck does not report any error and after a reboot all works as expected: https://github.com/MichaIng/DietPi/issues/6149 --- .build/images/dietpi-installer | 2 +- .update/patches | 20 +++++++++++++++++++ CHANGELOG.txt | 1 + dietpi/func/dietpi-set_hardware | 2 +- .../dietpi/services/fs_partition_resize.sh | 2 +- 5 files changed, 24 insertions(+), 3 deletions(-) diff --git a/.build/images/dietpi-installer b/.build/images/dietpi-installer index 638f55fc8c..f1b45c3fbc 100644 --- a/.build/images/dietpi-installer +++ b/.build/images/dietpi-installer @@ -875,7 +875,7 @@ fi' /boot/boot.cmd ) # Entropy daemon: Use modern rng-tools5 on all devices where it has been proven to work, else haveged: https://github.com/MichaIng/DietPi/issues/2806 - if [[ $G_HW_MODEL -lt 10 || $G_HW_MODEL =~ ^(14|15|16|24|29|42|46|49|58|72|74|76|79)$ ]] # RPi, S922X, Odroid C4, RK3399 - 47 NanoPi R4S, Radxa Zero, NanoPi R5S, NanoPi R6S + if [[ $G_HW_MODEL -lt 10 || $G_HW_MODEL =~ ^14|15|16|24|29|42|46|58|68|72|74|76|79$ ]] # RPi, S922X, Odroid C4, RK3399 - 47 NanoPi R4S, Radxa Zero, NanoPi R5S, NanoPi R6S then aPACKAGES_REQUIRED_INSTALL+=('rng-tools5') else diff --git a/.update/patches b/.update/patches index 23dfb87df9..b92e66bf49 100755 --- a/.update/patches +++ b/.update/patches @@ -1108,6 +1108,26 @@ _EOF_ fi } +Patch_8_15() +{ + if (( $G_HW_MODEL == 49 )) && ! dpkg-query -s 'haveged' &> /dev/null + then + G_DIETPI-NOTIFY 2 'Installing correct entropy daemon on Quartz64' + G_AGI haveged + G_AGP rng-tools5 + fi + + for i in '/etc/systemd/system/serial-getty@'*'.service.d/dietpi-baudrate.conf' + do + G_DIETPI-NOTIFY 2 "Updating $i" + cat << '_EOF_' > "$i" +[Service] +ExecStart= +ExecStart=-/sbin/agetty -o '-p -- \\u' -s 1500000,115200,57600,38400,9600 %I $TERM +_EOF_ + done +} + # 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 ed7c267ed7..1a941481c9 100644 --- a/CHANGELOG.txt +++ b/CHANGELOG.txt @@ -5,6 +5,7 @@ Enhancements: - DietPi-Software | XRDP: TLS via snakeoil certificate is now enabled OOTB. This leads to a warning shown on Windows RDP clients until either a proper certificate signed by a trusted CA is used (e.g. by Let's Encrypt), or it is muted for the particular server via checkbox at the client. Many thanks to @amibumping for providing the needed step: https://github.com/MichaIng/DietPi/issues/5976 Bug fixes: +- Quartz64 | Resolved an issue where the system boots read-only on very first boot. Many thanks to @belveder79 for reporting this issue: https://github.com/MichaIng/DietPi/issues/6149 - DietPi-Software | Docker Compose: Resolved an issue where installing and uninstalling Docker Compose could have failed if pip was installed without the distutils module. Many thanks to @bccarbone for reporting this issue: https://github.com/MichaIng/DietPi/issues/6153 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/XXXX diff --git a/dietpi/func/dietpi-set_hardware b/dietpi/func/dietpi-set_hardware index 6df7871ce6..9257526685 100755 --- a/dietpi/func/dietpi-set_hardware +++ b/dietpi/func/dietpi-set_hardware @@ -1531,7 +1531,7 @@ _EOF_ cat << '_EOF_' > "/etc/systemd/system/serial-getty@$INPUT_ADDITIONAL.service.d/dietpi-baudrate.conf" [Service] ExecStart= -ExecStart=-/sbin/agetty -o '-p -- \\u' --keep-baud 1500000,115200,57600,38400,9600 - $TERM +ExecStart=-/sbin/agetty -o '-p -- \\u' -s 1500000,115200,57600,38400,9600 %I $TERM _EOF_ G_EXEC systemctl daemon-reload fi diff --git a/rootfs/var/lib/dietpi/services/fs_partition_resize.sh b/rootfs/var/lib/dietpi/services/fs_partition_resize.sh index 9344e2a624..5495eb128a 100755 --- a/rootfs/var/lib/dietpi/services/fs_partition_resize.sh +++ b/rootfs/var/lib/dietpi/services/fs_partition_resize.sh @@ -67,7 +67,7 @@ # Maximise root filesystem if type is supported case $ROOT_FSTYPE in - 'ext'[234]) resize2fs "$ROOT_DEV";; + 'ext'[234]) resize2fs "$ROOT_DEV" || reboot;; # Reboot if resizing fails: https://github.com/MichaIng/DietPi/issues/6149 'f2fs') mount -o remount,ro / resize.f2fs "$ROOT_DEV" From a92c85c0150f665e88b91ea02dc68492838bbd03 Mon Sep 17 00:00:00 2001 From: MichaIng Date: Mon, 13 Feb 2023 20:19:33 +0100 Subject: [PATCH 016/155] v8.15 - DietPi-Set_hardware | Generate serial getty baudrate override more generic and only below Bookworm. On Bookworm, the dash works well, even that agetty docs haven't changed in this regards --- .update/patches | 8 ++++---- dietpi/func/dietpi-set_hardware | 4 ++-- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/.update/patches b/.update/patches index b92e66bf49..15c4ab44ae 100755 --- a/.update/patches +++ b/.update/patches @@ -1117,13 +1117,13 @@ Patch_8_15() G_AGP rng-tools5 fi - for i in '/etc/systemd/system/serial-getty@'*'.service.d/dietpi-baudrate.conf' + (( $G_DISTRO > 6 )) || for i in '/etc/systemd/system/serial-getty@'*'.service.d/dietpi-baudrate.conf' do - G_DIETPI-NOTIFY 2 "Updating $i" - cat << '_EOF_' > "$i" + G_DIETPI-NOTIFY 2 "Fixing $i" + cat << _EOF_ > "$i" [Service] ExecStart= -ExecStart=-/sbin/agetty -o '-p -- \\u' -s 1500000,115200,57600,38400,9600 %I $TERM +$(sed -n '/^ExecStart=/s/ 115200/ 1500000,115200/p' '/lib/systemd/system/serial-getty@.service') _EOF_ done } diff --git a/dietpi/func/dietpi-set_hardware b/dietpi/func/dietpi-set_hardware index 9257526685..8d50aa789b 100755 --- a/dietpi/func/dietpi-set_hardware +++ b/dietpi/func/dietpi-set_hardware @@ -1528,10 +1528,10 @@ _EOF_ then baudrate='1500000' [[ -d /etc/systemd/system/serial-getty@$INPUT_ADDITIONAL.service.d ]] || G_EXEC mkdir "/etc/systemd/system/serial-getty@$INPUT_ADDITIONAL.service.d" - cat << '_EOF_' > "/etc/systemd/system/serial-getty@$INPUT_ADDITIONAL.service.d/dietpi-baudrate.conf" + cat << _EOF_ > "/etc/systemd/system/serial-getty@$INPUT_ADDITIONAL.service.d/dietpi-baudrate.conf" [Service] ExecStart= -ExecStart=-/sbin/agetty -o '-p -- \\u' -s 1500000,115200,57600,38400,9600 %I $TERM +$(sed -n '/^ExecStart=/s/ 115200/ 1500000,115200/p' '/lib/systemd/system/serial-getty@.service') _EOF_ G_EXEC systemctl daemon-reload fi From 5af00dd3854b43bac7bed1018dd3ee1028a0d1a5 Mon Sep 17 00:00:00 2001 From: MichaIng Date: Mon, 13 Feb 2023 20:46:26 +0100 Subject: [PATCH 017/155] v8.15 - DietPi-Set_hardware | Start serial getty service after possible changes have been applied --- dietpi/func/dietpi-set_hardware | 25 ++++++++++++++----------- 1 file changed, 14 insertions(+), 11 deletions(-) diff --git a/dietpi/func/dietpi-set_hardware b/dietpi/func/dietpi-set_hardware index 8d50aa789b..aecfbb7862 100755 --- a/dietpi/func/dietpi-set_hardware +++ b/dietpi/func/dietpi-set_hardware @@ -1484,20 +1484,14 @@ _EOF_ INPUT_DEVICE_VALUE='disable' Bluetooth_Main fi - G_DIETPI-NOTIFY 2 "Enabling serial-getty on: /dev/$INPUT_ADDITIONAL" - G_EXEC systemctl unmask "serial-getty@$INPUT_ADDITIONAL" - G_EXEC systemctl enable "serial-getty@$INPUT_ADDITIONAL" - # Start now if device (already) exists - [[ -e /dev/$INPUT_ADDITIONAL ]] && G_EXEC systemctl start "serial-getty@$INPUT_ADDITIONAL" - - # Allow root login on selected TTY if not enabled by default. This file has been removed with Debian Bullseye and is not respected by its default PAM rules. - (( $G_DISTRO < 6 )) && G_CONFIG_INJECT "$INPUT_ADDITIONAL" "$INPUT_ADDITIONAL" /etc/securetty - # Enable boot messages depending on device # - Skip on USB getget serial device, which requires loading a kernel module first and hence cannot be used for boot outputs - [[ $INPUT_ADDITIONAL == 'ttyGS'[0-9] ]] && return 0 + if [[ $INPUT_ADDITIONAL == 'ttyGS'[0-9] ]] + then + : + # - RPi - if (( $G_HW_MODEL < 10 )) + elif (( $G_HW_MODEL < 10 )) then grep -q "console=$INPUT_ADDITIONAL" /boot/cmdline.txt || sed -i "/root=/s/[[:blank:]]*$/ console=$INPUT_ADDITIONAL,115200/" /boot/cmdline.txt @@ -1548,6 +1542,15 @@ _EOF_ fi fi + # Allow root login on selected TTY if not enabled by default. This file has been removed with Debian Bullseye and is not respected by its default PAM rules. + (( $G_DISTRO < 6 )) && G_CONFIG_INJECT "$INPUT_ADDITIONAL" "$INPUT_ADDITIONAL" /etc/securetty + + G_DIETPI-NOTIFY 2 "Enabling serial-getty on: /dev/$INPUT_ADDITIONAL" + G_EXEC systemctl unmask "serial-getty@$INPUT_ADDITIONAL" + G_EXEC systemctl enable "serial-getty@$INPUT_ADDITIONAL" + # Start now if device (already) exists + [[ -e /dev/$INPUT_ADDITIONAL ]] && G_EXEC systemctl start "serial-getty@$INPUT_ADDITIONAL" + # Enable for all detected Serial/UART devices else for i in /dev/tty{S,AMA,SAC,AML,SC,GS,FIQ,MV}[0-9] From b97dcfcb84a834f9128f67fc8123c6ba1a30f9ea Mon Sep 17 00:00:00 2001 From: MichaIng Date: Mon, 13 Feb 2023 21:04:51 +0100 Subject: [PATCH 018/155] v8.15 - DietPi-Installer | Temporary fix for wrong serial console baudrate override below Bookworm, fixed via live patch only if an actual console has been enabled already --- .build/images/dietpi-installer | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.build/images/dietpi-installer b/.build/images/dietpi-installer index f1b45c3fbc..132bc8b977 100644 --- a/.build/images/dietpi-installer +++ b/.build/images/dietpi-installer @@ -768,6 +768,8 @@ fi' /boot/boot.cmd G_DISTRO=$DISTRO_TARGET G_DISTRO_NAME=$DISTRO_TARGET_NAME G_HW_MODEL=$G_HW_MODEL G_RASPBIAN=$G_RASPBIAN G_EXEC /boot/dietpi/func/dietpi-set_software apt-mirror default # ToDo: Temporary step until v8.15 release: Since Bookworm, non-free firmware has been moved to new component: https://deb.debian.org/debian/pool/ (( $DISTRO_TARGET > 6 )) && G_EXEC sed -i 's/$/ non-free-firmware/' /etc/apt/sources.list + # ToDo: Temporary fix for wrong serial console baudrate override below Bookworm, fixed via live patch only if an actual console has been enabled already + (( $DISTRO_TARGET > 6 )) || G_EXEC sed -i 's/9600 -/9600 %I/' /boot/dietpi/func/dietpi-set_hardware # (Re)create DietPi runtime and logs dir, used by G_AGx G_EXEC mkdir -p /run/dietpi /var/tmp/dietpi/logs From 354afeedc8a07df0def5a1da5300c1513f952435 Mon Sep 17 00:00:00 2001 From: MichaIng Date: Mon, 13 Feb 2023 21:16:53 +0100 Subject: [PATCH 019/155] v8.15 - DietPi-Installer | Temporary workaround for read-only mount after filesystem expansion on Quartz64 until v8.15 has been released: https://github.com/MichaIng/DietPi/issues/6149 --- .build/images/dietpi-installer | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/.build/images/dietpi-installer b/.build/images/dietpi-installer index 132bc8b977..bd5e42a2c8 100644 --- a/.build/images/dietpi-installer +++ b/.build/images/dietpi-installer @@ -754,6 +754,9 @@ fi' /boot/boot.cmd G_CONFIG_INJECT "G_LIVE_PATCH_STATUS\[$i\]=" "G_LIVE_PATCH_STATUS[$i]='${G_LIVE_PATCH_STATUS[$i]}'" /boot/dietpi/.version done + # ToDo: Temporary fix for wrong serial console baudrate override below Bookworm, fixed via live patch only if an actual console has been enabled already + (( $DISTRO_TARGET > 6 )) || G_EXEC sed -i 's/9600 -/9600 %I/' /boot/dietpi/func/dietpi-set_hardware + G_EXEC cp /boot/dietpi/.version /var/lib/dietpi/.dietpi_image_version G_EXEC systemctl daemon-reload @@ -768,8 +771,6 @@ fi' /boot/boot.cmd G_DISTRO=$DISTRO_TARGET G_DISTRO_NAME=$DISTRO_TARGET_NAME G_HW_MODEL=$G_HW_MODEL G_RASPBIAN=$G_RASPBIAN G_EXEC /boot/dietpi/func/dietpi-set_software apt-mirror default # ToDo: Temporary step until v8.15 release: Since Bookworm, non-free firmware has been moved to new component: https://deb.debian.org/debian/pool/ (( $DISTRO_TARGET > 6 )) && G_EXEC sed -i 's/$/ non-free-firmware/' /etc/apt/sources.list - # ToDo: Temporary fix for wrong serial console baudrate override below Bookworm, fixed via live patch only if an actual console has been enabled already - (( $DISTRO_TARGET > 6 )) || G_EXEC sed -i 's/9600 -/9600 %I/' /boot/dietpi/func/dietpi-set_hardware # (Re)create DietPi runtime and logs dir, used by G_AGx G_EXEC mkdir -p /run/dietpi /var/tmp/dietpi/logs @@ -1113,6 +1114,8 @@ _EOF_ G_EXEC curl -sSfO "https://dietpi.com/downloads/binaries/firmware-$variant.deb" G_EXEC_OUTPUT=1 G_EXEC dpkg -i "firmware-$variant.deb" G_EXEC rm "firmware-$variant.deb" + # ToDo: Temporary workaround for read-only mount after filesystem expansion until v8.15 has been released: https://github.com/MichaIng/DietPi/issues/6149 + G_EXEC sed -i '/resize2fs/s/;;/ || reboot;;/' /var/lib/dietpi/services/fs_partition_resize.sh # NanoPi R5S elif (( $G_HW_MODEL == 76 )) && { [[ ! $(find /lib/modules -mindepth 1 -maxdepth 1 -type d) ]] || dpkg-query -s 'firmware-nanopi5' &> /dev/null; } From 50bca89f27bb6f6408d22836f7bd8bbd7b47c855 Mon Sep 17 00:00:00 2001 From: MichaIng Date: Mon, 13 Feb 2023 23:07:03 +0100 Subject: [PATCH 020/155] v8.15 - 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 e9f99487ab..59668890c2 100755 --- a/dietpi/dietpi-software +++ b/dietpi/dietpi-software @@ -10993,7 +10993,7 @@ _EOF_ G_AGI "${aDEPS[@]}" aDEPS=() else - local fallback_url='https://github.com/TasmoAdmin/TasmoAdmin/releases/download/v2.4.1/tasmoadmin_v2.4.1.tar.gz' + local fallback_url='https://github.com/TasmoAdmin/TasmoAdmin/releases/download/v2.4.2/tasmoadmin_v2.4.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}')" G_EXEC chown -R www-data:www-data tasmoadmin G_EXEC mv {,/var/www/}tasmoadmin From b769886aa6a209b63caa4f7d0fe8fc75623fe623 Mon Sep 17 00:00:00 2001 From: MichaIng Date: Tue, 14 Feb 2023 14:05:57 +0100 Subject: [PATCH 021/155] v8.15 - DietPi-Software | Navidrome: 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 59668890c2..2dcebb9bbb 100755 --- a/dietpi/dietpi-software +++ b/dietpi/dietpi-software @@ -6195,8 +6195,8 @@ _EOF_ *) local arch='x86_64';; esac - local fallback_url="https://github.com/navidrome/navidrome/releases/download/v0.49.2/navidrome_0.49.2_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/ + local fallback_url="https://github.com/navidrome/navidrome/releases/download/v0.49.3/navidrome_0.49.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 [[ -d '/mnt/dietpi_userdata/navidrome' ]] || G_EXEC mkdir /mnt/dietpi_userdata/navidrome From f3e13c535fca371a957f251c22be67cebbfbe35d Mon Sep 17 00:00:00 2001 From: MichaIng Date: Tue, 14 Feb 2023 15:00:12 +0100 Subject: [PATCH 022/155] v8.15 - DietPi-Patches | Mute error message if no baudrate override file exists --- .update/patches | 1 + 1 file changed, 1 insertion(+) diff --git a/.update/patches b/.update/patches index 15c4ab44ae..de8af72c1c 100755 --- a/.update/patches +++ b/.update/patches @@ -1119,6 +1119,7 @@ Patch_8_15() (( $G_DISTRO > 6 )) || for i in '/etc/systemd/system/serial-getty@'*'.service.d/dietpi-baudrate.conf' do + [[ -f $i ]] || break G_DIETPI-NOTIFY 2 "Fixing $i" cat << _EOF_ > "$i" [Service] From 5eddfef795f24292b7807901cfc859f24f6d909d Mon Sep 17 00:00:00 2001 From: MichaIng Date: Wed, 15 Feb 2023 16:04:45 +0100 Subject: [PATCH 023/155] v8.15 - DietPi-Software | Pi-hole: Resolved an issue where Nginx, if chosen as webserver, failed to start due to an invalid variable. Many thanks to @Trimble-tech for reporting this issue: https://dietpi.com/forum/t/pi-hole-install-crashes-nginx/15960 --- .conf/dps_93/nginx.pihole.conf | 2 +- CHANGELOG.txt | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/.conf/dps_93/nginx.pihole.conf b/.conf/dps_93/nginx.pihole.conf index fff74f6c9a..2482cd32a3 100644 --- a/.conf/dps_93/nginx.pihole.conf +++ b/.conf/dps_93/nginx.pihole.conf @@ -14,7 +14,7 @@ location ~ ^(?:/html|)/admin(?:$|/) { add_header X-Pi-hole "The Pi-hole Web interface is working!"; add_header X-Content-Type-Options "nosniff"; set $frame_options "deny"; - add_header X-Frame-Options "$frame_option"; + add_header X-Frame-Options "$frame_options"; add_header X-XSS-Protection "1; mode=block"; add_header X-Robots-Tag "noindex, nofollow"; add_header X-Permitted-Cross-Domain-Policies "none"; diff --git a/CHANGELOG.txt b/CHANGELOG.txt index 1a941481c9..945559f24f 100644 --- a/CHANGELOG.txt +++ b/CHANGELOG.txt @@ -7,6 +7,7 @@ Enhancements: Bug fixes: - Quartz64 | Resolved an issue where the system boots read-only on very first boot. Many thanks to @belveder79 for reporting this issue: https://github.com/MichaIng/DietPi/issues/6149 - DietPi-Software | Docker Compose: Resolved an issue where installing and uninstalling Docker Compose could have failed if pip was installed without the distutils module. Many thanks to @bccarbone for reporting this issue: https://github.com/MichaIng/DietPi/issues/6153 +- DietPi-Software | Pi-hole: Resolved an issue where Nginx, if chosen as webserver, failed to start due to an invalid variable. Many thanks to @Trimble-tech for reporting this issue: https://dietpi.com/forum/t/pi-hole-install-crashes-nginx/15960 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/XXXX From fe6397cb7e02bda688d4a017ba694eddb7799b39 Mon Sep 17 00:00:00 2001 From: MichaIng Date: Wed, 15 Feb 2023 17:26:43 +0100 Subject: [PATCH 024/155] v8.15 - DietPi-Software | Nextcloud: Do not remove CSP header on Apache, not sure what was driving me doing this. Nextcloud sets the header internally but this Apache directive removes them afterwards, which does not make sense, of course. If one manually wants to apply a stricter CSP for all other applications, "Header always setifempty" can be used, or safer with an expression condition appended like `"expr=! %{REQUEST_URI} =~ m#^/nextcloud#"`. But this is out of scope to lead with for us, as different applications require very different CSP rules if they shall have a real effect, some set them internally, others not, others again for specific pages only etc, so a generic approach for global CSP rules is impossible. --- .conf/dps_114/apache.nextcloud.conf | 13 ++++--------- .conf/dps_47/apache.owncloud.conf | 5 ++--- 2 files changed, 6 insertions(+), 12 deletions(-) diff --git a/.conf/dps_114/apache.nextcloud.conf b/.conf/dps_114/apache.nextcloud.conf index 67dec2de13..e09536afad 100644 --- a/.conf/dps_114/apache.nextcloud.conf +++ b/.conf/dps_114/apache.nextcloud.conf @@ -1,10 +1,5 @@ # Location: /etc/apache2/sites-available/dietpi-nextcloud.conf # Based on: https://github.com/nextcloud/documentation/blob/master/admin_manual/installation/source_installation.rst#apache-web-server-configuration - -# Redirect webfinger and nodeinfo requests to Nextcloud endpoint -Redirect 301 /.well-known/webfinger /nextcloud/index.php/.well-known/webfinger -Redirect 301 /.well-known/nodeinfo /nextcloud/index.php/.well-known/nodeinfo - Require all granted AllowOverride All @@ -13,8 +8,8 @@ Redirect 301 /.well-known/nodeinfo /nextcloud/index.php/.well-known/nodeinfo Dav off - - # https://github.com/MichaIng/DietPi/issues/3694 - Header unset Content-Security-Policy - Header always unset Content-Security-Policy + +# Redirect webfinger and nodeinfo requests to Nextcloud endpoint +Redirect 301 /.well-known/webfinger /nextcloud/index.php/.well-known/webfinger +Redirect 301 /.well-known/nodeinfo /nextcloud/index.php/.well-known/nodeinfo diff --git a/.conf/dps_47/apache.owncloud.conf b/.conf/dps_47/apache.owncloud.conf index 30d840f814..c6a04ab0ba 100644 --- a/.conf/dps_47/apache.owncloud.conf +++ b/.conf/dps_47/apache.owncloud.conf @@ -1,5 +1,5 @@ -# Based on: https://doc.owncloud.org/server/admin_manual/installation/manual_installation.html#configure-apache - +# Location: /etc/apache2/sites-available/dietpi-owncloud.conf +# Based on: https://doc.owncloud.com/server/next/admin_manual/installation/manual_installation/manual_installation_apache.html#configure-apache Require all granted AllowOverride All @@ -8,5 +8,4 @@ Dav off - From 604ae6f8c62b739bfd24a96a7631a077350162d5 Mon Sep 17 00:00:00 2001 From: MichaIng Date: Sat, 18 Feb 2023 15:25:59 +0100 Subject: [PATCH 025/155] v8.15 - DietPi-Installer | Resolved an issue where conflicting network configurations were left in place, e.g. from cloud-init when running the script on a VPS Debian image. Many thanks to @mews-se for reporting this issue: https://github.com/MichaIng/DietPi/issues/6067 --- .build/images/dietpi-installer | 3 +++ CHANGELOG.txt | 1 + 2 files changed, 4 insertions(+) diff --git a/.build/images/dietpi-installer b/.build/images/dietpi-installer index bd5e42a2c8..07fdd479e6 100644 --- a/.build/images/dietpi-installer +++ b/.build/images/dietpi-installer @@ -1603,6 +1603,9 @@ _EOF_' # ifupdown starts the daemon outside of systemd, the enabled systemd unit just throws an error on boot due to missing dbus and with dbus might interfere with ifupdown systemctl -q is-enabled wpa_supplicant 2> /dev/null && G_EXEC systemctl disable wpa_supplicant + # Removing all network configs: https://github.com/MichaIng/DietPi/issues/6067 + G_EXEC rm -Rf /etc/network/interfaces{,.d/{,.??,.[^.]}*} + if (( $G_HW_MODEL != 75 )) then G_EXEC_DESC='Configuring network interfaces' diff --git a/CHANGELOG.txt b/CHANGELOG.txt index 945559f24f..55a71539a0 100644 --- a/CHANGELOG.txt +++ b/CHANGELOG.txt @@ -2,6 +2,7 @@ v8.15 (2023-03-11) Enhancements: +- DietPi-Installer | Resolved an issue where conflicting network configurations were left in place, e.g. from cloud-init when running the script on a VPS Debian image. Many thanks to @mews-se for reporting this issue: https://github.com/MichaIng/DietPi/issues/6067 - DietPi-Software | XRDP: TLS via snakeoil certificate is now enabled OOTB. This leads to a warning shown on Windows RDP clients until either a proper certificate signed by a trusted CA is used (e.g. by Let's Encrypt), or it is muted for the particular server via checkbox at the client. Many thanks to @amibumping for providing the needed step: https://github.com/MichaIng/DietPi/issues/5976 Bug fixes: From afead46ea9b0d41560393797decfc3e81bb7a387 Mon Sep 17 00:00:00 2001 From: MichaIng Date: Sat, 18 Feb 2023 17:35:20 +0100 Subject: [PATCH 026/155] v8.15 - DietPi-Software | Home Assistant: Bump Python to v3.10.10 --- dietpi/dietpi-software | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dietpi/dietpi-software b/dietpi/dietpi-software index 2dcebb9bbb..d5ee13a975 100755 --- a/dietpi/dietpi-software +++ b/dietpi/dietpi-software @@ -11048,7 +11048,7 @@ _EOF_ local ha_user='homeassistant' local ha_home="/home/$ha_user" local ha_pyenv_activation=". $ha_home/pyenv-activate.sh" - local ha_python_version='3.10.9' # https://github.com/pyenv/pyenv/tree/master/plugins/python-build/share/python-build + local ha_python_version='3.10.10' # https://github.com/pyenv/pyenv/tree/master/plugins/python-build/share/python-build G_DIETPI-NOTIFY 2 "Home Assistant user: $ha_user" G_DIETPI-NOTIFY 2 "Home Assistant home: $ha_home" From a67761081f2c08b665d34bcc9bc2a5f0dfbe594e Mon Sep 17 00:00:00 2001 From: MichaIng Date: Sat, 18 Feb 2023 19:43:31 +0100 Subject: [PATCH 027/155] v8.15 - DietPi-Software | Home Assistant: Our Home Assistant integration used two Python environments: A pyenv is used to install the "homeassistant" core module and its direct dependencies. Home Assistant itself installs its frontend with dependencies on startup, as well as dependencies for integrations on demand, internally into another Python environment. On Home Assistant reinstalls, pyenv is removed but the internal dependencies were left untouched. This caused issues when those dependency builds were incompatible with the new pyenv Python version, or conflicting with other pyenv module upgrades. Both environments are now merged and reset on every reinstall, which solves potential conflicts but means that the first Home Assistant startup after a reinstall takes longer. Many thanks to @maury77 for reporting a related issue: https://github.com/MichaIng/DietPi/issues/6117 --- CHANGELOG.txt | 1 + dietpi/dietpi-software | 32 ++++++++++++++++++-------------- 2 files changed, 19 insertions(+), 14 deletions(-) diff --git a/CHANGELOG.txt b/CHANGELOG.txt index 55a71539a0..4fa7c96716 100644 --- a/CHANGELOG.txt +++ b/CHANGELOG.txt @@ -4,6 +4,7 @@ v8.15 Enhancements: - DietPi-Installer | Resolved an issue where conflicting network configurations were left in place, e.g. from cloud-init when running the script on a VPS Debian image. Many thanks to @mews-se for reporting this issue: https://github.com/MichaIng/DietPi/issues/6067 - DietPi-Software | XRDP: TLS via snakeoil certificate is now enabled OOTB. This leads to a warning shown on Windows RDP clients until either a proper certificate signed by a trusted CA is used (e.g. by Let's Encrypt), or it is muted for the particular server via checkbox at the client. Many thanks to @amibumping for providing the needed step: https://github.com/MichaIng/DietPi/issues/5976 +- DietPi-Software | Home Assistant: Our Home Assistant integration used two Python environments: A pyenv is used to install the "homeassistant" core module and its direct dependencies. Home Assistant itself installs its frontend with dependencies on startup, as well as dependencies for integrations on demand, internally into another Python environment. On Home Assistant reinstalls, pyenv is removed but the internal dependencies were left untouched. This caused issues when those dependency builds were incompatible with the new pyenv Python version, or conflicting with other pyenv module upgrades. Both environments are now merged and reset on every reinstall, which solves potential conflicts but means that the first Home Assistant startup after a reinstall takes longer. Many thanks to @maury77 for reporting a related issue: https://github.com/MichaIng/DietPi/issues/6117 Bug fixes: - Quartz64 | Resolved an issue where the system boots read-only on very first boot. Many thanks to @belveder79 for reporting this issue: https://github.com/MichaIng/DietPi/issues/6149 diff --git a/dietpi/dietpi-software b/dietpi/dietpi-software index d5ee13a975..c9c60ecd1b 100755 --- a/dietpi/dietpi-software +++ b/dietpi/dietpi-software @@ -11072,7 +11072,6 @@ _EOF_ G_EXEC chown "$ha_user:$ha_user" "$ha_home" if [[ $G_HW_ARCH == [12] ]] then - G_EXEC mkdir -p "$ha_home/.pip" # libjpeg-dev for Pillow, libatlas-base-dev for numpy aDEPS+=('libjpeg-dev' 'libatlas-base-dev') # Rust for cryptography @@ -11090,6 +11089,23 @@ _EOF_ [[ -d '/srv/homeassistant' ]] && G_EXEC rm -R /srv/homeassistant # pre-v6-27 G_EXEC mv pyenv-master "$ha_home/.pyenv" + # Link config and data to DietPi userdata + if [[ ! -d '/mnt/dietpi_userdata/homeassistant' ]] + then + if [[ -d $ha_home/.homeassistant ]] + then + G_EXEC mv "$ha_home/.homeassistant" /mnt/dietpi_userdata/homeassistant + else + G_EXEC mkdir /mnt/dietpi_userdata/homeassistant + fi + fi + [[ -d $ha_home/.homeassistant ]] && G_EXEC rm -R "$ha_home/.homeassistant" + G_EXEC ln -sf /mnt/dietpi_userdata/homeassistant "$ha_home/.homeassistant" + + # Reset and merge pyenv and HA Python environment to avoid version mismatches on Python upgrades: https://github.com/MichaIng/DietPi/issues/6117 + [[ -d '/mnt/dietpi_userdata/homeassistant/deps' ]] && G_EXEC rm -R /mnt/dietpi_userdata/homeassistant/deps + G_EXEC ln -sf "$ha_home/.pyenv/versions/$ha_python_version" /mnt/dietpi_userdata/homeassistant/deps + # 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 @@ -11123,6 +11139,7 @@ exec hass -c '/mnt/dietpi_userdata/homeassistant'" > "$ha_home/homeassistant-sta exec sudo -u $ha_user dash -c '$ha_pyenv_activation; exec pip3 install --no-cache-dir -U homeassistant'" > "$ha_home/homeassistant-update.sh" G_EXEC chmod +x "$ha_home/homeassistant-update.sh" + # Service cat << _EOF_ > /etc/systemd/system/home-assistant.service [Unit] Description=Home Assistant (DietPi) @@ -11138,19 +11155,6 @@ RestartForceExitStatus=100 [Install] WantedBy=multi-user.target _EOF_ - # Link config and data to DietPi userdata - if [[ ! -d '/mnt/dietpi_userdata/homeassistant' ]] - then - if [[ -d '/home/homeassistant/.homeassistant' ]] - then - G_EXEC mv "$ha_home/.homeassistant" /mnt/dietpi_userdata/homeassistant - else - G_EXEC mkdir /mnt/dietpi_userdata/homeassistant - fi - fi - [[ -d $ha_home/.homeassistant ]] && G_EXEC rm -R "$ha_home/.homeassistant" - G_EXEC ln -s /mnt/dietpi_userdata/homeassistant "$ha_home/.homeassistant" - # Download HACS Download_Install 'https://github.com/hacs/integration/releases/latest/download/hacs.zip' hacs [[ -d '/mnt/dietpi_userdata/homeassistant/custom_components/hacs' ]] && G_EXEC rm -R /mnt/dietpi_userdata/homeassistant/custom_components/hacs From 5d896610f551509b8b8fc841e50c856bfc43ae28 Mon Sep 17 00:00:00 2001 From: MichaIng Date: Sat, 18 Feb 2023 20:51:21 +0100 Subject: [PATCH 028/155] v8.15 - DietPi-Config | Do not show "Additional Options" section in WiFi settings if the only entry "Country" is not shown --- dietpi/dietpi-config | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dietpi/dietpi-config b/dietpi/dietpi-config index d16c8d7843..d5f791a5fb 100755 --- a/dietpi/dietpi-config +++ b/dietpi/dietpi-config @@ -2589,10 +2589,10 @@ This is mainly aimed at PINE A64 which may have a hardware issue that causes uns fi - G_WHIP_MENU_ARRAY+=('' '●─ Additional Options ') # Country code: On Debian Bookworm and from Linux 4.15 on, this setting is relevant for the WiFi Hotspot (hostapd) installation only: https://bugs.debian.org/1003903 if (( $WIFI_HOTSPOT )) || [[ -f '/lib/crda/crda' ]] then + G_WHIP_MENU_ARRAY+=('' '●─ Additional Options ') if [[ $WIFI_COUNTRYCODE == '00' ]] then G_WHIP_MENU_ARRAY+=('Country' ": [$WIFI_COUNTRYCODE] (Not set, please configure)") From 2b786fd91613f1da7627443143ae64154951a34f Mon Sep 17 00:00:00 2001 From: MichaIng Date: Sat, 18 Feb 2023 23:11:19 +0100 Subject: [PATCH 029/155] v8.15 (#6167) - CI | Move kernel and U-Boot builds for Quartz64 from GitLab to GitHub and use stable sources: https://gitlab.com/MichaIng/quartz64_ci/-/blob/DietPi/.gitlab-ci.yml --- .github/workflows/quartz64.yml | 81 ++++++++++++++++++++++++++++++++++ 1 file changed, 81 insertions(+) create mode 100644 .github/workflows/quartz64.yml diff --git a/.github/workflows/quartz64.yml b/.github/workflows/quartz64.yml new file mode 100644 index 0000000000..8c2c3e178f --- /dev/null +++ b/.github/workflows/quartz64.yml @@ -0,0 +1,81 @@ +name: quartz64 +on: workflow_dispatch +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true +permissions: {} +jobs: + build: + # https://github.com/actions/virtual-environments + runs-on: ubuntu-22.04 + defaults: + run: + shell: sh + working-directory: /dev/shm + env: + linux_version: '6.1.12' + uboot_branch: 'v2022.04-dietpi' + CROSS_COMPILE: 'aarch64-none-linux-gnu-' + ARCH: 'arm64' + steps: + # https://github.com/actions/setup-python/tags + - uses: actions/setup-python@v4 + with: + # https://github.com/actions/python-versions/tags + python-version: '3.x' + check-latest: true + - name: Setup build + run: | + { sudo apt-get -q update; sudo apt-get -qq install make gcc libc6-dev bc bison flex libssl-dev libncurses5-dev libelf-dev wget time xz-utils device-tree-compiler kmod swig zip; } & + { python3 -m pip install --no-cache-dir -U pip setuptools wheel; python3 -m pip install --no-cache-dir -U pyelftools; } & + { curl -fO 'https://gitlab.com/MichaIng/quartz64_ci/-/archive/DietPi/quartz64_ci-DietPi.tar.bz2'; tar xf quartz64_ci-DietPi.tar.bz2; } & + { curl -fO "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/snapshot/linux-$linux_version.tar.gz"; tar xf "linux-$linux_version.tar.gz"; } & + { curl -fO "https://gitlab.com/MichaIng/u-boot/-/archive/$uboot_branch/u-boot-$uboot_branch.tar.bz2"; tar xf "u-boot-$uboot_branch.tar.bz2"; } & + wait + rm quartz64_ci-DietPi.tar.bz2 "linux-$linux_version.tar.gz" "u-boot-$uboot_branch.tar.bz2" + cd quartz64_ci-DietPi + md5sum -c gcc-arm-10.2-2020.11-x86_64-aarch64-none-linux-gnu.tar.xz.asc + tar xf gcc-arm-10.2-2020.11-x86_64-aarch64-none-linux-gnu.tar.xz + rm gcc-arm-10.2-2020.11-x86_64-aarch64-none-linux-gnu.tar.xz* + cd .. + mv quartz64_ci-DietPi/quartz64_defconfig "linux-$linux_version/arch/arm64/configs/quartz64_defconfig" + mkdir artefacts + - name: Build U-Boot + run: | + mkdir artefacts/mainline-u-boot + export PATH="$PWD/quartz64_ci-DietPi/gcc-arm-10.2-2020.11-x86_64-aarch64-none-linux-gnu/bin:$PATH" BL31='rk3568_bl31_v1.28.elf' + cd "u-boot-$uboot_branch" + curl -sSfO 'https://raw.githubusercontent.com/JeffyCN/rockchip_mirrors/6186debcac95553f6b311cee10669e12c9c9963d/bin/rk35/rk3568_bl31_v1.28.elf' & + curl -sSfo 'rk3568_ddr_1560MHz_v1.12.bin' 'https://raw.githubusercontent.com/JeffyCN/rockchip_mirrors/ddf03c1d80b33dac72a33c4f732fc5849b47ff99/bin/rk35/rk3568_ddr_1560MHz_v1.13.bin' & + wait + make quartz64-a-rk3566_defconfig + make -j$(nproc) + mv u-boot-rockchip.bin ../artefacts/mainline-u-boot/quartz64-a-u-boot-rockchip.bin + make quartz64-b-rk3566_defconfig + make -j$(nproc) + mv u-boot-rockchip.bin ../artefacts/mainline-u-boot/quartz64-b-u-boot-rockchip.bin + make soquartz-rk3566_defconfig + make -j$(nproc) + mv u-boot-rockchip.bin ../artefacts/mainline-u-boot/soquartz-u-boot-rockchip.bin + - name: Build Linux + run: | + mkdir modules + export PATH="$PWD/quartz64_ci-DietPi/gcc-arm-10.2-2020.11-x86_64-aarch64-none-linux-gnu/bin:$PATH" INSTALL_MOD_PATH="$PWD/modules" + cd "linux-$linux_version" + make quartz64_defconfig + make -j$(nproc) + mv arch/arm64/boot/Image arch/arm64/boot/dts/rockchip/rk356*.dtb ../artefacts/ + make modules_install + cd ../modules + tar -czf kernel-modules.tar.gz lib + mv kernel-modules.tar.gz ../artefacts/ + - name: Upload + run: | + [ -d ~/.ssh ] || mkdir ~/.ssh + umask 377 + echo '${{ secrets.KNOWN_HOSTS }}' > ~/.ssh/known_hosts + echo '${{ secrets.SSH_KEY }}' > ~/.ssh/id_ed25519 + zip -9r artefacts.zip artefacts + curl -T artefacts.zip --key ~/.ssh/id_ed25519 '${{ secrets.UPLOAD_URL }}all/' + curl 'https://api.cloudflare.com/client/v4/zones/${{ secrets.CF_ZONE }}/purge_cache' -H 'Authorization: Bearer ${{ secrets.CF_TOKEN }}' -H 'Content-Type: application/json' \ + --data '{"files":["https://dietpi.com/downloads/binaries/testing/","https://dietpi.com/downloads/binaries/testing/artefacts.zip"]}' From 7ad7b5a289d02062ea1d2da086c7b19d7588d494 Mon Sep 17 00:00:00 2001 From: MichaIng Date: Sun, 19 Feb 2023 02:23:06 +0100 Subject: [PATCH 030/155] v8.15 (#6179) - CI | Quartz64: Move kernel config to DietPi repo, add VXLAN support and disable legacy PTYs correctly - CI | Quartz64: Switch to GCC cross compiler from package repo, which should be fine (v11.2), so that the extra GitLab repo is not needed anymore --- .build/images/Quartz64/quartz64_defconfig | 1038 +++++++++++++++++++++ .github/workflows/quartz64.yml | 33 +- 2 files changed, 1053 insertions(+), 18 deletions(-) create mode 100644 .build/images/Quartz64/quartz64_defconfig diff --git a/.build/images/Quartz64/quartz64_defconfig b/.build/images/Quartz64/quartz64_defconfig new file mode 100644 index 0000000000..49cac73160 --- /dev/null +++ b/.build/images/Quartz64/quartz64_defconfig @@ -0,0 +1,1038 @@ +CONFIG_WIREGUARD=m +# CONFIG_WIREGUARD_DEBUG is not set +CONFIG_BPF_SYSCALL=y +CONFIG_CGROUP_BPF=y +CONFIG_BRIDGE_NETFILTER=m +CONFIG_SQUASHFS=m +CONFIG_SQUASHFS_FILE_DIRECT=y +CONFIG_SQUASHFS_DECOMP_MULTI_PERCPU=y +CONFIG_SQUASHFS_XATTR=y +CONFIG_SQUASHFS_ZLIB=y +CONFIG_SQUASHFS_LZ4=y +CONFIG_SQUASHFS_LZO=y +CONFIG_SQUASHFS_XZ=y +CONFIG_SQUASHFS_ZSTD=y +CONFIG_CAN_GS_USB=m +CONFIG_MODULE_COMPRESS_XZ=y +CONFIG_SYSVIPC=y +CONFIG_POSIX_MQUEUE=y +CONFIG_AUDIT=y +CONFIG_GENERIC_IRQ_DEBUGFS=y +CONFIG_NO_HZ_IDLE=y +CONFIG_HIGH_RES_TIMERS=y +CONFIG_BPF_JIT=y +CONFIG_PREEMPT=y +CONFIG_IRQ_TIME_ACCOUNTING=y +CONFIG_BSD_PROCESS_ACCT=y +CONFIG_BSD_PROCESS_ACCT_V3=y +CONFIG_TASKSTATS=y +CONFIG_TASK_DELAY_ACCT=y +CONFIG_TASK_XACCT=y +CONFIG_TASK_IO_ACCOUNTING=y +CONFIG_IKCONFIG=y +CONFIG_IKCONFIG_PROC=y +CONFIG_LOG_BUF_SHIFT=18 +CONFIG_NUMA_BALANCING=y +CONFIG_MEMCG=y +CONFIG_BLK_CGROUP=y +CONFIG_CGROUP_PIDS=y +CONFIG_CGROUP_HUGETLB=y +CONFIG_CPUSETS=y +CONFIG_CGROUP_DEVICE=y +CONFIG_CGROUP_CPUACCT=y +CONFIG_CGROUP_PERF=y +CONFIG_CGROUP_MISC=y +CONFIG_USER_NS=y +CONFIG_SCHED_AUTOGROUP=y +CONFIG_KALLSYMS_ALL=y +# CONFIG_COMPAT_BRK is not set +CONFIG_PROFILING=y +CONFIG_ARCH_ROCKCHIP=y +CONFIG_SCHED_MC=y +CONFIG_SCHED_SMT=y +CONFIG_NUMA=y +CONFIG_KEXEC=y +CONFIG_KEXEC_FILE=y +CONFIG_CRASH_DUMP=y +CONFIG_XEN=y +CONFIG_RANDOMIZE_BASE=y +CONFIG_HIBERNATION=y +CONFIG_WQ_POWER_EFFICIENT_DEFAULT=y +CONFIG_ENERGY_MODEL=y +CONFIG_ARM_CPUIDLE=y +CONFIG_ARM_PSCI_CPUIDLE=y +CONFIG_CPU_FREQ=y +CONFIG_CPU_FREQ_STAT=y +CONFIG_CPU_FREQ_GOV_POWERSAVE=m +CONFIG_CPU_FREQ_GOV_USERSPACE=y +CONFIG_CPU_FREQ_GOV_ONDEMAND=y +CONFIG_CPU_FREQ_GOV_CONSERVATIVE=m +CONFIG_CPUFREQ_DT=y +CONFIG_ACPI_CPPC_CPUFREQ=m +CONFIG_ARM_SCPI_CPUFREQ=y +CONFIG_ARM_SCMI_CPUFREQ=y +CONFIG_ACPI=y +CONFIG_ACPI_APEI=y +CONFIG_ACPI_APEI_GHES=y +CONFIG_ACPI_APEI_MEMORY_FAILURE=y +CONFIG_ACPI_APEI_EINJ=y +CONFIG_VIRTUALIZATION=y +CONFIG_KVM=y +CONFIG_ARM64_CRYPTO=y +CONFIG_CRYPTO_SHA1_ARM64_CE=y +CONFIG_CRYPTO_SHA2_ARM64_CE=y +CONFIG_CRYPTO_SHA512_ARM64_CE=m +CONFIG_CRYPTO_SHA3_ARM64=m +CONFIG_CRYPTO_SM3_ARM64_CE=m +CONFIG_CRYPTO_GHASH_ARM64_CE=y +CONFIG_CRYPTO_CRCT10DIF_ARM64_CE=m +CONFIG_CRYPTO_AES_ARM64=y +CONFIG_CRYPTO_AES_ARM64_CE_CCM=y +CONFIG_CRYPTO_AES_ARM64_CE_BLK=y +CONFIG_CRYPTO_CHACHA20_NEON=m +CONFIG_CRYPTO_AES_ARM64_BS=m +CONFIG_JUMP_LABEL=y +CONFIG_COMPAT_32BIT_TIME=y +CONFIG_MODULES=y +CONFIG_MODULE_UNLOAD=y +# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set +CONFIG_KSM=y +CONFIG_MEMORY_FAILURE=y +CONFIG_TRANSPARENT_HUGEPAGE=y +CONFIG_CMA=y +CONFIG_ZSWAP=y +CONFIG_ZSWAP_COMPRESSOR_DEFAULT_ZSTD=y +CONFIG_ZSWAP_ZPOOL_DEFAULT_ZSMALLOC=y +CONFIG_ZSWAP_DEFAULT_ON=y +CONFIG_NET=y +CONFIG_PACKET=y +CONFIG_UNIX=y +CONFIG_INET=y +CONFIG_IP_MULTICAST=y +CONFIG_IP_PNP=y +CONFIG_IP_PNP_DHCP=y +CONFIG_IP_PNP_BOOTP=y +CONFIG_IPV6=y +CONFIG_NETFILTER=y +CONFIG_NETFILTER_ADVANCED=y +CONFIG_NETFILTER_NETLINK=m +CONFIG_NETFILTER_FAMILY_BRIDGE=y +CONFIG_NETFILTER_FAMILY_ARP=y +CONFIG_NETFILTER_NETLINK_ACCT=m +CONFIG_NETFILTER_NETLINK_QUEUE=m +CONFIG_NETFILTER_NETLINK_LOG=m +CONFIG_NETFILTER_NETLINK_OSF=m +CONFIG_NF_CONNTRACK=m +CONFIG_NF_LOG_SYSLOG=m +CONFIG_NETFILTER_CONNCOUNT=m +CONFIG_NF_CONNTRACK_MARK=y +CONFIG_NF_CONNTRACK_SECMARK=y +CONFIG_NF_CONNTRACK_ZONES=y +CONFIG_NF_CONNTRACK_EVENTS=y +CONFIG_NF_CONNTRACK_TIMEOUT=y +CONFIG_NF_CONNTRACK_TIMESTAMP=y +CONFIG_NF_CONNTRACK_LABELS=y +CONFIG_NF_CT_PROTO_DCCP=y +CONFIG_NF_CT_PROTO_GRE=y +CONFIG_NF_CT_PROTO_SCTP=y +CONFIG_NF_CT_PROTO_UDPLITE=y +CONFIG_NF_CONNTRACK_AMANDA=m +CONFIG_NF_CONNTRACK_FTP=m +CONFIG_NF_CONNTRACK_H323=m +CONFIG_NF_CONNTRACK_IRC=m +CONFIG_NF_CONNTRACK_BROADCAST=m +CONFIG_NF_CONNTRACK_NETBIOS_NS=m +CONFIG_NF_CONNTRACK_SNMP=m +CONFIG_NF_CONNTRACK_PPTP=m +CONFIG_NF_CONNTRACK_SANE=m +CONFIG_NF_CONNTRACK_SIP=m +CONFIG_NF_CONNTRACK_TFTP=m +CONFIG_NF_CT_NETLINK=m +CONFIG_NF_CT_NETLINK_TIMEOUT=m +CONFIG_NF_CT_NETLINK_HELPER=m +CONFIG_NETFILTER_NETLINK_GLUE_CT=y +CONFIG_NF_NAT=m +CONFIG_NF_NAT_AMANDA=m +CONFIG_NF_NAT_FTP=m +CONFIG_NF_NAT_IRC=m +CONFIG_NF_NAT_SIP=m +CONFIG_NF_NAT_TFTP=m +CONFIG_NF_NAT_REDIRECT=y +CONFIG_NF_NAT_MASQUERADE=y +CONFIG_NETFILTER_SYNPROXY=m +CONFIG_NF_TABLES=m +CONFIG_NF_TABLES_INET=y +CONFIG_NF_TABLES_NETDEV=y +CONFIG_NF_DUP_NETDEV=m +CONFIG_NF_FLOW_TABLE_INET=m +CONFIG_NF_FLOW_TABLE=m +CONFIG_NETFILTER_XTABLES=m +CONFIG_NETFILTER_XT_MARK=m +CONFIG_NETFILTER_XT_CONNMARK=m +CONFIG_NETFILTER_XT_SET=m +CONFIG_NETFILTER_XT_TARGET_AUDIT=m +CONFIG_NETFILTER_XT_TARGET_CHECKSUM=m +CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m +CONFIG_NETFILTER_XT_TARGET_CONNMARK=m +CONFIG_NETFILTER_XT_TARGET_CONNSECMARK=m +CONFIG_NETFILTER_XT_TARGET_CT=m +CONFIG_NETFILTER_XT_TARGET_DSCP=m +CONFIG_NETFILTER_XT_TARGET_HL=m +CONFIG_NETFILTER_XT_TARGET_HMARK=m +CONFIG_NETFILTER_XT_TARGET_IDLETIMER=m +CONFIG_NETFILTER_XT_TARGET_LED=m +CONFIG_NETFILTER_XT_TARGET_LOG=m +CONFIG_NETFILTER_XT_TARGET_MARK=m +CONFIG_NETFILTER_XT_NAT=m +CONFIG_NETFILTER_XT_TARGET_NETMAP=m +CONFIG_NETFILTER_XT_TARGET_NFLOG=m +CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m +CONFIG_NETFILTER_XT_TARGET_RATEEST=m +CONFIG_NETFILTER_XT_TARGET_REDIRECT=m +CONFIG_NETFILTER_XT_TARGET_MASQUERADE=m +CONFIG_NETFILTER_XT_TARGET_TEE=m +CONFIG_NETFILTER_XT_TARGET_TPROXY=m +CONFIG_NETFILTER_XT_TARGET_TRACE=m +CONFIG_NETFILTER_XT_TARGET_SECMARK=m +CONFIG_NETFILTER_XT_TARGET_TCPMSS=m +CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP=m +CONFIG_NETFILTER_XT_MATCH_ADDRTYPE=m +CONFIG_NETFILTER_XT_MATCH_BPF=m +CONFIG_NETFILTER_XT_MATCH_CGROUP=m +CONFIG_NETFILTER_XT_MATCH_CLUSTER=m +CONFIG_NETFILTER_XT_MATCH_COMMENT=m +CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m +CONFIG_NETFILTER_XT_MATCH_CONNLABEL=m +CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=m +CONFIG_NETFILTER_XT_MATCH_CONNMARK=m +CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m +CONFIG_NETFILTER_XT_MATCH_CPU=m +CONFIG_NETFILTER_XT_MATCH_DCCP=m +CONFIG_NETFILTER_XT_MATCH_DEVGROUP=m +CONFIG_NETFILTER_XT_MATCH_DSCP=m +CONFIG_NETFILTER_XT_MATCH_ECN=m +CONFIG_NETFILTER_XT_MATCH_ESP=m +CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m +CONFIG_NETFILTER_XT_MATCH_HELPER=m +CONFIG_NETFILTER_XT_MATCH_HL=m +CONFIG_NETFILTER_XT_MATCH_IPCOMP=m +CONFIG_NETFILTER_XT_MATCH_IPRANGE=m +CONFIG_NETFILTER_XT_MATCH_IPVS=m +CONFIG_NETFILTER_XT_MATCH_L2TP=m +CONFIG_NETFILTER_XT_MATCH_LENGTH=m +CONFIG_NETFILTER_XT_MATCH_LIMIT=m +CONFIG_NETFILTER_XT_MATCH_MAC=m +CONFIG_NETFILTER_XT_MATCH_MARK=m +CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m +CONFIG_NETFILTER_XT_MATCH_NFACCT=m +CONFIG_NETFILTER_XT_MATCH_OSF=m +CONFIG_NETFILTER_XT_MATCH_OWNER=m +CONFIG_NETFILTER_XT_MATCH_POLICY=m +CONFIG_NETFILTER_XT_MATCH_PHYSDEV=m +CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m +CONFIG_NETFILTER_XT_MATCH_QUOTA=m +CONFIG_NETFILTER_XT_MATCH_RATEEST=m +CONFIG_NETFILTER_XT_MATCH_REALM=m +CONFIG_NETFILTER_XT_MATCH_RECENT=m +CONFIG_NETFILTER_XT_MATCH_SCTP=m +CONFIG_NETFILTER_XT_MATCH_SOCKET=m +CONFIG_NETFILTER_XT_MATCH_STATE=m +CONFIG_NETFILTER_XT_MATCH_STATISTIC=m +CONFIG_NETFILTER_XT_MATCH_STRING=m +CONFIG_NETFILTER_XT_MATCH_TCPMSS=m +CONFIG_NETFILTER_XT_MATCH_TIME=m +CONFIG_NETFILTER_XT_MATCH_U32=m +CONFIG_NF_DEFRAG_IPV4=m +CONFIG_NF_SOCKET_IPV4=m +CONFIG_NF_TPROXY_IPV4=m +CONFIG_NF_TABLES_IPV4=y +CONFIG_NF_TABLES_ARP=y +CONFIG_NF_DUP_IPV4=m +CONFIG_NF_LOG_ARP=m +CONFIG_NF_LOG_IPV4=m +CONFIG_NF_REJECT_IPV4=m +CONFIG_NF_NAT_SNMP_BASIC=m +CONFIG_NF_NAT_PPTP=m +CONFIG_NF_NAT_H323=m +CONFIG_NF_SOCKET_IPV6=m +CONFIG_NF_TPROXY_IPV6=m +CONFIG_NF_TABLES_IPV6=y +CONFIG_NF_DUP_IPV6=m +CONFIG_NF_REJECT_IPV6=m +CONFIG_NF_LOG_IPV6=m +CONFIG_NF_DEFRAG_IPV6=m +CONFIG_NF_TABLES_BRIDGE=m +CONFIG_NF_CONNTRACK_BRIDGE=m +CONFIG_IP_NF_IPTABLES=m +CONFIG_IP_NF_FILTER=m +CONFIG_IP_NF_TARGET_REJECT=m +CONFIG_IP_NF_NAT=m +CONFIG_IP_NF_TARGET_MASQUERADE=m +CONFIG_IP_NF_MANGLE=m +CONFIG_IP6_NF_IPTABLES=m +CONFIG_IP6_NF_FILTER=m +CONFIG_IP6_NF_TARGET_REJECT=m +CONFIG_IP6_NF_MANGLE=m +CONFIG_IP6_NF_NAT=m +CONFIG_IP6_NF_TARGET_MASQUERADE=m +CONFIG_BRIDGE=m +CONFIG_BRIDGE_VLAN_FILTERING=y +CONFIG_NET_DSA=m +CONFIG_VLAN_8021Q=m +CONFIG_VLAN_8021Q_GVRP=y +CONFIG_VLAN_8021Q_MVRP=y +CONFIG_VXLAN=m +CONFIG_NET_SCHED=y +CONFIG_NET_SCH_CBS=m +CONFIG_NET_SCH_ETF=m +CONFIG_NET_SCH_TAPRIO=m +CONFIG_NET_SCH_MQPRIO=m +CONFIG_NET_SCH_INGRESS=m +CONFIG_NET_CLS_BASIC=m +CONFIG_NET_CLS_FLOWER=m +CONFIG_NET_CLS_ACT=y +CONFIG_NET_ACT_GACT=m +CONFIG_NET_ACT_MIRRED=m +CONFIG_NET_ACT_GATE=m +CONFIG_QRTR=m +CONFIG_QRTR_TUN=m +CONFIG_CAN=m +CONFIG_CAN_FLEXCAN=m +CONFIG_BT=m +CONFIG_BT_RFCOMM=y +CONFIG_BT_RFCOMM_TTY=y +CONFIG_BT_BNEP=y +CONFIG_BT_BNEP_MC_FILTER=y +CONFIG_BT_BNEP_PROTO_FILTER=y +CONFIG_BT_HIDP=y +CONFIG_BT_HS=y +CONFIG_BT_LEDS=y +CONFIG_BT_MSFTEXT=y +CONFIG_BT_HCIBTUSB=m +# CONFIG_BT_HCIBTUSB_BCM is not set +CONFIG_BT_HCIBTSDIO=m +CONFIG_BT_HCIUART=m +CONFIG_BT_HCIUART_LL=y +CONFIG_BT_HCIUART_BCM=y +CONFIG_BT_HCIUART_RTL=y +CONFIG_CFG80211=y +CONFIG_MAC80211=y +CONFIG_MAC80211_LEDS=y +CONFIG_RFKILL=y +CONFIG_NET_9P=y +CONFIG_NET_9P_VIRTIO=y +CONFIG_NFC=m +CONFIG_NFC_NCI=m +CONFIG_NFC_S3FWRN5_I2C=m +CONFIG_PCI=y +CONFIG_PCIEPORTBUS=y +CONFIG_PCI_DEBUG=y +CONFIG_PCI_REALLOC_ENABLE_AUTO=y +CONFIG_PCI_IOV=y +CONFIG_PCI_PASID=y +CONFIG_HOTPLUG_PCI=y +CONFIG_HOTPLUG_PCI_ACPI=y +CONFIG_PCI_HOST_GENERIC=y +CONFIG_PCIE_DW_PLAT_HOST=y +CONFIG_PCIE_ROCKCHIP_DW_HOST=y +CONFIG_PCI_ENDPOINT=y +CONFIG_PCI_ENDPOINT_CONFIGFS=y +CONFIG_PCI_EPF_TEST=m +CONFIG_DEVTMPFS=y +CONFIG_DEVTMPFS_MOUNT=y +CONFIG_FW_LOADER_USER_HELPER=y +CONFIG_FW_LOADER_USER_HELPER_FALLBACK=y +CONFIG_BRCMSTB_GISB_ARB=y +CONFIG_VEXPRESS_CONFIG=y +CONFIG_ARM_SCMI_PROTOCOL=y +CONFIG_ARM_SCPI_PROTOCOL=y +CONFIG_SYSFB_SIMPLEFB=y +CONFIG_EFI_CAPSULE_LOADER=y +CONFIG_MTD=y +CONFIG_MTD_BLOCK=y +CONFIG_MTD_CFI=y +CONFIG_MTD_CFI_ADV_OPTIONS=y +CONFIG_MTD_CFI_INTELEXT=y +CONFIG_MTD_CFI_AMDSTD=y +CONFIG_MTD_CFI_STAA=y +CONFIG_MTD_PHYSMAP=y +CONFIG_MTD_PHYSMAP_OF=y +CONFIG_MTD_DATAFLASH=y +CONFIG_MTD_SST25L=y +CONFIG_MTD_RAW_NAND=y +CONFIG_MTD_NAND_DENALI_DT=y +CONFIG_MTD_SPI_NOR=y +CONFIG_OF_OVERLAY=y +CONFIG_ZRAM=m +CONFIG_ZRAM_MEMORY_TRACKING=y +CONFIG_BLK_DEV_LOOP=m +CONFIG_BLK_DEV_NBD=m +CONFIG_BLK_DEV_RAM=n +CONFIG_VIRTIO_BLK=y +CONFIG_BLK_DEV_NVME=y +CONFIG_NVME_HWMON=y +CONFIG_SRAM=y +CONFIG_DW_XDATA_PCIE=y +CONFIG_PCI_ENDPOINT_TEST=m +CONFIG_EEPROM_AT24=m +CONFIG_EEPROM_AT25=m +CONFIG_UACCE=m +# CONFIG_SCSI_PROC_FS is not set +CONFIG_BLK_DEV_SD=y +CONFIG_SCSI_SAS_ATA=y +CONFIG_SCSI_HISI_SAS=y +CONFIG_SCSI_HISI_SAS_PCI=y +CONFIG_MEGARAID_SAS=y +CONFIG_SCSI_MPT3SAS=m +CONFIG_SCSI_UFSHCD=y +CONFIG_SCSI_UFSHCD_PLATFORM=y +CONFIG_ATA=y +CONFIG_SATA_AHCI=y +CONFIG_SATA_AHCI_PLATFORM=y +CONFIG_AHCI_CEVA=y +CONFIG_AHCI_QORIQ=y +CONFIG_SATA_SIL24=y +CONFIG_SATA_MV=y +CONFIG_PATA_PLATFORM=y +CONFIG_PATA_OF_PLATFORM=y +CONFIG_MD=y +CONFIG_BLK_DEV_MD=m +CONFIG_BLK_DEV_DM=m +CONFIG_DM_MIRROR=m +CONFIG_DM_ZERO=m +CONFIG_NETDEVICES=y +CONFIG_MACVLAN=m +CONFIG_MACVTAP=m +CONFIG_TUN=m +CONFIG_VETH=m +CONFIG_VIRTIO_NET=m +# CONFIG_NET_VENDOR_3COM is not set +# CONFIG_NET_VENDOR_ADAPTEC is not set +# CONFIG_NET_VENDOR_AGERE is not set +# CONFIG_NET_VENDOR_ALACRITECH is not set +# CONFIG_NET_VENDOR_ALTEON is not set +# CONFIG_NET_VENDOR_AMAZON is not set +# CONFIG_NET_VENDOR_AMD is not set +# CONFIG_NET_VENDOR_AQUANTIA is not set +# CONFIG_NET_VENDOR_ARC is not set +# CONFIG_NET_VENDOR_ASIX is not set +# CONFIG_NET_VENDOR_ATHEROS is not set +# CONFIG_NET_VENDOR_BROADCOM is not set +# CONFIG_NET_VENDOR_BROCADE is not set +# CONFIG_NET_VENDOR_CADENCE is not set +# CONFIG_NET_VENDOR_CAVIUM is not set +# CONFIG_NET_VENDOR_CHELSIO is not set +# CONFIG_NET_VENDOR_CISCO is not set +# CONFIG_NET_VENDOR_CORTINA is not set +# CONFIG_NET_VENDOR_DEC is not set +# CONFIG_NET_VENDOR_DLINK is not set +# CONFIG_NET_VENDOR_EMULEX is not set +# CONFIG_NET_VENDOR_ENGLEDER is not set +# CONFIG_NET_VENDOR_EZCHIP is not set +# CONFIG_NET_VENDOR_GOOGLE is not set +# CONFIG_NET_VENDOR_HISILICON is not set +# CONFIG_NET_VENDOR_HUAWEI is not set +CONFIG_E100=y +CONFIG_E1000=y +CONFIG_E1000E=y +CONFIG_IGB=y +CONFIG_IGBVF=y +CONFIG_IXGB=y +CONFIG_IXGBE=y +CONFIG_IXGBEVF=y +CONFIG_I40E=y +CONFIG_I40EVF=y +CONFIG_ICE=y +CONFIG_FM10K=y +CONFIG_IGC=y +# CONFIG_NET_VENDOR_MICROSOFT is not set +# CONFIG_NET_VENDOR_LITEX is not set +# CONFIG_NET_VENDOR_MARVELL is not set +# CONFIG_NET_VENDOR_MELLANOX is not set +# CONFIG_NET_VENDOR_MICREL is not set +# CONFIG_NET_VENDOR_MICROCHIP is not set +# CONFIG_NET_VENDOR_MICROSEMI is not set +# CONFIG_NET_VENDOR_MYRI is not set +# CONFIG_NET_VENDOR_NATSEMI is not set +# CONFIG_NET_VENDOR_NETERION is not set +# CONFIG_NET_VENDOR_NETRONOME is not set +# CONFIG_NET_VENDOR_NI is not set +# CONFIG_NET_VENDOR_NVIDIA is not set +# CONFIG_NET_VENDOR_OKI is not set +# CONFIG_NET_VENDOR_PENSANDO is not set +# CONFIG_NET_VENDOR_QLOGIC is not set +# CONFIG_NET_VENDOR_QUALCOMM is not set +# CONFIG_NET_VENDOR_RDC is not set +CONFIG_R8169=y +# CONFIG_NET_VENDOR_RENESAS is not set +# CONFIG_NET_VENDOR_ROCKER is not set +# CONFIG_NET_VENDOR_SAMSUNG is not set +# CONFIG_NET_VENDOR_SEEQ is not set +# CONFIG_NET_VENDOR_SOLARFLARE is not set +# CONFIG_NET_VENDOR_SILAN is not set +# CONFIG_NET_VENDOR_SIS is not set +# CONFIG_NET_VENDOR_SMSC is not set +# CONFIG_NET_VENDOR_SOCIONEXT is not set +CONFIG_STMMAC_ETH=y +CONFIG_DWMAC_DWC_QOS_ETH=y +# CONFIG_NET_VENDOR_SUN is not set +# CONFIG_NET_VENDOR_TEHUTI is not set +# CONFIG_NET_VENDOR_TI is not set +# CONFIG_NET_VENDOR_VERTEXCOM is not set +# CONFIG_NET_VENDOR_VIA is not set +# CONFIG_NET_VENDOR_WIZNET is not set +# CONFIG_NET_VENDOR_XILINX is not set +CONFIG_AQUANTIA_PHY=y +CONFIG_BROADCOM_PHY=m +CONFIG_BCM54140_PHY=m +CONFIG_BCM7XXX_PHY=m +CONFIG_MARVELL_PHY=m +CONFIG_MARVELL_10G_PHY=m +CONFIG_MICREL_PHY=y +CONFIG_MICROSEMI_PHY=y +CONFIG_MOTORCOMM_PHY=y +CONFIG_AT803X_PHY=y +CONFIG_ROCKCHIP_PHY=y +CONFIG_VITESSE_PHY=y +CONFIG_MDIO_BITBANG=y +CONFIG_MDIO_BUS_MUX_GPIO=y +CONFIG_MDIO_BUS_MUX_MULTIPLEXER=y +CONFIG_MDIO_BUS_MUX_MMIOREG=y +CONFIG_USB_PEGASUS=m +CONFIG_USB_RTL8150=m +CONFIG_USB_RTL8152=m +CONFIG_USB_LAN78XX=m +CONFIG_USB_USBNET=y +CONFIG_USB_NET_AX8817X=m +CONFIG_USB_NET_CDCETHER=m +CONFIG_USB_NET_CDC_NCM=m +CONFIG_USB_NET_DM9601=m +CONFIG_USB_NET_SR9800=m +CONFIG_USB_NET_SMSC75XX=m +CONFIG_USB_NET_SMSC95XX=m +CONFIG_USB_NET_NET1080=m +CONFIG_USB_NET_PLUSB=m +CONFIG_USB_NET_MCS7830=m +CONFIG_USB_NET_CDC_SUBSET=m +CONFIG_USB_NET_ZAURUS=m +# CONFIG_WLAN_VENDOR_ADMTEK is not set +# CONFIG_WLAN_VENDOR_ATH is not set +# CONFIG_WLAN_VENDOR_ATMEL is not set +CONFIG_BRCMFMAC=m +CONFIG_BRCM_TRACING=y +CONFIG_BRCMDBG=y +# CONFIG_WLAN_VENDOR_CISCO is not set +# CONFIG_WLAN_VENDOR_INTEL is not set +# CONFIG_WLAN_VENDOR_INTERSIL is not set +# CONFIG_WLAN_VENDOR_MARVELL is not set +# CONFIG_WLAN_VENDOR_MEDIATEK is not set +# CONFIG_WLAN_VENDOR_MICROCHIP is not set +# CONFIG_WLAN_VENDOR_RALINK is not set +CONFIG_RTL8192CE=y +CONFIG_RTL8192SE=y +CONFIG_RTL8192DE=y +CONFIG_RTL8723AE=y +CONFIG_RTL8723BE=y +CONFIG_RTL8188EE=y +CONFIG_RTL8192EE=y +CONFIG_RTL8821AE=y +CONFIG_RTL8192CU=y +CONFIG_RTL8XXXU=y +CONFIG_RTL8XXXU_UNTESTED=y +CONFIG_RTW88=y +CONFIG_RTW88_8822BE=y +CONFIG_RTW88_8822CE=y +CONFIG_RTW88_8723DE=y +CONFIG_RTW88_8821CE=y +CONFIG_RTW88_DEBUG=y +CONFIG_RTW88_DEBUGFS=y +# CONFIG_WLAN_VENDOR_RSI is not set +# CONFIG_WLAN_VENDOR_ST is not set +# CONFIG_WLAN_VENDOR_TI is not set +# CONFIG_WLAN_VENDOR_ZYDAS is not set +# CONFIG_WLAN_VENDOR_QUANTENNA is not set +CONFIG_INPUT_FF_MEMLESS=y +CONFIG_INPUT_MATRIXKMAP=y +CONFIG_INPUT_EVDEV=y +CONFIG_KEYBOARD_ADC=m +CONFIG_KEYBOARD_GPIO=y +CONFIG_INPUT_TOUCHSCREEN=y +CONFIG_TOUCHSCREEN_CYTTSP5=y +CONFIG_TOUCHSCREEN_GOODIX=y +CONFIG_INPUT_MISC=y +CONFIG_INPUT_PWM_VIBRA=m +CONFIG_INPUT_RK805_PWRKEY=y +CONFIG_INPUT_WS8100_PEN=y +# CONFIG_SERIO_SERPORT is not set +CONFIG_SERIO_AMBAKMI=y +CONFIG_LEGACY_PTYS=n +CONFIG_SERIAL_8250=y +CONFIG_SERIAL_8250_CONSOLE=y +CONFIG_SERIAL_8250_EXTENDED=y +CONFIG_SERIAL_8250_SHARE_IRQ=y +CONFIG_SERIAL_8250_DW=y +# CONFIG_SERIAL_8250_PERICOM is not set +CONFIG_SERIAL_OF_PLATFORM=y +CONFIG_SERIAL_AMBA_PL011=y +CONFIG_SERIAL_AMBA_PL011_CONSOLE=y +CONFIG_SERIAL_XILINX_PS_UART=y +CONFIG_SERIAL_XILINX_PS_UART_CONSOLE=y +CONFIG_SERIAL_FSL_LPUART=y +CONFIG_SERIAL_FSL_LPUART_CONSOLE=y +CONFIG_SERIAL_FSL_LINFLEXUART=y +CONFIG_SERIAL_FSL_LINFLEXUART_CONSOLE=y +CONFIG_SERIAL_DEV_BUS=y +CONFIG_VIRTIO_CONSOLE=m +CONFIG_IPMI_HANDLER=m +CONFIG_IPMI_DEVICE_INTERFACE=m +CONFIG_IPMI_SI=m +# CONFIG_HW_RANDOM_CN10K is not set +CONFIG_TCG_TPM=y +CONFIG_TCG_TIS_I2C_INFINEON=y +CONFIG_I2C_CHARDEV=y +CONFIG_I2C_MUX=y +CONFIG_I2C_MUX_PCA954x=y +CONFIG_I2C_DESIGNWARE_PLATFORM=y +CONFIG_I2C_GPIO=m +CONFIG_I2C_RK3X=y +CONFIG_I2C_SLAVE=y +CONFIG_SPI=y +CONFIG_SPI_CADENCE_QUADSPI=y +CONFIG_SPI_NXP_FLEXSPI=y +CONFIG_SPI_GPIO=y +CONFIG_SPI_PL022=y +CONFIG_SPI_ROCKCHIP=y +CONFIG_SPI_ROCKCHIP_SFC=y +CONFIG_SPI_SPIDEV=m +CONFIG_SPMI=y +CONFIG_PINCTRL_RK805=y +CONFIG_PINCTRL_SINGLE=y +CONFIG_GPIO_DWAPB=y +CONFIG_GPIO_GENERIC_PLATFORM=y +CONFIG_GPIO_MB86S7X=y +CONFIG_GPIO_PL061=y +CONFIG_GPIO_SYSCON=y +CONFIG_GPIO_XGENE=y +CONFIG_GPIO_MAX732X=y +CONFIG_GPIO_PCA953X=y +CONFIG_GPIO_PCA953X_IRQ=y +CONFIG_POWER_RESET_GPIO=y +CONFIG_PDA_POWER=m +CONFIG_GENERIC_ADC_BATTERY=m +CONFIG_BATTERY_SBS=m +CONFIG_CHARGER_SBS=m +CONFIG_MANAGER_SBS=m +CONFIG_CHARGER_RK817=y +CONFIG_SENSORS_ARM_SCMI=y +CONFIG_SENSORS_ARM_SCPI=y +CONFIG_SENSORS_GPIO_FAN=y +CONFIG_SENSORS_PWM_FAN=y +CONFIG_THERMAL_NETLINK=y +CONFIG_THERMAL_STATISTICS=y +CONFIG_THERMAL_WRITABLE_TRIPS=y +CONFIG_THERMAL_GOV_FAIR_SHARE=y +CONFIG_THERMAL_GOV_BANG_BANG=y +CONFIG_THERMAL_GOV_USER_SPACE=y +CONFIG_THERMAL_GOV_POWER_ALLOCATOR=y +CONFIG_CPU_THERMAL=y +CONFIG_DEVFREQ_THERMAL=y +CONFIG_THERMAL_EMULATION=n +CONFIG_THERMAL_MMIO=m +CONFIG_ROCKCHIP_THERMAL=y +CONFIG_GENERIC_ADC_THERMAL=m +CONFIG_WATCHDOG=y +CONFIG_WATCHDOG_NOWAYOUT=y +CONFIG_WATCHDOG_SYSFS=y +CONFIG_DW_WATCHDOG=y +CONFIG_MFD_RK808=y +# CONFIG_MFD_VEXPRESS_SYSREG is not set +CONFIG_REGULATOR=y +CONFIG_REGULATOR_DEBUG=y +CONFIG_REGULATOR_FIXED_VOLTAGE=y +CONFIG_REGULATOR_USERSPACE_CONSUMER=y +CONFIG_REGULATOR_FAN53555=y +CONFIG_REGULATOR_GPIO=y +CONFIG_REGULATOR_PWM=y +CONFIG_REGULATOR_RK808=y +CONFIG_REGULATOR_TPS65185=y +CONFIG_REGULATOR_VCTRL=y +CONFIG_RC_CORE=m +CONFIG_RC_DECODERS=y +CONFIG_RC_DEVICES=y +CONFIG_MEDIA_CEC_SUPPORT=y +CONFIG_CEC_GPIO=y +CONFIG_MEDIA_SUPPORT=m +CONFIG_MEDIA_CAMERA_SUPPORT=y +CONFIG_MEDIA_ANALOG_TV_SUPPORT=y +CONFIG_MEDIA_DIGITAL_TV_SUPPORT=y +CONFIG_MEDIA_SDR_SUPPORT=y +CONFIG_MEDIA_PLATFORM_SUPPORT=y +# CONFIG_DVB_NET is not set +CONFIG_MEDIA_USB_SUPPORT=y +CONFIG_USB_VIDEO_CLASS=m +CONFIG_USB_GSPCA=m +CONFIG_V4L_PLATFORM_DRIVERS=y +CONFIG_V4L_MEM2MEM_DRIVERS=y +CONFIG_SDR_PLATFORM_DRIVERS=y +CONFIG_VIDEO_IMX219=m +CONFIG_VIDEO_OV5645=m +CONFIG_DRM=y +CONFIG_DRM_I2C_CH7006=m +CONFIG_DRM_I2C_SIL164=m +CONFIG_DRM_I2C_NXP_TDA998X=m +CONFIG_DRM_MALI_DISPLAY=m +CONFIG_DRM_ROCKCHIP=y +CONFIG_ROCKCHIP_VOP2=y +CONFIG_ROCKCHIP_DW_HDMI=y +CONFIG_ROCKCHIP_DW_MIPI_DSI=y +CONFIG_ROCKCHIP_INNO_HDMI=y +CONFIG_ROCKCHIP_LVDS=y +CONFIG_DRM_ROCKCHIP_EBC=m +CONFIG_DRM_PANEL_LVDS=m +CONFIG_DRM_PANEL_SIMPLE=m +CONFIG_DRM_PANEL_EDP=m +CONFIG_DRM_PANEL_FEIYANG_FY07024DI26A30D=y +CONFIG_DRM_PANEL_MANTIX_MLAF057WE51=m +CONFIG_DRM_PANEL_RAYDIUM_RM67191=m +CONFIG_DRM_PANEL_SITRONIX_ST7703=m +CONFIG_DRM_PANEL_TRULY_NT35597_WQXGA=m +CONFIG_DRM_DISPLAY_CONNECTOR=m +CONFIG_DRM_LONTIUM_LT9611=m +CONFIG_DRM_LONTIUM_LT9611UXC=m +CONFIG_DRM_NWL_MIPI_DSI=m +CONFIG_DRM_SII902X=m +CONFIG_DRM_SIMPLE_BRIDGE=m +CONFIG_DRM_THINE_THC63LVD1024=m +CONFIG_DRM_TI_SN65DSI86=m +CONFIG_DRM_I2C_ADV7511=m +CONFIG_DRM_I2C_ADV7511_AUDIO=y +CONFIG_DRM_DW_HDMI_CEC=y +CONFIG_DRM_PL111=m +CONFIG_DRM_PANFROST=y +CONFIG_FB=y +# CONFIG_XEN_FBDEV_FRONTEND is not set +CONFIG_FB_SIMPLE=y +CONFIG_BACKLIGHT_CLASS_DEVICE=y +CONFIG_BACKLIGHT_PWM=m +CONFIG_BACKLIGHT_LM3630A=y +CONFIG_BACKLIGHT_LP855X=m +CONFIG_SOUND=y +CONFIG_SND=y +CONFIG_SND_HDA_INTEL=y +CONFIG_SND_HDA_CODEC_HDMI=y +CONFIG_SND_HDA_GENERIC=y +CONFIG_SND_SOC=y +CONFIG_SND_SOC_FSL_ASRC=m +CONFIG_SND_SOC_FSL_SAI=m +CONFIG_SND_SOC_FSL_AUDMIX=m +CONFIG_SND_SOC_FSL_SSI=m +CONFIG_SND_SOC_FSL_SPDIF=m +CONFIG_SND_SOC_FSL_ESAI=m +CONFIG_SND_SOC_FSL_MICFIL=m +CONFIG_SND_SOC_FSL_EASRC=m +CONFIG_SND_SOC_IMX_AUDMUX=m +CONFIG_SND_SOC_ROCKCHIP=y +CONFIG_SND_SOC_ROCKCHIP_I2S_TDM=y +CONFIG_SND_SOC_ROCKCHIP_PDM=y +CONFIG_SND_SOC_ROCKCHIP_SPDIF=y +CONFIG_SND_SOC_ROCKCHIP_MAX98090=y +CONFIG_SND_SOC_ROCKCHIP_RT5645=y +CONFIG_SND_SOC_RK3288_HDMI_ANALOG=y +CONFIG_SND_SOC_RK3399_GRU_SOUND=y +CONFIG_SND_SOC_AK4613=m +CONFIG_SND_SOC_ES7134=m +CONFIG_SND_SOC_ES7241=m +CONFIG_SND_SOC_GTM601=m +CONFIG_SND_SOC_MAX98927=m +CONFIG_SND_SOC_PCM3168A_I2C=m +CONFIG_SND_SOC_RK3328=y +CONFIG_SND_SOC_RK817=y +CONFIG_SND_SOC_RT5659=m +CONFIG_SND_SOC_SGTL5000=m +CONFIG_SND_SOC_SIMPLE_AMPLIFIER=y +CONFIG_SND_SOC_SIMPLE_MUX=y +CONFIG_SND_SOC_SPDIF=y +CONFIG_SND_SOC_TAS571X=m +CONFIG_SND_SOC_WM8904=m +CONFIG_SND_SOC_WM8960=m +CONFIG_SND_SOC_WM8962=m +CONFIG_SND_SOC_WSA881X=m +CONFIG_SND_SOC_LPASS_WSA_MACRO=m +CONFIG_SND_SOC_LPASS_VA_MACRO=m +CONFIG_SND_SIMPLE_CARD=y +CONFIG_SND_AUDIO_GRAPH_CARD=y +CONFIG_HID_BATTERY_STRENGTH=y +# CONFIG_HID_A4TECH is not set +# CONFIG_HID_APPLE is not set +# CONFIG_HID_BELKIN is not set +# CONFIG_HID_EZKEY is not set +# CONFIG_HID_ITE is not set +# CONFIG_HID_KENSINGTON is not set +CONFIG_HID_LOGITECH_HIDPP=m +CONFIG_HID_REDRAGON=m +CONFIG_HID_MICROSOFT=m +CONFIG_HID_MONTEREY=m +CONFIG_HID_MULTITOUCH=y +CONFIG_I2C_HID_ACPI=m +CONFIG_I2C_HID_OF=m +CONFIG_I2C_HID_OF_GOODIX=m +CONFIG_USB_LED_TRIG=y +CONFIG_USB_ULPI_BUS=y +CONFIG_USB_CONN_GPIO=y +CONFIG_USB=y +CONFIG_USB_OTG=y +CONFIG_USB_LEDS_TRIGGER_USBPORT=y +CONFIG_USB_MON=m +CONFIG_USB_XHCI_HCD=y +CONFIG_USB_EHCI_HCD=y +CONFIG_USB_EHCI_ROOT_HUB_TT=y +CONFIG_USB_EHCI_HCD_PLATFORM=y +CONFIG_USB_OHCI_HCD=y +CONFIG_USB_OHCI_HCD_PLATFORM=y +CONFIG_USB_ACM=m +CONFIG_USB_STORAGE=y +CONFIG_USB_DWC3=y +CONFIG_USB_DWC2=y +CONFIG_USB_SERIAL=m +CONFIG_USB_SERIAL_GENERIC=y +CONFIG_USB_SERIAL_SIMPLE=m +CONFIG_USB_SERIAL_CH341=m +CONFIG_USB_SERIAL_CP210X=m +CONFIG_USB_SERIAL_FTDI_SIO=m +CONFIG_USB_SERIAL_OPTION=m +CONFIG_USB_SERIAL_DEBUG=m +CONFIG_NOP_USB_XCEIV=y +CONFIG_USB_ULPI=y +CONFIG_USB_GADGET=y +CONFIG_USB_SNP_UDC_PLAT=y +CONFIG_USB_BDC_UDC=y +CONFIG_USB_CONFIGFS=y +CONFIG_USB_CONFIGFS_SERIAL=y +CONFIG_USB_CONFIGFS_ACM=y +CONFIG_USB_CONFIGFS_OBEX=y +CONFIG_USB_CONFIGFS_NCM=y +CONFIG_USB_CONFIGFS_ECM=y +CONFIG_USB_CONFIGFS_ECM_SUBSET=y +CONFIG_USB_CONFIGFS_RNDIS=y +CONFIG_USB_CONFIGFS_EEM=y +CONFIG_USB_CONFIGFS_MASS_STORAGE=y +CONFIG_USB_CONFIGFS_F_FS=y +CONFIG_TYPEC=y +CONFIG_TYPEC_TCPM=y +CONFIG_TYPEC_TCPCI=y +CONFIG_TYPEC_FUSB302=y +CONFIG_TYPEC_UCSI=y +CONFIG_TYPEC_TPS6598X=m +CONFIG_TYPEC_HD3SS3220=m +CONFIG_TYPEC_WUSB3801=y +CONFIG_MMC=y +CONFIG_MMC_BLOCK_MINORS=32 +CONFIG_SDIO_UART=y +CONFIG_MMC_DEBUG=y +CONFIG_MMC_ARMMMCI=y +CONFIG_MMC_SDHCI=y +CONFIG_MMC_SDHCI_ACPI=y +CONFIG_MMC_SDHCI_PLTFM=y +CONFIG_MMC_SDHCI_OF_DWCMSHC=y +CONFIG_MMC_SDHCI_F_SDH30=y +CONFIG_MMC_SPI=y +CONFIG_MMC_DW=y +CONFIG_MMC_DW_ROCKCHIP=y +CONFIG_MMC_CQHCI=y +CONFIG_MMC_HSQ=y +CONFIG_NEW_LEDS=y +CONFIG_LEDS_CLASS=y +CONFIG_LEDS_GPIO=y +CONFIG_LEDS_PWM=y +CONFIG_LEDS_REGULATOR=y +CONFIG_LEDS_SYSCON=y +CONFIG_LEDS_USER=y +CONFIG_LEDS_TRIGGER_TIMER=y +CONFIG_LEDS_TRIGGER_ONESHOT=y +CONFIG_LEDS_TRIGGER_DISK=y +CONFIG_LEDS_TRIGGER_MTD=y +CONFIG_LEDS_TRIGGER_HEARTBEAT=y +CONFIG_LEDS_TRIGGER_BACKLIGHT=y +CONFIG_LEDS_TRIGGER_CPU=y +CONFIG_LEDS_TRIGGER_ACTIVITY=y +CONFIG_LEDS_TRIGGER_GPIO=y +CONFIG_LEDS_TRIGGER_DEFAULT_ON=y +CONFIG_LEDS_TRIGGER_TRANSIENT=y +CONFIG_LEDS_TRIGGER_CAMERA=y +CONFIG_LEDS_TRIGGER_PANIC=y +CONFIG_LEDS_TRIGGER_NETDEV=y +CONFIG_LEDS_TRIGGER_PATTERN=y +CONFIG_LEDS_TRIGGER_AUDIO=y +CONFIG_LEDS_TRIGGER_TTY=y +CONFIG_EDAC=y +CONFIG_EDAC_GHES=y +CONFIG_RTC_CLASS=y +CONFIG_RTC_DRV_RK808=y +CONFIG_RTC_DRV_PCF85063=y +CONFIG_RTC_DRV_EFI=y +CONFIG_DMADEVICES=y +CONFIG_AMBA_PL08X=y +CONFIG_PL330_DMA=y +CONFIG_DW_DMAC=m +CONFIG_DW_DMAC_PCI=m +CONFIG_DW_EDMA_PCIE=m +CONFIG_UIO=m +CONFIG_VFIO=y +CONFIG_VFIO_NOIOMMU=y +CONFIG_VFIO_PCI=y +CONFIG_VIRTIO_PCI=m +CONFIG_VIRTIO_BALLOON=m +CONFIG_VIRTIO_INPUT=m +CONFIG_VIRTIO_MMIO=m +# CONFIG_XEN_BALLOON is not set +# CONFIG_XEN_DEV_EVTCHN is not set +# CONFIG_XEN_BACKEND is not set +# CONFIG_XENFS is not set +# CONFIG_XEN_SYS_HYPERVISOR is not set +# CONFIG_XEN_GNTDEV is not set +# CONFIG_XEN_GRANT_DEV_ALLOC is not set +CONFIG_STAGING=y +CONFIG_RTL8192U=m +CONFIG_RTLLIB=m +CONFIG_RTL8192E=m +CONFIG_RTL8723BS=m +CONFIG_R8712U=m +CONFIG_R8188EU=m +CONFIG_STAGING_MEDIA=y +CONFIG_VIDEO_HANTRO=m +CONFIG_VIDEO_ROCKCHIP_VDEC=m +CONFIG_ASHMEM=y +# CONFIG_SURFACE_PLATFORMS is not set +CONFIG_COMMON_CLK_RK808=y +CONFIG_COMMON_CLK_SCMI=y +CONFIG_COMMON_CLK_SCPI=y +CONFIG_COMMON_CLK_PWM=y +CONFIG_COMMON_CLK_FIXED_MMIO=y +CONFIG_HWSPINLOCK=y +# CONFIG_FSL_ERRATUM_A008585 is not set +# CONFIG_HISILICON_ERRATUM_161010101 is not set +CONFIG_ARM_MHU=y +CONFIG_PLATFORM_MHU=y +CONFIG_ROCKCHIP_MBOX=y +CONFIG_IOMMU_IO_PGTABLE_ARMV7S=y +CONFIG_IOMMU_DEFAULT_PASSTHROUGH=y +CONFIG_ROCKCHIP_IOMMU=y +CONFIG_ARM_SMMU=y +CONFIG_ARM_SMMU_V3=y +CONFIG_ARM_SMMU_V3_SVA=y +CONFIG_REMOTEPROC=y +CONFIG_REMOTEPROC_CDEV=y +CONFIG_SOUNDWIRE=m +CONFIG_SOUNDWIRE_INTEL=m +CONFIG_SOUNDWIRE_QCOM=m +CONFIG_ROCKCHIP_IODOMAIN=y +CONFIG_ROCKCHIP_PM_DOMAINS=y +CONFIG_DEVFREQ_GOV_PERFORMANCE=m +CONFIG_DEVFREQ_GOV_POWERSAVE=m +CONFIG_DEVFREQ_GOV_USERSPACE=m +CONFIG_DEVFREQ_GOV_PASSIVE=m +CONFIG_ARM_RK3399_DMC_DEVFREQ=m +CONFIG_EXTCON_ADC_JACK=y +CONFIG_EXTCON_GPIO=y +CONFIG_EXTCON_USB_GPIO=y +CONFIG_MEMORY=y +CONFIG_IIO=y +CONFIG_IIO_ST_ACCEL_3AXIS=y +CONFIG_MAX9611=m +CONFIG_QCOM_SPMI_ADC5=m +CONFIG_ROCKCHIP_SARADC=m +CONFIG_IIO_ST_LSM6DSX=m +CONFIG_SENSORS_ISL29018=m +CONFIG_VCNL4000=m +CONFIG_IIO_ST_MAGN_3AXIS=m +CONFIG_MPL3115=m +CONFIG_PWM=y +CONFIG_PWM_ROCKCHIP=y +CONFIG_PHY_ROCKCHIP_DP=y +CONFIG_PHY_ROCKCHIP_DPHY_RX0=y +CONFIG_PHY_ROCKCHIP_EMMC=y +CONFIG_PHY_ROCKCHIP_INNO_HDMI=y +CONFIG_PHY_ROCKCHIP_INNO_USB2=y +CONFIG_PHY_ROCKCHIP_INNO_CSIDPHY=y +CONFIG_PHY_ROCKCHIP_INNO_DSIDPHY=y +CONFIG_PHY_ROCKCHIP_NANENG_COMBO_PHY=y +CONFIG_PHY_ROCKCHIP_PCIE=y +CONFIG_PHY_ROCKCHIP_TYPEC=y +CONFIG_PHY_ROCKCHIP_USB=y +CONFIG_ARM_SMMU_V3_PMU=m +CONFIG_ANDROID=y +CONFIG_ANDROID_BINDER_IPC=y +CONFIG_ANDROID_BINDERFS=y +CONFIG_ROCKCHIP_EFUSE=y +CONFIG_ROCKCHIP_OTP=y +CONFIG_NVMEM_RMEM=m +CONFIG_TEE=y +CONFIG_OPTEE=y +CONFIG_MUX_MMIO=y +# CONFIG_SLIMBUS is not set +CONFIG_INTERCONNECT=y +CONFIG_EXT2_FS=y +CONFIG_EXT3_FS=y +CONFIG_EXT4_FS_POSIX_ACL=y +CONFIG_BTRFS_FS=m +CONFIG_BTRFS_FS_POSIX_ACL=y +CONFIG_F2FS_FS=m +CONFIG_FANOTIFY=y +CONFIG_FANOTIFY_ACCESS_PERMISSIONS=y +CONFIG_QUOTA=y +CONFIG_AUTOFS4_FS=y +CONFIG_FUSE_FS=m +CONFIG_CUSE=m +CONFIG_OVERLAY_FS=m +CONFIG_VFAT_FS=y +CONFIG_NTFS3_FS=y +CONFIG_NTFS3_LZX_XPRESS=y +CONFIG_TMPFS=y +CONFIG_TMPFS_POSIX_ACL=y +CONFIG_HUGETLBFS=y +CONFIG_EFIVAR_FS=y +CONFIG_NFS_FS=y +CONFIG_NFS_V4=y +CONFIG_NFS_V4_1=y +CONFIG_NFS_V4_2=y +CONFIG_ROOT_NFS=y +CONFIG_SMB_SERVER=m +CONFIG_SMB_SERVER_KERBEROS5=y +CONFIG_9P_FS=y +CONFIG_NLS_CODEPAGE_437=y +CONFIG_NLS_ISO8859_1=y +CONFIG_UNICODE=y +CONFIG_SECURITY=y +CONFIG_CRYPTO_CRYPTD=y +CONFIG_CRYPTO_ECDH=y +CONFIG_CRYPTO_ECHAINIV=y +CONFIG_CRYPTO_MD4=y +CONFIG_CRYPTO_DES=m +CONFIG_CRYPTO_ANSI_CPRNG=y +CONFIG_CRYPTO_USER_API_RNG=m +CONFIG_CRYPTO_DEV_CCREE=m +CONFIG_CRYPTO_DEV_HISI_SEC2=m +CONFIG_CRYPTO_DEV_HISI_ZIP=m +CONFIG_CRYPTO_DEV_HISI_HPRE=m +CONFIG_CRYPTO_DEV_HISI_TRNG=m +CONFIG_CRYPTO_DEV_AMLOGIC_GXL=m +CONFIG_PACKING=y +CONFIG_INDIRECT_PIO=y +CONFIG_CRC_CCITT=m +CONFIG_CRC8=y +CONFIG_DMA_CMA=y +CONFIG_CMA_SIZE_MBYTES=32 +CONFIG_PRINTK_TIME=y +CONFIG_CONSOLE_LOGLEVEL_DEFAULT=15 +CONFIG_DEBUG_INFO=y +CONFIG_DEBUG_INFO_REDUCED=y +CONFIG_MAGIC_SYSRQ=y +CONFIG_DEBUG_FS=y +CONFIG_DEBUG_KERNEL=y +CONFIG_SOFTLOCKUP_DETECTOR=y +CONFIG_WQ_WATCHDOG=y +# CONFIG_SCHED_DEBUG is not set +CONFIG_BOOTTIME_TRACING=y +CONFIG_FUNCTION_TRACER=y +CONFIG_FUNCTION_PROFILER=y +CONFIG_MEMTEST=y diff --git a/.github/workflows/quartz64.yml b/.github/workflows/quartz64.yml index 8c2c3e178f..fdf33713bb 100644 --- a/.github/workflows/quartz64.yml +++ b/.github/workflows/quartz64.yml @@ -15,7 +15,7 @@ jobs: env: linux_version: '6.1.12' uboot_branch: 'v2022.04-dietpi' - CROSS_COMPILE: 'aarch64-none-linux-gnu-' + CROSS_COMPILE: 'aarch64-linux-gnu-' ARCH: 'arm64' steps: # https://github.com/actions/setup-python/tags @@ -26,27 +26,20 @@ jobs: check-latest: true - name: Setup build run: | - { sudo apt-get -q update; sudo apt-get -qq install make gcc libc6-dev bc bison flex libssl-dev libncurses5-dev libelf-dev wget time xz-utils device-tree-compiler kmod swig zip; } & + { sudo apt-get -q update; sudo apt-get -qq install make gcc libc6-dev gcc-aarch64-linux-gnu bc bison flex libssl-dev libncurses5-dev libelf-dev time xz-utils device-tree-compiler kmod swig zip; } & { python3 -m pip install --no-cache-dir -U pip setuptools wheel; python3 -m pip install --no-cache-dir -U pyelftools; } & - { curl -fO 'https://gitlab.com/MichaIng/quartz64_ci/-/archive/DietPi/quartz64_ci-DietPi.tar.bz2'; tar xf quartz64_ci-DietPi.tar.bz2; } & - { curl -fO "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/snapshot/linux-$linux_version.tar.gz"; tar xf "linux-$linux_version.tar.gz"; } & - { curl -fO "https://gitlab.com/MichaIng/u-boot/-/archive/$uboot_branch/u-boot-$uboot_branch.tar.bz2"; tar xf "u-boot-$uboot_branch.tar.bz2"; } & - wait - rm quartz64_ci-DietPi.tar.bz2 "linux-$linux_version.tar.gz" "u-boot-$uboot_branch.tar.bz2" - cd quartz64_ci-DietPi - md5sum -c gcc-arm-10.2-2020.11-x86_64-aarch64-none-linux-gnu.tar.xz.asc - tar xf gcc-arm-10.2-2020.11-x86_64-aarch64-none-linux-gnu.tar.xz - rm gcc-arm-10.2-2020.11-x86_64-aarch64-none-linux-gnu.tar.xz* - cd .. - mv quartz64_ci-DietPi/quartz64_defconfig "linux-$linux_version/arch/arm64/configs/quartz64_defconfig" + { curl -fO "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/snapshot/linux-$linux_version.tar.gz"; tar xf "linux-$linux_version.tar.gz"; rm "linux-$linux_version.tar.gz"; } & + { curl -fO "https://gitlab.com/MichaIng/u-boot/-/archive/$uboot_branch/u-boot-$uboot_branch.tar.bz2"; tar xf "u-boot-$uboot_branch.tar.bz2"; rm "u-boot-$uboot_branch.tar.bz2"; } & mkdir artefacts + wait + curl -sSfo "linux-$linux_version/arch/arm64/configs/quartz64_defconfig" "https://raw.githubusercontent.com/$GITHUB_REPOSITORY_OWNER/DietPi/${GITHUB_REF#refs/heads/}/.build/images/Quartz64/quartz64_defconfig" - name: Build U-Boot run: | mkdir artefacts/mainline-u-boot - export PATH="$PWD/quartz64_ci-DietPi/gcc-arm-10.2-2020.11-x86_64-aarch64-none-linux-gnu/bin:$PATH" BL31='rk3568_bl31_v1.28.elf' cd "u-boot-$uboot_branch" - curl -sSfO 'https://raw.githubusercontent.com/JeffyCN/rockchip_mirrors/6186debcac95553f6b311cee10669e12c9c9963d/bin/rk35/rk3568_bl31_v1.28.elf' & - curl -sSfo 'rk3568_ddr_1560MHz_v1.12.bin' 'https://raw.githubusercontent.com/JeffyCN/rockchip_mirrors/ddf03c1d80b33dac72a33c4f732fc5849b47ff99/bin/rk35/rk3568_ddr_1560MHz_v1.13.bin' & + curl -sSfO 'https://raw.githubusercontent.com/JeffyCN/rockchip_mirrors/6186deb/bin/rk35/rk3568_bl31_v1.28.elf' & + curl -sSfo 'rk3568_ddr_1560MHz_v1.12.bin' 'https://raw.githubusercontent.com/JeffyCN/rockchip_mirrors/ddf03c1/bin/rk35/rk3568_ddr_1560MHz_v1.13.bin' & + export BL31='rk3568_bl31_v1.28.elf' wait make quartz64-a-rk3566_defconfig make -j$(nproc) @@ -57,18 +50,22 @@ jobs: make soquartz-rk3566_defconfig make -j$(nproc) mv u-boot-rockchip.bin ../artefacts/mainline-u-boot/soquartz-u-boot-rockchip.bin + cd .. + rm -R "u-boot-$uboot_branch" - name: Build Linux run: | mkdir modules - export PATH="$PWD/quartz64_ci-DietPi/gcc-arm-10.2-2020.11-x86_64-aarch64-none-linux-gnu/bin:$PATH" INSTALL_MOD_PATH="$PWD/modules" + export INSTALL_MOD_PATH="$PWD/modules" cd "linux-$linux_version" make quartz64_defconfig make -j$(nproc) - mv arch/arm64/boot/Image arch/arm64/boot/dts/rockchip/rk356*.dtb ../artefacts/ + mv arch/arm64/boot/Image arch/arm64/boot/dts/rockchip/rk3566-*quartz*.dtb ../artefacts/ make modules_install cd ../modules tar -czf kernel-modules.tar.gz lib mv kernel-modules.tar.gz ../artefacts/ + cd .. + rm -R "linux-$linux_version" modules - name: Upload run: | [ -d ~/.ssh ] || mkdir ~/.ssh From 4b25af1a8e9307a1f4e27b3218d958f8592ec987 Mon Sep 17 00:00:00 2001 From: MichaIng Date: Sun, 19 Feb 2023 17:05:49 +0100 Subject: [PATCH 031/155] v8.15 - DietPi-Config | Skip UCM on alsactl init if not installed, to avoid related error messages. It is a dedicated package since Bullseye. Since it has support for a limited set of sound cards only (naturally) which does not include many SBCs, whether or not we just install it with ALSA is something to look into: https://github.com/MichaIng/DietPi/issues/6178 --- dietpi/func/dietpi-set_hardware | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/dietpi/func/dietpi-set_hardware b/dietpi/func/dietpi-set_hardware index aecfbb7862..cf34b4e6c5 100755 --- a/dietpi/func/dietpi-set_hardware +++ b/dietpi/func/dietpi-set_hardware @@ -1661,7 +1661,13 @@ _EOF_ [[ -f '/var/lib/alsa/asound.state' ]] && G_EXEC rm /var/lib/alsa/asound.state # - Reset active amixer state ("-g" option has been added upstream: https://github.com/alsa-project/alsa-utils/issues/75) - [[ $INPUT_DEVICE_VALUE != 'none' && -f '/proc/asound/cards' && $( Date: Sun, 19 Feb 2023 17:38:21 +0100 Subject: [PATCH 032/155] v8.15 - DietPi-Set_hardware | Tiny --- dietpi/func/dietpi-set_hardware | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/dietpi/func/dietpi-set_hardware b/dietpi/func/dietpi-set_hardware index cf34b4e6c5..d82bb4fc7f 100755 --- a/dietpi/func/dietpi-set_hardware +++ b/dietpi/func/dietpi-set_hardware @@ -2074,7 +2074,7 @@ _EOF_ # Enable HDMI output G_EXEC amixer -c 0 set 'TOHDMITX' 'on' - # Use I2S B as source for HDMI output, I2C A is somehow not usable + # Use I2S B as source for HDMI output (I2S A does not work) G_EXEC amixer -c 0 set 'TOHDMITX I2S SRC' 'I2S B' # Use ALSA device 0 as input for I2S B G_EXEC amixer -c 0 set 'TDMOUT_B SRC SEL' 'IN 0' @@ -2084,7 +2084,7 @@ _EOF_ G_EXEC amixer -c 0 set 'FRDDR_A SINK 1 SEL' 'OUT 0' G_EXEC amixer -c 0 set 'FRDDR_A SINK 2 SEL' 'OUT 1' G_EXEC amixer -c 0 set 'FRDDR_A SINK 3 SEL' 'OUT 2' - # Set master volume to 85% + # Set master volume to 85 % G_EXEC amixer -c 0 set 'ACODEC' '85%' ;; @@ -2092,7 +2092,7 @@ _EOF_ # Enable 3.5mm output G_EXEC amixer -c 0 set 'TOACODEC OUT EN' 'on' - # Use I2S B as source for 3.5mm output, I2C A is somehow not usable + # Use I2S B as source for 3.5mm output (I2S A does not work) G_EXEC amixer -c 0 set 'TOACODEC SRC' 'I2S B' # Use ALSA device 0 as input for I2S B G_EXEC amixer -c 0 set 'TDMOUT_B SRC SEL' 'IN 0' @@ -2102,7 +2102,7 @@ _EOF_ G_EXEC amixer -c 0 set 'FRDDR_A SINK 1 SEL' 'OUT 0' G_EXEC amixer -c 0 set 'FRDDR_A SINK 2 SEL' 'OUT 1' G_EXEC amixer -c 0 set 'FRDDR_A SINK 3 SEL' 'OUT 2' - # Set master volume to 85% + # Set master volume to 85 % G_EXEC amixer -c 0 set 'ACODEC' '85%' ;; From fd23644e1b69e00bb6d2a6b410c0d4c8566758e1 Mon Sep 17 00:00:00 2001 From: MichaIng Date: Sun, 19 Feb 2023 17:39:40 +0100 Subject: [PATCH 033/155] v8.15 - DietPi-Set_hardware | Syntax --- dietpi/func/dietpi-set_hardware | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dietpi/func/dietpi-set_hardware b/dietpi/func/dietpi-set_hardware index d82bb4fc7f..10fcf36ca9 100755 --- a/dietpi/func/dietpi-set_hardware +++ b/dietpi/func/dietpi-set_hardware @@ -1665,7 +1665,7 @@ _EOF_ if [[ $INPUT_DEVICE_VALUE != 'none' && -f '/proc/asound/cards' && $( Date: Sun, 19 Feb 2023 23:23:36 +0100 Subject: [PATCH 034/155] v8.15 - DietPi-Software | WiFi Hotspot: hostapd and the DHCP server are not stopped and restarted on DietPi updates, software installs and backups anymore, since the hotspot might be used by the client which does this task and then cuts its own connection. Many thanks to @symbios24 for making us aware of this: https://github.com/MichaIng/DietPi/issues/6166 --- .update/patches | 6 +++ CHANGELOG.txt | 1 + dietpi/dietpi-services | 88 ++++++++++++++++++++++++------------------ dietpi/dietpi-software | 1 + 4 files changed, 58 insertions(+), 38 deletions(-) diff --git a/.update/patches b/.update/patches index de8af72c1c..c34cebcdf5 100755 --- a/.update/patches +++ b/.update/patches @@ -1127,6 +1127,12 @@ ExecStart= $(sed -n '/^ExecStart=/s/ 115200/ 1500000,115200/p' '/lib/systemd/system/serial-getty@.service') _EOF_ done + + if [[ -f '/boot/dietpi/.installed' ]] + then + # WiFi Hotspot: https://github.com/MichaIng/DietPi/issues/6166 + grep -q '^[[:blank:]]*aSOFTWARE_INSTALL_STATE\[60\]=2' /boot/dietpi/.installed && G_EXEC systemctl enable hostapd isc-dhcp-server + fi } # v6.35 => v7 migration diff --git a/CHANGELOG.txt b/CHANGELOG.txt index 4fa7c96716..99bf13ba68 100644 --- a/CHANGELOG.txt +++ b/CHANGELOG.txt @@ -5,6 +5,7 @@ Enhancements: - DietPi-Installer | Resolved an issue where conflicting network configurations were left in place, e.g. from cloud-init when running the script on a VPS Debian image. Many thanks to @mews-se for reporting this issue: https://github.com/MichaIng/DietPi/issues/6067 - DietPi-Software | XRDP: TLS via snakeoil certificate is now enabled OOTB. This leads to a warning shown on Windows RDP clients until either a proper certificate signed by a trusted CA is used (e.g. by Let's Encrypt), or it is muted for the particular server via checkbox at the client. Many thanks to @amibumping for providing the needed step: https://github.com/MichaIng/DietPi/issues/5976 - DietPi-Software | Home Assistant: Our Home Assistant integration used two Python environments: A pyenv is used to install the "homeassistant" core module and its direct dependencies. Home Assistant itself installs its frontend with dependencies on startup, as well as dependencies for integrations on demand, internally into another Python environment. On Home Assistant reinstalls, pyenv is removed but the internal dependencies were left untouched. This caused issues when those dependency builds were incompatible with the new pyenv Python version, or conflicting with other pyenv module upgrades. Both environments are now merged and reset on every reinstall, which solves potential conflicts but means that the first Home Assistant startup after a reinstall takes longer. Many thanks to @maury77 for reporting a related issue: https://github.com/MichaIng/DietPi/issues/6117 +- DietPi-Software | WiFi Hotspot: hostapd and the DHCP server are not stopped and restarted on DietPi updates, software installs and backups anymore, since the hotspot might be used by the client which does this task and then cuts its own connection. Many thanks to @symbios24 for making us aware of this: https://github.com/MichaIng/DietPi/issues/6166 Bug fixes: - Quartz64 | Resolved an issue where the system boots read-only on very first boot. Many thanks to @belveder79 for reporting this issue: https://github.com/MichaIng/DietPi/issues/6149 diff --git a/dietpi/dietpi-services b/dietpi/dietpi-services index c4ef409b4e..6a6c3a3ece 100755 --- a/dietpi/dietpi-services +++ b/dietpi/dietpi-services @@ -59,8 +59,6 @@ Available services: # Core --------------------------------------------------------------- # - Network 'avahi-daemon' - 'isc-dhcp-server' - 'haproxy' 'frps' 'frpc' @@ -212,49 +210,63 @@ Available services: 'fahclient' 'ipfs' 'yacy' - ) # Additional services: https://github.com/MichaIng/DietPi/issues/1869#issuecomment-401017251 [[ -f '/etc/rsyncd.conf' ]] && aSERVICE_NAME+=('rsync') # Non-controlled services: Only show in menu and/or status mode! - if [[ ! $INPUT_CMD || $INPUT_CMD == 'status' ]]; then - - # SSH - aSERVICE_NAME+=('dropbear') - aSERVICE_NAME+=('ssh') # OpenSSH Server - - # Misc - aSERVICE_NAME+=('fail2ban') # Brute-force protection, which should not be stopped during updates/installs etc - #aSERVICE_NAME+=('systemd-timesyncd') # Network time sync: DietPi stops this by default after success, may confuse user/prompt questions. - aSERVICE_NAME+=('pihole-FTL') # https://github.com/MichaIng/DietPi/issues/1696 - aSERVICE_NAME+=('openvpn') # https://github.com/MichaIng/DietPi/issues/1501 - aSERVICE_NAME+=('vncserver') # DietPi VNC Server - aSERVICE_NAME+=('nxserver') # NoMachine Server - aSERVICE_NAME+=('xrdp') # XRDP Server - aSERVICE_NAME+=('amiberry') # DietPi Amiberry service - aSERVICE_NAME+=('unbound') # Unbound DNS server, could be currently used by machine - aSERVICE_NAME+=('adguardhome') # AdGuard Home DNS server - #aSERVICE_NAME+=('wg-quick@wg0') # WireGuard: Currently instantiated services are not supported - aSERVICE_NAME+=('tailscaled') # Tailscale VPN Server - aSERVICE_NAME+=('zerotier-one') # ZeroTier node daemon - - # DietPi - aSERVICE_NAME+=('dietpi-vpn') # VPN client - aSERVICE_NAME+=('dietpi-cloudshell') # Console monitoring - aSERVICE_NAME+=('dietpi-dashboard') # Web dashboard - if [[ $INPUT_CMD == 'status' ]]; then - - aSERVICE_NAME+=('dietpi-ramlog') - aSERVICE_NAME+=('dietpi-preboot') - aSERVICE_NAME+=('dietpi-boot') - aSERVICE_NAME+=('dietpi-postboot') - aSERVICE_NAME+=('dietpi-wifi-monitor') # https://github.com/MichaIng/DietPi/issues/1288#issuecomment-350653480 - aSERVICE_NAME+=('dietpi-arr_to_RAM') # Sonarr/Radarr/Lidarr database to RAM link service - + if [[ ! $INPUT_CMD || $INPUT_CMD == 'status' ]] + then + aSERVICE_NAME+=( + + # WiFi Hotspot + 'isc-dhcp-server' + 'haproxy' + + # SSH servers + 'dropbear' + 'ssh' + + # Remote desktop servers + 'vncserver' + 'xrdp' + 'nxserver' # NoMachine + + # VPN: Servers as well as client shall not be DietPi-controlled. VPN servers may be used for remote maintenance sessions, VPN clients may be wanted/needed for anonymised Internet requests. + #'wg-quick@wg0' # Currently instantiated services are not supported + 'openvpn' + 'tailscaled' + 'zerotier-one' + 'dietpi-vpn' + + # DNS: Might be used by their host as well + 'pihole-FTL' + 'adguardhome' + 'unbound' + + # Network time sync + #'systemd-timesyncd' # DietPi stops this by default after success, may confuse users/prompt questions. + + # Security + 'fail2ban' + + # DietPi + 'amiberry' # Only support to be started on boot or manually + 'dietpi-cloudshell' + 'dietpi-dashboard' + ) + if [[ $INPUT_CMD == 'status' ]] + then + aSERVICE_NAME+=( + + 'dietpi-ramlog' + 'dietpi-preboot' + 'dietpi-postboot' + 'dietpi-wifi-monitor' # https://github.com/MichaIng/DietPi/issues/1288#issuecomment-350653480 + 'dietpi-arr_to_RAM' # Sonarr/Radarr/Lidarr database to RAM link service + ) fi - fi Process_Includes_Excludes diff --git a/dietpi/dietpi-software b/dietpi/dietpi-software index c9c60ecd1b..f12f61777b 100755 --- a/dietpi/dietpi-software +++ b/dietpi/dietpi-software @@ -7734,6 +7734,7 @@ _EOF_ G_AGI "${packages[@]}" G_EXEC systemctl stop hostapd isc-dhcp-server + aSTART_SERVICES+=('hostapd' 'isc-dhcp-server') Configure_iptables # Unmask hostapd since it is masked via postinst when no config exists yet From a452ee3c5f8edf3c0aceb056c8a29353f9d1a668 Mon Sep 17 00:00:00 2001 From: MichaIng Date: Sun, 19 Feb 2023 23:39:19 +0100 Subject: [PATCH 035/155] v8.15 - CI | Merge G_AGDUG with G_AGI, now supported on master branch images --- .build/software/Amiberry/build.bash | 3 +-- .build/software/gmediarender/build.bash | 3 +-- .build/software/gogs/build.bash | 3 +-- .build/software/shairport-sync/build.bash | 3 +-- .build/software/squeezelite/build.bash | 3 +-- .build/software/vaultwarden/build.bash | 3 +-- 6 files changed, 6 insertions(+), 12 deletions(-) diff --git a/.build/software/Amiberry/build.bash b/.build/software/Amiberry/build.bash index 3a09ead61e..8cf47af660 100644 --- a/.build/software/Amiberry/build.bash +++ b/.build/software/Amiberry/build.bash @@ -17,8 +17,7 @@ adeps=('libdrm2' 'libgl1-mesa-dri' 'libgbm1' 'libegl1' 'libudev1' 'libxml2' 'lib (( $G_HW_ARCH == 10 )) && opengl_flags=('--disable-video-opengles2' '--enable-video-opengl') adeps_build+=('libgl1-mesa-dev') adeps+=('libgl1') || opengl_flags=('--enable-video-opengles2' '--disable-video-opengl') adeps_build+=('libgles2-mesa-dev') adeps+=('libgles2') G_AGUP -G_AGDUG -G_AGI "${adeps_build[@]}" +G_AGDUG "${adeps_build[@]}" # Build libSDL2 v_sdl='2.26.3' diff --git a/.build/software/gmediarender/build.bash b/.build/software/gmediarender/build.bash index c3187e0808..5c16567213 100644 --- a/.build/software/gmediarender/build.bash +++ b/.build/software/gmediarender/build.bash @@ -4,8 +4,7 @@ # Build deps G_AGUP -G_AGDUG -G_AGI automake pkg-config gcc libc6-dev make libgstreamer1.0-dev libupnp-dev gstreamer1.0-alsa gstreamer1.0-libav gstreamer1.0-plugins-good gstreamer1.0-plugins-bad gstreamer1.0-plugins-ugly +G_AGDUG automake pkg-config gcc libc6-dev make libgstreamer1.0-dev libupnp-dev gstreamer1.0-alsa gstreamer1.0-libav gstreamer1.0-plugins-good gstreamer1.0-plugins-bad gstreamer1.0-plugins-ugly # Download version='0.0.9' # https://github.com/hzeller/gmrender-resurrect/releases diff --git a/.build/software/gogs/build.bash b/.build/software/gogs/build.bash index 100913222a..a6eb7ba675 100644 --- a/.build/software/gogs/build.bash +++ b/.build/software/gogs/build.bash @@ -8,8 +8,7 @@ deps=() c7zip='7zr' (( $G_HW_ARCH == 1 )) && deps+=('zip') G_AGUP -G_AGDUG -G_AGI gcc libc6-dev "${deps[@]}" +G_AGDUG gcc libc6-dev "${deps[@]}" # Download & Build # shellcheck disable=SC1091 diff --git a/.build/software/shairport-sync/build.bash b/.build/software/shairport-sync/build.bash index 1b52571438..576f65b5db 100644 --- a/.build/software/shairport-sync/build.bash +++ b/.build/software/shairport-sync/build.bash @@ -10,8 +10,7 @@ # - 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 -G_AGI 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_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 # Download diff --git a/.build/software/squeezelite/build.bash b/.build/software/squeezelite/build.bash index d3ff45c508..efb4d8e550 100644 --- a/.build/software/squeezelite/build.bash +++ b/.build/software/squeezelite/build.bash @@ -4,8 +4,7 @@ # Build deps G_AGUP -G_AGDUG -G_AGI make gcc libc6-dev libasound2-dev libflac-dev libmad0-dev libvorbis-dev libmpg123-dev libavformat-dev libsoxr-dev liblirc-dev libfaad-dev libssl-dev libopus-dev +G_AGDUG make gcc libc6-dev libasound2-dev libflac-dev libmad0-dev libvorbis-dev libmpg123-dev libavformat-dev libsoxr-dev liblirc-dev libfaad-dev libssl-dev libopus-dev # Runtime deps adeps=('libc6' 'libasound2' 'libmad0' 'libvorbisfile3' 'libmpg123-0' 'libsoxr0' 'liblirc-client0' 'libfaad2' 'libopus0') diff --git a/.build/software/vaultwarden/build.bash b/.build/software/vaultwarden/build.bash index b28d9d93dd..7b6b36bdaa 100644 --- a/.build/software/vaultwarden/build.bash +++ b/.build/software/vaultwarden/build.bash @@ -7,8 +7,7 @@ adeps_build=('gcc' 'libc6-dev' 'pkg-config' 'libssl-dev' 'git') adeps=('libc6' 'openssl') (( $G_DISTRO > 6 )) && adeps+=('libssl3') || adeps+=('libssl1.1') G_AGUP -G_AGDUG -G_AGI "${adeps_build[@]}" +G_AGDUG "${adeps_build[@]}" # Install Rust via https://rustup.rs/ # - ARMv7: Needs to be installed in tmpfs, else builds fail in emulated 32-bit ARM environments: https://github.com/rust-lang/cargo/issues/8719 From 8ba2fe1de96c10cc9282261094caf5f83e3f0723 Mon Sep 17 00:00:00 2001 From: MichaIng Date: Mon, 20 Feb 2023 19:15:48 +0100 Subject: [PATCH 036/155] v8.15 - DietPi-Software | Update Prowlarr and Gitea fallback URLs - DietPi-Installer | Remove some additional config file backups, especially those created by UCF --- .build/images/dietpi-installer | 2 +- dietpi/dietpi-software | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.build/images/dietpi-installer b/.build/images/dietpi-installer index 07fdd479e6..7a980de135 100644 --- a/.build/images/dietpi-installer +++ b/.build/images/dietpi-installer @@ -1397,7 +1397,7 @@ _EOF_ [[ -d '/usr/share/calendar' ]] && G_EXEC rm -R /usr/share/calendar # - Unused DEB package config files - find /etc \( -name '?*\.dpkg-dist' -o -name '?*\.dpkg-old' -o -name '?*\.dpkg-new' -o -name '?*\.dpkg-bak' \) -exec rm -v {} + + find /etc \( -name '?*\.dpkg-dist' -o -name '?*\.dpkg-old' -o -name '?*\.dpkg-new' -o -name '?*\.dpkg-bak' -o -name '?*\.dpkg-del' -o -name '?*\.ucf-dist' -o -name '?*\.ucf-old' -o -name '?*\.ucf-new' \) -exec rm -v {} + # - Fonts [[ -d '/usr/share/fonts' ]] && G_EXEC rm -R /usr/share/fonts diff --git a/dietpi/dietpi-software b/dietpi/dietpi-software index f12f61777b..5d5c33e878 100755 --- a/dietpi/dietpi-software +++ b/dietpi/dietpi-software @@ -9984,7 +9984,7 @@ _EOF_ *) local arch='x64';; esac - local fallback_url="https://github.com/Prowlarr/Prowlarr/releases/download/v1.1.3.2521/Prowlarr.master.1.1.3.2521.linux-core-$arch.tar.gz" + local fallback_url="https://github.com/Prowlarr/Prowlarr/releases/download/v1.2.2.2699/Prowlarr.master.1.2.2.2699.linux-core-$arch.tar.gz" Download_Install "$(curl -sSfL 'https://api.github.com/repos/Prowlarr/Prowlarr/releases/latest' | mawk -F\" "/\"browser_download_url\": .*linux-core-$arch\.tar\.gz\"/{print \$4}")" G_EXEC mv Prowlarr /opt/prowlarr fi @@ -10515,7 +10515,7 @@ _EOF_ *) local arch='arm-6';; esac - local fallback_url="https://github.com/go-gitea/gitea/releases/download/v1.18.3/gitea-1.18.3-linux-$arch.xz" + local fallback_url="https://github.com/go-gitea/gitea/releases/download/v1.18.4/gitea-1.18.4-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 9415e213b8ffa54b901e2674005c8f196cb6d0e6 Mon Sep 17 00:00:00 2001 From: MichaIng Date: Mon, 20 Feb 2023 22:43:54 +0100 Subject: [PATCH 037/155] v8.15 - DietPi-Software | rTorrent: Update ruTorrent fallback URL --- dietpi/dietpi-software | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dietpi/dietpi-software b/dietpi/dietpi-software index 5d5c33e878..eb5fcba4b0 100755 --- a/dietpi/dietpi-software +++ b/dietpi/dietpi-software @@ -8473,7 +8473,7 @@ _EOF_ # Install ruTorrent: Web UI for rTorrent # - Grab current version local version=$(curl -sSfL 'https://api.github.com/repos/Novik/ruTorrent/releases/latest' | mawk -F\" '/"tag_name": /{print $4}') - [[ $version ]] || { version='v4.0.1-hotfix'; G_DIETPI-NOTIFY 1 "Automatic latest ruTorrent version detection failed. Version \"$version\" will be installed as fallback, but a newer version might be available. Please report this at: https://github.com/MichaIng/DietPi/issues"; } + [[ $version ]] || { version='v4.0.2'; G_DIETPI-NOTIFY 1 "Automatic latest ruTorrent version detection failed. Version \"$version\" will be installed as fallback, but a newer version might be available. Please report this at: https://github.com/MichaIng/DietPi/issues"; } Download_Install "https://github.com/Novik/ruTorrent/archive/$version.tar.gz" # - Reinstall freshly with preserved configs and 3rd party plugins From 32ea26d8b7d63d66b7b59442260f30acfa3d7394 Mon Sep 17 00:00:00 2001 From: MichaIng Date: Tue, 21 Feb 2023 19:04:12 +0100 Subject: [PATCH 038/155] v8.15 - DietPi-BugReport/Survey | Remove the empty key option from curl. Our server now has pubkey authentication actively disabled for this upload user --- dietpi/dietpi-bugreport | 2 +- dietpi/dietpi-survey | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/dietpi/dietpi-bugreport b/dietpi/dietpi-bugreport index ca07c5489d..63f11264cd 100755 --- a/dietpi/dietpi-bugreport +++ b/dietpi/dietpi-bugreport @@ -179,7 +179,7 @@ Available commands: [[ $INPUT == 1 ]] && G_EXEC_DESC='Sending bug report' || G_EXEC_DESC='Purging bug report' - G_EXEC curl --key '' --connect-timeout 8 --retry 1 --retry-delay 4 -sSvT "$UPLOAD_FILENAME" "sftp://$SFTP_USER:$SFTP_PASS@$SFTP_ADDR/bugreport/" + G_EXEC curl --connect-timeout 8 --retry 1 --retry-delay 4 -sSvT "$UPLOAD_FILENAME" "sftp://$SFTP_USER:$SFTP_PASS@$SFTP_ADDR/bugreport/" [[ $INPUT == 1 ]] || return 0 diff --git a/dietpi/dietpi-survey b/dietpi/dietpi-survey index b6f27a15af..554a33f8be 100755 --- a/dietpi/dietpi-survey +++ b/dietpi/dietpi-survey @@ -128,7 +128,7 @@ _EOF_ local timeout=$(sed -n '/^[[:blank:]]*CONFIG_G_CHECK_URL_TIMEOUT=/{s/^[^=]*=//p;q}' /boot/dietpi.txt) G_EXEC_DESC='Sending survey data' (( $OPTED_IN )) || G_EXEC_DESC='Purging survey data' # - Timeout x2 for DNS resolving + connection, upload itself is done in no time - G_EXEC_NOHALT=1 G_EXEC curl --key '' -m $(( ${timeout:-5} * 2 )) -sT "$FP_UPLOAD" "sftp://$SFTP_USER:$SFTP_PASS@$SFTP_ADDR/survey/" + G_EXEC_NOHALT=1 G_EXEC curl -m $(( ${timeout:-5} * 2 )) -sT "$FP_UPLOAD" "sftp://$SFTP_USER:$SFTP_PASS@$SFTP_ADDR/survey/" return $? } From 662b00ff54c067323e29043ae8472b5926662ff3 Mon Sep 17 00:00:00 2001 From: MichaIng Date: Tue, 21 Feb 2023 20:05:47 +0100 Subject: [PATCH 039/155] v8.15 - DietPi-Software | Logitech Media Server: 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 eb5fcba4b0..519db27add 100755 --- a/dietpi/dietpi-software +++ b/dietpi/dietpi-software @@ -6917,7 +6917,7 @@ _EOF_ (( $G_HW_ARCH == 10 )) && arch='amd64' # Grab latest package URL - local fallback_url="https://downloads.slimdevices.com/LogitechMediaServer_v8.3.0/logitechmediaserver_8.3.0_$arch.deb" + local fallback_url="https://downloads.slimdevices.com/LogitechMediaServer_v8.3.1/logitechmediaserver_8.3.1_$arch.deb" Download_Install "$(curl -sSfL "https://www.mysqueezebox.com/update/?version=8.3&geturl=1&os=deb$arch")" G_EXEC systemctl stop logitechmediaserver Remove_SysV logitechmediaserver From 4504a93aeb2e0e872b10a671928136fab82e36f6 Mon Sep 17 00:00:00 2001 From: MichaIng Date: Tue, 21 Feb 2023 21:27:52 +0100 Subject: [PATCH 040/155] v8.15 - DietPi-Sync | Resolved an issue where the prompt after the dry run was shown even in non-interactive mode (input argument "1"), and when selecting "Cancel" or ESC, the real sync ran regardless. Many thanks to `@Ruud` for reporting this issue: https://dietpi.com/forum/t/howto-call-dietpi-sync-1-without-user-interaction/15964 --- CHANGELOG.txt | 1 + dietpi/dietpi-sync | 33 +++++++++++---------------------- 2 files changed, 12 insertions(+), 22 deletions(-) diff --git a/CHANGELOG.txt b/CHANGELOG.txt index 99bf13ba68..03d32e9d39 100644 --- a/CHANGELOG.txt +++ b/CHANGELOG.txt @@ -9,6 +9,7 @@ Enhancements: Bug fixes: - Quartz64 | Resolved an issue where the system boots read-only on very first boot. Many thanks to @belveder79 for reporting this issue: https://github.com/MichaIng/DietPi/issues/6149 +- DietPi-Sync | Resolved an issue where the prompt after the dry run was shown even in non-interactive mode (input argument "1"), and when selecting "Cancel" or ESC, the real sync ran regardless. Many thanks to @Ruud for reporting this issue: https://dietpi.com/forum/t/howto-call-dietpi-sync-1-without-user-interaction/15964 - DietPi-Software | Docker Compose: Resolved an issue where installing and uninstalling Docker Compose could have failed if pip was installed without the distutils module. Many thanks to @bccarbone for reporting this issue: https://github.com/MichaIng/DietPi/issues/6153 - DietPi-Software | Pi-hole: Resolved an issue where Nginx, if chosen as webserver, failed to start due to an invalid variable. Many thanks to @Trimble-tech for reporting this issue: https://dietpi.com/forum/t/pi-hole-install-crashes-nginx/15960 diff --git a/dietpi/dietpi-sync b/dietpi/dietpi-sync index 2cdd678ce3..953bcbce00 100755 --- a/dietpi/dietpi-sync +++ b/dietpi/dietpi-sync @@ -70,13 +70,13 @@ _EOF_ "$FP_TARGET" "$FP_SETTINGS" "$FP_USER_FILTER_INCLUDE_EXCLUDE" - /var/swap + '/var/swap' ) for i in "${aexclude[@]}" do # Exclude only, if inside source location, via path, relative to source location - [[ $i == ${FP_SOURCE}/* ]] && echo "- $(realpath --relative-to="$FP_SOURCE" "$i")" >> "$FP_FILTER_INCLUDE_EXCLUDE" + [[ $i == "$FP_SOURCE/"* ]] && echo "- $(realpath --relative-to="$FP_SOURCE" "$i")" >> "$FP_FILTER_INCLUDE_EXCLUDE" done unset aexclude @@ -89,7 +89,7 @@ _EOF_ Run_Sync(){ # Stop rsync service: https://github.com/MichaIng/DietPi/issues/1869 - if systemctl is-active rsync &> /dev/null; then + if systemctl -q is-active rsync; then SERVICE_CONTROL=1 G_EXEC systemctl stop rsync @@ -136,7 +136,7 @@ _EOF_ # Dry run G_DIETPI-NOTIFY 3 "$G_PROGRAM_NAME" "Dry run $FP_SOURCE > $FP_TARGET" - rsync --dry-run --stats "${aoptions[@]}" "$FP_SOURCE"/ "$FP_TARGET"/ > .dietpi-sync_result + rsync --dry-run --stats "${aoptions[@]}" "$FP_SOURCE/" "$FP_TARGET/" > .dietpi-sync_result EXIT_CODE=$? if (( ! $EXIT_CODE )); then @@ -172,39 +172,29 @@ Continue only if you know what you are doing and after checking the log!" fi - while : + [[ $INPUT == 1 ]] || while : do G_WHIP_MENU_ARRAY=( 'Sync' ': Continue with real sync' 'Log' ': View log file for details' 'Cancel' ': Abort sync, no changes will be made' - ) G_WHIP_MENU "$menu_test\n\n$(sed -n 4,9p .dietpi-sync_result)" - if [[ $G_WHIP_RETURNED_VALUE == 'Log' ]]; then - - G_WHIP_VIEWFILE "$FP_LOG" - G_WHIP_DEFAULT_ITEM='Log' - - elif [[ $G_WHIP_RETURNED_VALUE == 'Sync' || $INPUT == 1 ]]; then - - break - - else - - return - - fi + case $G_WHIP_RETURNED_VALUE in + 'Log') G_WHIP_VIEWFILE "$FP_LOG"; G_WHIP_DEFAULT_ITEM='Log';; + 'Sync') break;; + *) return;; + esac done # Sync G_DIETPI-NOTIFY 3 "$G_PROGRAM_NAME" "Sync $FP_SOURCE > $FP_TARGET" # - Clear log file from dry run > "$FP_LOG" - rsync "${aoptions[@]}" "$FP_SOURCE"/ "$FP_TARGET"/ + rsync "${aoptions[@]}" "$FP_SOURCE/" "$FP_TARGET/" EXIT_CODE=$? fi @@ -299,7 +289,6 @@ _EOF_ 'Daily Sync' ": [$SYNC_CRONDAILY_TEXT] Daily sync via cron job" '' '●─ Run ' 'Dry run + Sync' ': Sync from Source to Target (Dry run included!)' - ) G_WHIP_DEFAULT_ITEM=$MENU_LASTITEM_MAIN From 1edef3dbfb95017bea2d228c5233ffa172c3fd66 Mon Sep 17 00:00:00 2001 From: MichaIng Date: Tue, 21 Feb 2023 21:36:37 +0100 Subject: [PATCH 041/155] v8.15 - 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 519db27add..cc55565bed 100755 --- a/dietpi/dietpi-software +++ b/dietpi/dietpi-software @@ -10515,7 +10515,7 @@ _EOF_ *) local arch='arm-6';; esac - local fallback_url="https://github.com/go-gitea/gitea/releases/download/v1.18.4/gitea-1.18.4-linux-$arch.xz" + local fallback_url="https://github.com/go-gitea/gitea/releases/download/v1.18.5/gitea-1.18.5-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 4990596a2fd1ec2b242a92946be1e088ecb0a82a Mon Sep 17 00:00:00 2001 From: MichaIng Date: Wed, 22 Feb 2023 00:45:32 +0100 Subject: [PATCH 042/155] v8.15 - DietPi-Update | Error-handle sync and systemctl daemon-reload calls, mostly to show the process to users, since they may take a little longer, and in case they hang (we just had a report where this may be the case) --- dietpi/dietpi-update | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/dietpi/dietpi-update b/dietpi/dietpi-update index 7eb15283d2..952988f8aa 100755 --- a/dietpi/dietpi-update +++ b/dietpi/dietpi-update @@ -325,10 +325,10 @@ fi # Failsafe: Force sync to disk - sync + G_EXEC sync # Reload systemd units - systemctl daemon-reload + G_EXEC systemctl daemon-reload G_DIETPI-NOTIFY 3 "$G_PROGRAM_NAME" 'Applying incremental patches' INFO_VERSIONS_UPDATE @@ -342,7 +342,6 @@ exit 1 fi - # - Remove patch_file rm /boot/dietpi/patch_file if ! "DietPi-$G_GITBRANCH/.update/patches"; then @@ -354,7 +353,7 @@ # Autoremove possibly obsolete DEB packages and reload systemd units G_AGA - systemctl daemon-reload + G_EXEC systemctl daemon-reload G_DIETPI_VERSION_CORE=$G_REMOTE_VERSION_CORE G_DIETPI_VERSION_SUB=$G_REMOTE_VERSION_SUB @@ -522,7 +521,7 @@ Do you wish to continue and update DietPi to v$G_REMOTE_VERSION_CORE.$G_REMOTE_V /boot/dietpi/dietpi-survey 1 # Failsafe: Force sync to disk - sync + G_EXEC sync # Offer to do a reboot if required as of missing kernel modules, do it automatically on first run setup if ! G_CHECK_KERNEL From 50e6971fa8f70ecc9d76caf664d75175135db380 Mon Sep 17 00:00:00 2001 From: MichaIng Date: Wed, 22 Feb 2023 12:54:41 +0100 Subject: [PATCH 043/155] v8.15 - DietPi-Software | vaultwarden: Bump web vault version --- .build/software/vaultwarden/build.bash | 30 ++++++++++---------------- 1 file changed, 11 insertions(+), 19 deletions(-) diff --git a/.build/software/vaultwarden/build.bash b/.build/software/vaultwarden/build.bash index 7b6b36bdaa..ce55cb4a4b 100644 --- a/.build/software/vaultwarden/build.bash +++ b/.build/software/vaultwarden/build.bash @@ -50,7 +50,7 @@ G_EXEC mv "vaultwarden-$version/.env.template" "$DIR/mnt/dietpi_userdata/vaultwa G_EXEC rm -R "vaultwarden-$version" # - web vault -wv_version='2023.1.1' +wv_version='2023.2.0' G_DIETPI-NOTIFY 2 "Downloading web vault version \e[33m$wv_version" G_EXEC curl -sSfLO "https://github.com/dani-garcia/bw_web_builds/releases/download/v$wv_version/bw_web_v$wv_version.tar.gz" G_EXEC tar xf "bw_web_v$wv_version.tar.gz" --one-top-level="$DIR/mnt/dietpi_userdata/vaultwarden" @@ -63,41 +63,33 @@ G_CONFIG_INJECT 'ROCKET_PORT=' 'ROCKET_PORT=8001' "$DIR/mnt/dietpi_userdata/vaul G_CONFIG_INJECT 'ROCKET_TLS=' 'ROCKET_TLS={certs="./cert.pem",key="./privkey.pem"}' "$DIR/mnt/dietpi_userdata/vaultwarden/vaultwarden.env" G_CONFIG_INJECT 'WEB_VAULT_ENABLED=' 'WEB_VAULT_ENABLED=true' "$DIR/mnt/dietpi_userdata/vaultwarden/vaultwarden.env" -# - systemd service +# - systemd service: https://github.com/dani-garcia/vaultwarden/wiki/Setup-as-a-systemd-service cat << '_EOF_' > "$DIR/lib/systemd/system/vaultwarden.service" [Unit] Description=vaultwarden (DietPi) Documentation=https://github.com/dani-garcia/vaultwarden Wants=network-online.target After=network-online.target - -# Restart attempt only 5 times StartLimitIntervalSec=500 StartLimitBurst=5 [Service] -# Server sometimes fails to start on startup, this should fix it -Restart=on-failure -RestartSec=5s -# The user vaultwarden is run under. the working directory (see below) should allow write and read access to this user User=vaultwarden -# The location of the .env file for configuration -EnvironmentFile=/mnt/dietpi_userdata/vaultwarden/vaultwarden.env -# The location of the compiled binary -ExecStart=/opt/vaultwarden/vaultwarden -# Set reasonable connection and process limits +AmbientCapabilities=CAP_NET_BIND_SERVICE LimitNOFILE=1048576 LimitNPROC=64 -# Isolate vaultwarden from the rest of the system +WorkingDirectory=/mnt/dietpi_userdata/vaultwarden +EnvironmentFile=/mnt/dietpi_userdata/vaultwarden/vaultwarden.env +ExecStart=/opt/vaultwarden/vaultwarden +Restart=on-failure +RestartSec=5s + +# Hardening PrivateTmp=true PrivateDevices=true ProtectHome=true ProtectSystem=strict -# Only allow writes to the following directory and set it to the working directory (user and password data are stored here) -WorkingDirectory=/mnt/dietpi_userdata/vaultwarden ReadWritePaths=-/mnt/dietpi_userdata/vaultwarden -# Allow vaultwarden to bind ports in the range of 0-1024 -AmbientCapabilities=CAP_NET_BIND_SERVICE [Install] WantedBy=multi-user.target @@ -206,7 +198,7 @@ grep -q 'raspbian' /etc/os-release && DEPS_APT_VERSIONED=$(sed 's/+rp[it][0-9]\+ # - control cat << _EOF_ > "$DIR/DEBIAN/control" Package: vaultwarden -Version: $version-dietpi3 +Version: $version-dietpi4 Architecture: $(dpkg --print-architecture) Maintainer: MichaIng Date: $(date -u '+%a, %d %b %Y %T %z') From 78fccd9dc59e6b4c12f75ca7b3359bc4e1475e7e Mon Sep 17 00:00:00 2001 From: MichaIng Date: Wed, 22 Feb 2023 21:08:11 +0100 Subject: [PATCH 044/155] v8.15 - DietPi-Installer | Use zstd compression for initramfs as well on Armbian Allwinner kernel - dietpi-bookworm-upgrade | Migrating PostgreSQL databases from v13 to v15 - DietPi-Globals | G_AG*: Delete downloaded DEB package files after installs and upgrades - DIetPi-Software | Force pip system-wide package installs - DietPi-Software | Synapse: Fix install on Bookworm and rely on piwheels on Bullseye and Buster, as finally Rust-depending wheels are available again - DietPi-Software | Synapse: Bind to "::" address only. This implies IPv4, and defining "0.0.0.0" as well leads to a startup warning --- .build/images/dietpi-installer | 2 +- .meta/dietpi-bookworm-upgrade | 10 +++++++++ CHANGELOG.txt | 2 ++ dietpi/dietpi-software | 37 +++++++++++++++++++--------------- dietpi/func/dietpi-globals | 24 ++++++++++++++++++---- 5 files changed, 54 insertions(+), 21 deletions(-) diff --git a/.build/images/dietpi-installer b/.build/images/dietpi-installer index 7a980de135..d38dbf2ff2 100644 --- a/.build/images/dietpi-installer +++ b/.build/images/dietpi-installer @@ -1029,7 +1029,7 @@ blacklist rockchip_vdec _EOF_ fi # - Install initramfs-tools first to have an initramfs generated on kernel install, and configure it to use zstd if supported for better compression and faster decompression - [[ $kernel == 'rockchip64' || $kernel == 'rockchip-rk3588' || $kernel == 'meson64' ]] && zstd=('zstd') + [[ $kernel == 'rockchip64' || $kernel == 'rockchip-rk3588' || $kernel == 'meson64' || $kernel == 'sunxi64' || $kernel == 'sunxi' ]] && zstd=('zstd') G_AGI initramfs-tools "${zstd[@]}" [[ ${zstd[0]} ]] && G_CONFIG_INJECT 'COMPRESS=' 'COMPRESS=zstd' /etc/initramfs-tools/initramfs.conf G_AGI linux-{image,dtb}-"$branch-$kernel" "linux-u-boot-$model-$branch" u-boot-tools armbian-firmware diff --git a/.meta/dietpi-bookworm-upgrade b/.meta/dietpi-bookworm-upgrade index 5f55c64cb0..5685491462 100644 --- a/.meta/dietpi-bookworm-upgrade +++ b/.meta/dietpi-bookworm-upgrade @@ -87,6 +87,16 @@ dpkg-query -s unbound &> /dev/null && G_AGI dns-root-data # Reinstall all PHP applications which require non-standard PHP modules, webservers which did access a versioned PHP-FPM socket, Python applications installed via pip, ... G_PROMPT_BACKUP_DISABLED=1 /boot/dietpi/dietpi-software reinstall 38 40 47 48 84 85 89 93 114 118 125 130 134 136 139 143 153 155 157 180 +# PostgreSQL upgrade +if grep -q '^aSOFTWARE_INSTALL_STATE\[194\]=2$' /boot/dietpi/.installed +then + G_DIETPI-NOTIFY 2 'Migrating PostgreSQL databases from v13 to v15' + G_EXEC systemctl stop postgresql + G_EXEC pg_dropcluster 15 main + G_EXEC pg_upgradecluster 13 main + G_EXEC pg_dropcluster 13 main +fi + cat << '_EOF_' > /etc/bashrc.d/zz-dietpi-autopurge.bash { (( $UID )) && return 0 diff --git a/CHANGELOG.txt b/CHANGELOG.txt index 03d32e9d39..53767e6dc2 100644 --- a/CHANGELOG.txt +++ b/CHANGELOG.txt @@ -12,6 +12,8 @@ Bug fixes: - DietPi-Sync | Resolved an issue where the prompt after the dry run was shown even in non-interactive mode (input argument "1"), and when selecting "Cancel" or ESC, the real sync ran regardless. Many thanks to @Ruud for reporting this issue: https://dietpi.com/forum/t/howto-call-dietpi-sync-1-without-user-interaction/15964 - DietPi-Software | Docker Compose: Resolved an issue where installing and uninstalling Docker Compose could have failed if pip was installed without the distutils module. Many thanks to @bccarbone for reporting this issue: https://github.com/MichaIng/DietPi/issues/6153 - DietPi-Software | Pi-hole: Resolved an issue where Nginx, if chosen as webserver, failed to start due to an invalid variable. Many thanks to @Trimble-tech for reporting this issue: https://dietpi.com/forum/t/pi-hole-install-crashes-nginx/15960 +- DietPi-Software | Python 3: Resolved an issue where the install failed because pip started to deny system-wide package installs without passing a new flag. +- DietPi-Software | Synapse: Resolved an issue where the install failed on Debian Bookworm. 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/XXXX diff --git a/dietpi/dietpi-software b/dietpi/dietpi-software index cc55565bed..b1d490a8fa 100755 --- a/dietpi/dietpi-software +++ b/dietpi/dietpi-software @@ -2970,7 +2970,7 @@ unix_socket_directories = '/run/postgresql'" > "$i/00dietpi.conf" # Perform pip3 install (which includes setuptools and wheel modules) aDEPS=('python3-dev') Download_Install 'https://bootstrap.pypa.io/get-pip.py' - G_EXEC_OUTPUT=1 G_EXEC python3 get-pip.py + G_EXEC_OUTPUT=1 G_EXEC python3 get-pip.py --break-system-packages G_EXEC rm get-pip.py fi @@ -3826,19 +3826,24 @@ _EOF_ # APT deps for Synapse with PostgreSQL case $G_HW_ARCH in [12]) - G_AGI libopenjp2-7 libtiff5 libxcb1 gcc libssl-dev # ARMv6/7: Runtime libs for Pillow from piwheels (needs verification), gcc and libssl-dev for cryptography - # Rust until all modules are available on piwheels: https://github.com/piwheels/piwheels/pull/328 - G_EXEC curl -sSf 'https://sh.rustup.rs/' -o rustup-init.sh - G_EXEC chmod +x rustup-init.sh - G_EXEC_OUTPUT=1 G_EXEC ./rustup-init.sh -y --profile minimal - G_EXEC rm rustup-init.sh - export PATH="/root/.cargo/bin:$PATH" + if (( $G_DISTRO < 7 )) + then + G_AGI libtiff5 libopenjp2-7 libxcb1 # ARMv6/7: Runtime libs for Pillow from piwheels (libtiff5 pulls libjpeg62-turbo) + else + # Bookworm: Most wheels need to be compiled: gcc and libffi-dev for cffi, Rust for matrix-synapse, libpq-dev for psycopg2, make for PyNaCl + G_AGI gcc libffi-dev libpq-dev make + G_EXEC curl -sSf 'https://sh.rustup.rs/' -o rustup-init.sh + G_EXEC chmod +x rustup-init.sh + G_EXEC_OUTPUT=1 G_EXEC ./rustup-init.sh -y --profile minimal + G_EXEC rm rustup-init.sh + export PATH="/root/.cargo/bin:$PATH" + fi ;; *) G_AGI gcc libpq-dev;; # ARMv8/x86_64: psycopg2 needs to be compiled esac # Install - G_EXEC_OUTPUT=1 G_EXEC pip3 install --no-cache-dir -U matrix-synapse psycopg2 + G_EXEC_OUTPUT=1 G_EXEC pip3 install --break-system-packages --no-cache-dir -U matrix-synapse psycopg2 # User Create_User -d /mnt/dietpi_userdata/synapse synapse @@ -3922,7 +3927,7 @@ _EOF_ GCI_PASSWORD=1 G_CONFIG_INJECT 'registration_shared_secret:[[:blank:]]' "registration_shared_secret: $(openssl rand -hex 16)" homeserver.yaml # Allow remote access - G_CONFIG_INJECT 'bind_addresses:[[:blank:]]' " bind_addresses: ['::', '0.0.0.0']" homeserver.yaml + G_CONFIG_INJECT 'bind_addresses:[[:blank:]]' " bind_addresses: ['::']" homeserver.yaml # Log to journal with log level WARNING G_EXEC sed -i 's/ handlers: \[.*\]$/ handlers: [console]/' "$servername.log.config" @@ -4962,7 +4967,7 @@ _EOF_ G_AGI mopidy gstreamer1.0-alsa mopidy-local G_EXEC systemctl stop mopidy - G_EXEC_OUTPUT=1 G_EXEC pip3 install --no-cache-dir -U Mopidy-MusicBox-Webclient + G_EXEC_OUTPUT=1 G_EXEC pip3 install --break-system-packages --no-cache-dir -U Mopidy-MusicBox-Webclient # Assure user home, data and cache dir as well on custom configs G_CONFIG_INJECT 'data_dir[[:blank:]]*=' 'data_dir = /mnt/dietpi_userdata/mopidy/data' /etc/mopidy/mopidy.conf '\[core\]' @@ -8993,7 +8998,7 @@ _EOF_ (( $G_HW_MODEL > 9 )) || /boot/dietpi/func/dietpi-set_hardware rpi-camera enable # motionEye - G_EXEC_OUTPUT=1 G_EXEC pip3 install --no-cache-dir -U 'https://github.com/motioneye-project/motioneye/archive/dev.tar.gz' + G_EXEC_OUTPUT=1 G_EXEC pip3 install --break-system-packages --no-cache-dir -U 'https://github.com/motioneye-project/motioneye/archive/dev.tar.gz' G_EXEC_OUTPUT=1 G_EXEC motioneye_init --skip-apt-update G_EXEC systemctl disable --now motioneye G_EXEC systemctl disable --now motion # motionEye starts motion directly. @@ -9137,7 +9142,7 @@ _EOF_ # Python deps G_EXEC cd /etc/sabnzbd - G_EXEC_OUTPUT=1 G_EXEC pip3 install --no-cache-dir -Ur requirements.txt + G_EXEC_OUTPUT=1 G_EXEC pip3 install --break-system-packages --no-cache-dir -Ur requirements.txt # User Create_User -g dietpi -d /etc/sabnzbd sabnzbd @@ -9712,7 +9717,7 @@ _EOF_ (( $G_HW_ARCH == 3 || ( $G_HW_ARCH == 10 && $G_DISTRO > 5 ) )) && G_AGI gcc # webrtcvad-wheels build on ARMv8 and x86_64 Bullseye+: https://pypi.org/project/webrtcvad-wheels/#files G_EXEC cd bazarr - G_EXEC_OUTPUT=1 G_EXEC pip3 install --no-cache-dir -Ur requirements.txt + G_EXEC_OUTPUT=1 G_EXEC pip3 install --break-system-packages --no-cache-dir -Ur requirements.txt G_EXEC cd .. # Always perform a clean full reinstall @@ -10135,7 +10140,7 @@ _EOF_ fi # Python deps - G_EXEC_OUTPUT=1 G_EXEC pip3 install --no-cache-dir -Ur requirements.txt + G_EXEC_OUTPUT=1 G_EXEC pip3 install --break-system-packages --no-cache-dir -Ur requirements.txt # Service cat << _EOF_ > /etc/systemd/system/htpc-manager.service @@ -10705,7 +10710,7 @@ _EOF_ G_EXEC_OUTPUT=1 G_EXEC git clone -b voicekit 'https://github.com/google/aiyprojects-raspbian.git' /mnt/dietpi_userdata/voice-recognizer-raspi G_EXEC cd /mnt/dietpi_userdata/voice-recognizer-raspi - G_EXEC_OUTPUT=1 G_EXEC pip3 install --no-cache-dir -U pip virtualenv + G_EXEC_OUTPUT=1 G_EXEC pip3 install --break-system-packages --no-cache-dir -U pip virtualenv G_EXEC_OUTPUT=1 G_EXEC virtualenv --system-site-packages -p python3 env G_EXEC_OUTPUT=1 G_EXEC env/bin/pip install --no-cache-dir -Ur requirements.txt diff --git a/dietpi/func/dietpi-globals b/dietpi/func/dietpi-globals index 275dd8a88b..0b0533471d 100644 --- a/dietpi/func/dietpi-globals +++ b/dietpi/func/dietpi-globals @@ -1476,8 +1476,12 @@ Press any key to continue...' G_EXEC_DESC="\e[0mAPT install \e[33m$*\e[0m" DEBIAN_FRONTEND=noninteractive G_EXEC_OUTPUT=1 G_EXEC_OUTPUT_COL='\e[90m' G_EXEC apt-get -y --allow-change-held-packages install "$@" + local exit_code=$? - return $? + # Remove all downloaded DEB packages without the lists cache + rm -Rf $(apt-get -s clean | mawk '{print $2;exit}') + + return "$exit_code" } # apt-get purge @@ -1525,8 +1529,12 @@ Press any key to continue...' G_EXEC_DESC="\e[0mAPT fix${*:+ \e[33m$*\e[0m}" DEBIAN_FRONTEND=noninteractive G_EXEC_OUTPUT=1 G_EXEC_OUTPUT_COL='\e[90m' G_EXEC apt-get -y --allow-change-held-packages -f install "$@" + local exit_code=$? - return $? + # Remove all downloaded DEB packages without the lists cache + rm -Rf $(apt-get -s clean | mawk '{print $2;exit}') + + return "$exit_code" } # apt-get clean + update @@ -1599,8 +1607,12 @@ Press any key to continue...' G_EXEC_DESC="\e[0mAPT upgrade${*:+ \e[33m$*\e[0m}" DEBIAN_FRONTEND=noninteractive G_EXEC_OUTPUT=1 G_EXEC_OUTPUT_COL='\e[90m' G_EXEC apt-get -y --with-new-pkgs upgrade "$@" + local exit_code=$? - return $? + # Remove all downloaded DEB packages without the lists cache + rm -Rf $(apt-get -s clean | mawk '{print $2;exit}') + + return "$exit_code" } # apt-get dist-upgrade @@ -1610,8 +1622,12 @@ Press any key to continue...' G_EXEC_DESC="\e[0mAPT dist-upgrade${*:+ \e[33m$*\e[0m}" DEBIAN_FRONTEND=noninteractive G_EXEC_OUTPUT=1 G_EXEC_OUTPUT_COL='\e[90m' G_EXEC apt-get -y dist-upgrade "$@" + local exit_code=$? - return $? + # Remove all downloaded DEB packages without the lists cache + rm -Rf $(apt-get -s clean | mawk '{print $2;exit}') + + return "$exit_code" } # Checks for required APT packages, installs if needed. From 3a1128c3a357cf12ebf896a455deae3eb2f26f7a Mon Sep 17 00:00:00 2001 From: MichaIng Date: Wed, 22 Feb 2023 21:41:17 +0100 Subject: [PATCH 045/155] v8.15 - DietPi-Globals | Remove G_EXEC_{PRE,POST}_FUNC_ORIG (this is never used) and redundant return calls; satisfy shellcheck --- dietpi/func/dietpi-globals | 33 +++++++-------------------------- 1 file changed, 7 insertions(+), 26 deletions(-) diff --git a/dietpi/func/dietpi-globals b/dietpi/func/dietpi-globals index 0b0533471d..cf8060b4c1 100644 --- a/dietpi/func/dietpi-globals +++ b/dietpi/func/dietpi-globals @@ -1115,9 +1115,6 @@ Press any key to continue...' # - Uses CONFIG_G_CHECK_URL_TIMEOUT + CONFIG_G_CHECK_URL_ATTEMPTS from dietpi.txt, else defaults to 10 seconds and 2 attempts (1 retry). G_CHECK_NET() { - # Store original G_EXEC_PRE_FUNC if any was passed - declare -F G_EXEC_PRE_FUNC &> /dev/null && eval "G_EXEC_PRE_FUNC_ORIG()$(declare -f G_EXEC_PRE_FUNC | tail +2)" - # Obtain timeout local timeout=$(sed -n '/^[[:blank:]]*CONFIG_G_CHECK_URL_TIMEOUT=/{s/^[^=]*=//p;q}' /boot/dietpi.txt) disable_error=1 G_CHECK_VALIDINT "$timeout" 0 || timeout=10 @@ -1144,7 +1141,6 @@ Press any key to continue...' # Obtain IPv4 test address on every retry G_EXEC_PRE_FUNC() { - declare -F G_EXEC_PRE_FUNC_ORIG &> /dev/null && G_EXEC_PRE_FUNC_ORIG acommand[5]=$(sed -n '/^[[:blank:]]*CONFIG_CHECK_CONNECTION_IP=/{s/^[^=]*=//p;q}' /boot/dietpi.txt) [[ ${acommand[5]} ]] || acommand[5]='9.9.9.9' } @@ -1171,7 +1167,6 @@ Press any key to continue...' # Exit error handler loop if no IPv6 default route is assigned, otherwise obtain IPv6 test address on every retry G_EXEC_PRE_FUNC() { - declare -F G_EXEC_PRE_FUNC_ORIG &> /dev/null && G_EXEC_PRE_FUNC_ORIG G_GET_NET -6 -q gateway > /dev/null || { exit_code=0; return 0; } acommand[5]=$(sed -n '/^[[:blank:]]*CONFIG_CHECK_CONNECTION_IPV6=/{s/^[^=]*=//p;q}' /boot/dietpi.txt) [[ ${acommand[5]} ]] || acommand[5]='2620:fe::fe' @@ -1195,15 +1190,12 @@ Press any key to continue...' # Obtain test domain on every retry G_EXEC_PRE_FUNC() { - declare -F G_EXEC_PRE_FUNC_ORIG &> /dev/null && G_EXEC_PRE_FUNC_ORIG acommand[2]=$(sed -n '/^[[:blank:]]*CONFIG_CHECK_DNS_DOMAIN=/{s/^[^=]*=//p;q}' /boot/dietpi.txt) [[ ${acommand[2]} ]] || acommand[2]='dns9.quad9.net' } # Run check with given retries G_EXEC_RETRIES=$retries G_EXEC_DESC='Checking DNS resolver' G_EXEC getent hosts 'DOMAIN' - - unset -f G_EXEC_PRE_FUNC_ORIG } # URL connection test @@ -1462,8 +1454,7 @@ Press any key to continue...' # Check for missing kernel modules, e.g. after a kernel upgrade, but exclude containers G_CHECK_KERNEL() { - [[ $G_HW_MODEL == 75 || -d /lib/modules/$(uname -r) ]] || grep -zaq '^container=' /proc/1/environ || return 1 - return 0 + [[ $G_HW_MODEL == 75 || -d /lib/modules/$(uname -r) ]] || grep -zaq '^container=' /proc/1/environ } # apt-get install @@ -1479,6 +1470,7 @@ Press any key to continue...' local exit_code=$? # Remove all downloaded DEB packages without the lists cache + # shellcheck disable=SC2046 rm -Rf $(apt-get -s clean | mawk '{print $2;exit}') return "$exit_code" @@ -1493,10 +1485,8 @@ Press any key to continue...' G_CHECK_ROOT_USER 1 # Attempt to purge only installed packages, check on every G_EXEC loop, force succeed if none were found - declare -F G_EXEC_PRE_FUNC &> /dev/null && eval "G_EXEC_PRE_FUNC_ORIG()$(declare -f G_EXEC_PRE_FUNC | tail +2)" G_EXEC_PRE_FUNC() { - declare -F G_EXEC_PRE_FUNC_ORIG &> /dev/null && G_EXEC_PRE_FUNC_ORIG local apackages=() mapfile -t apackages < <(dpkg --get-selections "${acommand[@]:4}" 2> /dev/null | mawk '{print $1}') # shellcheck disable=SC2015 @@ -1505,10 +1495,6 @@ Press any key to continue...' G_EXEC_DESC="\e[0mAPT purge \e[33m$*\e[0m" DEBIAN_FRONTEND=noninteractive G_EXEC_OUTPUT=1 G_EXEC_OUTPUT_COL='\e[90m' G_EXEC apt-get -y --allow-change-held-packages autopurge "$@" - local exit_code=$? - - unset -f G_EXEC_PRE_FUNC_ORIG - return "$exit_code" } # apt-get autopurge @@ -1518,8 +1504,6 @@ Press any key to continue...' G_EXEC_DESC="\e[0mAPT autopurge${*:+ \e[33m$*\e[0m}" DEBIAN_FRONTEND=noninteractive G_EXEC_OUTPUT=1 G_EXEC_OUTPUT_COL='\e[90m' G_EXEC apt-get -y autopurge "$@" - - return $? } # apt-get -f install @@ -1532,6 +1516,7 @@ Press any key to continue...' local exit_code=$? # Remove all downloaded DEB packages without the lists cache + # shellcheck disable=SC2046 rm -Rf $(apt-get -s clean | mawk '{print $2;exit}') return "$exit_code" @@ -1548,15 +1533,13 @@ Press any key to continue...' G_CHECK_ROOT_USER 1 # Clean cache before every update, which can corrupt and gets fully rewritten anyway - declare -F G_EXEC_PRE_FUNC &> /dev/null && eval "G_EXEC_PRE_FUNC_ORIG()$(declare -f G_EXEC_PRE_FUNC | tail +2)" - G_EXEC_PRE_FUNC(){ declare -F G_EXEC_PRE_FUNC_ORIG &> /dev/null && G_EXEC_PRE_FUNC_ORIG; apt-get clean; } + G_EXEC_PRE_FUNC(){ apt-get clean; } # Fail when some index files couldn't be downloaded, e.g. due to DNS failure. By default, apt-get update prints a warning but does not return an error code. local eany=() if (( $G_DISTRO < 6 )) then - declare -F G_EXEC_POST_FUNC &> /dev/null && eval "G_EXEC_POST_FUNC_ORIG()$(declare -f G_EXEC_POST_FUNC | tail +2)" - G_EXEC_POST_FUNC(){ [[ $exit_code == 0 && $(<"$fp_log") == *'W: Some index files failed to download.'* ]] && exit_code=255; declare -F G_EXEC_POST_FUNC_ORIG &> /dev/null && G_EXEC_POST_FUNC_ORIG; } + G_EXEC_POST_FUNC(){ [[ $exit_code == 0 && $(<"$fp_log") == *'W: Some index files failed to download.'* ]] && exit_code=255; } else eany=('-eany') fi @@ -1565,8 +1548,6 @@ Press any key to continue...' G_EXEC_OUTPUT=1 G_EXEC_OUTPUT_COL='\e[90m' G_EXEC apt-get -y "${eany[@]}" update local exit_code=$? - unset -f G_EXEC_{PRE,POST}_FUNC_ORIG - if [[ $1 == '-'[fv] ]] then local count=0 @@ -1610,6 +1591,7 @@ Press any key to continue...' local exit_code=$? # Remove all downloaded DEB packages without the lists cache + # shellcheck disable=SC2046 rm -Rf $(apt-get -s clean | mawk '{print $2;exit}') return "$exit_code" @@ -1625,6 +1607,7 @@ Press any key to continue...' local exit_code=$? # Remove all downloaded DEB packages without the lists cache + # shellcheck disable=SC2046 rm -Rf $(apt-get -s clean | mawk '{print $2;exit}') return "$exit_code" @@ -1651,8 +1634,6 @@ Press any key to continue...' G_AGUP G_AGI "${apackages[@]}" - - return $? } #----------------------------------------------------------------------------------- From b4eeed7686aa055e38529f927b76e4d377678beb Mon Sep 17 00:00:00 2001 From: David Marzal <2069735+Marzal@users.noreply.github.com> Date: Wed, 22 Feb 2023 22:21:13 +0100 Subject: [PATCH 046/155] v8.15 (#6183) - DietPi-Config | In order to re-enable HDMI, AUTO_SETUP_HEADLESS needs to be set to 0 instead of 1, and in the meantime the framebuffer_width/height options are not set anymore, but max_framebuffers instead, which needs to be commented or removed. Co-authored-by: MichaIng --- dietpi/dietpi-config | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/dietpi/dietpi-config b/dietpi/dietpi-config index d5f791a5fb..0d6d746676 100755 --- a/dietpi/dietpi-config +++ b/dietpi/dietpi-config @@ -642,8 +642,8 @@ A long (or insufficiently manufactured) cable may required a higher boost settin - Improve RAM performance by 1-5% (VideoCore shares RAM bandwidth) Source: https://www.raspberrypi.org/forums/viewtopic.php?p=105008#p105008\n Re-enabling HDMI requires a reboot. If you need emergency HDMI output, edit the following files on first partition of the SDcard from external system: - - In config.txt, set "hdmi_ignore_hotplug=0" and comment/remove all (max_)framebuffer_(width/height) lines. - - In dietpi.txt, set "AUTO_SETUP_HEADLESS=1".' || { REBOOT_REQUIRED=0; return; } + - In config.txt, set "hdmi_ignore_hotplug=0" and comment/remove the "max_framebuffers=0" line. + - In dietpi.txt, set "AUTO_SETUP_HEADLESS=0".' || { REBOOT_REQUIRED=0; return; } /boot/dietpi/func/dietpi-set_hardware headless 1 From 069644500549c7806254bbc27980bd98b132a88d Mon Sep 17 00:00:00 2001 From: MichaIng Date: Wed, 22 Feb 2023 23:53:58 +0100 Subject: [PATCH 047/155] v8.15 - DietPi-Software | Synapse: Add libjpeg headers for Pillow build on Bookworm --- dietpi/dietpi-software | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/dietpi/dietpi-software b/dietpi/dietpi-software index b1d490a8fa..88b7e71ba9 100755 --- a/dietpi/dietpi-software +++ b/dietpi/dietpi-software @@ -3830,8 +3830,8 @@ _EOF_ then G_AGI libtiff5 libopenjp2-7 libxcb1 # ARMv6/7: Runtime libs for Pillow from piwheels (libtiff5 pulls libjpeg62-turbo) else - # Bookworm: Most wheels need to be compiled: gcc and libffi-dev for cffi, Rust for matrix-synapse, libpq-dev for psycopg2, make for PyNaCl - G_AGI gcc libffi-dev libpq-dev make + # Bookworm: Most wheels need to be compiled: gcc and libffi-dev for cffi, Rust for matrix-synapse, libpq-dev for psycopg2, make for PyNaCl, libjpeg62-turbo-dev for Pillow + G_AGI gcc libffi-dev libpq-dev make libjpeg62-turbo-dev G_EXEC curl -sSf 'https://sh.rustup.rs/' -o rustup-init.sh G_EXEC chmod +x rustup-init.sh G_EXEC_OUTPUT=1 G_EXEC ./rustup-init.sh -y --profile minimal From f9ddf5651a45bea9394fb65ded34e463e7a0af65 Mon Sep 17 00:00:00 2001 From: MichaIng Date: Thu, 23 Feb 2023 00:57:47 +0100 Subject: [PATCH 048/155] v8.15 - DietPi-Software | Python 3: Fix all pip uninstalls the same way as installs --- dietpi/dietpi-software | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/dietpi/dietpi-software b/dietpi/dietpi-software index 88b7e71ba9..76f138d1e1 100755 --- a/dietpi/dietpi-software +++ b/dietpi/dietpi-software @@ -10412,7 +10412,7 @@ _EOF_ if To_Install 134 # Docker Compose then [[ -f '/usr/local/bin/docker-compose' ]] && G_EXEC rm /usr/local/bin/docker-compose # Pre-v8.14 - command -v docker-compose > /dev/null && command -v pip3 > /dev/null && G_EXEC_OUTPUT=1 G_EXEC pip3 uninstall -y docker-compose # Pre-v8.2 + command -v docker-compose > /dev/null && command -v pip3 > /dev/null && G_EXEC_OUTPUT=1 G_EXEC pip3 uninstall --break-system-packages -y docker-compose # Pre-v8.2 G_AGI docker-compose-plugin fi @@ -12240,7 +12240,7 @@ If no WireGuard (auto)start is included, but you require it, please do the follo [[ -d '/etc/systemd/system/synapse.service.d' ]] && G_EXEC rm -R /etc/systemd/system/synapse.service.d [[ -d '/mnt/dietpi_userdata/synapse' ]] && G_EXEC rm -R /mnt/dietpi_userdata/synapse - command -v pip3 > /dev/null && G_EXEC_OUTPUT=1 G_EXEC pip3 uninstall -y matrix-synapse + command -v pip3 > /dev/null && G_EXEC_OUTPUT=1 G_EXEC pip3 uninstall --break-system-packages -y matrix-synapse command -v dropdb > /dev/null && sudo -u postgres dropdb synapse command -v dropuser > /dev/null && sudo -u postgres dropuser synapse fi @@ -12307,7 +12307,7 @@ If no WireGuard (auto)start is included, but you require it, please do the follo G_EXEC rm /etc/systemd/system/motioneye.service fi [[ -d '/etc/systemd/system/motioneye.service.d' ]] && G_EXEC rm -R /etc/systemd/system/motioneye.service.d - command -v pip3 > /dev/null && G_EXEC_OUTPUT=1 G_EXEC pip3 uninstall -y motioneye + command -v pip3 > /dev/null && G_EXEC_OUTPUT=1 G_EXEC pip3 uninstall --break-system-packages -y motioneye G_AGP motion [[ -d '/etc/motioneye' ]] && G_EXEC rm -R /etc/motioneye [[ -d '/var/log/motioneye' ]] && G_EXEC rm -R /var/log/motioneye @@ -12759,7 +12759,7 @@ If no WireGuard (auto)start is included, but you require it, please do the follo [[ -f '/etc/apt/trusted.gpg.d/dietpi-mopidy.gpg' ]] && G_EXEC rm /etc/apt/trusted.gpg.d/dietpi-mopidy.gpg command -v pip2 > /dev/null && G_EXEC_OUTPUT=1 G_EXEC pip2 uninstall -y Mopidy-MusicBox-Webclient Mopidy-Local-Images # Stretch - command -v pip3 > /dev/null && G_EXEC_OUTPUT=1 G_EXEC pip3 uninstall -y Mopidy-MusicBox-Webclient + command -v pip3 > /dev/null && G_EXEC_OUTPUT=1 G_EXEC pip3 uninstall --break-system-packages -y Mopidy-MusicBox-Webclient getent passwd mopidy > /dev/null && G_EXEC userdel mopidy [[ -d '/mnt/dietpi_userdata/mopidy' ]] && G_EXEC rm -R /mnt/dietpi_userdata/mopidy @@ -13785,7 +13785,7 @@ _EOF_ then G_AGP docker-compose-plugin [[ -f '/usr/local/bin/docker-compose' ]] && G_EXEC rm /usr/local/bin/docker-compose # Pre-v8.14 - command -v docker-compose > /dev/null && command -v pip3 > /dev/null && G_EXEC_OUTPUT=1 G_EXEC pip3 uninstall -y docker-compose # Pre-v8.2 + command -v docker-compose > /dev/null && command -v pip3 > /dev/null && G_EXEC_OUTPUT=1 G_EXEC pip3 uninstall --break-system-packages -y docker-compose # Pre-v8.2 fi if To_Uninstall 162 # Docker @@ -14281,7 +14281,7 @@ _EOF_ if To_Uninstall 130 # Python 3 then - command -v pip3 > /dev/null && G_EXEC_OUTPUT=1 G_EXEC pip3 uninstall -y pip setuptools wheel + command -v pip3 > /dev/null && G_EXEC_OUTPUT=1 G_EXEC pip3 uninstall --break-system-packages -y pip setuptools wheel G_AGP python3-dev python3-pip # python3-pip: Pre-v6.32 [[ -f '/etc/pip.conf' ]] && G_EXEC rm /etc/pip.conf [[ -f '/etc/pip-constraints.txt' ]] && G_EXEC rm /etc/pip-constraints.txt From ee74e44a52ac849050dbb8e3c9a94f8bf2deacaa Mon Sep 17 00:00:00 2001 From: MichaIng Date: Thu, 23 Feb 2023 13:47:00 +0100 Subject: [PATCH 049/155] v8.15 - DietPi-Software | X.Org X Server: Install modern dbus-user-session instead of legacy dbus-x11. The first uses a single dbus session per user while the second uses one session per X11 display per user. The first was required already to solve an issue with LXDE via TigerVNC, pulled in as dependency in other cases, and overruls dbus-x11 whenever installed. On a plain LXDE install, both have no additional dependencies on top of each other, and are tiny packages themselves. Let's move to the modern approach completely. - DietPi-Software | X.Org X Server: Do not install the Mesa utilities anymore. Common end users don't know what it is about or what the output tells them, the gears just always move. Usually hardware acceleration is needed for and checked within a specific application, like Kodi. For debugging or benchmarking, those tools can be easily installed anyway. - DietPi-Software | Xfce: Mark desktop launchers executable only until Bookworm, where the fixed Thunar version has been merged in the meantime --- dietpi/dietpi-software | 24 ++++++------------------ 1 file changed, 6 insertions(+), 18 deletions(-) diff --git a/dietpi/dietpi-software b/dietpi/dietpi-software index 76f138d1e1..4bebf4bf34 100755 --- a/dietpi/dietpi-software +++ b/dietpi/dietpi-software @@ -2157,10 +2157,6 @@ Available commands: 'dietpi-cron' 'dietpi-launcher' 'dietpi-justboom' - 'es2_info' - 'es2_gears' - 'glx_info' - 'glx_gears' ) local i @@ -2205,8 +2201,8 @@ Exec=/var/lib/dietpi/dietpi-software/installed/desktop/dietpi-desktop_setup.sh Icon=/var/lib/dietpi/dietpi-software/installed/desktop/icons/dietpi-icon.png _EOF_ G_THREAD_WAIT - # https://gitlab.xfce.org/xfce/thunar/-/issues/50 - if (( ${aSOFTWARE_INSTALL_STATE[25]} == 1 )) + # https://gitlab.xfce.org/xfce/thunar/-/merge_requests/317 > https://packages.debian.org/bookworm/thunar + if (( $G_DISTRO < 7 && ${aSOFTWARE_INSTALL_STATE[25]} == 1 )) then G_DIETPI-NOTIFY 2 'Adding execute bit to our default desktop launchers/icons' adesktop_items=() @@ -2321,7 +2317,6 @@ _EOF_ G_DIETPI-NOTIFY 1 "\"$fallback_url\" will be used as fallback, but a newer version might be available." G_DIETPI-NOTIFY 1 'Please report this at: https://github.com/MichaIng/DietPi/issues' local url=$fallback_url - else G_DIETPI-NOTIFY 1 "An empty download URL was passed during ${aSOFTWARE_NAME[$software_id]} install. Please report this at: https://github.com/MichaIng/DietPi/issues" return 1 @@ -2553,7 +2548,7 @@ _EOF_ if To_Install 6 # X.Org X Server then # Generic X server + Mesa OpenGL libraries and utilities - aDEPS=('xserver-xorg-core' 'xserver-xorg-input-libinput' 'xinit' 'dbus-x11' 'xfonts-base' 'x11-xserver-utils' 'x11-utils' 'mesa-utils' 'mesa-utils-extra') + aDEPS=('xserver-xorg-core' 'xserver-xorg-input-libinput' 'xinit' 'dbus-user-session' 'xfonts-base' 'x11-xserver-utils' 'x11-utils') # RPi: Add fbdev display driver for legacy framebuffer graphics support, as modesetting requires KMS driver overlay for /dev/dri/card0 to exists. (( $G_HW_MODEL > 9 )) || aDEPS+=('xserver-xorg-video-fbdev') @@ -3046,11 +3041,8 @@ Package: openbox* obconf* libob* pcmanfm* libfm* gtk-* libgtk* libgail* gir1.2-g Pin: origin archive.raspberrypi.org Pin-Priority: -1 _EOF_ - # https://github.com/MichaIng/DietPi/issues/1558#issuecomment-701547904 - local apackages=() - (( ${aSOFTWARE_INSTALL_STATE[28]} > 0 )) && apackages+=('dbus-user-session') - # Bullseye: https://github.com/MichaIng/DietPi/issues/4687 + local apackages=() (( $G_DISTRO > 5 )) && apackages+=('librsvg2-common') # LXDE pulls in LightDM as dependency, which sets up itself as display manager so that the system boots automatically into it. So check whether a default display manager is present first, and if not, remove it afterwards. @@ -7033,8 +7025,6 @@ _EOF_ # tigervnc-common is required as it is a recommendation only until Bullseye. local apackages=() (( $G_DISTRO > 5 )) || apackages=('tigervnc-common' 'netbase') - # https://github.com/MichaIng/DietPi/issues/1558#issuecomment-701547904 - (( ${aSOFTWARE_INSTALL_STATE[23]} > 0 )) && apackages+=('dbus-user-session') G_AGI tigervnc-standalone-server tigervnc-scraping-server "${apackages[@]}" fi @@ -11806,7 +11796,7 @@ If no WireGuard (auto)start is included, but you require it, please do the follo if To_Uninstall 23 # LXDE then - apt-mark auto lxhotkey-plugin-openbox upower librsvg2-common dbus-user-session 2> /dev/null + apt-mark auto lxhotkey-plugin-openbox upower librsvg2-common 2> /dev/null G_AGP lxde 'lxde-*' G_EXEC rm -Rf /{root,home/*}/.{config,cache}/{lxpanel,lxsession,lxterminal,openbox,pcmanfm,dconf} [[ -f '/etc/apt/preferences.d/dietpi-lxde' ]] && G_EXEC rm /etc/apt/preferences.d/dietpi-lxde @@ -13070,8 +13060,6 @@ If no WireGuard (auto)start is included, but you require it, please do the follo systemctl unmask vncserver-virtuald 2> /dev/null systemctl disable --now vncserver-virtuald 2> /dev/null - dpkg-query -s 'dbus-user-session' &> /dev/null && G_EXEC apt-mark auto dbus-user-session - G_AGP 'tigervnc-*' x11vnc realvnc-vnc-server if [[ -f '/etc/systemd/system/vncserver.service' ]] @@ -14136,7 +14124,7 @@ _EOF_ if To_Uninstall 6 # X.Org X Server then # shellcheck disable=SC2046 - apt-mark auto $(dpkg --get-selections 'x11-*' dbus-x11 'libegl1*' 'libgles2*' libgl1-mesa-dri 'mesa-*' libdrm-rockchip1 libmali-rk-utgard-450-r7p0 'xf86-video-*' malit628-odroid mali450-odroid aml-libs-odroid 'libump*' firmware-samsung 2> /dev/null | mawk '{print $1}') 2> /dev/null + apt-mark auto $(dpkg --get-selections 'x11-*' dbus-x11 dbus-user-session 'libegl1*' 'libgles2*' libgl1-mesa-dri 'mesa-*' libdrm-rockchip1 libmali-rk-utgard-450-r7p0 'xf86-video-*' malit628-odroid mali450-odroid aml-libs-odroid 'libump*' firmware-samsung 2> /dev/null | mawk '{print $1}') 2> /dev/null G_AGP 'xorg*' 'xserver-xorg*' xinit xcompmgr xterm xfonts-base G_EXEC rm -f /etc/xdg/autostart/xcompmgr.desktop /etc/X11/xorg.conf /etc/X11/xorg.conf.d/98-dietpi-disable_dpms.conf fi From 73da7d2c9c8f99b4c47b198786b38725959a0a92 Mon Sep 17 00:00:00 2001 From: MichaIng Date: Fri, 24 Feb 2023 01:49:11 +0100 Subject: [PATCH 050/155] v8.15 - DietPi-Software | TasmoAdmin: Fix install on Buster where v2 is not supported (requires PHP >=7.4) and prevent breaking on Bullseye as v3 will drop support for PHP 7.4 - DietPi-Software | Consequently install libjpeg62-turbo-dev instead of the dummy libjpeg-dev --- dietpi/dietpi-software | 48 ++++++++++++++++++++++++------------------ 1 file changed, 28 insertions(+), 20 deletions(-) diff --git a/dietpi/dietpi-software b/dietpi/dietpi-software index 4bebf4bf34..3806d6ce49 100755 --- a/dietpi/dietpi-software +++ b/dietpi/dietpi-software @@ -6146,7 +6146,7 @@ _EOF_ 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;exit}')" /mnt/dietpi_userdata/airsonic/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 @@ -9002,7 +9002,7 @@ _EOF_ if To_Install 137 # mjpg-streamer then # Build dependencies - aDEPS=('make' 'cmake' 'gcc' 'libc6-dev' 'libjpeg-dev') + aDEPS=('make' 'cmake' 'gcc' 'libc6-dev' 'libjpeg62-turbo-dev') # - On RPi, add RPi Camera support by default (( $G_HW_MODEL > 9 )) || aDEPS+=('libraspberrypi-dev') @@ -10110,7 +10110,7 @@ _EOF_ G_CHECK_URL "$url" # Python build dependencies for ARM - (( $G_HW_ARCH < 10 )) && G_AGI libffi-dev libssl-dev zlib1g-dev libjpeg-dev + (( $G_HW_ARCH < 10 )) && G_AGI libffi-dev libssl-dev zlib1g-dev libjpeg62-turbo-dev if [[ -d '/mnt/dietpi_userdata/htpc-manager/.git' ]] then @@ -10989,39 +10989,48 @@ _EOF_ G_AGI "${aDEPS[@]}" aDEPS=() else - local fallback_url='https://github.com/TasmoAdmin/TasmoAdmin/releases/download/v2.4.2/tasmoadmin_v2.4.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}')" + # v3 drops PHP 7.4 support: https://github.com/TasmoAdmin/TasmoAdmin/blob/master/UPGRADE.md#from-2---3 + if (( $G_DISTRO > 6 )) + then + local fallback_url='https://github.com/TasmoAdmin/TasmoAdmin/releases/download/v2.4.2/tasmoadmin_v2.4.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}')" + + # v2 drops PHP <7.4 support: https://github.com/TasmoAdmin/TasmoAdmin/releases/tag/v2.0.0 + elif (( $G_DISTRO > 5 )) + else + local fallback_url='https://github.com/TasmoAdmin/TasmoAdmin/releases/download/v2.4.2/tasmoadmin_v2.4.2.tar.gz' + Download_Install "$(curl -sSfL 'https://api.github.com/repos/TasmoAdmin/TasmoAdmin/releases' | mawk -F\" '/"browser_download_url": ".*\/tasmoadmin_v2\.[^"\/]*\.tar\.gz"$/{print $4}' | head -1)" + else + Download_Install "$(curl -sSfL 'https://github.com/TasmoAdmin/TasmoAdmin/releases/download/v1.8.0/tasmoadmin_v1.8.0.tar.gz')" + fi G_EXEC chown -R www-data:www-data tasmoadmin - G_EXEC mv {,/var/www/}tasmoadmin + G_EXEC mv tasmoadmin /var/www/ fi - # Configure the webserver + # Webserver config if (( ${aSOFTWARE_INSTALL_STATE[83]} > 0 )) then G_DIETPI-NOTIFY 2 'Apache webserver found, enabling TasmoAdmin specific configuration.' - a2enmod setenvif rewrite authz_core authn_core authn_file 1> /dev/null local tasmoadmin_conf='/etc/apache2/sites-available/dietpi-tasmoadmin.conf' - if [[ -f $tasmoadmin_conf ]]; then - + if [[ -f $tasmoadmin_conf ]] + then tasmoadmin_conf+='.dietpi-new' G_WHIP_MSG "Existing TasmoAdmin Apache configuration found, will preserve the old one and save the new one for review and comparison to: $tasmoadmin_conf" - fi dps_index=$software_id Download_Install 'apache.tasmoadmin.conf' "$tasmoadmin_conf" + a2enmod setenvif rewrite authz_core authn_core authn_file 1> /dev/null a2ensite dietpi-tasmoadmin 1> /dev/null elif (( ${aSOFTWARE_INSTALL_STATE[84]} > 0 )) then G_DIETPI-NOTIFY 2 'Lighttpd webserver found, enabling TasmoAdmin specific configuration.' local tasmoadmin_conf='/etc/lighttpd/conf-available/99-dietpi-tasmoadmin.conf' - if [[ -f $tasmoadmin_conf ]]; then - + if [[ -f $tasmoadmin_conf ]] + then tasmoadmin_conf+='.dietpi-new' G_WHIP_MSG "Existing TasmoAdmin Lighttpd configuration found, will preserve the old one and save the new one for review and comparison to: $tasmoadmin_conf" - fi dps_index=$software_id Download_Install 'lighttpd.tasmoadmin.conf' "$tasmoadmin_conf" - # Enable required modules + our config G_EXEC_POST_FUNC(){ [[ $exit_code == 2 ]] && exit_code=0; } # Do not fail if modules are enabled already G_EXEC lighty-enable-mod rewrite dietpi-tasmoadmin @@ -11029,11 +11038,10 @@ _EOF_ then G_DIETPI-NOTIFY 2 'Nginx webserver found, enabling TasmoAdmin specific configuration.' local tasmoadmin_conf='/etc/nginx/sites-dietpi/dietpi-tasmoadmin.conf' - if [[ -f $tasmoadmin_conf ]]; then - + if [[ -f $tasmoadmin_conf ]] + then owncloud_conf+='.dietpi-new' G_WHIP_MSG "Existing TasmoAdmin Nginx configuration found, will preserve the old one and save the new one for review and comparison to: $tasmoadmin_conf" - fi dps_index=$software_id Download_Install 'nginx.tasmoadmin.conf' "$tasmoadmin_conf" fi @@ -11068,8 +11076,8 @@ _EOF_ G_EXEC chown "$ha_user:$ha_user" "$ha_home" if [[ $G_HW_ARCH == [12] ]] then - # libjpeg-dev for Pillow, libatlas-base-dev for numpy - aDEPS+=('libjpeg-dev' 'libatlas-base-dev') + # libjpeg62-turbo-dev for Pillow, libatlas-base-dev for numpy + aDEPS+=('libjpeg62-turbo-dev' 'libatlas-base-dev') # Rust for cryptography G_EXEC curl -sSf 'https://sh.rustup.rs/' -o rustup-init.sh G_EXEC chmod +x rustup-init.sh From b4347fc43ef2e87a4bf3aeafaf37cb1ca5c37515 Mon Sep 17 00:00:00 2001 From: MichaIng Date: Fri, 24 Feb 2023 18:57:01 +0100 Subject: [PATCH 051/155] v8.15 - DietPi-Software | Syntax --- dietpi/dietpi-software | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dietpi/dietpi-software b/dietpi/dietpi-software index 3806d6ce49..e7156435f5 100755 --- a/dietpi/dietpi-software +++ b/dietpi/dietpi-software @@ -10997,7 +10997,7 @@ _EOF_ # v2 drops PHP <7.4 support: https://github.com/TasmoAdmin/TasmoAdmin/releases/tag/v2.0.0 elif (( $G_DISTRO > 5 )) - else + then local fallback_url='https://github.com/TasmoAdmin/TasmoAdmin/releases/download/v2.4.2/tasmoadmin_v2.4.2.tar.gz' Download_Install "$(curl -sSfL 'https://api.github.com/repos/TasmoAdmin/TasmoAdmin/releases' | mawk -F\" '/"browser_download_url": ".*\/tasmoadmin_v2\.[^"\/]*\.tar\.gz"$/{print $4}' | head -1)" else From f08614ebec9529d1c557e10bf8e9a97d07646d68 Mon Sep 17 00:00:00 2001 From: MichaIng Date: Sat, 25 Feb 2023 01:29:29 +0100 Subject: [PATCH 052/155] v8.15 - DietPi-Software | As part of the first run setup, install and enable the QEMU guest agent on VMs, where a related QEMU port is detected. This is needed for shutdown and reboot from the host, similar to ACPI (acpid) on other VMs, but also other features --- dietpi/dietpi-software | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/dietpi/dietpi-software b/dietpi/dietpi-software index e7156435f5..917041709d 100755 --- a/dietpi/dietpi-software +++ b/dietpi/dietpi-software @@ -14727,12 +14727,21 @@ _EOF_ # REMOVED: "hwclock" succeeds if an RTC connector is available but no battery attached (or empty), hence we cannot guarantee correct RTC time on boot by only testing "hwclock". #hwclock &> /dev/null && G_AGP fake-hwclock - # x86_64 microcode updates, skip on VM - if (( $G_HW_ARCH == 10 && $G_HW_MODEL != 20 && $G_HW_MODEL != 75 )) + # x86_64 PC: Install microcode updates + if (( $G_HW_MODEL == 21 )) then grep -qi 'vendor_id.*intel' /proc/cpuinfo && G_AGI intel-microcode grep -qi 'vendor_id.*amd' /proc/cpuinfo && G_AGI amd64-microcode + # VM: Enable QEMU guest agent if detected + elif (( $G_HW_MODEL == 20 )) && grep -q 'org.qemu.guest_agent.0' /sys/class/virtio-ports/*/name 2> /dev/null + then + G_DIETPI-NOTIFY 2 'QEMU VM detected, installing guest agent ...' + G_AGI dbus + G_EXEC systemctl unmask systemd-logind + G_EXEC systemctl start systemd-logind + G_AGI qemu-guest-agent + # RPi4 EEPROM update: https://github.com/MichaIng/DietPi/issues/3217 elif (( $G_HW_MODEL == 4 )) then @@ -14757,7 +14766,6 @@ _EOF_ elif (( $i == $full_octets )) then mask+=$(( 256 - 2 ** ( 8 - $partial_octet ) )) - else mask+=0 fi @@ -15327,7 +15335,6 @@ We allow it to take up to 30 minutes, it's process can be followed, please be pa '' '●─ Install or Remove Software ' 'Uninstall' ': Select installed software for removal' 'Install' ': Go >> Start installation for selected software' - ) G_WHIP_DEFAULT_ITEM=$MENU_MAIN_LASTITEM From 4bcd773e6fb12c35e61ca78eb8e29561decc011c Mon Sep 17 00:00:00 2001 From: MichaIng Date: Sat, 25 Feb 2023 17:07:18 +0100 Subject: [PATCH 053/155] v8.15 - DietPi-Software | Gogs: 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 917041709d..d21f8ce3a0 100755 --- a/dietpi/dietpi-software +++ b/dietpi/dietpi-software @@ -8310,7 +8310,7 @@ _EOF_ *) arch='amd64';; esac - local fallback_url="https://github.com/gogs/gogs/releases/download/v0.12.10/gogs_0.12.10_linux_$arch.tar.gz" + local fallback_url="https://github.com/gogs/gogs/releases/download/v0.12.11/gogs_0.12.11_linux_$arch.tar.gz" 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 05be48b8f3f31972611454fb1b972e540f83b14a Mon Sep 17 00:00:00 2001 From: MichaIng Date: Sat, 25 Feb 2023 21:00:50 +0100 Subject: [PATCH 054/155] v8.15 - Quartz64 | Enable CONFIG_CFS_BANDWIDTH kernel feature to allow limiting CPU bandwidth via fair group scheduler --- .build/images/Quartz64/quartz64_defconfig | 1 + 1 file changed, 1 insertion(+) diff --git a/.build/images/Quartz64/quartz64_defconfig b/.build/images/Quartz64/quartz64_defconfig index 49cac73160..00abc82cb9 100644 --- a/.build/images/Quartz64/quartz64_defconfig +++ b/.build/images/Quartz64/quartz64_defconfig @@ -13,6 +13,7 @@ CONFIG_SQUASHFS_LZO=y CONFIG_SQUASHFS_XZ=y CONFIG_SQUASHFS_ZSTD=y CONFIG_CAN_GS_USB=m +CONFIG_CFS_BANDWIDTH=y CONFIG_MODULE_COMPRESS_XZ=y CONFIG_SYSVIPC=y CONFIG_POSIX_MQUEUE=y From 9a252147c611bac4988d95020b0a9fa34b216061 Mon Sep 17 00:00:00 2001 From: MichaIng Date: Sat, 25 Feb 2023 21:04:06 +0100 Subject: [PATCH 055/155] v8.15 - Quartz64 | Bump Linux version to 6.1.14 --- .github/workflows/quartz64.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/quartz64.yml b/.github/workflows/quartz64.yml index fdf33713bb..01df61e95f 100644 --- a/.github/workflows/quartz64.yml +++ b/.github/workflows/quartz64.yml @@ -13,7 +13,7 @@ jobs: shell: sh working-directory: /dev/shm env: - linux_version: '6.1.12' + linux_version: '6.1.14' uboot_branch: 'v2022.04-dietpi' CROSS_COMPILE: 'aarch64-linux-gnu-' ARCH: 'arm64' From b05dc95f7949392d9fccd612fd537b0711b88950 Mon Sep 17 00:00:00 2001 From: MichaIng Date: Sat, 25 Feb 2023 23:43:34 +0100 Subject: [PATCH 056/155] v8.15 - DietPi-Build | Add support for StartFive VisionFive 2 based on our repacked kernel package --- .build/images/dietpi-build | 11 ++++++++++- .build/images/dietpi-installer | 19 +++++++++++++++---- 2 files changed, 25 insertions(+), 5 deletions(-) diff --git a/.build/images/dietpi-build b/.build/images/dietpi-build index 3f5953c854..aac7f173b0 100755 --- a/.build/images/dietpi-build +++ b/.build/images/dietpi-build @@ -21,6 +21,7 @@ case $G_HW_ARCH_NAME in 'armv7l') export G_HW_ARCH=2;; '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;; esac readonly G_PROGRAM_NAME='DietPi-Build' @@ -117,6 +118,7 @@ case $HW_MODEL in 78) iname='ROCK5B' HW_ARCH=3 PTTYPE='gpt' partition_start=16 boot_size=128 root_size=688 boot_fstype='ext4';; 79) iname='NanoPiR6S' HW_ARCH=3 root_size=752;; # Special case: Skips image file, partitioning and filesystem generation, but runs debootstrap only! 80) iname='OrangePi5' HW_ARCH=3 PTTYPE='gpt' partition_start=16 boot_size=128 root_size=688;; + 81) iname='VisionFive2' HW_ARCH=11 root_size=639 DISTRO=7;; *) G_DIETPI-NOTIFY 1 "Invalid hardware model \"$HW_MODEL\" passed, aborting..."; exit 1;; esac @@ -136,6 +138,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' repo='https://deb.debian.org/debian-ports/' keyring='/usr/share/keyrings/debian-ports-archive-keyring.gpg';; *) G_DIETPI-NOTIFY 1 "Invalid architecture \"$HW_ARCH\" passed, aborting..."; exit 1;; esac @@ -149,6 +152,7 @@ case $DISTRO in case $HW_MODEL in 1[256]|49.[123]|54|61|7[4569]) ((root_size+=128));; 21) ((root_size+=448));; + 81) distro='sid';; # RISC-V architecture is available on Debian Sid/unstable only *) :;; esac ;; @@ -206,7 +210,11 @@ G_AG_CHECK_INSTALL_PREREQ parted debootstrap dbus systemd-container "${apackages # Bootstrap archive keyring if missing if [[ ! -f $keyring ]] then - [[ $keyring == *'debian'* ]] && url='https://deb.debian.org/debian/pool/main/d/debian-archive-keyring/debian-archive-keyring_2021.1.1_all.deb' || url='https://archive.raspbian.org/raspbian/pool/main/r/raspbian-archive-keyring/raspbian-archive-keyring_20120528.2_all.deb' + case $keyring in + 'raspbian') url='https://archive.raspbian.org/raspbian/pool/main/r/raspbian-archive-keyring/raspbian-archive-keyring_20120528.2_all.deb';; + 'debian-ports') url='http://deb.debian.org/debian/pool/main/d/debian-ports-archive-keyring/debian-ports-archive-keyring_2023.02.01_all.deb';; + *) url='https://deb.debian.org/debian/pool/main/d/debian-archive-keyring/debian-archive-keyring_2021.1.1_all.deb';; + esac G_EXEC curl -sSf "$url" -o /tmp/keyring.deb G_EXEC_OUTPUT=1 G_EXEC dpkg -i /tmp/keyring.deb G_EXEC_NOHALT=1 G_EXEC rm /tmp/keyring.deb @@ -345,6 +353,7 @@ fi ########################################## packages='apt,bash-completion,bzip2,ca-certificates,cron,curl,fdisk,gnupg,htop,iputils-ping,locales,nano,p7zip,parted,procps,psmisc,sudo,systemd-sysv,tzdata,udev,unzip,wget,whiptail,' [[ $HW_MODEL == 75 ]] && packages+='iproute2' || packages+='console-setup,dropbear,ethtool,fake-hwclock,ifupdown,isc-dhcp-client,kmod,rfkill,systemd-timesyncd,usbutils' +[[ $HW_MODEL == 81 ]] && packages+=',debian-ports-archive-keyring' G_EXEC_POST_FUNC(){ [[ $exit_code == 0 ]] || cat /dev/shm/rootfs/debootstrap/debootstrap.log; } G_EXEC_OUTPUT=1 G_EXEC debootstrap --variant=minbase --exclude="gcc-7-base$exclude" --include="$packages" --arch="$parch" --keyring="$keyring" "$distro" ./rootfs "$repo" diff --git a/.build/images/dietpi-installer b/.build/images/dietpi-installer index d38dbf2ff2..96826126e6 100644 --- a/.build/images/dietpi-installer +++ b/.build/images/dietpi-installer @@ -1138,6 +1138,17 @@ _EOF_ G_EXEC_OUTPUT=1 G_EXEC dpkg -i firmware-nanopi2.deb G_EXEC rm firmware-nanopi2.deb + # VisionFive 2 + elif [[ $G_HW_MODEL == 81 ]] + then + G_AGI initramfs-tools debian-ports-archive-keyring + [[ -f '/boot/extlinux/extlinux.conf' ]] && G_EXEC rm /boot/extlinux/extlinux.conf + G_EXEC curl -sSfO 'https://dietpi.com/downloads/binaries/linux-image-5.15.0-starfive.deb' + G_EXEC_OUTPUT=1 G_EXEC dpkg -i linux-image-5.15.0-starfive.deb + G_EXEC rm linux-image-5.15.0-starfive.deb + G_EXEC sed -i "s/root=[^[:blank:]]*/root=UUID=$(findmnt -Ufnro UUID -M /)/" /boot/extlinux/extlinux.conf + G_EXEC sed -i "s/rootfstype=[^[:blank:]]*/rootfstype=$(findmnt -Ufnro FSTYPE -M /)/" /boot/extlinux/extlinux.conf + # Armbian grab currently installed packages elif [[ $G_HW_MODEL != 75 && $(dpkg-query -Wf '${Package} ') == *'armbian'* ]] then @@ -1734,7 +1745,7 @@ _EOF_' G_EXEC systemctl mask serial-getty@ttyS0 # Odroid C1, NanoPi K2, Radxa Zero - elif [[ $G_HW_MODEL =~ ^(10|54|74)$ ]] + elif [[ $G_HW_MODEL =~ ^10|54|74$ ]] then /boot/dietpi/func/dietpi-set_hardware serialconsole enable ttyAML0 @@ -1762,12 +1773,12 @@ _EOF_' /boot/dietpi/func/dietpi-set_hardware serialconsole enable ttyGS0 # ROCKPro64, ROCK64, Pinebook Pro, NanoPi R4S, Quartz64, ASUS Tinker Board, NanoPi R2S, NanoPi NEO3, NanoPi M4V2, NanoPi M4/T4/NEO4, ROCK Pi 4, ROCK 3A, ROCK 5B - elif [[ $G_HW_MODEL =~ ^(42|43|46|47|49|52|55|56|58|68|72|77|78|80)$ ]] + elif [[ $G_HW_MODEL =~ ^42|43|46|47|49|52|55|56|58|68|72|77|78|80$ ]] then /boot/dietpi/func/dietpi-set_hardware serialconsole enable ttyS2 - # PINE A64, Pinebook, PINE H64, NenoPi NEO Plus2, ZeroPi, NanoPi NEO, NanoPi M1, NanoPi NEO Air, NenoPi NEO2, NanoPi M1 Plus, NanoPi K1 Plus, ROCK Pi S - elif [[ $G_HW_MODEL =~ ^(40|44|45|57|59|60|63|64|65|66|67|73)$ ]] + # PINE A64, Pinebook, PINE H64, NenoPi NEO Plus2, ZeroPi, NanoPi NEO, NanoPi M1, NanoPi NEO Air, NenoPi NEO2, NanoPi M1 Plus, NanoPi K1 Plus, ROCK Pi S, VisionFive 2 + elif [[ $G_HW_MODEL =~ ^40|44|45|57|59|60|63|64|65|66|67|73|81$ ]] then /boot/dietpi/func/dietpi-set_hardware serialconsole enable ttyS0 From a54c08cf0b53ddafd82784e29fa256504877bdfa Mon Sep 17 00:00:00 2001 From: MichaIng Date: Sat, 25 Feb 2023 23:48:48 +0100 Subject: [PATCH 057/155] v8.15 - DietPi-Build | Fix keyring detection --- .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 aac7f173b0..54c3badfa9 100755 --- a/.build/images/dietpi-build +++ b/.build/images/dietpi-build @@ -211,8 +211,8 @@ G_AG_CHECK_INSTALL_PREREQ parted debootstrap dbus systemd-container "${apackages if [[ ! -f $keyring ]] then case $keyring in - 'raspbian') url='https://archive.raspbian.org/raspbian/pool/main/r/raspbian-archive-keyring/raspbian-archive-keyring_20120528.2_all.deb';; - 'debian-ports') url='http://deb.debian.org/debian/pool/main/d/debian-ports-archive-keyring/debian-ports-archive-keyring_2023.02.01_all.deb';; + *'raspbian'*) url='https://archive.raspbian.org/raspbian/pool/main/r/raspbian-archive-keyring/raspbian-archive-keyring_20120528.2_all.deb';; + *'debian-ports'*) url='http://deb.debian.org/debian/pool/main/d/debian-ports-archive-keyring/debian-ports-archive-keyring_2023.02.01_all.deb';; *) url='https://deb.debian.org/debian/pool/main/d/debian-archive-keyring/debian-archive-keyring_2021.1.1_all.deb';; esac G_EXEC curl -sSf "$url" -o /tmp/keyring.deb From 0b5371cad81d7221c5671c126adcd199a92a8438 Mon Sep 17 00:00:00 2001 From: MichaIng Date: Sun, 26 Feb 2023 00:14:08 +0100 Subject: [PATCH 058/155] v8.15 - DietPi-Installer | VisionFive 2: Install usr-is-merged explicitly, since for some reason on debian-ports Sid, purging usrmerge does not automatically install usr-is-merged --- .build/images/dietpi-installer | 1 + 1 file changed, 1 insertion(+) diff --git a/.build/images/dietpi-installer b/.build/images/dietpi-installer index 96826126e6..aa4deaefcc 100644 --- a/.build/images/dietpi-installer +++ b/.build/images/dietpi-installer @@ -786,6 +786,7 @@ fi' /boot/boot.cmd G_AGUP # Replace usrmerge with usr-is-merged now, with perl + perl-modules this frees a notable amount of space! + (( $G_HW_MODEL == 81 )) && G_AGI usr-is-merged # For some reason on debian-ports Sid, purging usrmerge does not automatically install usr-is-merged dpkg-query -s usrmerge &> /dev/null && G_AGP usrmerge # @MichaIng https://github.com/MichaIng/DietPi/pull/1266/files From 91188e63a1c95ba64921e825cc856e8aa104ddae Mon Sep 17 00:00:00 2001 From: MichaIng Date: Sun, 26 Feb 2023 00:15:39 +0100 Subject: [PATCH 059/155] v8.15 - DietPi-Installer | Make usrmerge fix for debian-ports Sid depending on RISC-V architecture instead of VisionFive 2 hardware model, as this affects all RISC-V boards we may add in the future --- .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 aa4deaefcc..391c204ede 100644 --- a/.build/images/dietpi-installer +++ b/.build/images/dietpi-installer @@ -786,7 +786,7 @@ fi' /boot/boot.cmd G_AGUP # Replace usrmerge with usr-is-merged now, with perl + perl-modules this frees a notable amount of space! - (( $G_HW_MODEL == 81 )) && G_AGI usr-is-merged # For some reason on debian-ports Sid, purging usrmerge does not automatically install usr-is-merged + (( $G_HW_ARCH == 11 )) && G_AGI usr-is-merged # For some reason on debian-ports Sid, purging usrmerge does not automatically install usr-is-merged dpkg-query -s usrmerge &> /dev/null && G_AGP usrmerge # @MichaIng https://github.com/MichaIng/DietPi/pull/1266/files From 9440be6ab288087e07fd114142559170739c629d Mon Sep 17 00:00:00 2001 From: MichaIng Date: Sun, 26 Feb 2023 00:45:12 +0100 Subject: [PATCH 060/155] v8.15 Strange error on debian-ports Sid --- [ INFO ] DietPi-Installer | APT install usr-is-merged, please wait... Reading package lists... Building dependency tree... usrmerge is already the newest version (35). 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. --- as if the usr-is-merged package would be a symlink to the usrmerge one or so. It is not, checking package files and lists looks all correct. Let's with to install it via dpkg... --- .build/images/dietpi-installer | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/.build/images/dietpi-installer b/.build/images/dietpi-installer index 391c204ede..63e3b510e7 100644 --- a/.build/images/dietpi-installer +++ b/.build/images/dietpi-installer @@ -786,7 +786,13 @@ fi' /boot/boot.cmd G_AGUP # Replace usrmerge with usr-is-merged now, with perl + perl-modules this frees a notable amount of space! - (( $G_HW_ARCH == 11 )) && G_AGI usr-is-merged # For some reason on debian-ports Sid, purging usrmerge does not automatically install usr-is-merged + if (( $G_HW_ARCH == 11 )) + then + # For some reason on debian-ports Sid, purging usrmerge does not automatically install usr-is-merged and furthermore "apt install usr-is-merged" shows strange "usrmerge is already the newest version" output, not installing anything... + G_EXEC curl -sSfO 'https://deb.debian.org/debian-ports/pool/main/u/usrmerge/usr-is-merged_35_all.deb' + G_EXEC_OUTPUT=1 G_EXEC dpkg -i usr-is-merged_35_all.deb + G_EXEC rm usr-is-merged_35_all.deb + fi dpkg-query -s usrmerge &> /dev/null && G_AGP usrmerge # @MichaIng https://github.com/MichaIng/DietPi/pull/1266/files From d41f5486f1565a54042006fcccab613a7a022d88 Mon Sep 17 00:00:00 2001 From: MichaIng Date: Sun, 26 Feb 2023 00:49:43 +0100 Subject: [PATCH 061/155] v8.15 - DietPi-Build | Fix RISC-V issues properly now, which was due to architecture not passed to dietpi-set_software, leading to wrong non-ports repos --- .build/images/dietpi-installer | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/.build/images/dietpi-installer b/.build/images/dietpi-installer index 63e3b510e7..a0368ef2bb 100644 --- a/.build/images/dietpi-installer +++ b/.build/images/dietpi-installer @@ -768,7 +768,7 @@ fi' /boot/boot.cmd G_DIETPI-NOTIFY 2 "Setting APT sources.list: $DISTRO_TARGET_NAME $DISTRO_TARGET" # We need to forward $DISTRO_TARGET* to dietpi-set_software, as well as $G_HW_MODEL + $G_RASPBIAN for Debian vs Raspbian decision. - G_DISTRO=$DISTRO_TARGET G_DISTRO_NAME=$DISTRO_TARGET_NAME G_HW_MODEL=$G_HW_MODEL G_RASPBIAN=$G_RASPBIAN G_EXEC /boot/dietpi/func/dietpi-set_software apt-mirror default + G_DISTRO=$DISTRO_TARGET G_DISTRO_NAME=$DISTRO_TARGET_NAME G_HW_ARCH=$G_HW_ARCH G_HW_MODEL=$G_HW_MODEL G_RASPBIAN=$G_RASPBIAN G_EXEC /boot/dietpi/func/dietpi-set_software apt-mirror default # ToDo: Temporary step until v8.15 release: Since Bookworm, non-free firmware has been moved to new component: https://deb.debian.org/debian/pool/ (( $DISTRO_TARGET > 6 )) && G_EXEC sed -i 's/$/ non-free-firmware/' /etc/apt/sources.list @@ -786,13 +786,13 @@ fi' /boot/boot.cmd G_AGUP # Replace usrmerge with usr-is-merged now, with perl + perl-modules this frees a notable amount of space! - if (( $G_HW_ARCH == 11 )) - then - # For some reason on debian-ports Sid, purging usrmerge does not automatically install usr-is-merged and furthermore "apt install usr-is-merged" shows strange "usrmerge is already the newest version" output, not installing anything... - G_EXEC curl -sSfO 'https://deb.debian.org/debian-ports/pool/main/u/usrmerge/usr-is-merged_35_all.deb' - G_EXEC_OUTPUT=1 G_EXEC dpkg -i usr-is-merged_35_all.deb - G_EXEC rm usr-is-merged_35_all.deb - fi + #if (( $G_HW_ARCH == 11 )) + #then + # # For some reason on debian-ports Sid, purging usrmerge does not automatically install usr-is-merged and furthermore "apt install usr-is-merged" shows strange "usrmerge is already the newest version" output, not installing anything... + # G_EXEC curl -sSfO 'https://deb.debian.org/debian-ports/pool/main/u/usrmerge/usr-is-merged_35_all.deb' + # G_EXEC_OUTPUT=1 G_EXEC dpkg -i usr-is-merged_35_all.deb + # G_EXEC rm usr-is-merged_35_all.deb + #fi dpkg-query -s usrmerge &> /dev/null && G_AGP usrmerge # @MichaIng https://github.com/MichaIng/DietPi/pull/1266/files From 7c2facb6c4e7a472d1aba5d9348ea088d145f8b0 Mon Sep 17 00:00:00 2001 From: MichaIng Date: Sun, 26 Feb 2023 13:26:49 +0100 Subject: [PATCH 062/155] v8.15 - DietPi-Software | Update some fallback URLs --- .build/images/dietpi-installer | 7 ------- dietpi/dietpi-software | 4 ++-- 2 files changed, 2 insertions(+), 9 deletions(-) diff --git a/.build/images/dietpi-installer b/.build/images/dietpi-installer index a0368ef2bb..c31f4a2d01 100644 --- a/.build/images/dietpi-installer +++ b/.build/images/dietpi-installer @@ -786,13 +786,6 @@ fi' /boot/boot.cmd G_AGUP # Replace usrmerge with usr-is-merged now, with perl + perl-modules this frees a notable amount of space! - #if (( $G_HW_ARCH == 11 )) - #then - # # For some reason on debian-ports Sid, purging usrmerge does not automatically install usr-is-merged and furthermore "apt install usr-is-merged" shows strange "usrmerge is already the newest version" output, not installing anything... - # G_EXEC curl -sSfO 'https://deb.debian.org/debian-ports/pool/main/u/usrmerge/usr-is-merged_35_all.deb' - # G_EXEC_OUTPUT=1 G_EXEC dpkg -i usr-is-merged_35_all.deb - # G_EXEC rm usr-is-merged_35_all.deb - #fi dpkg-query -s usrmerge &> /dev/null && G_AGP usrmerge # @MichaIng https://github.com/MichaIng/DietPi/pull/1266/files diff --git a/dietpi/dietpi-software b/dietpi/dietpi-software index d21f8ce3a0..9d2cc3ed63 100755 --- a/dietpi/dietpi-software +++ b/dietpi/dietpi-software @@ -8310,7 +8310,7 @@ _EOF_ *) arch='amd64';; esac - local fallback_url="https://github.com/gogs/gogs/releases/download/v0.12.11/gogs_0.12.11_linux_$arch.tar.gz" + local fallback_url="https://github.com/gogs/gogs/releases/download/v0.13.0/gogs_0.13.0_linux_$arch.tar.gz" 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 @@ -10054,7 +10054,7 @@ _EOF_ *) local arch='x64';; esac - local fallback_url="https://github.com/Readarr/Readarr/releases/download/v0.1.3.1584/Readarr.develop.0.1.3.1584.linux-core-$arch.tar.gz" + local fallback_url="https://github.com/Readarr/Readarr/releases/download/v0.1.4.1596/Readarr.develop.0.1.4.1596.linux-core-$arch.tar.gz" Download_Install "$(curl -sSfL 'https://api.github.com/repos/Readarr/Readarr/releases' | mawk -F\" "/\"browser_download_url\": .*linux-core-$arch\.tar\.gz\"/{print \$4}" | head -1)" G_EXEC mv Readarr /opt/readarr fi From d7e884991d60ea111cc802c86a5c34ec391fe8f3 Mon Sep 17 00:00:00 2001 From: MichaIng Date: Sun, 26 Feb 2023 16:38:03 +0100 Subject: [PATCH 063/155] v8.15 - DietPi-Installer | VisionFive 2: Use zstd for initramfs compression and remove uEnv.txt, newly added as conffile to our kernel package --- .build/images/dietpi-installer | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.build/images/dietpi-installer b/.build/images/dietpi-installer index c31f4a2d01..8dfdcc6b6a 100644 --- a/.build/images/dietpi-installer +++ b/.build/images/dietpi-installer @@ -1141,8 +1141,10 @@ _EOF_ # VisionFive 2 elif [[ $G_HW_MODEL == 81 ]] then - G_AGI initramfs-tools debian-ports-archive-keyring + G_AGI initramfs-tools zstd debian-ports-archive-keyring + G_CONFIG_INJECT 'COMPRESS=' 'COMPRESS=zstd' /etc/initramfs-tools/initramfs.conf [[ -f '/boot/extlinux/extlinux.conf' ]] && G_EXEC rm /boot/extlinux/extlinux.conf + [[ -f '/boot/uEnv.txt' ]] && G_EXEC rm /boot/uEnv.txt G_EXEC curl -sSfO 'https://dietpi.com/downloads/binaries/linux-image-5.15.0-starfive.deb' G_EXEC_OUTPUT=1 G_EXEC dpkg -i linux-image-5.15.0-starfive.deb G_EXEC rm linux-image-5.15.0-starfive.deb From 2136e751e4245a11160c1463817f0cf5df1dee7d Mon Sep 17 00:00:00 2001 From: MichaIng Date: Sun, 26 Feb 2023 17:27:07 +0100 Subject: [PATCH 064/155] v8.15 - General | Add support for Xen hypervisor virtual serial console with device naming scheme /dev/hvc[0-9] --- dietpi/dietpi-software | 2 +- dietpi/func/dietpi-set_hardware | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/dietpi/dietpi-software b/dietpi/dietpi-software index 9d2cc3ed63..8401990db0 100755 --- a/dietpi/dietpi-software +++ b/dietpi/dietpi-software @@ -14624,7 +14624,7 @@ _EOF_ # Disable serial console? if (( $G_HW_MODEL != 75 )) && ! grep -q '^[[:blank:]]*CONFIG_SERIAL_CONSOLE_ENABLE=0' /boot/dietpi.txt && - [[ ! $(tty) =~ ^/dev/tty(S|AMA|SAC|AML|SC|GS|FIQ|MV)[0-9]$ ]] && + [[ ! $(tty) =~ ^/dev/(tty(S|AMA|SAC|AML|SC|GS|FIQ|MV)|hvc)[0-9]$ ]] && G_WHIP_BUTTON_OK_TEXT='Yes' G_WHIP_BUTTON_CANCEL_TEXT='No' G_WHIP_YESNO 'A serial/UART console is currently enabled, would you like to disable it? \nTL;DR: If you do not know what a UART device or a serial console is, it is safe to select "Yes", which frees some MiB memory by stopping the related process(es). \nA serial console is a way to interact with a system without any screen or network (SSH) required, but from another system physically connected. It is accessed with a UART adapter cable (often UART-to-USB), connected to a special UART port or GPIO pins. It can then be accessed via COM port from the attached system with a serial console client, e.g. PuTTY (which supports both, SSH and serial console access). diff --git a/dietpi/func/dietpi-set_hardware b/dietpi/func/dietpi-set_hardware index 10fcf36ca9..15e303685e 100755 --- a/dietpi/func/dietpi-set_hardware +++ b/dietpi/func/dietpi-set_hardware @@ -18,7 +18,7 @@ $FP_SCRIPT eth-forcespeed 10/100/1000/disable $FP_SCRIPT wifimodules enable/disable/onboard_enable/onboard_disable $FP_SCRIPT wificountrycode GB/US/DE/... $FP_SCRIPT bluetooth enable/disable -$FP_SCRIPT serialconsole enable/disable [tty(S|AMA|SAC|AML|SC|GS|FIQ|MV)[0-9]] (optional Serial/UART device) +$FP_SCRIPT serialconsole enable/disable [(tty(S|AMA|SAC|AML|SC|GS|FIQ|MV)|hvc)[0-9]] (optional Serial/UART device) $FP_SCRIPT i2c enable/disable/khz $FP_SCRIPT spi enable/disable $FP_SCRIPT soundcard target_card (non-matching name for reset to default). Add '-eq' to target_card string to enable ALSA equalizer on card. HW:x,x (specify target card and device index eg: HW:9,1) @@ -1553,7 +1553,7 @@ _EOF_ # Enable for all detected Serial/UART devices else - for i in /dev/tty{S,AMA,SAC,AML,SC,GS,FIQ,MV}[0-9] + for i in /dev/{tty{S,AMA,SAC,AML,SC,GS,FIQ,MV},hvc}[0-9] do [[ -e $i ]] || continue INPUT_ADDITIONAL=${i/\/dev\/} Serial_Main @@ -1615,7 +1615,7 @@ _EOF_ # Disable for all detected Serial/UART devices else - for i in /dev/tty{S,AMA,SAC,AML,SC,GS,FIQ,MV}[0-9] + for i in /dev/{tty{S,AMA,SAC,AML,SC,GS,FIQ,MV},hvc}[0-9] do [[ -e $i ]] || continue INPUT_ADDITIONAL=${i/\/dev\/} Serial_Main From 92cef769d2b142bb57663644e3656e919ef49e65 Mon Sep 17 00:00:00 2001 From: MichaIng Date: Sun, 26 Feb 2023 17:37:41 +0100 Subject: [PATCH 065/155] v8.15 - DietPi-Installer | With our current VisionFive 2 kernel, the Xen hypervisor virtual console device /dev/hvc0 is active and leads to a serial-getty spawn. Mask it explicitly, in case the installer runs within a container. --- .build/images/dietpi-installer | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.build/images/dietpi-installer b/.build/images/dietpi-installer index 8dfdcc6b6a..88cc6977f9 100644 --- a/.build/images/dietpi-installer +++ b/.build/images/dietpi-installer @@ -1783,6 +1783,8 @@ _EOF_' elif [[ $G_HW_MODEL =~ ^40|44|45|57|59|60|63|64|65|66|67|73|81$ ]] then /boot/dietpi/func/dietpi-set_hardware serialconsole enable ttyS0 + # With our current VisionFive 2 kernel, the Xen hypervisor virtual console device /dev/hvc0 is active and leads to a serial-getty spawn. Mask it explicitly, in case the installer runs within a container. + [[ $G_HW_MODEL == 81 ]] && /boot/dietpi/func/dietpi-set_hardware serialconsole disable hvc0 && G_EXEC systemctl mask serial-getty@hvc0 # ToDo: dietpi-set_hardware can be omitted after DietPi v8.15 release, which brings general support for these serial console device schemes. # NanoPi R1 elif (( $G_HW_MODEL == 48 )) From e8153e4aad253265d9d101cdffe6d3ce3d4610ae Mon Sep 17 00:00:00 2001 From: MichaIng Date: Sun, 26 Feb 2023 17:44:40 +0100 Subject: [PATCH 066/155] v8.15 - DietPi-Set_software | Add new non-free-firmware component to RISC-V Sid lists as well --- dietpi/func/dietpi-set_software | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/dietpi/func/dietpi-set_software b/dietpi/func/dietpi-set_software index 4f6d971b2f..63612587c0 100755 --- a/dietpi/func/dietpi-set_software +++ b/dietpi/func/dietpi-set_software @@ -110,8 +110,8 @@ $FP_SCRIPT disable_ssh_password_logins [01]|root| Whether to disable SSH # RISC-V: Provided via Debian ports and Sid only if (( $G_HW_ARCH == 11 )) then - G_EXEC eval 'echo '\''deb https://deb.debian.org/debian-ports/ sid main contrib non-free -deb https://deb.debian.org/debian-ports/ unreleased main contrib non-free'\'' > /etc/apt/sources.list' + G_EXEC eval 'echo '\''deb https://deb.debian.org/debian-ports/ sid main contrib non-free non-free-firmware +deb https://deb.debian.org/debian-ports/ unreleased main contrib non-free non-free-firmware'\'' > /etc/apt/sources.list' # Raspbian elif (( $G_RASPBIAN )) From 0be2463f1d21dfd0280e53c38bf6492d1dd7cc2d Mon Sep 17 00:00:00 2001 From: MichaIng Date: Sun, 26 Feb 2023 17:46:03 +0100 Subject: [PATCH 067/155] v8.15 - DietPi-Config | Add /dev/hvc[0-9] serial console support --- dietpi/dietpi-config | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dietpi/dietpi-config b/dietpi/dietpi-config index 0d6d746676..5b3c6aafbe 100755 --- a/dietpi/dietpi-config +++ b/dietpi/dietpi-config @@ -910,7 +910,7 @@ Re-enabling HDMI requires a reboot. If you need emergency HDMI output, edit the G_WHIP_MENU_ARRAY=() (( $G_HW_MODEL < 10 )) && G_WHIP_MENU_ARRAY+=('' '●─ Toggle console ') - for i in /dev/tty{S,AMA,SAC,AML,SC,GS,FIQ,MV}[0-9] + for i in /dev/{tty{S,AMA,SAC,AML,SC,GS,FIQ,MV},hvc}[0-9] do [[ -e $i ]] || continue i=${i#/dev/} From 738c9a991a71d4336fabf9c21916aef8a779b96e Mon Sep 17 00:00:00 2001 From: MichaIng Date: Sun, 26 Feb 2023 19:39:41 +0100 Subject: [PATCH 068/155] v8.15 - DietPi-Software | K3s: Disable AppArmor service if it was not active before. This is only required for the containerd bug, known with Docker as well recently: https://github.com/rancher/k3os/issues/702 - DietPi-Software | K3s: Configure iptables to use legacy non-nftables variant if required --- dietpi/dietpi-software | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/dietpi/dietpi-software b/dietpi/dietpi-software index 8401990db0..b8f3f724db 100755 --- a/dietpi/dietpi-software +++ b/dietpi/dietpi-software @@ -9273,7 +9273,11 @@ _EOF_ if To_Install 193 # K3s then # APT deps + local disable_apparmor=1 + systemctl -q is-active apparmor && disable_apparmor=0 G_AGI apparmor iptables + (( $disable_apparmor )) && G_EXEC systemctl disable --now apparmor + Configure_iptables # Fetch config file if it exists if [[ -f '/boot/dietpi-k3s.yaml' && ! -f '/etc/rancher/k3s/config.yaml' ]] From 8461e7601ca4f6b8a4afba977bf3b3b9a78f6bd1 Mon Sep 17 00:00:00 2001 From: MichaIng Date: Sun, 26 Feb 2023 20:18:13 +0100 Subject: [PATCH 069/155] v8.15 - Quartz64 | Enable iSCSI TCP transport support --- .build/images/Quartz64/quartz64_defconfig | 1 + 1 file changed, 1 insertion(+) diff --git a/.build/images/Quartz64/quartz64_defconfig b/.build/images/Quartz64/quartz64_defconfig index 00abc82cb9..d3bfe1b401 100644 --- a/.build/images/Quartz64/quartz64_defconfig +++ b/.build/images/Quartz64/quartz64_defconfig @@ -14,6 +14,7 @@ CONFIG_SQUASHFS_XZ=y CONFIG_SQUASHFS_ZSTD=y CONFIG_CAN_GS_USB=m CONFIG_CFS_BANDWIDTH=y +CONFIG_ISCSI_TCP=m CONFIG_MODULE_COMPRESS_XZ=y CONFIG_SYSVIPC=y CONFIG_POSIX_MQUEUE=y From fa793384938b735523a334d6fed2b1aab5c1d5a7 Mon Sep 17 00:00:00 2001 From: MichaIng Date: Sun, 26 Feb 2023 22:35:45 +0100 Subject: [PATCH 070/155] v8.15 - DietPi-Build | Generate VisionFive 2 image with GTP partition table --- .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 54c3badfa9..0cd5b9be1e 100755 --- a/.build/images/dietpi-build +++ b/.build/images/dietpi-build @@ -118,7 +118,7 @@ case $HW_MODEL in 78) iname='ROCK5B' HW_ARCH=3 PTTYPE='gpt' partition_start=16 boot_size=128 root_size=688 boot_fstype='ext4';; 79) iname='NanoPiR6S' HW_ARCH=3 root_size=752;; # Special case: Skips image file, partitioning and filesystem generation, but runs debootstrap only! 80) iname='OrangePi5' HW_ARCH=3 PTTYPE='gpt' partition_start=16 boot_size=128 root_size=688;; - 81) iname='VisionFive2' HW_ARCH=11 root_size=639 DISTRO=7;; + 81) iname='VisionFive2' HW_ARCH=11 PTTYPE='gpt' root_size=639 DISTRO=7;; *) G_DIETPI-NOTIFY 1 "Invalid hardware model \"$HW_MODEL\" passed, aborting..."; exit 1;; esac From a1d1534c0273d36bb589f2ee29e3c39e2a8b4b17 Mon Sep 17 00:00:00 2001 From: MichaIng Date: Mon, 27 Feb 2023 01:47:50 +0100 Subject: [PATCH 071/155] v8.15 - General | The Armbian APT repositorie's Bookworm suite has not content, so use it - DietPi-Build | Try to fix VisionFive 2 images by moving the partition to 17 MiB offset, matching the official images (which have an additional unused 16 MiB partition at 1 MiB offset) --- .build/images/dietpi-build | 2 +- .build/images/dietpi-installer | 4 ++-- .meta/dietpi-bookworm-upgrade | 2 -- .update/pre-patches | 6 ++++++ 4 files changed, 9 insertions(+), 5 deletions(-) diff --git a/.build/images/dietpi-build b/.build/images/dietpi-build index 0cd5b9be1e..be05bc95af 100755 --- a/.build/images/dietpi-build +++ b/.build/images/dietpi-build @@ -118,7 +118,7 @@ case $HW_MODEL in 78) iname='ROCK5B' HW_ARCH=3 PTTYPE='gpt' partition_start=16 boot_size=128 root_size=688 boot_fstype='ext4';; 79) iname='NanoPiR6S' HW_ARCH=3 root_size=752;; # Special case: Skips image file, partitioning and filesystem generation, but runs debootstrap only! 80) iname='OrangePi5' HW_ARCH=3 PTTYPE='gpt' partition_start=16 boot_size=128 root_size=688;; - 81) iname='VisionFive2' HW_ARCH=11 PTTYPE='gpt' root_size=639 DISTRO=7;; + 81) iname='VisionFive2' HW_ARCH=11 PTTYPE='gpt' partition_start=17 root_size=623 DISTRO=7;; *) G_DIETPI-NOTIFY 1 "Invalid hardware model \"$HW_MODEL\" passed, aborting..."; exit 1;; esac diff --git a/.build/images/dietpi-installer b/.build/images/dietpi-installer index 88cc6977f9..9b1d6cef07 100644 --- a/.build/images/dietpi-installer +++ b/.build/images/dietpi-installer @@ -959,7 +959,7 @@ fi' /boot/boot.cmd # Remove obsolete lists G_EXEC rm -Rf /etc/apt/sources.list.d/* # Add Armbian repository - G_EXEC eval "echo 'deb https://apt.armbian.com/ ${DISTRO_TARGET_NAME/bookworm/bullseye} main' > /etc/apt/sources.list.d/dietpi-armbian.list" + G_EXEC eval "echo 'deb https://apt.armbian.com/ $DISTRO_TARGET_NAME main' > /etc/apt/sources.list.d/dietpi-armbian.list" # Update APT lists G_AGUP # Install kernel, device tree, U-Boot, firmware and initramfs packages @@ -1214,7 +1214,7 @@ _EOF_ # Remove obsolete components from Armbian list and connect via HTTPS G_EXEC rm -Rf /etc/apt/sources.list.d/{,.??,.[^.]}* - G_EXEC eval "echo 'deb https://apt.armbian.com/ ${DISTRO_TARGET_NAME/bookworm/bullseye} main' > /etc/apt/sources.list.d/dietpi-armbian.list" + G_EXEC eval "echo 'deb https://apt.armbian.com/ $DISTRO_TARGET_NAME main' > /etc/apt/sources.list.d/dietpi-armbian.list" # ROCK Pi S/Radxa Zero: Official legacy Radxa Debian image elif [[ $G_HW_MODEL =~ ^(73|74)$ ]] && grep -q 'apt\.radxa\.com' /etc/apt/sources.list.d/*.list diff --git a/.meta/dietpi-bookworm-upgrade b/.meta/dietpi-bookworm-upgrade index 5685491462..9e57fe9f95 100644 --- a/.meta/dietpi-bookworm-upgrade +++ b/.meta/dietpi-bookworm-upgrade @@ -40,8 +40,6 @@ G_EXEC sed -i 's/bullseye/bookworm/g' /etc/apt/sources.list G_DIETPI-NOTIFY 2 'Reverting some package lists to Bullseye which have no Bookworm suite (yet)' [[ -f '/etc/apt/sources.list.d/raspi.list' ]] && G_EXEC sed -i 's/bookworm/bullseye/' /etc/apt/sources.list.d/raspi.list -[[ -f '/etc/apt/sources.list.d/armbian.list' ]] && G_EXEC sed -i 's/bookworm/bullseye/' /etc/apt/sources.list.d/armbian.list -[[ -f '/etc/apt/sources.list.d/dietpi-armbian.list' ]] && G_EXEC sed -i 's/bookworm/bullseye/' /etc/apt/sources.list.d/dietpi-armbian.list [[ -f '/etc/apt/sources.list.d/radxa.list' ]] && G_EXEC sed -i 's/bookworm/bullseye/g' /etc/apt/sources.list.d/radxa.list [[ -f '/etc/apt/sources.list.d/dietpi-radxa.list' ]] && G_EXEC sed -i 's/bookworm/bullseye/g' /etc/apt/sources.list.d/dietpi-radxa.list [[ -f '/etc/apt/sources.list.d/dietpi-mosquitto.list' ]] && G_EXEC sed -i 's/bookworm/bullseye/' /etc/apt/sources.list.d/dietpi-mosquitto.list diff --git a/.update/pre-patches b/.update/pre-patches index f28a1e5d7f..14b853a137 100755 --- a/.update/pre-patches +++ b/.update/pre-patches @@ -234,6 +234,12 @@ then G_DIETPI-NOTIFY 2 'Adding new non-free-firmware component to APT lists, to re-enable firmware upgrades' G_EXEC sed -i '/non-free/s/$/ non-free-firmware/' /etc/apt/sources.list fi + if (( $G_DISTRO > 6 )) && [[ -f '/etc/apt/sources.list.d/dietpi-armbian.list' || -f '/etc/apt/sources.list.d/armbian.list' ]] + then + G_DIETPI-NOTIFY 2 'Updating Armbian APT repo list with Bookworm suite' + [[ -f '/etc/apt/sources.list.d/dietpi-armbian.list' ]] && G_EXEC sed -i 's/bullseye/bookworm/' /etc/apt/sources.list.d/dietpi-armbian.list + [[ -f '/etc/apt/sources.list.d/armbian.list' ]] && G_EXEC sed -i 's/bullseye/bookworm/' /etc/apt/sources.list.d/armbian.list + fi fi exit 0 From 14f416394a416f1953ded422afcd69647cc15a78 Mon Sep 17 00:00:00 2001 From: MichaIng Date: Mon, 27 Feb 2023 22:36:11 +0100 Subject: [PATCH 072/155] v8.15 - DietPi-Build | Revert last change. Either it works with distro_bootpart=1 in our uEnv.txt, or we need a FAT partition 2. --- .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 be05bc95af..0cd5b9be1e 100755 --- a/.build/images/dietpi-build +++ b/.build/images/dietpi-build @@ -118,7 +118,7 @@ case $HW_MODEL in 78) iname='ROCK5B' HW_ARCH=3 PTTYPE='gpt' partition_start=16 boot_size=128 root_size=688 boot_fstype='ext4';; 79) iname='NanoPiR6S' HW_ARCH=3 root_size=752;; # Special case: Skips image file, partitioning and filesystem generation, but runs debootstrap only! 80) iname='OrangePi5' HW_ARCH=3 PTTYPE='gpt' partition_start=16 boot_size=128 root_size=688;; - 81) iname='VisionFive2' HW_ARCH=11 PTTYPE='gpt' partition_start=17 root_size=623 DISTRO=7;; + 81) iname='VisionFive2' HW_ARCH=11 PTTYPE='gpt' root_size=639 DISTRO=7;; *) G_DIETPI-NOTIFY 1 "Invalid hardware model \"$HW_MODEL\" passed, aborting..."; exit 1;; esac From 28a7bb7697f8f97d383c0578040d3a00e86d08a0 Mon Sep 17 00:00:00 2001 From: MichaIng Date: Mon, 27 Feb 2023 22:59:14 +0100 Subject: [PATCH 073/155] v8.15 - DietPi-Build | VisionFive 2: Test with MBR partitioning again --- .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 0cd5b9be1e..54c3badfa9 100755 --- a/.build/images/dietpi-build +++ b/.build/images/dietpi-build @@ -118,7 +118,7 @@ case $HW_MODEL in 78) iname='ROCK5B' HW_ARCH=3 PTTYPE='gpt' partition_start=16 boot_size=128 root_size=688 boot_fstype='ext4';; 79) iname='NanoPiR6S' HW_ARCH=3 root_size=752;; # Special case: Skips image file, partitioning and filesystem generation, but runs debootstrap only! 80) iname='OrangePi5' HW_ARCH=3 PTTYPE='gpt' partition_start=16 boot_size=128 root_size=688;; - 81) iname='VisionFive2' HW_ARCH=11 PTTYPE='gpt' root_size=639 DISTRO=7;; + 81) iname='VisionFive2' HW_ARCH=11 root_size=639 DISTRO=7;; *) G_DIETPI-NOTIFY 1 "Invalid hardware model \"$HW_MODEL\" passed, aborting..."; exit 1;; esac From 1b5be4792182ddc87f84502a403c62abaff61792 Mon Sep 17 00:00:00 2001 From: MichaIng Date: Tue, 28 Feb 2023 14:17:18 +0100 Subject: [PATCH 074/155] v8.15 - Quartz64 | Update and use more generic ATF blob filenames. Also always download form latest commit. If it fails, we know there is an update available. --- .github/workflows/quartz64.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/quartz64.yml b/.github/workflows/quartz64.yml index 01df61e95f..6eff95cec2 100644 --- a/.github/workflows/quartz64.yml +++ b/.github/workflows/quartz64.yml @@ -37,9 +37,9 @@ jobs: run: | mkdir artefacts/mainline-u-boot cd "u-boot-$uboot_branch" - curl -sSfO 'https://raw.githubusercontent.com/JeffyCN/rockchip_mirrors/6186deb/bin/rk35/rk3568_bl31_v1.28.elf' & - curl -sSfo 'rk3568_ddr_1560MHz_v1.12.bin' 'https://raw.githubusercontent.com/JeffyCN/rockchip_mirrors/ddf03c1/bin/rk35/rk3568_ddr_1560MHz_v1.13.bin' & - export BL31='rk3568_bl31_v1.28.elf' + curl -sSfo 'u-boot-spl-ddr.bin' 'https://raw.githubusercontent.com/JeffyCN/rockchip_mirrors/rkbin/bin/rk35/rk3568_ddr_1560MHz_v1.13.bin' & + curl -sSfo 'bl31.elf' 'https://raw.githubusercontent.com/JeffyCN/rockchip_mirrors/rkbin/bin/rk35/rk3568_bl31_v1.32.elf' & + export BL31='bl31.elf' wait make quartz64-a-rk3566_defconfig make -j$(nproc) From bb4c6c9df5e6a9c2c10bf67007f90d3aa0c0f9e5 Mon Sep 17 00:00:00 2001 From: MichaIng Date: Tue, 28 Feb 2023 22:01:03 +0100 Subject: [PATCH 075/155] v8.15 - DietPi-Build | VisionFive 2: Align partitioning with booting Armbian single ext4 partition image. It might not make a difference, but just to rule it out. --- .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 54c3badfa9..031eb37ba0 100755 --- a/.build/images/dietpi-build +++ b/.build/images/dietpi-build @@ -118,7 +118,7 @@ case $HW_MODEL in 78) iname='ROCK5B' HW_ARCH=3 PTTYPE='gpt' partition_start=16 boot_size=128 root_size=688 boot_fstype='ext4';; 79) iname='NanoPiR6S' HW_ARCH=3 root_size=752;; # Special case: Skips image file, partitioning and filesystem generation, but runs debootstrap only! 80) iname='OrangePi5' HW_ARCH=3 PTTYPE='gpt' partition_start=16 boot_size=128 root_size=688;; - 81) iname='VisionFive2' HW_ARCH=11 root_size=639 DISTRO=7;; + 81) iname='VisionFive2' HW_ARCH=11 PTTYPE='gpt' partition_start=4 root_size=636 DISTRO=7;; *) G_DIETPI-NOTIFY 1 "Invalid hardware model \"$HW_MODEL\" passed, aborting..."; exit 1;; esac From f0b03ec7cf09d14d26451485fa1c2196a9a20059 Mon Sep 17 00:00:00 2001 From: MichaIng Date: Tue, 28 Feb 2023 22:07:07 +0100 Subject: [PATCH 076/155] v8.15 - CI | DietPi-Build: Add input for building all Quartz64 images, until this has settled --- .github/workflows/dietpi-build.yml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/.github/workflows/dietpi-build.yml b/.github/workflows/dietpi-build.yml index dac9fc19f8..6ae19ac164 100644 --- a/.github/workflows/dietpi-build.yml +++ b/.github/workflows/dietpi-build.yml @@ -75,6 +75,12 @@ jobs: '"-m 78 -d 6", "-m 78 -d 7", '\ '"-m 79 -d 6", "-m 79 -d 7", '\ '"-m 80 -d 6", "-m 80 -d 7"]' >> "$GITHUB_OUTPUT" + elif [ "${{ github.event.inputs.buildargs }}" = 'quartz64' ] + then + echo buildargs=[\ + '"-m 49.1 -d 6", "-m 49.1 -d 7", '\ + '"-m 49.2 -d 6", "-m 49.2 -d 7", '\ + '"-m 49.3 -d 6", "-m 49.3 -d 7"]' >> "$GITHUB_OUTPUT" else echo buildargs='["${{ github.event.inputs.buildargs }}"]' >> "$GITHUB_OUTPUT" fi From a2c4efc7c55135f381de22e329bfc06beed9af09 Mon Sep 17 00:00:00 2001 From: MichaIng Date: Wed, 1 Mar 2023 19:01:45 +0100 Subject: [PATCH 077/155] v8.15 - DietPi-Software | Python 3: Work around pip v23 issue via pip.conf instead of CLI argument, and do the same to disable the cache - DietPi-Software | OctoPrint: Replace build-essentials dependency with gcc. On x86_64 it is only needed on Bookworm since netifaces has no Python 3.11 compatible wheels on PyPI. OctoPrint is generally not Python 3.11 compatible at the momemt, but let's keep the dependency for once this changes: https://github.com/OctoPrint/OctoPrint/issues/4488 --- dietpi/dietpi-software | 62 ++++++++++++++++++++++++------------------ 1 file changed, 36 insertions(+), 26 deletions(-) diff --git a/dietpi/dietpi-software b/dietpi/dietpi-software index b8f3f724db..c3ff37f4dd 100755 --- a/dietpi/dietpi-software +++ b/dietpi/dietpi-software @@ -1468,7 +1468,6 @@ Available commands: aSOFTWARE_CATX[$software_id]=18 aSOFTWARE_DOCS[$software_id]='https://dietpi.com/docs/software/printing/#octoprint' aSOFTWARE_DEPS[$software_id]='130' - (( $G_HW_ARCH < 3 )) || aSOFTWARE_DEPS[$software_id]+=' 16' #------------------ software_id=187 aSOFTWARE_NAME[$software_id]='CUPS' @@ -2951,21 +2950,29 @@ unix_socket_directories = '/run/postgresql'" > "$i/00dietpi.conf" if To_Install 130 # Python 3 then - # Create piwheels config file for ARMv6 and ARMv7 - [[ $G_HW_ARCH != [12] || -f '/etc/pip.conf' ]] || G_EXEC eval "echo -e '[global]\nextra-index-url=https://www.piwheels.org/simple/' > /etc/pip.conf" + # Workaround for pip v23 + >> /etc/pip.conf + G_CONFIG_INJECT '\[global\]' '[global]' /etc/pip.conf + G_CONFIG_INJECT 'break-system-packages[[:blank:]]*=' 'break-system-packages=true' /etc/pip.conf '\[global\]' + + # Disable cache + G_CONFIG_INJECT 'no-cache-dir[[:blank:]]*=' 'no-cache-dir=true' /etc/pip.conf '\[global\]' + + # ARMv6/7: Add piwheels + (( $G_HW_ARCH < 3 )) && G_CONFIG_INJECT 'extra-index-url[[:blank:]]*=' 'extra-index-url=https://www.piwheels.org/simple/' /etc/pip.conf '\[global\]' # Workaround for missing and failing numpy >=v1.21.5 build: https://github.com/piwheels/packages/issues/287#issuecomment-1036500818 if (( $G_HW_ARCH < 3 && $G_DISTRO == 5 )) then G_EXEC eval 'echo "numpy<1.21.5; python_version=='\''3.7'\''" > /etc/pip-constraints.txt' G_CONFIG_INJECT '\[install\]' '[install]' /etc/pip.conf - G_CONFIG_INJECT 'constraint=/etc/pip-constraints.txt' 'constraint=/etc/pip-constraints.txt' /etc/pip.conf '\[install\]' + G_CONFIG_INJECT 'constraint[[:blank:]]*=[[:blank:]]*/etc/pip-constraints.txt' 'constraint=/etc/pip-constraints.txt' /etc/pip.conf '\[install\]' fi # Perform pip3 install (which includes setuptools and wheel modules) aDEPS=('python3-dev') Download_Install 'https://bootstrap.pypa.io/get-pip.py' - G_EXEC_OUTPUT=1 G_EXEC python3 get-pip.py --break-system-packages + G_EXEC_OUTPUT=1 G_EXEC python3 get-pip.py G_EXEC rm get-pip.py fi @@ -3835,7 +3842,7 @@ _EOF_ esac # Install - G_EXEC_OUTPUT=1 G_EXEC pip3 install --break-system-packages --no-cache-dir -U matrix-synapse psycopg2 + G_EXEC_OUTPUT=1 G_EXEC pip3 install -U matrix-synapse psycopg2 # User Create_User -d /mnt/dietpi_userdata/synapse synapse @@ -4959,7 +4966,7 @@ _EOF_ G_AGI mopidy gstreamer1.0-alsa mopidy-local G_EXEC systemctl stop mopidy - G_EXEC_OUTPUT=1 G_EXEC pip3 install --break-system-packages --no-cache-dir -U Mopidy-MusicBox-Webclient + G_EXEC_OUTPUT=1 G_EXEC pip3 install -U Mopidy-MusicBox-Webclient # Assure user home, data and cache dir as well on custom configs G_CONFIG_INJECT 'data_dir[[:blank:]]*=' 'data_dir = /mnt/dietpi_userdata/mopidy/data' /etc/mopidy/mopidy.conf '\[core\]' @@ -8988,7 +8995,7 @@ _EOF_ (( $G_HW_MODEL > 9 )) || /boot/dietpi/func/dietpi-set_hardware rpi-camera enable # motionEye - G_EXEC_OUTPUT=1 G_EXEC pip3 install --break-system-packages --no-cache-dir -U 'https://github.com/motioneye-project/motioneye/archive/dev.tar.gz' + G_EXEC_OUTPUT=1 G_EXEC pip3 install -U 'https://github.com/motioneye-project/motioneye/archive/dev.tar.gz' G_EXEC_OUTPUT=1 G_EXEC motioneye_init --skip-apt-update G_EXEC systemctl disable --now motioneye G_EXEC systemctl disable --now motion # motionEye starts motion directly. @@ -9132,7 +9139,7 @@ _EOF_ # Python deps G_EXEC cd /etc/sabnzbd - G_EXEC_OUTPUT=1 G_EXEC pip3 install --break-system-packages --no-cache-dir -Ur requirements.txt + G_EXEC_OUTPUT=1 G_EXEC pip3 install -Ur requirements.txt # User Create_User -g dietpi -d /etc/sabnzbd sabnzbd @@ -9711,7 +9718,7 @@ _EOF_ (( $G_HW_ARCH == 3 || ( $G_HW_ARCH == 10 && $G_DISTRO > 5 ) )) && G_AGI gcc # webrtcvad-wheels build on ARMv8 and x86_64 Bullseye+: https://pypi.org/project/webrtcvad-wheels/#files G_EXEC cd bazarr - G_EXEC_OUTPUT=1 G_EXEC pip3 install --break-system-packages --no-cache-dir -Ur requirements.txt + G_EXEC_OUTPUT=1 G_EXEC pip3 install -Ur requirements.txt G_EXEC cd .. # Always perform a clean full reinstall @@ -10134,7 +10141,7 @@ _EOF_ fi # Python deps - G_EXEC_OUTPUT=1 G_EXEC pip3 install --break-system-packages --no-cache-dir -Ur requirements.txt + G_EXEC_OUTPUT=1 G_EXEC pip3 install -Ur requirements.txt # Service cat << _EOF_ > /etc/systemd/system/htpc-manager.service @@ -10154,6 +10161,9 @@ _EOF_ if To_Install 153 # OctoPrint then + # ARMv8 and x86_64 Bookworm: gcc for netifaces, psutil (ARMv8-only) + (( $G_HW_ARCH == 3 )) || (( $G_HW_ARCH == 10 && $G_DISTRO > 6 )) && G_AGI gcc + # Pre-create user and its home directory to allow user-level Python instance Create_User -G dialout,tty,video -d /mnt/dietpi_userdata/octoprint octoprint [[ -d '/mnt/dietpi_userdata/octoprint' ]] || G_EXEC mkdir /mnt/dietpi_userdata/octoprint @@ -10163,7 +10173,7 @@ _EOF_ [[ -d '/mnt/dietpi_userdata/octoprint/.cache' ]] && G_EXEC rm -R /mnt/dietpi_userdata/octoprint/.cache # Install OctoPrint - G_EXEC_OUTPUT=1 G_EXEC sudo -u octoprint pip3 install --no-cache-dir -U --user --no-warn-script-location octoprint + G_EXEC_OUTPUT=1 G_EXEC sudo -u octoprint pip3 install -U --user --no-warn-script-location octoprint # Service: https://github.com/OctoPrint/OctoPrint/blob/master/scripts/octoprint.service cat << '_EOF_' > /etc/systemd/system/octoprint.service @@ -10406,7 +10416,7 @@ _EOF_ if To_Install 134 # Docker Compose then [[ -f '/usr/local/bin/docker-compose' ]] && G_EXEC rm /usr/local/bin/docker-compose # Pre-v8.14 - command -v docker-compose > /dev/null && command -v pip3 > /dev/null && G_EXEC_OUTPUT=1 G_EXEC pip3 uninstall --break-system-packages -y docker-compose # Pre-v8.2 + command -v docker-compose > /dev/null && command -v pip3 > /dev/null && G_EXEC_OUTPUT=1 G_EXEC pip3 uninstall -y docker-compose # Pre-v8.2 G_AGI docker-compose-plugin fi @@ -10704,12 +10714,12 @@ _EOF_ G_EXEC_OUTPUT=1 G_EXEC git clone -b voicekit 'https://github.com/google/aiyprojects-raspbian.git' /mnt/dietpi_userdata/voice-recognizer-raspi G_EXEC cd /mnt/dietpi_userdata/voice-recognizer-raspi - G_EXEC_OUTPUT=1 G_EXEC pip3 install --break-system-packages --no-cache-dir -U pip virtualenv + G_EXEC_OUTPUT=1 G_EXEC pip3 install -U pip virtualenv G_EXEC_OUTPUT=1 G_EXEC virtualenv --system-site-packages -p python3 env - G_EXEC_OUTPUT=1 G_EXEC env/bin/pip install --no-cache-dir -Ur requirements.txt + G_EXEC_OUTPUT=1 G_EXEC env/bin/pip install -Ur requirements.txt #??? ARMv7 only - (( $G_HW_ARCH == 2 )) && G_EXEC_OUTPUT=1 G_EXEC env/bin/pip install --no-cache-dir 'google-assistant-library==0.0.3' + (( $G_HW_ARCH == 2 )) && G_EXEC_OUTPUT=1 G_EXEC env/bin/pip install 'google-assistant-library==0.0.3' # Services G_EXEC sed -i 's|/home/pi|/mnt/dietpi_userdata|g' systemd/voice-recognizer.service @@ -11067,7 +11077,7 @@ _EOF_ Create_User -G dialout,gpio,i2c -d "$ha_home" "$ha_user" # Dependencies - # - MariaDB support: G_AGI libmariadb-dev; pip3 install --no-cache-dir mysqlclient|PyMySQL + # - MariaDB support: G_AGI libmariadb-dev; pip3 install mysqlclient|PyMySQL # - Read custom dependencies local custom_apt_deps=$(sed -n '/^[[:blank:]]*SOFTWARE_HOMEASSISTANT_APT_DEPS=/{s/^[^=]*=//p;q}' /boot/dietpi.txt) local custom_pip_deps=$(sed -n '/^[[:blank:]]*SOFTWARE_HOMEASSISTANT_PIP_DEPS=/{s/^[^=]*=//p;q}' /boot/dietpi.txt) @@ -11132,9 +11142,9 @@ eval \"\$(pyenv init -)\" $ha_pyenv_activation pyenv install $ha_python_version pyenv local $ha_python_version -pip3 install --no-cache-dir -U pip setuptools wheel -[ -z '$custom_pip_deps' ] || pip3 install --no-cache-dir $custom_pip_deps -exec pip3 install --no-cache-dir homeassistant" +pip3 install -U pip setuptools wheel +[ -z '$custom_pip_deps' ] || pip3 install $custom_pip_deps +exec pip3 install homeassistant" # Generate script to launch HA using pyenv echo "#!/bin/dash @@ -11144,7 +11154,7 @@ exec hass -c '/mnt/dietpi_userdata/homeassistant'" > "$ha_home/homeassistant-sta # Generate script to update HA within pyenv echo "#!/bin/dash -exec sudo -u $ha_user dash -c '$ha_pyenv_activation; exec pip3 install --no-cache-dir -U homeassistant'" > "$ha_home/homeassistant-update.sh" +exec sudo -u $ha_user dash -c '$ha_pyenv_activation; exec pip3 install -U homeassistant'" > "$ha_home/homeassistant-update.sh" G_EXEC chmod +x "$ha_home/homeassistant-update.sh" # Service @@ -12242,7 +12252,7 @@ If no WireGuard (auto)start is included, but you require it, please do the follo [[ -d '/etc/systemd/system/synapse.service.d' ]] && G_EXEC rm -R /etc/systemd/system/synapse.service.d [[ -d '/mnt/dietpi_userdata/synapse' ]] && G_EXEC rm -R /mnt/dietpi_userdata/synapse - command -v pip3 > /dev/null && G_EXEC_OUTPUT=1 G_EXEC pip3 uninstall --break-system-packages -y matrix-synapse + command -v pip3 > /dev/null && G_EXEC_OUTPUT=1 G_EXEC pip3 uninstall -y matrix-synapse command -v dropdb > /dev/null && sudo -u postgres dropdb synapse command -v dropuser > /dev/null && sudo -u postgres dropuser synapse fi @@ -12309,7 +12319,7 @@ If no WireGuard (auto)start is included, but you require it, please do the follo G_EXEC rm /etc/systemd/system/motioneye.service fi [[ -d '/etc/systemd/system/motioneye.service.d' ]] && G_EXEC rm -R /etc/systemd/system/motioneye.service.d - command -v pip3 > /dev/null && G_EXEC_OUTPUT=1 G_EXEC pip3 uninstall --break-system-packages -y motioneye + command -v pip3 > /dev/null && G_EXEC_OUTPUT=1 G_EXEC pip3 uninstall -y motioneye G_AGP motion [[ -d '/etc/motioneye' ]] && G_EXEC rm -R /etc/motioneye [[ -d '/var/log/motioneye' ]] && G_EXEC rm -R /var/log/motioneye @@ -12761,7 +12771,7 @@ If no WireGuard (auto)start is included, but you require it, please do the follo [[ -f '/etc/apt/trusted.gpg.d/dietpi-mopidy.gpg' ]] && G_EXEC rm /etc/apt/trusted.gpg.d/dietpi-mopidy.gpg command -v pip2 > /dev/null && G_EXEC_OUTPUT=1 G_EXEC pip2 uninstall -y Mopidy-MusicBox-Webclient Mopidy-Local-Images # Stretch - command -v pip3 > /dev/null && G_EXEC_OUTPUT=1 G_EXEC pip3 uninstall --break-system-packages -y Mopidy-MusicBox-Webclient + command -v pip3 > /dev/null && G_EXEC_OUTPUT=1 G_EXEC pip3 uninstall -y Mopidy-MusicBox-Webclient getent passwd mopidy > /dev/null && G_EXEC userdel mopidy [[ -d '/mnt/dietpi_userdata/mopidy' ]] && G_EXEC rm -R /mnt/dietpi_userdata/mopidy @@ -13785,7 +13795,7 @@ _EOF_ then G_AGP docker-compose-plugin [[ -f '/usr/local/bin/docker-compose' ]] && G_EXEC rm /usr/local/bin/docker-compose # Pre-v8.14 - command -v docker-compose > /dev/null && command -v pip3 > /dev/null && G_EXEC_OUTPUT=1 G_EXEC pip3 uninstall --break-system-packages -y docker-compose # Pre-v8.2 + command -v docker-compose > /dev/null && command -v pip3 > /dev/null && G_EXEC_OUTPUT=1 G_EXEC pip3 uninstall -y docker-compose # Pre-v8.2 fi if To_Uninstall 162 # Docker @@ -14281,7 +14291,7 @@ _EOF_ if To_Uninstall 130 # Python 3 then - command -v pip3 > /dev/null && G_EXEC_OUTPUT=1 G_EXEC pip3 uninstall --break-system-packages -y pip setuptools wheel + command -v pip3 > /dev/null && G_EXEC_OUTPUT=1 G_EXEC pip3 uninstall -y pip setuptools wheel G_AGP python3-dev python3-pip # python3-pip: Pre-v6.32 [[ -f '/etc/pip.conf' ]] && G_EXEC rm /etc/pip.conf [[ -f '/etc/pip-constraints.txt' ]] && G_EXEC rm /etc/pip-constraints.txt From faac20be189775c49708b47b86b3dda52373470f Mon Sep 17 00:00:00 2001 From: MichaIng Date: Wed, 1 Mar 2023 20:46:54 +0100 Subject: [PATCH 078/155] v8.15 - DietPi-Installer | Adjust petitboot workarounds for Odroid N2 and C4 to not rely on the petitboot_active variable, which does not seem to be always set. For a quiet user provided FT fixup script check there is not other way I can currently think of. It will be very rarely used anyway. --- .build/images/U-Boot/boot.cmd | 2 +- .build/images/dietpi-installer | 23 ++++++++--------------- 2 files changed, 9 insertions(+), 16 deletions(-) diff --git a/.build/images/U-Boot/boot.cmd b/.build/images/U-Boot/boot.cmd index 98f8a25a2e..64cfd45fbf 100644 --- a/.build/images/U-Boot/boot.cmd +++ b/.build/images/U-Boot/boot.cmd @@ -64,7 +64,7 @@ if test -n "${overlays}${user_overlays}"; then fi if test -e ${devtype} ${devnum} ${prefix}fixup.scr; then if load ${devtype} ${devnum} ${scriptaddr} ${prefix}fixup.scr; then - echo "Applying user provided fixup script fixup.scr" + echo "Applying user provided DT fixup script fixup.scr" source ${scriptaddr} fi fi diff --git a/.build/images/dietpi-installer b/.build/images/dietpi-installer index 9b1d6cef07..94abc63dbb 100644 --- a/.build/images/dietpi-installer +++ b/.build/images/dietpi-installer @@ -569,7 +569,7 @@ _EOF_ elif [[ $G_HW_MODEL =~ ^(12|15|16|40|42|43|44|45|46|47|48|52|54|55|56|57|58|59|60|63|64|65|66|67|68|72|73|74)$ || ( $G_HW_MODEL == 62 && $(findmnt -Ufnro FSTYPE -T /boot) == 'ext4' ) || # NanoPi M3/T3/Fire3 bootloader supports ext4 only ( $G_HW_MODEL == 78 && $(findmnt -M /boot) ) || # ROCK 5B requries a dedicated boot partition - ( $G_HW_MODEL =~ ^(77|80)$ && $(findmnt -t vfat -M /boot) ) ]] # ROCK 3A and Orange Pi 5 required a dedicated boot partition with FAT filesystem + ( $G_HW_MODEL =~ ^77|80$ && $(findmnt -t vfat -M /boot) ) ]] # ROCK 3A and Orange Pi 5 required a dedicated boot partition with FAT filesystem then G_EXEC mv "DietPi-$G_GITBRANCH/.build/images/U-Boot/boot.cmd" /boot/boot.cmd G_EXEC mv "DietPi-$G_GITBRANCH/.build/images/U-Boot/dietpiEnv.txt" /boot/dietpiEnv.txt @@ -584,30 +584,23 @@ _EOF_ then G_EXEC sed -i 's/coherent_pool=2M/coherent_pool=2M usbcore.autosuspend=-1/' /boot/boot.cmd - # Odroid N2/HC4: Enable USB boot via petitboot support:https://github.com/MichaIng/DietPi/issues/5634 + # Odroid N2/HC4: Enable USB boot via petitboot support: https://github.com/MichaIng/DietPi/issues/5634 elif [[ $G_HW_MODEL =~ ^15|16$ ]] then G_EXEC sed -i '1i[main]' /boot/dietpiEnv.txt # shellcheck disable=SC2016 (( $G_HW_MODEL == 15 )) && G_EXEC sed -i '/^setenv overlay_error/a\ \n# petitboot workarounds\ -if test "${petitboot_active}" = "1"; then\ - if test "${variant}" = "n2"; then\ - setenv fdtfile "amlogic/meson-g12b-odroid-n2.dtb"\ - else\ - setenv fdtfile "amlogic/meson-g12b-odroid-n2-plus.dtb"\ - fi\ - setenv rootuuid "true"\ -fi' /boot/boot.cmd +if test "${variant}" = "n2_plus"; then setenv variant "n2-plus"; fi\ +setenv fdtfile "amlogic/meson-g12b-odroid-${variant}.dtb"\ +setenv rootuuid "true"' /boot/boot.cmd # shellcheck disable=SC2016 (( $G_HW_MODEL == 16 )) && G_EXEC sed -i '/^setenv overlay_error/a\ \n# petitboot workarounds\ -if test "${petitboot_active}" = "1"; then\ - setenv fdtfile "amlogic/meson-sm1-odroid-${variant}.dtb"\ - setenv rootuuid "true"\ -fi' /boot/boot.cmd +setenv fdtfile "amlogic/meson-sm1-odroid-${variant}.dtb"\ +setenv rootuuid "true"' /boot/boot.cmd # shellcheck disable=SC2016 - G_EXEC sed -i '/env import/c\ if test "${petitboot_active}" = "1"; then ini main ${scriptaddr}; else env import -t ${scriptaddr} ${filesize}; fi' /boot/boot.cmd + G_EXEC sed -i '/env import/c\ ini main ${scriptaddr} || env import -t ${scriptaddr} ${filesize}' /boot/boot.cmd # shellcheck disable=SC2016 G_EXEC sed -i '/test -e/s/fixup.scr;/fixup.scr || test "${petitboot_active}" = "1";/' /boot/boot.cmd From 0f0c7c37264a1e5df6ed5ae5a0134c31a8884ddf Mon Sep 17 00:00:00 2001 From: MichaIng Date: Wed, 1 Mar 2023 21:40:49 +0100 Subject: [PATCH 079/155] v8.15 - DietPi-CPU_info | The script and "cpu" command do not require root privileges anymore. Many thanks to @hansratzinger for bringing this to our attention: https://github.com/MichaIng/DietPi/issues/6196. The option to write available scaling frequencies to a file via command argument "2" has been removed as well. This was not documented anywhere and has no use for end users. Internally it was used by dietpi-config, where the code has now been moved to and overall shortened. --- CHANGELOG.txt | 1 + dietpi/dietpi-config | 87 ++++++++++++------------- dietpi/dietpi-cpuinfo | 147 ++++++++---------------------------------- 3 files changed, 68 insertions(+), 167 deletions(-) diff --git a/CHANGELOG.txt b/CHANGELOG.txt index 53767e6dc2..d7a33793ae 100644 --- a/CHANGELOG.txt +++ b/CHANGELOG.txt @@ -3,6 +3,7 @@ v8.15 Enhancements: - DietPi-Installer | Resolved an issue where conflicting network configurations were left in place, e.g. from cloud-init when running the script on a VPS Debian image. Many thanks to @mews-se for reporting this issue: https://github.com/MichaIng/DietPi/issues/6067 +- DietPi-CPU_info | The script and "cpu" command do not require root privileges anymore. Many thanks to @hansratzinger for bringing this to our attention: https://github.com/MichaIng/DietPi/issues/6196. The option to write available scaling frequencies to a file via command argument "2" has been removed as well. This was not documented anywhere and has no use for end users. Internally it was used by dietpi-config, where the code has now been moved to and overall shortened. - DietPi-Software | XRDP: TLS via snakeoil certificate is now enabled OOTB. This leads to a warning shown on Windows RDP clients until either a proper certificate signed by a trusted CA is used (e.g. by Let's Encrypt), or it is muted for the particular server via checkbox at the client. Many thanks to @amibumping for providing the needed step: https://github.com/MichaIng/DietPi/issues/5976 - DietPi-Software | Home Assistant: Our Home Assistant integration used two Python environments: A pyenv is used to install the "homeassistant" core module and its direct dependencies. Home Assistant itself installs its frontend with dependencies on startup, as well as dependencies for integrations on demand, internally into another Python environment. On Home Assistant reinstalls, pyenv is removed but the internal dependencies were left untouched. This caused issues when those dependency builds were incompatible with the new pyenv Python version, or conflicting with other pyenv module upgrades. Both environments are now merged and reset on every reinstall, which solves potential conflicts but means that the first Home Assistant startup after a reinstall takes longer. Many thanks to @maury77 for reporting a related issue: https://github.com/MichaIng/DietPi/issues/6117 - DietPi-Software | WiFi Hotspot: hostapd and the DHCP server are not stopped and restarted on DietPi updates, software installs and backups anymore, since the hotspot might be used by the client which does this task and then cuts its own connection. Many thanks to @symbios24 for making us aware of this: https://github.com/MichaIng/DietPi/issues/6166 diff --git a/dietpi/dietpi-config b/dietpi/dietpi-config index 5b3c6aafbe..6023f0951a 100755 --- a/dietpi/dietpi-config +++ b/dietpi/dietpi-config @@ -1360,58 +1360,53 @@ If unsure, set any value, 'Ondemand Down Factor' option on the next screen will 'CPU Frequency Limits') - # Create /tmp/dietpi-available_cpu_freqs containing available scaling frequencies - /boot/dietpi/dietpi-cpuinfo 2 - - if [[ ! -f '/tmp/dietpi-available_cpu_freqs' ]]; then - - G_WHIP_MSG 'The processor and/or kernel, does not support this feature.\n\n(Info): Scaling_available_frequencies does not exist.' - - else - - # Map to array - local available_frequency_array=() - mapfile -t available_frequency_array < /tmp/dietpi-available_cpu_freqs - rm /tmp/dietpi-available_cpu_freqs - - # Convert to MHz - local division_factor=1000 - # Intel: Skip conversion - [[ -f '/sys/devices/system/cpu/intel_pstate/max_perf_pct' ]] && division_factor=1 + # Obtain available CPU frequencies + local i j available_frequency_array=() + # - Intel: 10 - 100 % + if [[ -f '/sys/devices/system/cpu/intel_pstate/max_perf_pct' ]] + then + for i in {10..100..5} + do + available_frequency_array+=("$i") + done - local index=0 # 0=max | 1=min - while (( $index < 2 )) + # - CPUFreq + elif [[ -f '/sys/devices/system/cpu/cpu0/cpufreq/scaling_available_frequencies' ]] + then + for i in /sys/devices/system/cpu/cpu*/cpufreq/scaling_available_frequencies do - G_WHIP_MENU_ARRAY=() - for i in "${available_frequency_array[@]}" + for j in $(<"$i") do - G_WHIP_MENU_ARRAY+=($(( $i / $division_factor )) "$type_cpu_freq_info") - done - G_WHIP_MENU_ARRAY+=('Disabled' ': Returns clocks to default') - - # MAX - if (( $index == 0 )); then - - G_WHIP_DEFAULT_ITEM=$user_frequency_max_current - G_WHIP_MENU "Limit the maximum frequency that your processor can reach.\nThis can be useful for lowering temperature and saving power.\n -Current setting: $user_frequency_max_text" && G_CONFIG_INJECT 'CONFIG_CPU_MAX_FREQ=' "CONFIG_CPU_MAX_FREQ=$G_WHIP_RETURNED_VALUE" /boot/dietpi.txt - - # MIN - else - - G_WHIP_DEFAULT_ITEM=$user_frequency_min_current - G_WHIP_MENU "Limit the minimum frequency that your processor can reach.\nThis can be useful for some timing critical stuff (eg. 1-wire below 480 Mhz won't work).\n -Current setting: $user_frequency_min_text" && G_CONFIG_INJECT 'CONFIG_CPU_MIN_FREQ=' "CONFIG_CPU_MIN_FREQ=$G_WHIP_RETURNED_VALUE" /boot/dietpi.txt - - fi - - ((index++)) + echo $(( $j / 1000 )) + done | sort -u | mapfile -t available_frequency_array done - unset -v available_frequency_array + else + G_WHIP_MSG '[FAILED] The CPU and/or kernel, does not support this feature.' + return 1 + fi - /boot/dietpi/func/dietpi-set_cpu + # Max + G_WHIP_MENU_ARRAY=('Disabled' ': Returns clocks to default') + for i in "${available_frequency_array[@]}" + do + G_WHIP_MENU_ARRAY+=("$i" "$type_cpu_freq_info") + done + G_WHIP_DEFAULT_ITEM=$user_frequency_max_current + G_WHIP_MENU "Limit the maximum frequency that your CPU can reach.\nThis can be useful for lowering temperature and saving power. +\nCurrent setting: $user_frequency_max_text" && G_CONFIG_INJECT 'CONFIG_CPU_MAX_FREQ=' "CONFIG_CPU_MAX_FREQ=$G_WHIP_RETURNED_VALUE" /boot/dietpi.txt - fi + # Min + G_WHIP_MENU_ARRAY=('Disabled' ': Returns clocks to default') + for i in "${available_frequency_array[@]}" + do + G_WHIP_MENU_ARRAY+=("$i" "$type_cpu_freq_info") + done + G_WHIP_DEFAULT_ITEM=$user_frequency_min_current + G_WHIP_MENU "Limit the minimum frequency that your CPU can reach.\nThis can be useful for some timing critical stuff, like 1-wire won't work below 480 MHz. +\nCurrent setting: $user_frequency_min_text" && G_CONFIG_INJECT 'CONFIG_CPU_MIN_FREQ=' "CONFIG_CPU_MIN_FREQ=$G_WHIP_RETURNED_VALUE" /boot/dietpi.txt + + # Apply + /boot/dietpi/func/dietpi-set_cpu ;; 'Overclocking') diff --git a/dietpi/dietpi-cpuinfo b/dietpi/dietpi-cpuinfo index 3ae61c2c00..180fc20c2a 100755 --- a/dietpi/dietpi-cpuinfo +++ b/dietpi/dietpi-cpuinfo @@ -13,164 +13,69 @@ # - Prints CPU information # # Usage: - # - /boot/dietpi/dietpi-cpuinfo Obtain stats and print - # - /boot/dietpi/dietpi-cpuinfo 2 Generates file of available, ordered scaling freq's $FP_CPU_SCALINGAVAILABLE_FREQ + # - /boot/dietpi/dietpi-cpuinfo #//////////////////////////////////// # Import DietPi-Globals -------------------------------------------------------------- . /boot/dietpi/func/dietpi-globals readonly G_PROGRAM_NAME='DietPi-CPU_info' - G_CHECK_ROOT_USER G_INIT # Import DietPi-Globals -------------------------------------------------------------- - # Grab input - [[ $1 == 2 ]] && INPUT=$1 || INPUT=0 - - aCPU_CURRENT_FREQ=() + aCPU_CUR_FREQ=() aCPU_MIN_FREQ=() aCPU_MAX_FREQ=() - Obtain_Cpu_Freq(){ - + Obtain_Cpu_Freq() + { for ((i=0; i<$G_HW_CPU_CORES; i++)) do - if [[ -f /sys/devices/system/cpu/cpu$i/cpufreq/scaling_cur_freq ]]; then - - aCPU_CURRENT_FREQ[$i]=$(<"/sys/devices/system/cpu/cpu$i/cpufreq/scaling_cur_freq") - - fi - - if [[ -f /sys/devices/system/cpu/cpu$i/cpufreq/scaling_min_freq ]]; then - - aCPU_MIN_FREQ[$i]=$(<"/sys/devices/system/cpu/cpu$i/cpufreq/scaling_min_freq") - - fi - - if [[ -f /sys/devices/system/cpu/cpu$i/cpufreq/scaling_max_freq ]]; then - - aCPU_MAX_FREQ[$i]=$(<"/sys/devices/system/cpu/cpu$i/cpufreq/scaling_max_freq") - - fi + [[ -f /sys/devices/system/cpu/cpu$i/cpufreq/scaling_cur_freq ]] && aCPU_CUR_FREQ[$i]=$(<"/sys/devices/system/cpu/cpu$i/cpufreq/scaling_cur_freq") + [[ -f /sys/devices/system/cpu/cpu$i/cpufreq/scaling_min_freq ]] && aCPU_MIN_FREQ[$i]=$(<"/sys/devices/system/cpu/cpu$i/cpufreq/scaling_min_freq") + [[ -f /sys/devices/system/cpu/cpu$i/cpufreq/scaling_max_freq ]] && aCPU_MAX_FREQ[$i]=$(<"/sys/devices/system/cpu/cpu$i/cpufreq/scaling_max_freq") done - - } - - aCPU_SCALINGAVAILABLE_FREQ=() - CPU_SCALINGSUPPORTED=1 - readonly FP_CPU_SCALINGAVAILABLE_FREQ='/tmp/dietpi-available_cpu_freqs' - Obtain_Cpu_Scaling_Freq(){ - - # Intel - if [[ -f '/sys/devices/system/cpu/intel_pstate/max_perf_pct' ]]; then - - local i - for ((i=10; i<=100; i+=5)) - do - aCPU_SCALINGAVAILABLE_FREQ+=("$i") - done - - # Standard - elif [[ -f '/sys/devices/system/cpu/cpu0/cpufreq/scaling_available_frequencies' ]]; then - - for ((i=0; i<$G_HW_CPU_CORES; i++)) - do - aCPU_SCALINGAVAILABLE_FREQ[$i]=$(tr ' ' '\n' < "/sys/devices/system/cpu/cpu$i/cpufreq/scaling_available_frequencies" | sed 's/[^0-9]//g' | sed '/^$/d') - done - - # XU4 3.x - elif [[ -f '/sys/devices/system/cpu/cpufreq/mp-cpufreq/cpu_freq_table' ]]; then - - aCPU_SCALINGAVAILABLE_FREQ[0]=$(tr ' ' '\n' < /sys/devices/system/cpu/cpufreq/mp-cpufreq/cpu_freq_table | sed 's/[^0-9]//g' | sed '/^$/d') - - else - - CPU_SCALINGSUPPORTED=0 - - fi - } CPU_TEMP_PRINT= Obtain_Cpu_Temp(){ CPU_TEMP_PRINT=$(print_full_info=1 G_OBTAIN_CPU_TEMP); } CPU_GOV_CURRENT='N/A' - Obtain_Cpu_Gov(){ - - [[ -f '/sys/devices/system/cpu/cpu0/cpufreq/scaling_governor' ]] && CPU_GOV_CURRENT=$( "$FP_CPU_SCALINGAVAILABLE_FREQ" - - if (( $CPU_SCALINGSUPPORTED )); then - - for i in "${aCPU_SCALINGAVAILABLE_FREQ[@]}" - do - echo "$i" >> "$FP_CPU_SCALINGAVAILABLE_FREQ" - done - - # Order, remove dupes - sort -u -n "$FP_CPU_SCALINGAVAILABLE_FREQ" -o "$FP_CPU_SCALINGAVAILABLE_FREQ" - - fi - - # Print all stats - else - - Obtain_Cpu_Freq - Obtain_Cpu_Temp - Obtain_Cpu_Gov - - Print_Stats + Obtain_Cpu_Freq + Obtain_Cpu_Temp + Obtain_Cpu_Gov - fi + Print_Stats #----------------------------------------------------------------------------------- - exit + exit 0 #----------------------------------------------------------------------------------- } From c9763a0d4263bf519f31df61805de4a7bbb8a317 Mon Sep 17 00:00:00 2001 From: MichaIng Date: Wed, 1 Mar 2023 22:06:57 +0100 Subject: [PATCH 080/155] v8.15 - DietPi-Config | Fixup --- dietpi/dietpi-config | 19 ++++++++----------- 1 file changed, 8 insertions(+), 11 deletions(-) diff --git a/dietpi/dietpi-config b/dietpi/dietpi-config index 6023f0951a..4a6936be89 100755 --- a/dietpi/dietpi-config +++ b/dietpi/dietpi-config @@ -1275,7 +1275,7 @@ Further information: https://www.raspberrypi.org/documentation/hardware/raspberr G_WHIP_MENU_ARRAY+=('ARM Initial Turbo' ": [${initial_turbo:=0} seconds]") # Define CPU scaling frequency or percent - # - Disabled on RPi since ondemand only jumps between lowest and highest by default. RPi user hence should use "ARM Idle Frequency" option + overclocking to set those two freqs. + # - Disabled on RPi where one can use "ARM Idle Frequency" + overclocking to change limits. else local type_cpu_freq_info='MHz' @@ -1373,13 +1373,10 @@ If unsure, set any value, 'Ondemand Down Factor' option on the next screen will # - CPUFreq elif [[ -f '/sys/devices/system/cpu/cpu0/cpufreq/scaling_available_frequencies' ]] then - for i in /sys/devices/system/cpu/cpu*/cpufreq/scaling_available_frequencies + mapfile -tO "${#available_frequency_array[@]}" available_frequency_array < <(for i in /sys/devices/system/cpu/cpu*/cpufreq/scaling_available_frequencies do - for j in $(<"$i") - do - echo $(( $j / 1000 )) - done | sort -u | mapfile -t available_frequency_array - done + for j in $(<"$i"); do echo $(( $j / 1000 )); done + done | sort -un) else G_WHIP_MSG '[FAILED] The CPU and/or kernel, does not support this feature.' return 1 @@ -1392,8 +1389,8 @@ If unsure, set any value, 'Ondemand Down Factor' option on the next screen will G_WHIP_MENU_ARRAY+=("$i" "$type_cpu_freq_info") done G_WHIP_DEFAULT_ITEM=$user_frequency_max_current - G_WHIP_MENU "Limit the maximum frequency that your CPU can reach.\nThis can be useful for lowering temperature and saving power. -\nCurrent setting: $user_frequency_max_text" && G_CONFIG_INJECT 'CONFIG_CPU_MAX_FREQ=' "CONFIG_CPU_MAX_FREQ=$G_WHIP_RETURNED_VALUE" /boot/dietpi.txt + G_WHIP_MENU "Limit the maximum frequency that your CPU can reach.\nThis can be useful for lowering temperature and saving power.\n\nCurrent setting: $user_frequency_max_text" || return 0 + G_CONFIG_INJECT 'CONFIG_CPU_MAX_FREQ=' "CONFIG_CPU_MAX_FREQ=$G_WHIP_RETURNED_VALUE" /boot/dietpi.txt # Min G_WHIP_MENU_ARRAY=('Disabled' ': Returns clocks to default') @@ -1402,8 +1399,8 @@ If unsure, set any value, 'Ondemand Down Factor' option on the next screen will G_WHIP_MENU_ARRAY+=("$i" "$type_cpu_freq_info") done G_WHIP_DEFAULT_ITEM=$user_frequency_min_current - G_WHIP_MENU "Limit the minimum frequency that your CPU can reach.\nThis can be useful for some timing critical stuff, like 1-wire won't work below 480 MHz. -\nCurrent setting: $user_frequency_min_text" && G_CONFIG_INJECT 'CONFIG_CPU_MIN_FREQ=' "CONFIG_CPU_MIN_FREQ=$G_WHIP_RETURNED_VALUE" /boot/dietpi.txt + G_WHIP_MENU "Limit the minimum frequency that your CPU can reach.\nThis can be useful for some timing critical stuff, like 1-wire won't work below 480 MHz.\n\nCurrent setting: $user_frequency_min_text" || return 0 + G_CONFIG_INJECT 'CONFIG_CPU_MIN_FREQ=' "CONFIG_CPU_MIN_FREQ=$G_WHIP_RETURNED_VALUE" /boot/dietpi.txt # Apply /boot/dietpi/func/dietpi-set_cpu From d78299a704a4b06132c4cabe633859e590fa270f Mon Sep 17 00:00:00 2001 From: MichaIng Date: Thu, 2 Mar 2023 18:21:47 +0100 Subject: [PATCH 081/155] v8.15 - DietPi-CPU_info | Minor coding enhancement --- dietpi/dietpi-cpuinfo | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/dietpi/dietpi-cpuinfo b/dietpi/dietpi-cpuinfo index 180fc20c2a..d7e4cd9a7e 100755 --- a/dietpi/dietpi-cpuinfo +++ b/dietpi/dietpi-cpuinfo @@ -47,7 +47,7 @@ (( $G_HW_MODEL == 20 )) && echo -e '\n\e[90m[\e[93mWARNING\e[90m] \e[97mMost CPU info is not available on virtual machines.\e[0m\n' - echo -e " Architecture \e[90m|\e[0m $(uname -m) + echo -e " Architecture \e[90m|\e[0m $G_HW_ARCH_NAME Temperature \e[90m|\e[0m $CPU_TEMP_PRINT Governor \e[90m|\e[0m $CPU_GOV_CURRENT" @@ -57,13 +57,14 @@ fi # CPU freq table: Print only if any content - (( ${#aCPU_CUR_FREQ[@]} )) && echo -e '\n \e[90m Current Freq Min Freq Max Freq\e[0m' + (( ${#aCPU_CUR_FREQ[@]} )) || return 0 + echo -e '\n \e[90m Current Freq Min Freq Max Freq\e[0m' for i in "${!aCPU_CUR_FREQ[@]}" do echo -e " \e[90mCPU$i |\e[0m $(( ${aCPU_CUR_FREQ[$i]:-0} / 1000 )) MHz \e[90m$(( ${aCPU_MIN_FREQ[$i]:-0} / 1000 )) MHz $(( ${aCPU_MAX_FREQ[$i]:-0} / 1000 )) MHz\e[0m" done echo - (( ${#aCPU_CUR_FREQ[@]} )) && G_DIETPI-NOTIFY 2 'The current CPU frequency may be affected by processing this script itself.\n' + G_DIETPI-NOTIFY 2 'The current CPU frequency may be affected by processing this script itself.\n' } #///////////////////////////////////////////////////////////////////////////////////// From 260cab250516bff3474d8a9f1ddec0890695331d Mon Sep 17 00:00:00 2001 From: MichaIng Date: Thu, 2 Mar 2023 23:26:37 +0100 Subject: [PATCH 082/155] v8.15 - DietPi-Installer | Do not mute verbose "ln" output and make "mv" output similarly verbose --- .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 94abc63dbb..bc6c31f806 100644 --- a/.build/images/dietpi-installer +++ b/.build/images/dietpi-installer @@ -1178,7 +1178,7 @@ _EOF_ #!/bin/dash echo 'update-initramfs: Converting to U-Boot format' mkimage -A $arch -O linux -T ramdisk -C gzip -n uInitrd -d "\$2" "/boot/uInitrd-\$1" -ln -sfv "uInitrd-\$1" /boot/uInitrd > /dev/null 2>&1 || mv "/boot/uInitrd-\$1" /boot/uInitrd +ln -sfv "uInitrd-\$1" /boot/uInitrd || mv -v "/boot/uInitrd-\$1" /boot/uInitrd exit 0 _EOF_ G_EXEC chmod +x /etc/initramfs/post-update.d/99-dietpi-uboot From 9b251072c2a71b596e03c66599f5dd93d2f40d09 Mon Sep 17 00:00:00 2001 From: MichaIng Date: Fri, 3 Mar 2023 12:34:17 +0100 Subject: [PATCH 083/155] v8.15 - 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 c3ff37f4dd..0b01d2e3a6 100755 --- a/dietpi/dietpi-software +++ b/dietpi/dietpi-software @@ -7347,7 +7347,7 @@ _EOF_ if To_Install 179 # Komga then - local fallback_url='https://github.com/gotson/komga/releases/download/v0.161.0/komga-0.161.0.jar' + local fallback_url='https://github.com/gotson/komga/releases/download/v0.162.0/komga-0.162.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 01ea441ea13eb25444299aa219181f2864c6ca99 Mon Sep 17 00:00:00 2001 From: MichaIng Date: Fri, 3 Mar 2023 22:19:59 +0100 Subject: [PATCH 084/155] v8.15 - DietPi-Installer | Tiny --- .build/images/dietpi-installer | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/.build/images/dietpi-installer b/.build/images/dietpi-installer index bc6c31f806..31b7c59b72 100644 --- a/.build/images/dietpi-installer +++ b/.build/images/dietpi-installer @@ -566,7 +566,7 @@ _EOF_ G_EXEC mv "DietPi-$G_GITBRANCH/.build/images/U-Boot/99-dietpi-uboot" /etc/initramfs/post-update.d/99-dietpi-uboot G_EXEC sed -i 's/arm64/arm/' /etc/initramfs/post-update.d/99-dietpi-uboot - elif [[ $G_HW_MODEL =~ ^(12|15|16|40|42|43|44|45|46|47|48|52|54|55|56|57|58|59|60|63|64|65|66|67|68|72|73|74)$ || + elif [[ $G_HW_MODEL =~ ^12|15|16|40|42|43|44|45|46|47|48|52|54|55|56|57|58|59|60|63|64|65|66|67|68|72|73|74$ || ( $G_HW_MODEL == 62 && $(findmnt -Ufnro FSTYPE -T /boot) == 'ext4' ) || # NanoPi M3/T3/Fire3 bootloader supports ext4 only ( $G_HW_MODEL == 78 && $(findmnt -M /boot) ) || # ROCK 5B requries a dedicated boot partition ( $G_HW_MODEL =~ ^77|80$ && $(findmnt -t vfat -M /boot) ) ]] # ROCK 3A and Orange Pi 5 required a dedicated boot partition with FAT filesystem @@ -1010,7 +1010,7 @@ setenv rootuuid "true"' /boot/boot.cmd *) :;; esac # NanoPi R2S/NEO3 - if [[ $G_HW_MODEL == 5[56] ]] + if [[ $G_HW_MODEL =~ ^55|56$ ]] then G_DIETPI-NOTIFY 2 'Blacklisting video related kernel modules' cat << '_EOF_' > /etc/modprobe.d/dietpi-headless.conf @@ -1137,7 +1137,6 @@ _EOF_ G_AGI initramfs-tools zstd debian-ports-archive-keyring G_CONFIG_INJECT 'COMPRESS=' 'COMPRESS=zstd' /etc/initramfs-tools/initramfs.conf [[ -f '/boot/extlinux/extlinux.conf' ]] && G_EXEC rm /boot/extlinux/extlinux.conf - [[ -f '/boot/uEnv.txt' ]] && G_EXEC rm /boot/uEnv.txt G_EXEC curl -sSfO 'https://dietpi.com/downloads/binaries/linux-image-5.15.0-starfive.deb' G_EXEC_OUTPUT=1 G_EXEC dpkg -i linux-image-5.15.0-starfive.deb G_EXEC rm linux-image-5.15.0-starfive.deb @@ -1210,7 +1209,7 @@ _EOF_ G_EXEC eval "echo 'deb https://apt.armbian.com/ $DISTRO_TARGET_NAME main' > /etc/apt/sources.list.d/dietpi-armbian.list" # ROCK Pi S/Radxa Zero: Official legacy Radxa Debian image - elif [[ $G_HW_MODEL =~ ^(73|74)$ ]] && grep -q 'apt\.radxa\.com' /etc/apt/sources.list.d/*.list + elif [[ $G_HW_MODEL =~ ^73|74$ ]] && grep -q 'apt\.radxa\.com' /etc/apt/sources.list.d/*.list then # Install Radxa APT repo cleanly: No Bookworm repo available yet G_EXEC rm -Rf /etc/apt/sources.list.d/{,.??,.[^.]}* From 51cef4ba2cc7ca6dc77d26f58d2e3bf17173d215 Mon Sep 17 00:00:00 2001 From: MichaIng Date: Fri, 3 Mar 2023 22:50:59 +0100 Subject: [PATCH 085/155] v8.15 - DietPi-Build | VisionFive 2: Move partition to 1 MiB offset --- .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 031eb37ba0..0cd5b9be1e 100755 --- a/.build/images/dietpi-build +++ b/.build/images/dietpi-build @@ -118,7 +118,7 @@ case $HW_MODEL in 78) iname='ROCK5B' HW_ARCH=3 PTTYPE='gpt' partition_start=16 boot_size=128 root_size=688 boot_fstype='ext4';; 79) iname='NanoPiR6S' HW_ARCH=3 root_size=752;; # Special case: Skips image file, partitioning and filesystem generation, but runs debootstrap only! 80) iname='OrangePi5' HW_ARCH=3 PTTYPE='gpt' partition_start=16 boot_size=128 root_size=688;; - 81) iname='VisionFive2' HW_ARCH=11 PTTYPE='gpt' partition_start=4 root_size=636 DISTRO=7;; + 81) iname='VisionFive2' HW_ARCH=11 PTTYPE='gpt' root_size=639 DISTRO=7;; *) G_DIETPI-NOTIFY 1 "Invalid hardware model \"$HW_MODEL\" passed, aborting..."; exit 1;; esac From cf470507866434a799a5ff57e48d3b8defb6516e Mon Sep 17 00:00:00 2001 From: MichaIng Date: Sat, 4 Mar 2023 01:01:58 +0100 Subject: [PATCH 086/155] v8.15 - DietPi-Software | Do not try to obtain latest versions in cases where we know that there will be no update anymore (for a particular Debian/PHP/... version) --- dietpi/dietpi-software | 22 ++++++++++------------ 1 file changed, 10 insertions(+), 12 deletions(-) diff --git a/dietpi/dietpi-software b/dietpi/dietpi-software index 0b01d2e3a6..6ca64cacca 100755 --- a/dietpi/dietpi-software +++ b/dietpi/dietpi-software @@ -6675,14 +6675,14 @@ _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 yet: https://github.com/Peterkn2001/blynk-server/releases + # 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 - local fallback_url='https://github.com/Peterkn2001/blynk-server/releases/download/v0.41.16/server-0.41.16-java8.jar' log4shell=' -Dlog4j2.formatMsgNoLookups=true' - Download_Install "$(curl -sSfL 'https://api.github.com/repos/Peterkn2001/blynk-server/releases' | mawk -F\" '/"browser_download_url": ".*\/server-[0-9.]+-java8\.jar"/{print $4}' | sort -Vr | head -1)" /mnt/dietpi_userdata/blynk/blynkserver.jar + 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 - local fallback_url='https://github.com/Peterkn2001/blynk-server/releases/download/v0.41.17/server-0.41.17.jar' log4shell= - Download_Install "$(curl -sSfL 'https://api.github.com/repos/Peterkn2001/blynk-server/releases/latest' | mawk -F\" '/"browser_download_url": ".*\/server-[0-9.]+\.jar"/{print $4}')" /mnt/dietpi_userdata/blynk/blynkserver.jar + 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 # RPi: Install "onoff" for GPIO access @@ -7451,8 +7451,7 @@ _EOF_ # Ampache v5 requires PHP7.4, hence pull latest Ampache v4 on Buster: https://github.com/ampache/ampache/wiki/Ampache-Next-Changes else - local fallback_url='https://github.com/ampache/ampache/releases/download/4.4.3/ampache-4.4.3_all.zip' - Download_Install "$(curl -sSfL 'https://api.github.com/repos/ampache/ampache/releases' | mawk -F\" '/"browser_download_url": ".*\/ampache-4[0-9\.]*_all.zip"/{print $4}' | head -1)" ampache + Download_Install 'https://github.com/ampache/ampache/releases/download/4.4.3/ampache-4.4.3_all.zip' ampache # Ampache is installed to /var/www/ampache. local fp_install='/var/www' fp_public='ampache' fi @@ -11003,19 +11002,18 @@ _EOF_ G_AGI "${aDEPS[@]}" aDEPS=() else - # v3 drops PHP 7.4 support: https://github.com/TasmoAdmin/TasmoAdmin/blob/master/UPGRADE.md#from-2---3 + # 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/v2.4.2/tasmoadmin_v2.4.2.tar.gz' + local fallback_url='https://github.com/TasmoAdmin/TasmoAdmin/releases/download/v3.0.0/tasmoadmin_v3.0.0.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}')" # v2 drops PHP <7.4 support: https://github.com/TasmoAdmin/TasmoAdmin/releases/tag/v2.0.0 elif (( $G_DISTRO > 5 )) then - local fallback_url='https://github.com/TasmoAdmin/TasmoAdmin/releases/download/v2.4.2/tasmoadmin_v2.4.2.tar.gz' - Download_Install "$(curl -sSfL 'https://api.github.com/repos/TasmoAdmin/TasmoAdmin/releases' | mawk -F\" '/"browser_download_url": ".*\/tasmoadmin_v2\.[^"\/]*\.tar\.gz"$/{print $4}' | head -1)" + Download_Install 'https://github.com/TasmoAdmin/TasmoAdmin/releases/download/v2.4.2/tasmoadmin_v2.4.2.tar.gz' else - Download_Install "$(curl -sSfL 'https://github.com/TasmoAdmin/TasmoAdmin/releases/download/v1.8.0/tasmoadmin_v1.8.0.tar.gz')" + Download_Install 'https://github.com/TasmoAdmin/TasmoAdmin/releases/download/v1.8.0/tasmoadmin_v1.8.0.tar.gz' fi G_EXEC chown -R www-data:www-data tasmoadmin G_EXEC mv tasmoadmin /var/www/ From 45a1aa19c88448dd57f7c7e2ed4da039cc918672 Mon Sep 17 00:00:00 2001 From: MichaIng Date: Sat, 4 Mar 2023 13:35:41 +0100 Subject: [PATCH 087/155] v8.15 - DietPi-Software | FreshRSS: Update fallback version --- dietpi/dietpi-software | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dietpi/dietpi-software b/dietpi/dietpi-software index 6ca64cacca..329bbfd7d0 100755 --- a/dietpi/dietpi-software +++ b/dietpi/dietpi-software @@ -6962,7 +6962,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.20.2'; 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.21.0'; G_DIETPI-NOTIFY 1 "Automatic latest FreshRSS version detection failed. Version \"$version\" will be installed as fallback, but a newer version might be available. Please report this at: https://github.com/MichaIng/DietPi/issues"; } Download_Install "https://github.com/FreshRSS/FreshRSS/archive/$version.tar.gz" G_EXEC mv "FreshRSS-$version" /opt/FreshRSS fi From 6601148f99b15c74d101c92f68258ea05bdcfa02 Mon Sep 17 00:00:00 2001 From: MichaIng Date: Sat, 4 Mar 2023 14:30:34 +0100 Subject: [PATCH 088/155] v8.15 - DietPi-Software | Node.js: Enable support for RISC-V via unofficial-builds.nodejs.org builds --- dietpi/dietpi-software | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/dietpi/dietpi-software b/dietpi/dietpi-software index 329bbfd7d0..a0714884a9 100755 --- a/dietpi/dietpi-software +++ b/dietpi/dietpi-software @@ -2941,9 +2941,9 @@ unix_socket_directories = '/run/postgresql'" > "$i/00dietpi.conf" Download_Install 'https://raw.githubusercontent.com/MichaIng/nodejs-linux-installer/master/node-install.sh' G_EXEC chmod +x node-install.sh - # ARMv6: Use unofficial builds to get the latest version: https://github.com/MichaIng/nodejs-linux-installer/pull/2 + # ARMv6/RISC-V: Use unofficial builds to get the latest version: https://github.com/MichaIng/nodejs-linux-installer/pull/2, https://github.com/MichaIng/nodejs-linux-installer/commit/cd952fe local unofficial=() - (( $G_HW_ARCH == 1 )) && unofficial=('-u') + (( $G_HW_ARCH == 1 || $G_HW_ARCH == 11 )) && unofficial=('-u') G_EXEC_OUTPUT=1 G_EXEC ./node-install.sh "${unofficial[@]}" G_EXEC rm node-install.sh fi From 5236f9bbb26788d35c67da740899ed30eaa125fb Mon Sep 17 00:00:00 2001 From: MichaIng Date: Sat, 4 Mar 2023 16:28:17 +0100 Subject: [PATCH 089/155] v8.15 - DietPi-Obtain_HW_model | Support new debian_release string, recently provided by bookworm --- dietpi/func/dietpi-obtain_hw_model | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dietpi/func/dietpi-obtain_hw_model b/dietpi/func/dietpi-obtain_hw_model index 560fa60dba..2a45c70892 100755 --- a/dietpi/func/dietpi-obtain_hw_model +++ b/dietpi/func/dietpi-obtain_hw_model @@ -587,7 +587,7 @@ G_DISTRO=6 G_DISTRO_NAME='bullseye' - elif [[ $distro == 'bookworm/sid' ]]; then + elif [[ $distro == '12.'* || $distro == 'bookworm/sid' ]]; then G_DISTRO=7 G_DISTRO_NAME='bookworm' From 240d8dd6f7343f17b441d2ba7cb2ac148e6a16e3 Mon Sep 17 00:00:00 2001 From: MichaIng Date: Sat, 4 Mar 2023 16:36:34 +0100 Subject: [PATCH 090/155] v8.15 - DietPi-Installer | Patch dietpi-obtain_hw_model to fix Bookworm detection on Sid (and probably soon Bookworm itself) until v8.15 release --- .build/images/dietpi-installer | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.build/images/dietpi-installer b/.build/images/dietpi-installer index 31b7c59b72..d9d6e36985 100644 --- a/.build/images/dietpi-installer +++ b/.build/images/dietpi-installer @@ -750,6 +750,9 @@ setenv rootuuid "true"' /boot/boot.cmd # ToDo: Temporary fix for wrong serial console baudrate override below Bookworm, fixed via live patch only if an actual console has been enabled already (( $DISTRO_TARGET > 6 )) || G_EXEC sed -i 's/9600 -/9600 %I/' /boot/dietpi/func/dietpi-set_hardware + # Pre-v8.15 ToDo: Fix Bookworm detection on Sid + G_EXEC sed -i 's/\[\[ \$distro == '\''bookworm\/sid'\''/\[\[ \$distro == '\''12.'\''\* || \$distro == '\''bookworm\/sid'\''/' /boot/dietpi/func/dietpi-obtain_hw_model + G_EXEC cp /boot/dietpi/.version /var/lib/dietpi/.dietpi_image_version G_EXEC systemctl daemon-reload From 1284d4b33c03f246ec29048073db24d9619f654e Mon Sep 17 00:00:00 2001 From: MichaIng Date: Sat, 4 Mar 2023 16:57:14 +0100 Subject: [PATCH 091/155] v8.15 - DietPi-Installer | Build VisionFive 2 image without initramfs --- .build/images/dietpi-installer | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.build/images/dietpi-installer b/.build/images/dietpi-installer index d9d6e36985..e19ebc5ab1 100644 --- a/.build/images/dietpi-installer +++ b/.build/images/dietpi-installer @@ -751,6 +751,7 @@ setenv rootuuid "true"' /boot/boot.cmd (( $DISTRO_TARGET > 6 )) || G_EXEC sed -i 's/9600 -/9600 %I/' /boot/dietpi/func/dietpi-set_hardware # Pre-v8.15 ToDo: Fix Bookworm detection on Sid + # shellcheck disable=SC2016 G_EXEC sed -i 's/\[\[ \$distro == '\''bookworm\/sid'\''/\[\[ \$distro == '\''12.'\''\* || \$distro == '\''bookworm\/sid'\''/' /boot/dietpi/func/dietpi-obtain_hw_model G_EXEC cp /boot/dietpi/.version /var/lib/dietpi/.dietpi_image_version @@ -1137,13 +1138,12 @@ _EOF_ # VisionFive 2 elif [[ $G_HW_MODEL == 81 ]] then - G_AGI initramfs-tools zstd debian-ports-archive-keyring - G_CONFIG_INJECT 'COMPRESS=' 'COMPRESS=zstd' /etc/initramfs-tools/initramfs.conf + G_AGI debian-ports-archive-keyring [[ -f '/boot/extlinux/extlinux.conf' ]] && G_EXEC rm /boot/extlinux/extlinux.conf G_EXEC curl -sSfO 'https://dietpi.com/downloads/binaries/linux-image-5.15.0-starfive.deb' G_EXEC_OUTPUT=1 G_EXEC dpkg -i linux-image-5.15.0-starfive.deb G_EXEC rm linux-image-5.15.0-starfive.deb - G_EXEC sed -i "s/root=[^[:blank:]]*/root=UUID=$(findmnt -Ufnro UUID -M /)/" /boot/extlinux/extlinux.conf + G_EXEC sed -i "s/root=[^[:blank:]]*/root=PARTUUID=$(findmnt -Ufnro PARTUUID -M /)/" /boot/extlinux/extlinux.conf G_EXEC sed -i "s/rootfstype=[^[:blank:]]*/rootfstype=$(findmnt -Ufnro FSTYPE -M /)/" /boot/extlinux/extlinux.conf # Armbian grab currently installed packages From 6089dfca6d486b0fbf0fb0eba4f348ec4f055472 Mon Sep 17 00:00:00 2001 From: MichaIng Date: Sat, 4 Mar 2023 19:31:57 +0100 Subject: [PATCH 092/155] v8.15 - DietPi-Software | RISC-V: Mark software titles as unsupported where we tested or know that they cannot be installed or do not run on RISC-V --- dietpi/dietpi-software | 112 ++++++++++++++++++++++++++++++++++------- 1 file changed, 94 insertions(+), 18 deletions(-) diff --git a/dietpi/dietpi-software b/dietpi/dietpi-software index a0714884a9..5271e30a19 100755 --- a/dietpi/dietpi-software +++ b/dietpi/dietpi-software @@ -305,6 +305,8 @@ 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: Missing package + aSOFTWARE_AVAIL_G_HW_ARCH[$software_id,11]=0 #------------------ software_id=120 aSOFTWARE_NAME[$software_id]='RealVNC Server' @@ -338,6 +340,8 @@ Available commands: aSOFTWARE_CATX[$software_id]=2 aSOFTWARE_DOCS[$software_id]='https://dietpi.com/docs/software/media/#ympd' aSOFTWARE_DEPS[$software_id]='128' + # - RISC-V: Missing package + aSOFTWARE_AVAIL_G_HW_ARCH[$software_id,11]=0 #------------------ software_id=148 aSOFTWARE_NAME[$software_id]='myMPD' @@ -345,6 +349,8 @@ 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: Missing package + aSOFTWARE_AVAIL_G_HW_ARCH[$software_id,11]=0 #------------------ software_id=119 aSOFTWARE_NAME[$software_id]='CAVA' @@ -365,6 +371,8 @@ Available commands: aSOFTWARE_DESC[$software_id]='fka. SlimServer, SqueezeboxServer, SliMP3' aSOFTWARE_CATX[$software_id]=2 aSOFTWARE_DOCS[$software_id]='https://dietpi.com/docs/software/media/#logitech-media-server' + # - RISC-V: Missing package + aSOFTWARE_AVAIL_G_HW_ARCH[$software_id,11]=0 #------------------ software_id=36 aSOFTWARE_NAME[$software_id]='Squeezelite' @@ -400,6 +408,8 @@ 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: Missing package + aSOFTWARE_AVAIL_G_HW_ARCH[$software_id,11]=0 #------------------ software_id=42 aSOFTWARE_NAME[$software_id]='Plex Media Server' @@ -408,6 +418,8 @@ 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: Missing package + aSOFTWARE_AVAIL_G_HW_ARCH[$software_id,11]=0 #------------------ software_id=43 aSOFTWARE_NAME[$software_id]='Murmur' @@ -430,6 +442,8 @@ Available commands: aSOFTWARE_DEPS[$software_id]='5' # - ARMv6 aSOFTWARE_AVAIL_G_HW_ARCH[$software_id,1]=0 + # - RISC-V: Missing package + aSOFTWARE_AVAIL_G_HW_ARCH[$software_id,11]=0 #------------------ software_id=124 aSOFTWARE_NAME[$software_id]='NAA daemon' @@ -599,6 +613,8 @@ 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: Missing package + aSOFTWARE_AVAIL_G_HW_ARCH[$software_id,11]=0 # BitTorrent & Download #-------------------------------------------------------------------------------- @@ -654,6 +670,8 @@ Available commands: aSOFTWARE_CATX[$software_id]=3 aSOFTWARE_DOCS[$software_id]='https://dietpi.com/docs/software/bittorrent/#sonarr' aSOFTWARE_DEPS[$software_id]='87 150' + # - RISC-V: Missing package + aSOFTWARE_AVAIL_G_HW_ARCH[$software_id,11]=0 #------------------ software_id=145 aSOFTWARE_NAME[$software_id]='Radarr' @@ -662,6 +680,8 @@ 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 + aSOFTWARE_AVAIL_G_HW_ARCH[$software_id,11]=0 #------------------ software_id=106 aSOFTWARE_NAME[$software_id]='Lidarr' @@ -670,6 +690,8 @@ 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 + aSOFTWARE_AVAIL_G_HW_ARCH[$software_id,11]=0 #------------------ software_id=180 aSOFTWARE_NAME[$software_id]='Bazarr' @@ -688,6 +710,8 @@ 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 + aSOFTWARE_AVAIL_G_HW_ARCH[$software_id,11]=0 #------------------ software_id=149 aSOFTWARE_NAME[$software_id]='NZBGet' @@ -703,6 +727,8 @@ Available commands: aSOFTWARE_DEPS[$software_id]='87' # - ARMv6 aSOFTWARE_AVAIL_G_HW_ARCH[$software_id,1]=0 + # - RISC-V: Missing package + aSOFTWARE_AVAIL_G_HW_ARCH[$software_id,11]=0 #------------------ software_id=203 aSOFTWARE_NAME[$software_id]='Readarr' @@ -712,6 +738,8 @@ Available commands: aSOFTWARE_DEPS[$software_id]='87' # - ARMv6 aSOFTWARE_AVAIL_G_HW_ARCH[$software_id,1]=0 + # - RISC-V: Missing package + aSOFTWARE_AVAIL_G_HW_ARCH[$software_id,11]=0 #------------------ software_id=155 aSOFTWARE_NAME[$software_id]='HTPC Manager' @@ -734,6 +762,8 @@ Available commands: aSOFTWARE_CATX[$software_id]=4 aSOFTWARE_DOCS[$software_id]='https://dietpi.com/docs/software/cloud/#owncloud' aSOFTWARE_DEPS[$software_id]='88 89 91 webserver' + # - Bookworm: No PHP 8.x support yet + aSOFTWARE_AVAIL_G_DISTRO[$software_id,7]=0 #------------------ software_id=114 aSOFTWARE_NAME[$software_id]='Nextcloud' @@ -766,6 +796,8 @@ 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 + aSOFTWARE_AVAIL_G_HW_ARCH[$software_id,11]=0 #------------------ software_id=49 aSOFTWARE_NAME[$software_id]='Gogs' @@ -774,6 +806,8 @@ Available commands: aSOFTWARE_DOCS[$software_id]='https://dietpi.com/docs/software/cloud/#gogs' aSOFTWARE_DEPS[$software_id]='17 88 0' aSOFTWARE_CONFLICTS[$software_id]='165' + # - RISC-V: Missing binary + aSOFTWARE_AVAIL_G_HW_ARCH[$software_id,11]=0 #------------------ software_id=50 aSOFTWARE_NAME[$software_id]='Syncthing' @@ -786,6 +820,8 @@ 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 + aSOFTWARE_AVAIL_G_HW_ARCH[$software_id,11]=0 #------------------ software_id=161 aSOFTWARE_NAME[$software_id]='FuguHub' @@ -794,6 +830,8 @@ 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 + aSOFTWARE_AVAIL_G_HW_ARCH[$software_id,11]=0 #------------------ software_id=165 aSOFTWARE_NAME[$software_id]='Gitea' @@ -802,6 +840,8 @@ 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' + # - RISC-V: Missing binary + aSOFTWARE_AVAIL_G_HW_ARCH[$software_id,11]=0 #------------------ software_id=177 aSOFTWARE_NAME[$software_id]='Firefox Sync Server' @@ -840,6 +880,8 @@ Available commands: aSOFTWARE_CATX[$software_id]=5 aSOFTWARE_DOCS[$software_id]='https://dietpi.com/docs/software/gaming/#amiberry' aSOFTWARE_DEPS[$software_id]='5' + # - RISC-V: Missing target + aSOFTWARE_AVAIL_G_HW_ARCH[$software_id,11]=0 #------------------ software_id=51 aSOFTWARE_NAME[$software_id]='OpenTyrian' @@ -872,6 +914,8 @@ 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 + aSOFTWARE_AVAIL_G_HW_ARCH[$software_id,11]=0 #------------------ software_id=53 aSOFTWARE_NAME[$software_id]='MineOS' @@ -1082,6 +1126,8 @@ Available commands: aSOFTWARE_DESC[$software_id]='Official lightweight DietPi web interface (Rust)' aSOFTWARE_CATX[$software_id]=8 aSOFTWARE_DOCS[$software_id]='https://dietpi.com/docs/software/system_stats/#dietpi-dashboard' + # - RISC-V: Missing binary + aSOFTWARE_AVAIL_G_HW_ARCH[$software_id,11]=0 #------------------ software_id=99 aSOFTWARE_NAME[$software_id]='Prometheus Node Exporter' @@ -1103,6 +1149,8 @@ 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 + aSOFTWARE_AVAIL_G_HW_ARCH[$software_id,11]=0 #------------------ software_id=138 aSOFTWARE_NAME[$software_id]='VirtualHere' @@ -1110,6 +1158,8 @@ 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 + aSOFTWARE_AVAIL_G_HW_ARCH[$software_id,11]=0 # Hardware Projects #-------------------------------------------------------------------------------- @@ -1227,6 +1277,8 @@ 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 + aSOFTWARE_AVAIL_G_HW_ARCH[$software_id,11]=0 # System Security #-------------------------------------------------------------------------------- @@ -1329,6 +1381,8 @@ Available commands: aSOFTWARE_DEPS[$software_id]='17 89 webserver' aSOFTWARE_INTERACTIVE[$software_id]=1 aSOFTWARE_CONFLICTS[$software_id]='126' + # - RISC-V: Missing binary + aSOFTWARE_AVAIL_G_HW_ARCH[$software_id,11]=0 #------------------ software_id=126 aSOFTWARE_NAME[$software_id]='AdGuard Home' @@ -1336,6 +1390,8 @@ 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 + aSOFTWARE_AVAIL_G_HW_ARCH[$software_id,11]=0 #------------------ software_id=182 aSOFTWARE_NAME[$software_id]='Unbound' @@ -1486,6 +1542,8 @@ Available commands: # - ARMv6 - ARMv7 aSOFTWARE_AVAIL_G_HW_ARCH[$software_id,1]=0 aSOFTWARE_AVAIL_G_HW_ARCH[$software_id,2]=0 + # - RISC-V: Missing package + aSOFTWARE_AVAIL_G_HW_ARCH[$software_id,11]=0 #------------------ software_id=133 aSOFTWARE_NAME[$software_id]='YaCy' @@ -1507,6 +1565,8 @@ 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 + aSOFTWARE_AVAIL_G_HW_ARCH[$software_id,11]=0 # SSH Clients #-------------------------------------------------------------------------------- @@ -1663,6 +1723,8 @@ 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 + aSOFTWARE_AVAIL_G_HW_ARCH[$software_id,11]=0 #------------------ software_id=188 aSOFTWARE_NAME[$software_id]='Go' @@ -1670,6 +1732,8 @@ Available commands: aSOFTWARE_CATX[$software_id]=26 aSOFTWARE_DOCS[$software_id]='https://dietpi.com/docs/software/programming/#go' aSOFTWARE_DEPS[$software_id]='17' + # - RISC-V: Missing package + aSOFTWARE_AVAIL_G_HW_ARCH[$software_id,11]=0 #------------------ software_id=8 aSOFTWARE_NAME[$software_id]='Java JDK' @@ -1744,6 +1808,8 @@ Available commands: aSOFTWARE_DEPS[$software_id]='5 6' # - ARMv6 since Bullseye: https://github.com/RPi-Distro/chromium-browser/issues/21 (( $G_DISTRO < 6 )) || aSOFTWARE_AVAIL_G_HW_ARCH[$software_id,1]=0 + # - RISC-V: Missing package + aSOFTWARE_AVAIL_G_HW_ARCH[$software_id,11]=0 #------------------ software_id=67 aSOFTWARE_NAME[$software_id]='Firefox' @@ -1753,6 +1819,8 @@ Available commands: aSOFTWARE_DEPS[$software_id]='5 6' # - ARMv6 since Bullseye: https://github.com/RPi-Distro/chromium-browser/issues/21#issuecomment-997044303 (( $G_DISTRO < 6 )) || aSOFTWARE_AVAIL_G_HW_ARCH[$software_id,1]=0 + # - RISC-V: Missing package + aSOFTWARE_AVAIL_G_HW_ARCH[$software_id,11]=0 #------------------ software_id=174 aSOFTWARE_NAME[$software_id]='GIMP' @@ -3824,7 +3892,7 @@ _EOF_ then # APT deps for Synapse with PostgreSQL case $G_HW_ARCH in - [12]) + [12]|11) if (( $G_DISTRO < 7 )) then G_AGI libtiff5 libopenjp2-7 libxcb1 # ARMv6/7: Runtime libs for Pillow from piwheels (libtiff5 pulls libjpeg62-turbo) @@ -4078,12 +4146,12 @@ _EOF_ case $G_HW_ARCH in 3) local arch='arm64';; 10) local arch='amd64';; - *) local arch='arm' + *) local arch='arm';; esac # Download latest version local version=$(curl -sSfL 'https://dist.ipfs.io/go-ipfs/versions' | tail -1) - [[ $version ]] || { version='v0.16.0'; G_DIETPI-NOTIFY 1 "Automatic latest ${aSOFTWARE_NAME[$software_id]} version detection failed. Version \"$version\" will be installed as fallback, but a newer version might be available. Please report this at: https://github.com/MichaIng/DietPi/issues"; } + [[ $version ]] || { version='v0.18.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"; } Download_Install "https://dist.ipfs.io/go-ipfs/$version/go-ipfs_${version}_linux-$arch.tar.gz" # Install @@ -5306,7 +5374,7 @@ _EOF_ local arch=$(dpkg --print-architecture) local url=$(curl -sSfL 'https://hndl.urbackup.org/Server/latest' | mawk -F\" "/\"urbackup-server_.*_$arch\.deb\"/{print \$8}") [[ $url ]] && url="https://hndl.urbackup.org/Server/latest/$url" - local fallback_url="https://hndl.urbackup.org/Server/2.5.27/urbackup-server_2.5.27_$arch.deb" + local fallback_url="https://hndl.urbackup.org/Server/2.5.30/urbackup-server_2.5.27_$arch.deb" Download_Install "$url" G_EXEC systemctl stop urbackupsrv unset -v backuppath arch url @@ -5489,17 +5557,23 @@ _EOF_ if To_Install 115 # Webmin then - # APT key - local url='https://webmin.com/jcameron-key.asc' - G_CHECK_URL "$url" - G_EXEC eval "curl -sSfL '$url' | gpg --dearmor -o /etc/apt/trusted.gpg.d/dietpi-webmin.gpg --yes" + # RISC-V workaround until arch has been added to repo: https://download.webmin.com/download/repository/dists/sarge/contrib/ + if (( $G_HW_ARCH == 11 )) + then + Download_Install "https://download.webmin.com/download/repository/pool/contrib/w/webmin/$(curl -sSf 'https://download.webmin.com/download/repository/pool/contrib/w/webmin/' | grep -o 'webmin_[^_]*_all.deb' | tail -1)" + else + # APT key + local url='https://webmin.com/jcameron-key.asc' + G_CHECK_URL "$url" + G_EXEC eval "curl -sSfL '$url' | gpg --dearmor -o /etc/apt/trusted.gpg.d/dietpi-webmin.gpg --yes" - # APT list - G_EXEC eval "echo 'deb https://download.webmin.com/download/repository/ sarge contrib' > /etc/apt/sources.list.d/webmin.list" - G_AGUP + # APT list + G_EXEC eval "echo 'deb https://download.webmin.com/download/repository/ sarge contrib' > /etc/apt/sources.list.d/webmin.list" + G_AGUP - # APT package - G_AGI webmin + # APT package + G_AGI webmin + fi G_EXEC systemctl stop webmin Remove_SysV webmin fi @@ -6432,7 +6506,8 @@ _EOF_ case $G_HW_ARCH in 3) local arch='arm64';; 10) local arch='amd64';; - *) local arch='arm' + 11) local arch='riscv64';; + *) local arch='arm';; esac # Download @@ -6610,7 +6685,7 @@ _EOF_ then # Use official APT repository where available: https://repo.mosquitto.org/debian/pool/main/m/mosquitto/ # - Current builds are not ARMv6 compatible: https://github.com/MichaIng/DietPi/issues/5140 - if [[ $G_HW_ARCH != [13] ]] + if [[ $G_HW_ARCH == 2 || $G_HW_ARCH == 10 ]] then # APT key local url='https://repo.mosquitto.org/debian/mosquitto-repo.gpg.key' @@ -8860,7 +8935,8 @@ _EOF_ case $G_HW_ARCH in 3) local arch='arm64';; 10) local arch='amd64';; - *) local arch='arm' + 11) local arch='riscv64';; + *) local arch='arm';; esac local fallback_url="https://github.com/syncthing/syncthing/releases/download/v1.23.1/syncthing-linux-$arch-v1.23.1.tar.gz" @@ -9078,7 +9154,7 @@ _EOF_ case $G_HW_ARCH in 3) local arch='arm64';; 10) local arch='x86_64';; - *) local arch='arm' + *) local arch='arm';; esac Download_Install "https://virtualhere.com/sites/default/files/usbserver/vhusbd$arch" /opt/virtualhere/vhusbd @@ -10330,7 +10406,7 @@ _EOF_ case $G_HW_ARCH in 3) local arch='arm64';; 10) local arch='amd64';; - *) local arch='arm' + *) local arch='arm';; esac G_EXEC curl -sSfLo /usr/local/bin/minio "https://dl.minio.io/server/minio/release/linux-$arch/minio" From 18bc734f2182bb80b72fb56c56a91a84c7383e38 Mon Sep 17 00:00:00 2001 From: MichaIng Date: Sat, 4 Mar 2023 19:39:49 +0100 Subject: [PATCH 093/155] v8.15 - DietPi-Software | DietPi-Dashboard: Re-add RISC-V support, in case we get this working quickly --- dietpi/dietpi-software | 2 -- 1 file changed, 2 deletions(-) diff --git a/dietpi/dietpi-software b/dietpi/dietpi-software index 5271e30a19..cdd5cf51ac 100755 --- a/dietpi/dietpi-software +++ b/dietpi/dietpi-software @@ -1126,8 +1126,6 @@ Available commands: aSOFTWARE_DESC[$software_id]='Official lightweight DietPi web interface (Rust)' aSOFTWARE_CATX[$software_id]=8 aSOFTWARE_DOCS[$software_id]='https://dietpi.com/docs/software/system_stats/#dietpi-dashboard' - # - RISC-V: Missing binary - aSOFTWARE_AVAIL_G_HW_ARCH[$software_id,11]=0 #------------------ software_id=99 aSOFTWARE_NAME[$software_id]='Prometheus Node Exporter' From 9f216129e2e64e900661f2834936e75643e62419 Mon Sep 17 00:00:00 2001 From: MichaIng Date: Sat, 4 Mar 2023 19:51:13 +0100 Subject: [PATCH 094/155] v8.15 - Quartz64 | Upgrade kernel on DietPi update --- .update/patches | 62 ++++++++++++++++++++++++------------------------- CHANGELOG.txt | 1 + 2 files changed, 31 insertions(+), 32 deletions(-) diff --git a/.update/patches b/.update/patches index c34cebcdf5..9e49717092 100755 --- a/.update/patches +++ b/.update/patches @@ -854,34 +854,7 @@ Patch_8_11() G_EXEC sed -i 's|http://apt.armbian.com|https://apt.armbian.com|' /etc/apt/sources.list.d/dietpi-armbian.list fi - if (( $G_HW_MODEL == 49 )) - then - local text='A new Quartz64 firmware package is available, shipping Linux v6.1.0-rc1 and onboard WiFi firmware. Do you want to upgrade it on your system now?' - G_WHIP_BUTTON_CANCEL_TEXT='Skip' - if dpkg-query -s firmware-quartz64a &> /dev/null && G_WHIP_YESNO "$text" - then - G_EXEC_OUTPUT=1 G_EXEC curl -fO 'https://dietpi.com/downloads/binaries/firmware-quartz64a.deb' - G_EXEC_OUTPUT=1 G_EXEC dpkg -i firmware-quartz64a.deb - G_EXEC_HOHALT=1 G_EXEC rm firmware-quartz64a.deb - - elif dpkg-query -s firmware-quartz64b &> /dev/null && G_WHIP_YESNO "$text" - then - G_EXEC_OUTPUT=1 G_EXEC curl -fO 'https://dietpi.com/downloads/binaries/firmware-quartz64b.deb' - G_EXEC_OUTPUT=1 G_EXEC dpkg -i firmware-quartz64b.deb - G_EXEC_HOHALT=1 G_EXEC rm firmware-quartz64b.deb - - elif dpkg-query -s firmware-soquartz &> /dev/null && G_WHIP_YESNO "$text" - then - G_EXEC_OUTPUT=1 G_EXEC curl -fO 'https://dietpi.com/downloads/binaries/firmware-soquartz.deb' - G_EXEC_OUTPUT=1 G_EXEC dpkg -i firmware-soquartz.deb - G_EXEC_HOHALT=1 G_EXEC rm firmware-soquartz.deb - else - unset -v G_WHIP_BUTTON_CANCEL_TEXT - fi - # https://github.com/MichaIng/DietPi/issues/5890 - grep -q 'systemd.unified_cgroup_hierarchy=0' /boot/extlinux/extlinux.conf || G_EXEC sed -i '/^append /s/$/ systemd.unified_cgroup_hierarchy=0/' /boot/extlinux/extlinux.conf - - elif (( $G_HW_MODEL == 56 )) + if (( $G_HW_MODEL == 56 )) then # Revert https://forum.armbian.com/topic/20133-nanopi-neo3-dtb-gone-since-linux-dtb-current-rockchip64-22021/ since dtb is available again if [[ -f '/boot/dtb/rockchip/rk3328-nanopi-neo3-rev02.dtb' ]] && grep -q 'rk3328-nanopi-r2-rev00.dtb' /boot/armbianEnv.txt @@ -1110,11 +1083,36 @@ _EOF_ Patch_8_15() { - if (( $G_HW_MODEL == 49 )) && ! dpkg-query -s 'haveged' &> /dev/null + if (( $G_HW_MODEL == 49 )) then - G_DIETPI-NOTIFY 2 'Installing correct entropy daemon on Quartz64' - G_AGI haveged - G_AGP rng-tools5 + if ! dpkg-query -s 'haveged' &> /dev/null + then + G_DIETPI-NOTIFY 2 'Installing correct entropy daemon on Quartz64' + G_AGI haveged + G_AGP rng-tools5 + fi + + if dpkg-query -s firmware-quartz64a &> /dev/null + then + G_EXEC_OUTPUT=1 G_EXEC curl -fO 'https://dietpi.com/downloads/binaries/firmware-quartz64a.deb' + G_EXEC_OUTPUT=1 G_EXEC dpkg -i firmware-quartz64a.deb + G_EXEC_HOHALT=1 G_EXEC rm firmware-quartz64a.deb + + elif dpkg-query -s firmware-quartz64b &> /dev/null + then + G_EXEC_OUTPUT=1 G_EXEC curl -fO 'https://dietpi.com/downloads/binaries/firmware-quartz64b.deb' + G_EXEC_OUTPUT=1 G_EXEC dpkg -i firmware-quartz64b.deb + G_EXEC_HOHALT=1 G_EXEC rm firmware-quartz64b.deb + + elif dpkg-query -s firmware-soquartz &> /dev/null + then + G_EXEC_OUTPUT=1 G_EXEC curl -fO 'https://dietpi.com/downloads/binaries/firmware-soquartz.deb' + G_EXEC_OUTPUT=1 G_EXEC dpkg -i firmware-soquartz.deb + G_EXEC_HOHALT=1 G_EXEC rm firmware-soquartz.deb + fi + + # Revert with new kernel: https://github.com/MichaIng/DietPi/issues/5890 + grep -q ' systemd.unified_cgroup_hierarchy=0' /boot/extlinux/extlinux.conf && G_EXEC sed -i '/^append /s/ systemd.unified_cgroup_hierarchy=0//' /boot/extlinux/extlinux.conf fi (( $G_DISTRO > 6 )) || for i in '/etc/systemd/system/serial-getty@'*'.service.d/dietpi-baudrate.conf' diff --git a/CHANGELOG.txt b/CHANGELOG.txt index d7a33793ae..bdb6dfce4a 100644 --- a/CHANGELOG.txt +++ b/CHANGELOG.txt @@ -2,6 +2,7 @@ v8.15 (2023-03-11) Enhancements: +- Quartz64 | Major kernel update to latest v6.1.14, stable U-Boot v2022.04 and enabled a lot of kernel features for various container engines and firewall/filter tasks: https://github.com/MichaIng/DietPi/issues/6151 - DietPi-Installer | Resolved an issue where conflicting network configurations were left in place, e.g. from cloud-init when running the script on a VPS Debian image. Many thanks to @mews-se for reporting this issue: https://github.com/MichaIng/DietPi/issues/6067 - DietPi-CPU_info | The script and "cpu" command do not require root privileges anymore. Many thanks to @hansratzinger for bringing this to our attention: https://github.com/MichaIng/DietPi/issues/6196. The option to write available scaling frequencies to a file via command argument "2" has been removed as well. This was not documented anywhere and has no use for end users. Internally it was used by dietpi-config, where the code has now been moved to and overall shortened. - DietPi-Software | XRDP: TLS via snakeoil certificate is now enabled OOTB. This leads to a warning shown on Windows RDP clients until either a proper certificate signed by a trusted CA is used (e.g. by Let's Encrypt), or it is muted for the particular server via checkbox at the client. Many thanks to @amibumping for providing the needed step: https://github.com/MichaIng/DietPi/issues/5976 From eef83fc7c5d8347bd735f8364ee050cf7d8c3c3d Mon Sep 17 00:00:00 2001 From: MichaIng Date: Sat, 4 Mar 2023 19:54:32 +0100 Subject: [PATCH 095/155] v8.16 - StarFive VisionFive 2 | An experimental image has been added. For details, please read our related blog post: https://dietpi.com/blog/?p=2629 --- CHANGELOG.txt | 3 +++ 1 file changed, 3 insertions(+) diff --git a/CHANGELOG.txt b/CHANGELOG.txt index bdb6dfce4a..cbb6056a8c 100644 --- a/CHANGELOG.txt +++ b/CHANGELOG.txt @@ -1,6 +1,9 @@ v8.15 (2023-03-11) +New images: +- StarFive VisionFive 2 | An experimental image has been added. For details, please read our related blog post: https://dietpi.com/blog/?p=2629 + Enhancements: - Quartz64 | Major kernel update to latest v6.1.14, stable U-Boot v2022.04 and enabled a lot of kernel features for various container engines and firewall/filter tasks: https://github.com/MichaIng/DietPi/issues/6151 - DietPi-Installer | Resolved an issue where conflicting network configurations were left in place, e.g. from cloud-init when running the script on a VPS Debian image. Many thanks to @mews-se for reporting this issue: https://github.com/MichaIng/DietPi/issues/6067 From e28fc68a08d707d954ec731c14723f448391e86b Mon Sep 17 00:00:00 2001 From: MichaIng Date: Sat, 4 Mar 2023 19:57:16 +0100 Subject: [PATCH 096/155] v8.15 - RC up --- .update/version | 2 +- dietpi/func/dietpi-globals | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.update/version b/.update/version index 13874ca67a..a5ec8297b3 100644 --- a/.update/version +++ b/.update/version @@ -3,7 +3,7 @@ # Available DietPi version G_REMOTE_VERSION_CORE=8 G_REMOTE_VERSION_SUB=15 -G_REMOTE_VERSION_RC=-1 +G_REMOTE_VERSION_RC=0 # Minimum DietPi version to allow update G_MIN_VERSION_CORE=6 G_MIN_VERSION_SUB=14 diff --git a/dietpi/func/dietpi-globals b/dietpi/func/dietpi-globals index cf8060b4c1..ef7c65a037 100644 --- a/dietpi/func/dietpi-globals +++ b/dietpi/func/dietpi-globals @@ -59,7 +59,7 @@ # - Assign defaults/code version as fallback [[ $G_DIETPI_VERSION_CORE ]] || G_DIETPI_VERSION_CORE=8 [[ $G_DIETPI_VERSION_SUB ]] || G_DIETPI_VERSION_SUB=15 - [[ $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 0ee67072063cfb270715e0c6d4146ed70491dc3d Mon Sep 17 00:00:00 2001 From: MichaIng Date: Sat, 4 Mar 2023 20:04:33 +0100 Subject: [PATCH 097/155] v8.15 - META | Remove live patches merged from master --- .update/version | 19 +++---------------- 1 file changed, 3 insertions(+), 16 deletions(-) diff --git a/.update/version b/.update/version index c1bc78585c..a5ec8297b3 100644 --- a/.update/version +++ b/.update/version @@ -14,19 +14,6 @@ G_MIN_DEBIAN=5 # Alternative Git branch to automatically migrate to when Debian version is too low G_OLD_DEBIAN_BRANCH='stretch' # Live patches -G_LIVE_PATCH_DESC=( - [0]='Fix serial getty baudrate override' - [1]='Fix Python software installs due to changes in pip' - [2]='Fix Python software uninstalls due to changes in pip' -) -# shellcheck disable=SC2016 -G_LIVE_PATCH_COND=( - [0]='(( $G_DISTRO < 7 )) && grep -q '\''9600 -'\'' /etc/systemd/system/serial-getty@*.service.d/dietpi-baudrate.conf 2> /dev/null' - [1]='! grep -q '\''break-system-packages'\'' /boot/dietpi/dietpi-software' - [2]='grep -q '\''pip3 uninstall -y'\'' /boot/dietpi/dietpi-software' -) -G_LIVE_PATCH=( - [0]='sed -i '\''s/9600 -/9600 %I/'\'' /boot/dietpi/func/dietpi-set_hardware /etc/systemd/system/serial-getty@*.service.d/dietpi-baudrate.conf' - [1]='sed -Ei '\''s/^(\t\t\tG_EXEC_OUTPUT=1 G_EXEC (python3 get-pip.py|pip3 install))/\1 --break-system-packages/'\'' /boot/dietpi/dietpi-software' - [2]='sed -i '\''s/pip3 uninstall -y/pip3 uninstall --break-system-packages -y/'\'' /boot/dietpi/dietpi-software' -) +G_LIVE_PATCH_DESC=() +G_LIVE_PATCH_COND=() +G_LIVE_PATCH=() From 1da40718872d30425f421392d0e54c9f7ebadff3 Mon Sep 17 00:00:00 2001 From: MichaIng Date: Sat, 4 Mar 2023 21:10:50 +0100 Subject: [PATCH 098/155] v8.15 - DietPi-Update | Do not migrate do alternative branch if "G_DISTRO == 0", i.e. if the distro version was not detected correctly --- dietpi/dietpi-update | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dietpi/dietpi-update b/dietpi/dietpi-update index 952988f8aa..4c791d46e6 100755 --- a/dietpi/dietpi-update +++ b/dietpi/dietpi-update @@ -128,7 +128,7 @@ Check_Git_Migration() { # Automatically migrate to alternative branch if Debian or DietPi version is too low. - if (( $G_DISTRO < $G_MIN_DEBIAN )) + if (( $G_DISTRO && $G_DISTRO < $G_MIN_DEBIAN )) then G_DIETPI-NOTIFY 2 "Your Debian version is too low to update to the current branch: $G_DISTRO_NAME ($G_DISTRO)" G_DIETPI-NOTIFY 2 "We're switching to an alternative branch: $G_OLD_DEBIAN_BRANCH" From 5364bdde050bacc8969fe66c4c49a5108e8bc8c6 Mon Sep 17 00:00:00 2001 From: MichaIng Date: Sat, 4 Mar 2023 22:16:57 +0100 Subject: [PATCH 099/155] v8.15 - DietPi-Software | Add some more marks for RISC-V incompatible software titles --- dietpi/dietpi-software | 30 ++++++++++++++++++------------ 1 file changed, 18 insertions(+), 12 deletions(-) diff --git a/dietpi/dietpi-software b/dietpi/dietpi-software index cdd5cf51ac..312537fa0f 100755 --- a/dietpi/dietpi-software +++ b/dietpi/dietpi-software @@ -305,7 +305,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: Missing package + # - RISC-V: No package: https://downloads.nomachine.com/ aSOFTWARE_AVAIL_G_HW_ARCH[$software_id,11]=0 #------------------ software_id=120 @@ -340,7 +340,7 @@ Available commands: aSOFTWARE_CATX[$software_id]=2 aSOFTWARE_DOCS[$software_id]='https://dietpi.com/docs/software/media/#ympd' aSOFTWARE_DEPS[$software_id]='128' - # - RISC-V: Missing package + # - RISC-V: No binary: https://dietpi.com/downloads/binaries/all/ympd_1.2.3.7z aSOFTWARE_AVAIL_G_HW_ARCH[$software_id,11]=0 #------------------ software_id=148 @@ -349,7 +349,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: Missing package + # - RISC-V: No package: https://download.opensuse.org/repositories/home:/jcorporation/Debian_Unstable/ aSOFTWARE_AVAIL_G_HW_ARCH[$software_id,11]=0 #------------------ software_id=119 @@ -371,7 +371,7 @@ Available commands: aSOFTWARE_DESC[$software_id]='fka. SlimServer, SqueezeboxServer, SliMP3' aSOFTWARE_CATX[$software_id]=2 aSOFTWARE_DOCS[$software_id]='https://dietpi.com/docs/software/media/#logitech-media-server' - # - RISC-V: Missing package + # - RISC-V: No package: https://downloads.slimdevices.com/releases/latest.xml aSOFTWARE_AVAIL_G_HW_ARCH[$software_id,11]=0 #------------------ software_id=36 @@ -408,7 +408,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: Missing package + # - RISC-V: No package: https://github.com/MediaBrowser/Emby.Releases/releases aSOFTWARE_AVAIL_G_HW_ARCH[$software_id,11]=0 #------------------ software_id=42 @@ -418,7 +418,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: Missing package + # - RISC-V: No package aSOFTWARE_AVAIL_G_HW_ARCH[$software_id,11]=0 #------------------ software_id=43 @@ -442,7 +442,7 @@ Available commands: aSOFTWARE_DEPS[$software_id]='5' # - ARMv6 aSOFTWARE_AVAIL_G_HW_ARCH[$software_id,1]=0 - # - RISC-V: Missing package + # - RISC-V: No archive: https://help.roonlabs.com/portal/en/kb/articles/linux-install aSOFTWARE_AVAIL_G_HW_ARCH[$software_id,11]=0 #------------------ software_id=124 @@ -505,7 +505,7 @@ Available commands: aSOFTWARE_CATX[$software_id]=2 aSOFTWARE_DOCS[$software_id]='https://dietpi.com/docs/software/media/#roon-server' aSOFTWARE_DEPS[$software_id]='1 5 7' - # x86_64 only + # x86_64 only: https://help.roonlabs.com/portal/en/kb/articles/linux-install for ((i=1; i<=$MAX_G_HW_ARCH; i++)) do aSOFTWARE_AVAIL_G_HW_ARCH[$software_id,$i]=0 @@ -518,8 +518,8 @@ Available commands: aSOFTWARE_CATX[$software_id]=-1 aSOFTWARE_DOCS[$software_id]='https://dietpi.com/forum/t/dietpi-allo-com-web-gui-image/1523' aSOFTWARE_DEPS[$software_id]='36 37 65 88 89 96 124 128 129 152 160 163 webserver' - # Roon Bridge is not supported on ARMv6 - (( $G_HW_ARCH == 1 )) || aSOFTWARE_DEPS[$software_id]+=' 121' + # Roon Bridge is not supported on ARMv6 and RISC-V + (( $G_HW_ARCH == 1 || $G_HW_ARCH == 11 )) || aSOFTWARE_DEPS[$software_id]+=' 121' #------------------ software_id=160 aSOFTWARE_NAME[$software_id]='Allo GUI' @@ -572,6 +572,8 @@ 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/ + aSOFTWARE_AVAIL_G_HW_ARCH[$software_id,11]=0 #------------------ software_id=190 aSOFTWARE_NAME[$software_id]='Beets' @@ -587,6 +589,8 @@ Available commands: aSOFTWARE_DEPS[$software_id]='5' # - ARMv8: https://github.com/badaix/snapcast/issues/706 aSOFTWARE_AVAIL_G_HW_ARCH[$software_id,3]=0 + # - RISC-V: https://github.com/badaix/snapcast/releases + aSOFTWARE_AVAIL_G_HW_ARCH[$software_id,11]=0 #------------------ software_id=192 aSOFTWARE_NAME[$software_id]='Snapcast Client' @@ -597,6 +601,8 @@ Available commands: aSOFTWARE_INTERACTIVE[$software_id]=1 # - ARMv8: https://github.com/badaix/snapcast/issues/706 aSOFTWARE_AVAIL_G_HW_ARCH[$software_id,3]=0 + # - RISC-V: https://github.com/badaix/snapcast/releases + aSOFTWARE_AVAIL_G_HW_ARCH[$software_id,11]=0 #------------------ software_id=199 aSOFTWARE_NAME[$software_id]='Spotifyd' @@ -613,7 +619,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: Missing package + # - RISC-V: No archive: https://github.com/navidrome/navidrome/releases/ aSOFTWARE_AVAIL_G_HW_ARCH[$software_id,11]=0 # BitTorrent & Download @@ -1540,7 +1546,7 @@ Available commands: # - ARMv6 - ARMv7 aSOFTWARE_AVAIL_G_HW_ARCH[$software_id,1]=0 aSOFTWARE_AVAIL_G_HW_ARCH[$software_id,2]=0 - # - RISC-V: Missing package + # - RISC-V: No package: https://download.foldingathome.org/releases/public/release/fahclient/ aSOFTWARE_AVAIL_G_HW_ARCH[$software_id,11]=0 #------------------ software_id=133 From 6839af9effd7040462bc8b3c2a7ebc9b855cb797 Mon Sep 17 00:00:00 2001 From: MichaIng Date: Sat, 4 Mar 2023 23:57:46 +0100 Subject: [PATCH 100/155] v8.15 - DietPi-Installer | Use rng-tools5 on VisionFive 2 as better alternative to haveged, as the hardware random generator works now --- .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 e19ebc5ab1..c1a80c7afe 100644 --- a/.build/images/dietpi-installer +++ b/.build/images/dietpi-installer @@ -875,7 +875,7 @@ setenv rootuuid "true"' /boot/boot.cmd ) # Entropy daemon: Use modern rng-tools5 on all devices where it has been proven to work, else haveged: https://github.com/MichaIng/DietPi/issues/2806 - if [[ $G_HW_MODEL -lt 10 || $G_HW_MODEL =~ ^14|15|16|24|29|42|46|58|68|72|74|76|79$ ]] # RPi, S922X, Odroid C4, RK3399 - 47 NanoPi R4S, Radxa Zero, NanoPi R5S, NanoPi R6S + if [[ $G_HW_MODEL -lt 10 || $G_HW_MODEL =~ ^14|15|16|24|29|42|46|58|68|72|74|76|79|81$ ]] # RPi, S922X, Odroid C4, RK3399 - 47 NanoPi R4S, Radxa Zero, NanoPi R5S, NanoPi R6S, VisionFive 2 then aPACKAGES_REQUIRED_INSTALL+=('rng-tools5') else From 01142a6ac827ac8cc410d0a10ce7da61da54ad03 Mon Sep 17 00:00:00 2001 From: MichaIng Date: Sun, 5 Mar 2023 00:13:08 +0100 Subject: [PATCH 101/155] v8.15 - DietPi-Build | Append any ITYPE and allow to add a custom suffix via "-s" option to the image --- .build/images/dietpi-build | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/.build/images/dietpi-build b/.build/images/dietpi-build index 0cd5b9be1e..35452a9591 100755 --- a/.build/images/dietpi-build +++ b/.build/images/dietpi-build @@ -44,6 +44,7 @@ VMTYPE= GITBRANCH='master' GITOWNER='MichaIng' EDITION= +SUFFIX= while (( $# )) do case $1 in @@ -57,6 +58,7 @@ do '-b') shift; GITBRANCH=$1;; '-o') shift; GITOWNER=$1;; '-e') shift; EDITION=$1;; + '-s') shift; SUFFIX=$1 *) G_DIETPI-NOTIFY 1 "Invalid input \"$1\", aborting..."; exit 1;; esac shift @@ -178,11 +180,12 @@ G_CHECK_URL "https://github.com/$GITOWNER/DietPi/tree/$GITBRANCH" || { G_DIETPI- # 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' ]] then [[ $HW_ARCH == 10 ]] || { G_DIETPI-NOTIFY 1 "Unsupported option \"-i\" (installer image) for architecture \"$HW_ARCH\" passed, aborting..."; exit 1; } - OUTPUT_IMG_NAME+="_$ITYPE" CLONING_TOOL='Clonezilla' fi From 6b93e037d39da01e0cd1fdd26b354e1b7e19dc7e Mon Sep 17 00:00:00 2001 From: MichaIng Date: Sun, 5 Mar 2023 00:16:43 +0100 Subject: [PATCH 102/155] v8.15 - DietPi-Build | Syntax --- .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 35452a9591..0cefbc3c2a 100755 --- a/.build/images/dietpi-build +++ b/.build/images/dietpi-build @@ -58,7 +58,7 @@ do '-b') shift; GITBRANCH=$1;; '-o') shift; GITOWNER=$1;; '-e') shift; EDITION=$1;; - '-s') shift; SUFFIX=$1 + '-s') shift; SUFFIX=$1;; *) G_DIETPI-NOTIFY 1 "Invalid input \"$1\", aborting..."; exit 1;; esac shift From 89cc5d893f66c3c009007147dfd7006b9524c84a Mon Sep 17 00:00:00 2001 From: MichaIng Date: Sun, 5 Mar 2023 00:31:04 +0100 Subject: [PATCH 103/155] v8.15 - dietpi-bookworm-upgrade | Skip dedicated "apt upgrade" before "apt full-upgrade" --- .meta/dietpi-bookworm-upgrade | 1 - 1 file changed, 1 deletion(-) diff --git a/.meta/dietpi-bookworm-upgrade b/.meta/dietpi-bookworm-upgrade index 9e57fe9f95..126b9f70d1 100644 --- a/.meta/dietpi-bookworm-upgrade +++ b/.meta/dietpi-bookworm-upgrade @@ -22,7 +22,6 @@ G_PROMPT_BACKUP G_DIETPI-NOTIFY 2 'Upgrading APT packages to latest versions provided by Debian Bullseye' /boot/dietpi/dietpi-services stop G_AGUP -G_AGUG G_AGDUG G_AGA From 56f3752873f1316a838fc9ce40ba4a0f4a36806c Mon Sep 17 00:00:00 2001 From: MichaIng Date: Sun, 5 Mar 2023 00:15:05 +0100 Subject: [PATCH 104/155] v8.15 - DietPi-Build | Test VisionFive 2 with MBR partition --- .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 0cefbc3c2a..736dc18217 100755 --- a/.build/images/dietpi-build +++ b/.build/images/dietpi-build @@ -120,7 +120,7 @@ case $HW_MODEL in 78) iname='ROCK5B' HW_ARCH=3 PTTYPE='gpt' partition_start=16 boot_size=128 root_size=688 boot_fstype='ext4';; 79) iname='NanoPiR6S' HW_ARCH=3 root_size=752;; # Special case: Skips image file, partitioning and filesystem generation, but runs debootstrap only! 80) iname='OrangePi5' HW_ARCH=3 PTTYPE='gpt' partition_start=16 boot_size=128 root_size=688;; - 81) iname='VisionFive2' HW_ARCH=11 PTTYPE='gpt' root_size=639 DISTRO=7;; + 81) iname='VisionFive2' HW_ARCH=11 root_size=639 DISTRO=7;; *) G_DIETPI-NOTIFY 1 "Invalid hardware model \"$HW_MODEL\" passed, aborting..."; exit 1;; esac From 13fb4bc32a3bef4ec62e2762840d4464ecddfc71 Mon Sep 17 00:00:00 2001 From: MichaIng Date: Sun, 5 Mar 2023 01:33:48 +0100 Subject: [PATCH 105/155] v8.15 - DietPi-Installer | VisionFive 2: Install new kernel package --- .build/images/dietpi-installer | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/.build/images/dietpi-installer b/.build/images/dietpi-installer index c1a80c7afe..3c538c8277 100644 --- a/.build/images/dietpi-installer +++ b/.build/images/dietpi-installer @@ -1108,41 +1108,41 @@ _EOF_ 3) variant='soquartz';; *) variant='quartz64a';; esac - G_EXEC curl -sSfO "https://dietpi.com/downloads/binaries/firmware-$variant.deb" - G_EXEC_OUTPUT=1 G_EXEC dpkg -i "firmware-$variant.deb" - G_EXEC rm "firmware-$variant.deb" + G_EXEC curl -sSfo package.deb "https://dietpi.com/downloads/binaries/firmware-$variant.deb" + G_EXEC_OUTPUT=1 G_EXEC dpkg -i package.deb + G_EXEC rm package.deb # ToDo: Temporary workaround for read-only mount after filesystem expansion until v8.15 has been released: https://github.com/MichaIng/DietPi/issues/6149 G_EXEC sed -i '/resize2fs/s/;;/ || reboot;;/' /var/lib/dietpi/services/fs_partition_resize.sh # NanoPi R5S elif (( $G_HW_MODEL == 76 )) && { [[ ! $(find /lib/modules -mindepth 1 -maxdepth 1 -type d) ]] || dpkg-query -s 'firmware-nanopi5' &> /dev/null; } then - G_EXEC curl -sSfO 'https://dietpi.com/downloads/binaries/firmware-nanopi5.deb' - G_EXEC_OUTPUT=1 G_EXEC dpkg -i firmware-nanopi5.deb - G_EXEC rm firmware-nanopi5.deb + G_EXEC curl -sSfo package.deb 'https://dietpi.com/downloads/binaries/firmware-nanopi5.deb' + G_EXEC_OUTPUT=1 G_EXEC dpkg -i package.deb + G_EXEC rm package.deb # NanoPi R6S elif (( $G_HW_MODEL == 79 )) && { [[ ! $(find /lib/modules -mindepth 1 -maxdepth 1 -type d) ]] || dpkg-query -s 'firmware-nanopi6' &> /dev/null; } then - G_EXEC curl -sSfO 'https://dietpi.com/downloads/binaries/firmware-nanopi6.deb' - G_EXEC_OUTPUT=1 G_EXEC dpkg -i firmware-nanopi6.deb - G_EXEC rm firmware-nanopi6.deb + G_EXEC curl -sSfo package.deb 'https://dietpi.com/downloads/binaries/firmware-nanopi6.deb' + G_EXEC_OUTPUT=1 G_EXEC dpkg -i package.deb + G_EXEC rm package.deb # NanoPi M2/T2/Fire2 Linux 4.4: Requires dedicated boot partition, starting at 4 MiB for U-Boot, with ext4 filesystem elif [[ $G_HW_MODEL == 61 && $(findmnt -Ufnro FSTYPE -M /boot) == 'ext4' ]] && (( $(sfdisk -qlo Start "$BOOT_DEVICE" | mawk 'NR==2') >= 8192 )) then - G_EXEC curl -sSfO 'https://dietpi.com/downloads/binaries/firmware-nanopi2.deb' - G_EXEC_OUTPUT=1 G_EXEC dpkg -i firmware-nanopi2.deb - G_EXEC rm firmware-nanopi2.deb + G_EXEC curl -sSfo package.deb 'https://dietpi.com/downloads/binaries/firmware-nanopi2.deb' + G_EXEC_OUTPUT=1 G_EXEC dpkg -i package.deb + G_EXEC rm package.deb # VisionFive 2 elif [[ $G_HW_MODEL == 81 ]] then G_AGI debian-ports-archive-keyring [[ -f '/boot/extlinux/extlinux.conf' ]] && G_EXEC rm /boot/extlinux/extlinux.conf - G_EXEC curl -sSfO 'https://dietpi.com/downloads/binaries/linux-image-5.15.0-starfive.deb' - G_EXEC_OUTPUT=1 G_EXEC dpkg -i linux-image-5.15.0-starfive.deb - G_EXEC rm linux-image-5.15.0-starfive.deb + G_EXEC curl -sSfo package.deb 'https://dietpi.com/downloads/binaries/linux-image-visionfive2.deb' + G_EXEC_OUTPUT=1 G_EXEC dpkg -i package.deb + G_EXEC rm package.deb G_EXEC sed -i "s/root=[^[:blank:]]*/root=PARTUUID=$(findmnt -Ufnro PARTUUID -M /)/" /boot/extlinux/extlinux.conf G_EXEC sed -i "s/rootfstype=[^[:blank:]]*/rootfstype=$(findmnt -Ufnro FSTYPE -M /)/" /boot/extlinux/extlinux.conf From 479e53bf829679e9140ff350c4cd97780f098ef7 Mon Sep 17 00:00:00 2001 From: MichaIng Date: Sun, 5 Mar 2023 17:20:58 +0100 Subject: [PATCH 106/155] v8.15 - CHANGELOG | Update changed username and extend Quartz64 kernel update entry --- CHANGELOG.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.txt b/CHANGELOG.txt index cbb6056a8c..15097a5019 100644 --- a/CHANGELOG.txt +++ b/CHANGELOG.txt @@ -5,7 +5,7 @@ New images: - StarFive VisionFive 2 | An experimental image has been added. For details, please read our related blog post: https://dietpi.com/blog/?p=2629 Enhancements: -- Quartz64 | Major kernel update to latest v6.1.14, stable U-Boot v2022.04 and enabled a lot of kernel features for various container engines and firewall/filter tasks: https://github.com/MichaIng/DietPi/issues/6151 +- Quartz64 | Major kernel update to latest v6.1.14, stable U-Boot v2022.04 and enabled a lot of kernel features for various container engines and firewall/filter tasks: https://github.com/MichaIng/DietPi/issues/6151. The kernel upgrade will be applied on DietPi update. - DietPi-Installer | Resolved an issue where conflicting network configurations were left in place, e.g. from cloud-init when running the script on a VPS Debian image. Many thanks to @mews-se for reporting this issue: https://github.com/MichaIng/DietPi/issues/6067 - DietPi-CPU_info | The script and "cpu" command do not require root privileges anymore. Many thanks to @hansratzinger for bringing this to our attention: https://github.com/MichaIng/DietPi/issues/6196. The option to write available scaling frequencies to a file via command argument "2" has been removed as well. This was not documented anywhere and has no use for end users. Internally it was used by dietpi-config, where the code has now been moved to and overall shortened. - DietPi-Software | XRDP: TLS via snakeoil certificate is now enabled OOTB. This leads to a warning shown on Windows RDP clients until either a proper certificate signed by a trusted CA is used (e.g. by Let's Encrypt), or it is muted for the particular server via checkbox at the client. Many thanks to @amibumping for providing the needed step: https://github.com/MichaIng/DietPi/issues/5976 @@ -1324,7 +1324,7 @@ Bug Fixes: - DietPi-Software | Tor Hotspot: Resolved an issue where, since Buster, Tor fails to start due to deprecated config file entries. Many thanks to @blizarazu for reporting this issue: https://github.com/MichaIng/DietPi/issues/3261 - DietPi-Software | Allo web GUI: Resolved an issue where web access fails due to wrong permissions. Many thanks to @Heroldgray for reporting this issue: https://github.com/MichaIng/DietPi/issues/3264 - DietPi-Software | GMediaRender: Resolved an issue where service fails to start due to missing permissions. Many thanks to @fnsnyc for reporting this issue: https://github.com/MichaIng/DietPi/issues/3263 -- DietPi-Software | GMediaRender: Resolved issues due to limited binary features by using new own compiled binaries, based on gmrender-resurrect v0.0.8. Many thanks to @fnsnyc and @hifitime for reporting this issue: https://github.com/MichaIng/DietPi/issues/3263, https://github.com/MichaIng/DietPi/issues/3246 +- DietPi-Software | GMediaRender: Resolved issues due to limited binary features by using new own compiled binaries, based on gmrender-resurrect v0.0.8. Many thanks to @fnsnyc and @chips023 for reporting this issue: https://github.com/MichaIng/DietPi/issues/3263, https://github.com/MichaIng/DietPi/issues/3246 - DietPi-Software | Nextcloud: Resolved an issue where install fails due to a bug in Nextcloud 17.0.2. DietPi will now install Nextcloud 17.0.1 until the bug has been fixed. Updates from web UI are still possible, this only affects the fresh install. Many thanks to @DevinCharles for reporting this issue: https://github.com/MichaIng/DietPi/issues/3275 - DietPi-Software | Redis: Resolved an issue where service start failed in some cases. File logging is now disabled and replaced by journal logging, hence all combined Redis logs are now available via: journalctl -u redis-server. Many thanks to @dankerthrone for reporting this issue: https://github.com/MichaIng/DietPi/issues/3291 From 61635cd478bb5964c38bd1c02eff613f2651d985 Mon Sep 17 00:00:00 2001 From: MichaIng Date: Sun, 5 Mar 2023 22:06:48 +0100 Subject: [PATCH 107/155] v8.15 - U-Boot | Remove verbosity/loglevel variable from boot config. This is very rarely used and partly overridden by sysctl. If needed it can be easily set via extraargs --- .build/images/U-Boot/boot.cmd | 3 +-- .build/images/U-Boot/dietpiEnv.txt | 1 - 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/.build/images/U-Boot/boot.cmd b/.build/images/U-Boot/boot.cmd index 64cfd45fbf..9c6d5b776f 100644 --- a/.build/images/U-Boot/boot.cmd +++ b/.build/images/U-Boot/boot.cmd @@ -9,7 +9,6 @@ setenv rootdev "/dev/mmcblk0p1" setenv rootfstype "ext4" setenv consoleargs "console=tty1" -setenv verbosity "4" setenv docker_optimizations "off" setenv overlay_path "amlogic" setenv overlay_prefix "meson" @@ -26,7 +25,7 @@ if load ${devtype} ${devnum} ${scriptaddr} ${prefix}dietpiEnv.txt; then fi # Define kernel command-line arguments -setenv bootargs "root=${rootdev} rootfstype=${rootfstype} rootwait ${consoleargs} loglevel=${verbosity} consoleblank=0 coherent_pool=2M usb-storage.quirks=${usbstoragequirks} ${extraargs}" +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 diff --git a/.build/images/U-Boot/dietpiEnv.txt b/.build/images/U-Boot/dietpiEnv.txt index 8fb53ad871..5b5b9de5b5 100644 --- a/.build/images/U-Boot/dietpiEnv.txt +++ b/.build/images/U-Boot/dietpiEnv.txt @@ -2,7 +2,6 @@ rootdev=/dev/mmcblk0p1 rootfstype=ext4 # The init system logs to the console defined last. consoleargs=console=ttyAML0,115200 console=tty1 -verbosity=4 usbstoragequirks= extraargs=net.ifnames=0 docker_optimizations=off From 22d3c2deae2b2add8f7b4b6f0dd41ade8fb07f4b Mon Sep 17 00:00:00 2001 From: MichaIng Date: Sun, 5 Mar 2023 22:48:13 +0100 Subject: [PATCH 108/155] v8.15 - DietPi-Software | OctoPrint: Enable install on RISC-V platforms --- dietpi/dietpi-software | 3 +++ 1 file changed, 3 insertions(+) diff --git a/dietpi/dietpi-software b/dietpi/dietpi-software index 312537fa0f..f7baf51a2d 100755 --- a/dietpi/dietpi-software +++ b/dietpi/dietpi-software @@ -10243,6 +10243,9 @@ _EOF_ # ARMv8 and x86_64 Bookworm: gcc for netifaces, psutil (ARMv8-only) (( $G_HW_ARCH == 3 )) || (( $G_HW_ARCH == 10 && $G_DISTRO > 6 )) && G_AGI gcc + # RISC-V: gcc and libffi-dev for cffi + (( $G_HW_ARCH == 11 )) && G_AGI gcc libffi-dev + # Pre-create user and its home directory to allow user-level Python instance Create_User -G dialout,tty,video -d /mnt/dietpi_userdata/octoprint octoprint [[ -d '/mnt/dietpi_userdata/octoprint' ]] || G_EXEC mkdir /mnt/dietpi_userdata/octoprint From f0fd7bb746b6558e9f93630a884e12727ad7aabe Mon Sep 17 00:00:00 2001 From: MichaIng Date: Mon, 6 Mar 2023 00:43:29 +0100 Subject: [PATCH 109/155] v8.15 - DietPi-Software | Go: Enable on RISC-V via Debian archive package --- dietpi/dietpi-software | 43 ++++++++++++++++++++++-------------------- 1 file changed, 23 insertions(+), 20 deletions(-) diff --git a/dietpi/dietpi-software b/dietpi/dietpi-software index f7baf51a2d..e95be29ad6 100755 --- a/dietpi/dietpi-software +++ b/dietpi/dietpi-software @@ -1736,8 +1736,6 @@ Available commands: aSOFTWARE_CATX[$software_id]=26 aSOFTWARE_DOCS[$software_id]='https://dietpi.com/docs/software/programming/#go' aSOFTWARE_DEPS[$software_id]='17' - # - RISC-V: Missing package - aSOFTWARE_AVAIL_G_HW_ARCH[$software_id,11]=0 #------------------ software_id=8 aSOFTWARE_NAME[$software_id]='Java JDK' @@ -3071,28 +3069,32 @@ unix_socket_directories = '/run/postgresql'" > "$i/00dietpi.conf" if To_Install 188 # Go then - # https://golang.org/doc/install#install - - case $G_HW_ARCH in - 3) local arch='arm64';; - 10) local arch='amd64';; - *) local arch='armv6l';; - esac + # https://go.dev/doc/install#install + if (( $G_HW_ARCH == 11 )) + then + G_AGI golang-go + else + case $G_HW_ARCH in + 3) local arch='arm64';; + 10) local arch='amd64';; + *) local arch='armv6l';; + esac - # Get latest version - local file=$(curl -sSfL 'https://golang.org/dl/?mode=json' | grep -wo "go[0-9.]*\.linux-$arch\.tar\.gz" | head -1) - [[ $file ]] || { file="go1.19.3.linux-$arch.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"; } + # Get latest version + local file=$(curl -sSfL 'https://go.dev/dl/?mode=json' | grep -wo "go[0-9.]*\.linux-$arch\.tar\.gz" | head -1) + [[ $file ]] || { file="go1.20.1.linux-$arch.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"; } - # Reinstall: Remove previous instance - [[ -d '/usr/local/go' ]] && G_EXEC rm -R /usr/local/go + # Reinstall: Remove previous instance + [[ -d '/usr/local/go' ]] && G_EXEC rm -R /usr/local/go - Download_Install "https://golang.org/dl/$file" /usr/local + Download_Install "https://dl.google.com/go/$file" /usr/local - # Add to PATH, but do not overwrite existing script since we did set GOPATH until v8.9 and do not want to cause a breaking change for existing installs - # shellcheck disable=SC2016 - [[ -f '/etc/bashrc.d/go.sh' ]] || G_EXEC eval 'echo '\''export PATH="$PATH:/usr/local/go/bin"'\'' > /etc/bashrc.d/go.sh' - # shellcheck disable=SC1091 - . /etc/bashrc.d/go.sh + # Add to PATH, but do not overwrite existing script since we did set GOPATH until v8.9 and do not want to cause a breaking change for existing installs + # shellcheck disable=SC2016 + [[ -f '/etc/bashrc.d/go.sh' ]] || G_EXEC eval 'echo '\''export PATH="$PATH:/usr/local/go/bin"'\'' > /etc/bashrc.d/go.sh' + # shellcheck disable=SC1091 + . /etc/bashrc.d/go.sh + fi fi if To_Install 170 # UnRAR @@ -14381,6 +14383,7 @@ _EOF_ if To_Uninstall 188 # Go then + G_AGP golang-go [[ -f '/etc/bashrc.d/go.sh' ]] && G_EXEC rm /etc/bashrc.d/go.sh [[ -d '/usr/local/go' ]] && G_EXEC rm -R /usr/local/go fi From e2f2aab638fee808b6b5cf8691b9b577f66bc13c Mon Sep 17 00:00:00 2001 From: MichaIng Date: Mon, 6 Mar 2023 12:56:47 +0100 Subject: [PATCH 110/155] v8.15 - DietPi-Drive_Manager | Do not try to install exfat-utils on Bookworm, where it does not exist anymore --- dietpi/dietpi-drive_manager | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/dietpi/dietpi-drive_manager b/dietpi/dietpi-drive_manager index 310b1fc53e..69f519d8de 100755 --- a/dietpi/dietpi-drive_manager +++ b/dietpi/dietpi-drive_manager @@ -967,14 +967,15 @@ Do you wish to ignore this warning, and, mount the drive regardless?" || return Install_exFAT_Tools() { - # Install FUSE driver if kernel does not support exFAT natively and on Bullseye exfatprogs if it does, else exfat-utils + # Install FUSE driver if kernel does not support exFAT natively and on Bullseye prefer exfat-utils over exfatprogs local apackages=() if modprobe -q exfat then - (( $G_DISTRO > 5 )) && apackages=('exfatprogs') || apackages=('exfat-utils') + (( $G_DISTRO > 5 )) && apackages=('exfatprogs') || apackages=('exfat-utils') # exfatprogs not available until Bullseye dpkg-query -s 'exfat-fuse' &> /dev/null && G_AGP exfat-fuse else - apackages=('exfat-fuse' 'exfat-utils') + (( $G_DISTRO > 6 )) && apackages=('exfatprogs') || apackages=('exfat-utils') # exfat-utils not available since Bookworm + apackages+=('exfat-fuse') fi G_AG_CHECK_INSTALL_PREREQ "${apackages[@]}" } From 63a813152a337f2f99cfcb81ccab58827ae6a807 Mon Sep 17 00:00:00 2001 From: MichaIng Date: Sun, 5 Mar 2023 20:37:33 +0100 Subject: [PATCH 111/155] v8.15 - DietPi-Build | Generate ROCK 5B images with a single ext4 partition --- .build/images/dietpi-build | 2 +- .build/images/dietpi-installer | 3 +-- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/.build/images/dietpi-build b/.build/images/dietpi-build index 736dc18217..ed52246c7d 100755 --- a/.build/images/dietpi-build +++ b/.build/images/dietpi-build @@ -117,7 +117,7 @@ case $HW_MODEL in 75) iname='Container' HW_ARCH=${HW_ARCH:-10} root_size=447;; 76) iname='NanoPiR5S' HW_ARCH=3 root_size=752;; # Special case: Skips image file, partitioning and filesystem generation, but runs debootstrap only! 77) iname='ROCK3A' HW_ARCH=3 PTTYPE='gpt' partition_start=16 boot_size=128 root_size=688;; - 78) iname='ROCK5B' HW_ARCH=3 PTTYPE='gpt' partition_start=16 boot_size=128 root_size=688 boot_fstype='ext4';; + 78) iname='ROCK5B' HW_ARCH=3 PTTYPE='gpt' partition_start=16 root_size=752;; 79) iname='NanoPiR6S' HW_ARCH=3 root_size=752;; # Special case: Skips image file, partitioning and filesystem generation, but runs debootstrap only! 80) iname='OrangePi5' HW_ARCH=3 PTTYPE='gpt' partition_start=16 boot_size=128 root_size=688;; 81) iname='VisionFive2' HW_ARCH=11 root_size=639 DISTRO=7;; diff --git a/.build/images/dietpi-installer b/.build/images/dietpi-installer index 3c538c8277..d88976215d 100644 --- a/.build/images/dietpi-installer +++ b/.build/images/dietpi-installer @@ -566,9 +566,8 @@ _EOF_ G_EXEC mv "DietPi-$G_GITBRANCH/.build/images/U-Boot/99-dietpi-uboot" /etc/initramfs/post-update.d/99-dietpi-uboot G_EXEC sed -i 's/arm64/arm/' /etc/initramfs/post-update.d/99-dietpi-uboot - elif [[ $G_HW_MODEL =~ ^12|15|16|40|42|43|44|45|46|47|48|52|54|55|56|57|58|59|60|63|64|65|66|67|68|72|73|74$ || + elif [[ $G_HW_MODEL =~ ^12|15|16|40|42|43|44|45|46|47|48|52|54|55|56|57|58|59|60|63|64|65|66|67|68|72|73|74|78$ || ( $G_HW_MODEL == 62 && $(findmnt -Ufnro FSTYPE -T /boot) == 'ext4' ) || # NanoPi M3/T3/Fire3 bootloader supports ext4 only - ( $G_HW_MODEL == 78 && $(findmnt -M /boot) ) || # ROCK 5B requries a dedicated boot partition ( $G_HW_MODEL =~ ^77|80$ && $(findmnt -t vfat -M /boot) ) ]] # ROCK 3A and Orange Pi 5 required a dedicated boot partition with FAT filesystem then G_EXEC mv "DietPi-$G_GITBRANCH/.build/images/U-Boot/boot.cmd" /boot/boot.cmd From 04cabb9102d84a26bffba87b0b4126292765d334 Mon Sep 17 00:00:00 2001 From: MichaIng Date: Mon, 6 Mar 2023 13:35:34 +0100 Subject: [PATCH 112/155] v8.15 - META | Remove tailing space --- dietpi/dietpi-drive_manager | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dietpi/dietpi-drive_manager b/dietpi/dietpi-drive_manager index 69f519d8de..3d1e1a6d12 100755 --- a/dietpi/dietpi-drive_manager +++ b/dietpi/dietpi-drive_manager @@ -967,7 +967,7 @@ Do you wish to ignore this warning, and, mount the drive regardless?" || return Install_exFAT_Tools() { - # Install FUSE driver if kernel does not support exFAT natively and on Bullseye prefer exfat-utils over exfatprogs + # Install FUSE driver if kernel does not support exFAT natively and on Bullseye prefer exfat-utils over exfatprogs local apackages=() if modprobe -q exfat then From e62d641cc764971c7a8070b28125f148d9760de5 Mon Sep 17 00:00:00 2001 From: MichaIng Date: Mon, 6 Mar 2023 16:49:17 +0100 Subject: [PATCH 113/155] v8.15 - DietPi-Software | Do not manually remove service files which are removed as part of a package removal anyway. Fix info in code comments about Shairport Sync removal, where we switched to a DEB package with v6.29 while it hasn't been touched with v7.2, and the removal of the service below /etc was never needed as the previous 7z archive installed it to /lib as well. --- dietpi/dietpi-software | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/dietpi/dietpi-software b/dietpi/dietpi-software index e95be29ad6..34f78bf797 100755 --- a/dietpi/dietpi-software +++ b/dietpi/dietpi-software @@ -12147,7 +12147,6 @@ If no WireGuard (auto)start is included, but you require it, please do the follo then G_EXEC systemctl unmask tor G_EXEC systemctl disable --now tor - G_EXEC rm /lib/systemd/system/tor.service fi [[ -d '/etc/systemd/system/tor.service.d' ]] && G_EXEC rm -R /etc/systemd/system/tor.service.d G_AGP tor obfs4proxy @@ -12170,7 +12169,6 @@ If no WireGuard (auto)start is included, but you require it, please do the follo then G_EXEC systemctl unmask webmin G_EXEC systemctl disable --now webmin - G_EXEC rm /lib/systemd/system/webmin.service fi [[ -d '/etc/systemd/system/webmin.service.d' ]] && G_EXEC rm -R /etc/systemd/system/webmin.service.d G_AGP webmin @@ -12229,10 +12227,8 @@ If no WireGuard (auto)start is included, but you require it, please do the follo then G_EXEC systemctl unmask mpd G_EXEC systemctl disable --now mpd - G_EXEC rm /lib/systemd/system/mpd.service fi [[ -d '/etc/systemd/system/mpd.service.d' ]] && G_EXEC rm -R /etc/systemd/system/mpd.service.d - [[ -f '/lib/systemd/system/mpd.socket' ]] && G_EXEC rm /lib/systemd/system/mpd.socket G_AGP mpd libmpdclient2 getent passwd mpd > /dev/null && G_EXEC userdel mpd getent group mpd > /dev/null && G_EXEC groupdel mpd # pre-v6.29 @@ -12736,17 +12732,16 @@ If no WireGuard (auto)start is included, but you require it, please do the follo if To_Uninstall 37 # Shairport Sync then G_AGP shairport-sync - # Pre-v7.2 + # Pre-v6.29 if [[ -f '/lib/systemd/system/shairport-sync.service' ]] then G_EXEC systemctl unmask shairport-sync G_EXEC systemctl disable --now shairport-sync - G_EXEC rm -Rf /{lib,etc}/systemd/system/shairport-sync* + G_EXEC rm /lib/systemd/system/shairport-sync.service fi [[ -d '/etc/systemd/system/shairport-sync.service.d' ]] && G_EXEC rm -R /etc/systemd/system/shairport-sync.service.d getent passwd shairport-sync > /dev/null && G_EXEC userdel shairport-sync getent group shairport-sync > /dev/null && G_EXEC groupdel shairport-sync - # Pre-v6.29 G_EXEC rm -f /usr/local/bin/shairport-sync /usr/local/etc/shairport-sync.conf* /usr/local/share/man/man7/shairport-sync.7.gz fi From 6a24d773175545131628e2b4667985269080a4a6 Mon Sep 17 00:00:00 2001 From: MichaIng Date: Tue, 7 Mar 2023 01:11:59 +0100 Subject: [PATCH 114/155] v8.15 - DietPi-Software | HTPC Manager: Fix install on Bookworm, enable on RISC-V and remove generic Build-Essemtial dependency - DietPi-Software | Box86/64: Remove generic Build-Essemtial dependency, enable Box64 on RISC-V and add commented new build targets, enabled on next release - DietPi-Software | Firefox Sync Server: Remove dependency on generic Build-Essemtial, use latest commit, but remove newly added PostgreSQL module dependency, as we use SQLite - DietPi-Software | MineOS: Remove dependency on generic Build-Essemtial - DietPi-Software | Node-RED: Remove dependency on generic Build-Essemtial - DietPi-Software | WebIOPi: Remove dependency on generic Build-Essemtial - DietPi-Software | Remove Build-Essemtial install option, since all previous dependants do now install the individual development packages subset required --- .meta/dietpi-survey_report | 1 + .update/patches | 3 + CHANGELOG.txt | 3 + dietpi/dietpi-software | 138 ++++++++++++++++++++----------------- 4 files changed, 83 insertions(+), 62 deletions(-) diff --git a/.meta/dietpi-survey_report b/.meta/dietpi-survey_report index 5aed5570fc..d4dcc046d3 100755 --- a/.meta/dietpi-survey_report +++ b/.meta/dietpi-survey_report @@ -644,6 +644,7 @@ shopt -s extglob aSOFTWARE_NAME8_14[$i]=${aSOFTWARE_NAME8_13[$i]} aSOFTWARE_NAME8_15[$i]=${aSOFTWARE_NAME8_14[$i]} done + unset -v 'aSOFTWARE_NAME8_15[16]' # Build-Essential # Pre-create software counter array so that we can see also software (available in newest version) with 0 installs for i in "${aSOFTWARE_NAME8_15[@]}" diff --git a/.update/patches b/.update/patches index 9e49717092..6788a0bd78 100755 --- a/.update/patches +++ b/.update/patches @@ -1130,6 +1130,9 @@ _EOF_ then # WiFi Hotspot: https://github.com/MichaIng/DietPi/issues/6166 grep -q '^[[:blank:]]*aSOFTWARE_INSTALL_STATE\[60\]=2' /boot/dietpi/.installed && G_EXEC systemctl enable hostapd isc-dhcp-server + + # Remove obsolete Build-Essential install state + grep -q '^[[:blank:]]*aSOFTWARE_INSTALL_STATE\[16\]=' /boot/dietpi/.installed && G_EXEC sed -i '/^[[:blank:]]*aSOFTWARE_INSTALL_STATE\[16\]=/d' /boot/dietpi/.installed fi } diff --git a/CHANGELOG.txt b/CHANGELOG.txt index 15097a5019..934dd12d4e 100644 --- a/CHANGELOG.txt +++ b/CHANGELOG.txt @@ -4,6 +4,9 @@ v8.15 New images: - StarFive VisionFive 2 | An experimental image has been added. For details, please read our related blog post: https://dietpi.com/blog/?p=2629 +Removed software: +- Build-Essential | The C/C++ build tools and headers install option has been removed. It was used as generic dependency for other software options, but with the downside that often more packages were installed than required. When compiling is done, specific additional development headers are usually required anyway, so adding the required compiler and in case "make" per software option isn't such a burden. Hence, this has been done gradually and finally finished, making "Build-Essential" obsolete. + Enhancements: - Quartz64 | Major kernel update to latest v6.1.14, stable U-Boot v2022.04 and enabled a lot of kernel features for various container engines and firewall/filter tasks: https://github.com/MichaIng/DietPi/issues/6151. The kernel upgrade will be applied on DietPi update. - DietPi-Installer | Resolved an issue where conflicting network configurations were left in place, e.g. from cloud-init when running the script on a VPS Debian image. Many thanks to @mews-se for reporting this issue: https://github.com/MichaIng/DietPi/issues/6067 diff --git a/dietpi/dietpi-software b/dietpi/dietpi-software index 34f78bf797..a0f7d41f9f 100755 --- a/dietpi/dietpi-software +++ b/dietpi/dietpi-software @@ -752,7 +752,7 @@ Available commands: aSOFTWARE_DESC[$software_id]='Manage your HTPC from anywhere' aSOFTWARE_CATX[$software_id]=3 aSOFTWARE_DOCS[$software_id]='https://dietpi.com/docs/software/bittorrent/#htpc-manager' - aSOFTWARE_DEPS[$software_id]='16 17 130' + aSOFTWARE_DEPS[$software_id]='17 130' #------------------ software_id=195 aSOFTWARE_NAME[$software_id]='youtube-dl' @@ -854,8 +854,8 @@ Available commands: aSOFTWARE_DESC[$software_id]='Sync bookmarks, tabs, history & passwords' aSOFTWARE_CATX[$software_id]=4 aSOFTWARE_DOCS[$software_id]='https://dietpi.com/docs/software/cloud/#firefox-sync-server' - aSOFTWARE_DEPS[$software_id]='16 87' - # Python 2 only, hence not supported on Bullseye + aSOFTWARE_DEPS[$software_id]='87' + # Python 2 only, hence supported only on Buster aSOFTWARE_AVAIL_G_DISTRO[$software_id,6]=0 aSOFTWARE_AVAIL_G_DISTRO[$software_id,7]=0 #------------------ @@ -928,7 +928,7 @@ Available commands: aSOFTWARE_DESC[$software_id]='Minecraft servers with web interface (Java/Node.js)' aSOFTWARE_CATX[$software_id]=5 aSOFTWARE_DOCS[$software_id]='https://dietpi.com/docs/software/gaming/#mineos' - aSOFTWARE_DEPS[$software_id]='196 9 16 17' + aSOFTWARE_DEPS[$software_id]='9 17 196' #------------------ software_id=156 aSOFTWARE_NAME[$software_id]='Steam' @@ -941,6 +941,7 @@ Available commands: # x86_64 and ARMv7 only aSOFTWARE_AVAIL_G_HW_ARCH[$software_id,1]=0 aSOFTWARE_AVAIL_G_HW_ARCH[$software_id,3]=0 + aSOFTWARE_AVAIL_G_HW_ARCH[$software_id,11]=0 #------------------ software_id=164 aSOFTWARE_NAME[$software_id]='Nukkit' @@ -965,19 +966,18 @@ Available commands: aSOFTWARE_DESC[$software_id]='x86 userspace emulation' aSOFTWARE_CATX[$software_id]=5 aSOFTWARE_DOCS[$software_id]='https://dietpi.com/docs/software/gaming/#box86' - aSOFTWARE_DEPS[$software_id]='16' # ARMv7 only aSOFTWARE_AVAIL_G_HW_ARCH[$software_id,1]=0 aSOFTWARE_AVAIL_G_HW_ARCH[$software_id,3]=0 aSOFTWARE_AVAIL_G_HW_ARCH[$software_id,10]=0 + aSOFTWARE_AVAIL_G_HW_ARCH[$software_id,11]=0 #------------------ software_id=197 aSOFTWARE_NAME[$software_id]='Box64' aSOFTWARE_DESC[$software_id]='x86_64 userspace emulation' aSOFTWARE_CATX[$software_id]=5 aSOFTWARE_DOCS[$software_id]='https://dietpi.com/docs/software/gaming/#box64' - aSOFTWARE_DEPS[$software_id]='16' - # ARMv8 only + # ARMv8 and RISC-V only aSOFTWARE_AVAIL_G_HW_ARCH[$software_id,1]=0 aSOFTWARE_AVAIL_G_HW_ARCH[$software_id,2]=0 aSOFTWARE_AVAIL_G_HW_ARCH[$software_id,10]=0 @@ -1194,7 +1194,7 @@ Available commands: aSOFTWARE_DESC[$software_id]='Web interface to control RPi GPIO channels' aSOFTWARE_CATX[$software_id]=10 aSOFTWARE_DOCS[$software_id]='https://dietpi.com/docs/software/hardware_projects/#webiopi' - aSOFTWARE_DEPS[$software_id]='16 69' + aSOFTWARE_DEPS[$software_id]='69' # RPi only for ((i=10; i<=$MAX_G_HW_MODEL; i++)) do @@ -1228,7 +1228,7 @@ Available commands: aSOFTWARE_DESC[$software_id]='tool for wiring devices, APIs and online services' aSOFTWARE_CATX[$software_id]=10 aSOFTWARE_DOCS[$software_id]='https://dietpi.com/docs/software/hardware_projects/#node-red' - aSOFTWARE_DEPS[$software_id]='9 16' + aSOFTWARE_DEPS[$software_id]='9' (( $G_HW_MODEL > 9 )) || aSOFTWARE_DEPS[$software_id]+=' 69' #------------------ software_id=123 @@ -1705,11 +1705,6 @@ Available commands: # Development & Programming #-------------------------------------------------------------------------------- - software_id=16 - aSOFTWARE_NAME[$software_id]='Build-Essential' - aSOFTWARE_DESC[$software_id]='GNU C/C++ compiler, development libraries and headers' - aSOFTWARE_CATX[$software_id]=26 - #------------------ software_id=17 aSOFTWARE_NAME[$software_id]='Git' aSOFTWARE_DESC[$software_id]='Clone and manage Git repositories locally' @@ -1741,12 +1736,14 @@ Available commands: aSOFTWARE_NAME[$software_id]='Java JDK' aSOFTWARE_DESC[$software_id]='OpenJDK Development Kit' aSOFTWARE_CATX[$software_id]=26 + aSOFTWARE_DOCS[$software_id]='https://dietpi.com/docs/software/programming/#java' aSOFTWARE_DEPS[$software_id]='196' #------------------ 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' #------------------ software_id=9 aSOFTWARE_NAME[$software_id]='Node.js' @@ -1758,6 +1755,7 @@ Available commands: aSOFTWARE_NAME[$software_id]='Mono' aSOFTWARE_DESC[$software_id]='Runtime libraries and repository' aSOFTWARE_CATX[$software_id]=26 + aSOFTWARE_DOCS[$software_id]='https://dietpi.com/docs/software/programming/#mono' #------------------ software_id=34 aSOFTWARE_NAME[$software_id]='PHP Composer' @@ -2707,11 +2705,6 @@ _EOF_ G_EXEC systemctl stop avahi-daemon fi - if To_Install 16 # Build-Essential - then - G_AGI g++ make automake - fi - if To_Install 17 # Git then G_AGI git @@ -6652,8 +6645,11 @@ _EOF_ if To_Install 122 # Node-RED then + # APT deps + G_AGI python3 + # Data dir - [[ -d '/mnt/dietpi_userdata/node-red' ]] || G_EXEC mkdir /mnt/dietpi_userdata/node-red + G_EXEC mkdir -p /mnt/dietpi_userdata/node-red # User Create_User -G dialout,gpio,i2c,spi -d /mnt/dietpi_userdata/node-red nodered @@ -6663,6 +6659,11 @@ _EOF_ # Permissions G_EXEC chown -R nodered:nodered /mnt/dietpi_userdata/node-red + # Install as local instance for "nodered" user + G_EXEC cd /mnt/dietpi_userdata/node-red + G_EXEC_OUTPUT=1 G_EXEC sudo -u nodered npm i --no-audit node-red + G_EXEC cd "$G_WORKING_DIR" + # Service cat << '_EOF_' > /etc/systemd/system/node-red.service [Unit] @@ -6675,14 +6676,6 @@ ExecStart=/mnt/dietpi_userdata/node-red/node_modules/.bin/node-red -u /mnt/dietp [Install] WantedBy=multi-user.target _EOF_ - # Pre-reqs - G_AGI python3 - - # Install as local instance for "nodered" user - G_EXEC cd /mnt/dietpi_userdata/node-red - G_EXEC_OUTPUT=1 G_EXEC sudo -u nodered npm i --no-audit node-red - G_EXEC cd "$G_WORKING_DIR" - # CLI alias echo 'alias node-red-admin='\''sudo -u nodered /mnt/dietpi_userdata/node-red/node_modules/.bin/node-red-admin'\' > /etc/bashrc.d/dietpi-node-red.sh fi @@ -6851,7 +6844,7 @@ _EOF_ local reinstall=0 [[ -f '/etc/webiopi/config' ]] && reinstall=1 - aDEPS=('python3-dev' 'python3-setuptools' 'patch') + aDEPS=('python3-dev' 'python3-setuptools' 'gcc' 'patch') Download_Install 'https://github.com/Freenove/WebIOPi/archive/master.tar.gz' G_EXEC cd WebIOPi-master/WebIOPi-* @@ -8313,12 +8306,11 @@ _EOF_ local url='https://github.com/hexparrot/mineos-node.git' G_CHECK_URL "$url" - # Python 3 is not pulled by rdiff-backup on Buster, but required to compile Node.js posix. + # APT deps + # - Buster: Python 3 is not pulled by rdiff-backup on Buster, but required to compile Node.js posix. local python=() (( $G_DISTRO > 5 )) || python=('python3') - - # APT deps - G_AGI rdiff-backup rsync screen "${python[@]}" + G_AGI rdiff-backup rsync screen make g++ "${python[@]}" # Download/Update MineOS [[ -d '/mnt/dietpi_userdata/mineos' ]] || G_EXEC mkdir /mnt/dietpi_userdata/mineos @@ -9283,18 +9275,18 @@ _EOF_ if To_Install 177 # Firefox Sync Server then # Dependencies: https://github.com/mozilla-services/syncserver#quickstart - aDEPS=('python-virtualenv' 'python-dev' 'libmariadb-dev') - # - Additional module compiling required on ARM + aDEPS=('make' 'python-virtualenv' 'python-dev' 'g++' 'libmariadb-dev') + # - ARM: libffi-dev for cffi, libssl-dev for cryptography (( $G_HW_ARCH < 10 )) && aDEPS+=('libffi-dev' 'libssl-dev') # Download & Install - local commit='c116417d653432db9470098236fb117adb349c36' # https://github.com/MichaIng/DietPi/issues/3774#issuecomment-703230290 - Download_Install "https://github.com/mozilla-services/syncserver/archive/$commit.tar.gz" + Download_Install "https://github.com/mozilla-services/syncserver/archive/master.tar.gz" [[ -d '/opt/firefox-sync' ]] && G_EXEC rm -R /opt/firefox-sync - G_EXEC mv "syncserver-$commit" /opt/firefox-sync + G_EXEC mv syncserver-master /opt/firefox-sync # Build G_EXEC cd /opt/firefox-sync + G_EXEC sed -i -e '/^psycopg2/d' -e 's/.zip$/.tar.gz/' requirements.txt # We use SQLite, and save some bytes G_EXEC_OUTPUT=1 G_EXEC make build G_EXEC cd "$G_WORKING_DIR" @@ -9309,15 +9301,14 @@ _EOF_ # Copy and modify default config file if it doesn't exist local ffsync_conf='/mnt/dietpi_userdata/firefox-sync/syncserver.ini' - if [[ ! -f $ffsync_conf ]]; then - + if [[ ! -f $ffsync_conf ]] + then G_EXEC cp -a /opt/firefox-sync/syncserver.ini "$ffsync_conf" local ffsync_ip=$(G_GET_NET ip) G_CONFIG_INJECT 'host =' "host = $ffsync_ip" "$ffsync_conf" G_CONFIG_INJECT 'port =' 'port = 5002' "$ffsync_conf" # Avoid port conflict with Shairport Sync G_CONFIG_INJECT 'public_url =' "public_url = http://$ffsync_ip:5002/" "$ffsync_conf" G_CONFIG_INJECT 'sqluri = sqlite:' 'sqluri = sqlite:////mnt/dietpi_userdata/firefox-sync/FF-Sync-DB.db' "$ffsync_conf" - fi # Service @@ -10201,21 +10192,38 @@ _EOF_ local url='https://github.com/HTPC-Manager/HTPC-Manager.git' G_CHECK_URL "$url" - # Python build dependencies for ARM - (( $G_HW_ARCH < 10 )) && G_AGI libffi-dev libssl-dev zlib1g-dev libjpeg62-turbo-dev + # APT deps + case $G_HW_ARCH in + [12]|11) + if (( $G_DISTRO < 7 )) + then + G_AGI libtiff5 libopenjp2-7 libxcb1 # ARMv6/7: Runtime libs for Pillow from piwheels (libtiff5 pulls libjpeg62-turbo) + else + # Bookworm: Most wheels need to be compiled: gcc and libffi-dev for cffi, libssl-dev and Rust for cryptography and bcrypt, make for PyNaCl, libjpeg62-turbo-dev for Pillow + G_AGI gcc libffi-dev libssl-dev make libjpeg62-turbo-dev + G_EXEC curl -sSf 'https://sh.rustup.rs/' -o rustup-init.sh + G_EXEC chmod +x rustup-init.sh + G_EXEC_OUTPUT=1 G_EXEC ./rustup-init.sh -y --profile minimal + G_EXEC rm rustup-init.sh + export PATH="/root/.cargo/bin:$PATH" + fi + ;; + 3) G_AGI gcc;; # gcc for psutil + *) :;; + esac if [[ -d '/mnt/dietpi_userdata/htpc-manager/.git' ]] then G_EXEC cd /mnt/dietpi_userdata/htpc-manager G_EXEC_OUTPUT=1 G_EXEC git remote set-url origin "$url" - G_EXEC_OUTPUT=1 G_EXEC git fetch origin + G_EXEC_OUTPUT=1 G_EXEC git fetch --depth=1 origin G_EXEC_OUTPUT=1 G_EXEC git reset --hard origin G_EXEC_OUTPUT=1 G_EXEC git clean -dxfe '/userdata' else - G_EXEC_OUTPUT=1 G_EXEC git clone --depth 1 "$url" - [[ -d '/mnt/dietpi_userdata/htpc-manager' ]] || G_EXEC mkdir /mnt/dietpi_userdata/htpc-manager + G_EXEC_OUTPUT=1 G_EXEC git clone --depth=1 "$url" + G_EXEC mkdir -p /mnt/dietpi_userdata/htpc-manager G_EXEC cp -a HTPC-Manager/. /mnt/dietpi_userdata/htpc-manager/ - G_EXEC rmdir HTPC-Manager + G_EXEC rm -R HTPC-Manager G_EXEC cd /mnt/dietpi_userdata/htpc-manager G_EXEC_OUTPUT=1 G_EXEC git reset --hard origin G_EXEC_OUTPUT=1 G_EXEC git clean -dxfe '/userdata' @@ -10993,14 +11001,14 @@ _EOF_ if To_Install 62 # Box86 then # APT deps - aDEPS=('cmake' 'python3-minimal') + aDEPS=('cmake' 'make' 'gcc' 'libc6-dev' 'python3-minimal') # Download local version=$(curl -sSfL 'https://api.github.com/repos/ptitSeb/box86/tags' | mawk -F\" '/"name": /{print $4}' | head -1) [[ $version ]] || { version='v0.2.8'; G_DIETPI-NOTIFY 1 "Automatic latest ${aSOFTWARE_NAME[$software_id]} version detection failed. Version \"$version\" will be installed as fallback, but a newer version might be available. Please report this at: https://github.com/MichaIng/DietPi/issues"; } Download_Install "https://github.com/ptitSeb/box86/archive/$version.tar.gz" - # Build + # Build for targets: https://github.com/ptitSeb/box86/blob/master/CMakeLists.txt G_EXEC mkdir "box86-${version#v}/build" G_EXEC cd "box86-${version#v}/build" # - RPi 2 @@ -11025,31 +11033,39 @@ _EOF_ G_EXEC cmake .. -DRK3288=1 -DNOGIT=1 -DCMAKE_BUILD_TYPE=RelWithDebInfo # - Others else - G_EXEC cmake .. -DARM_DYNAREC=ON -DNOGIT=1 -DCMAKE_BUILD_TYPE=RelWithDebInfo + G_EXEC cmake .. -DARM_DYNAREC=1 -DNOGIT=1 -DCMAKE_BUILD_TYPE=RelWithDebInfo fi G_EXEC_OUTPUT=1 G_EXEC make CFLAGS='-g0 -O3' "-j$(nproc)" G_EXEC strip --remove-section=.comment --remove-section=.note box86 G_EXEC make install - # Reload binfmt if kernel module is available (covering kernel upgrade without reboot) to have i386 binaries executed via box86 automatically from now on + # Reload binfmt if kernel module is available to have i386 binaries executed via box86 automatically from now on modprobe binfmt_misc 2> /dev/null && G_EXEC systemctl restart systemd-binfmt fi if To_Install 197 # Box64 then # APT deps - aDEPS=('cmake' 'python3-minimal') + aDEPS=('cmake' 'make' 'gcc' 'libc6-dev' 'python3-minimal') # Download local version=$(curl -sSfL 'https://api.github.com/repos/ptitSeb/box64/tags' | mawk -F\" '/"name": /{print $4}' | head -1) [[ $version ]] || { version='v0.2.0'; G_DIETPI-NOTIFY 1 "Automatic latest ${aSOFTWARE_NAME[$software_id]} version detection failed. Version \"$version\" will be installed as fallback, but a newer version might be available. Please report this at: https://github.com/MichaIng/DietPi/issues"; } Download_Install "https://github.com/ptitSeb/box64/archive/$version.tar.gz" - # Build + # Build for targets: https://github.com/ptitSeb/box64/blob/main/CMakeLists.txt G_EXEC mkdir "box64-${version#v}/build" G_EXEC cd "box64-${version#v}/build" + # - RISC-V + if (( $G_HW_ARCH == 11 )) + then + G_EXEC cmake .. -DRV64=1 -DNOGIT=1 -DCMAKE_BUILD_TYPE=RelWithDebInfo + # - RPi 3 + #elif (( $G_HW_MODEL == 3 )) + #then + # G_EXEC cmake .. -DRPI3ARM64=1 -DNOGIT=1 -DCMAKE_BUILD_TYPE=RelWithDebInfo # - RPi 4 - if (( $G_HW_MODEL == 4 )) + elif (( $G_HW_MODEL == 4 )) then G_EXEC cmake .. -DRPI4ARM64=1 -DNOGIT=1 -DCMAKE_BUILD_TYPE=RelWithDebInfo # - Odroid N2 @@ -11060,15 +11076,19 @@ _EOF_ elif (( $G_HW_CPUID == 3 )) then G_EXEC cmake .. -DRK3399=1 -DNOGIT=1 -DCMAKE_BUILD_TYPE=RelWithDebInfo + # - RK3588 + #elif (( $G_HW_CPUID == 11 )) + #then + # G_EXEC cmake .. -DRK3588=1 -DNOGIT=1 -DCMAKE_BUILD_TYPE=RelWithDebInfo # - Others else - G_EXEC cmake .. -DARM_DYNAREC=ON -DNOGIT=1 -DCMAKE_BUILD_TYPE=RelWithDebInfo + G_EXEC cmake .. -DARM_DYNAREC=1 -DNOGIT=1 -DCMAKE_BUILD_TYPE=RelWithDebInfo fi G_EXEC_OUTPUT=1 G_EXEC make CFLAGS='-g0 -O3' "-j$(nproc)" G_EXEC strip --remove-section=.comment --remove-section=.note box64 G_EXEC make install - # Reload binfmt if kernel module is available (covering kernel upgrade without reboot) to have x86_64 binaries executed via box64 automatically from now on + # Reload binfmt if kernel module is available to have x86_64 binaries executed via box64 automatically from now on modprobe binfmt_misc 2> /dev/null && G_EXEC systemctl restart systemd-binfmt fi @@ -14177,12 +14197,6 @@ _EOF_ [[ -f '/etc/logrotate.d/urbackupsrv' ]] && G_EXEC rm /etc/logrotate.d/urbackupsrv fi - if To_Uninstall 16 # Build-Essential - then - # shellcheck disable=SC2046 - apt-mark auto $(dpkg --get-selections build-essential g++ make automake 2> /dev/null | mawk '{print $1}') 2> /dev/null - fi - if To_Uninstall 171 # frp then # Service From dc7c0d29fa00e15c70673fcdff1349a0ad6348b7 Mon Sep 17 00:00:00 2001 From: MichaIng Date: Tue, 7 Mar 2023 14:17:42 +0100 Subject: [PATCH 115/155] v8.15 - DietPi-Build | Add support for RISC-V containers - DietPi-Software | Amiberry: Bump SDL2 to 2.26.4 - CI | Gogs: Add support for RISC-V builds --- .build/images/dietpi-build | 8 ++++---- .build/software/Amiberry/build.bash | 4 ++-- .build/software/gogs/container_build.bash | 1 + .github/workflows/dietpi-build.yml | 4 +++- .github/workflows/gogs.yml | 9 ++++++--- 5 files changed, 16 insertions(+), 10 deletions(-) diff --git a/.build/images/dietpi-build b/.build/images/dietpi-build index 736dc18217..5acf5fa733 100755 --- a/.build/images/dietpi-build +++ b/.build/images/dietpi-build @@ -120,7 +120,7 @@ case $HW_MODEL in 78) iname='ROCK5B' HW_ARCH=3 PTTYPE='gpt' partition_start=16 boot_size=128 root_size=688 boot_fstype='ext4';; 79) iname='NanoPiR6S' HW_ARCH=3 root_size=752;; # Special case: Skips image file, partitioning and filesystem generation, but runs debootstrap only! 80) iname='OrangePi5' HW_ARCH=3 PTTYPE='gpt' partition_start=16 boot_size=128 root_size=688;; - 81) iname='VisionFive2' HW_ARCH=11 root_size=639 DISTRO=7;; + 81) iname='VisionFive2' HW_ARCH=11 root_size=639;; *) G_DIETPI-NOTIFY 1 "Invalid hardware model \"$HW_MODEL\" passed, aborting..."; exit 1;; esac @@ -140,7 +140,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' repo='https://deb.debian.org/debian-ports/' keyring='/usr/share/keyrings/debian-ports-archive-keyring.gpg';; + 11) iarch='RISC-V' parch='riscv64' DISTRO=7 repo='https://deb.debian.org/debian-ports/' keyring='/usr/share/keyrings/debian-ports-archive-keyring.gpg';; # # RISC-V architecture is available on Debian ports only *) G_DIETPI-NOTIFY 1 "Invalid architecture \"$HW_ARCH\" passed, aborting..."; exit 1;; esac @@ -150,11 +150,11 @@ case $DISTRO in 6) distro='bullseye' exclude=',gcc-8-base,gcc-9-base';; 7) distro='bookworm' exclude=',gcc-8-base,gcc-9-base,gcc-10-base,gcc-11-base' + [[ $HW_ARCH == 11 ]] && distro='sid' # RISC-V architecture is available on Debian Sid/unstable only # Raise root size where required case $HW_MODEL in 1[256]|49.[123]|54|61|7[4569]) ((root_size+=128));; 21) ((root_size+=448));; - 81) distro='sid';; # RISC-V architecture is available on Debian Sid/unstable only *) :;; esac ;; @@ -356,7 +356,7 @@ fi ########################################## packages='apt,bash-completion,bzip2,ca-certificates,cron,curl,fdisk,gnupg,htop,iputils-ping,locales,nano,p7zip,parted,procps,psmisc,sudo,systemd-sysv,tzdata,udev,unzip,wget,whiptail,' [[ $HW_MODEL == 75 ]] && packages+='iproute2' || packages+='console-setup,dropbear,ethtool,fake-hwclock,ifupdown,isc-dhcp-client,kmod,rfkill,systemd-timesyncd,usbutils' -[[ $HW_MODEL == 81 ]] && packages+=',debian-ports-archive-keyring' +[[ $HW_ARCH == 11 ]] && packages+=',debian-ports-archive-keyring' G_EXEC_POST_FUNC(){ [[ $exit_code == 0 ]] || cat /dev/shm/rootfs/debootstrap/debootstrap.log; } G_EXEC_OUTPUT=1 G_EXEC debootstrap --variant=minbase --exclude="gcc-7-base$exclude" --include="$packages" --arch="$parch" --keyring="$keyring" "$distro" ./rootfs "$repo" diff --git a/.build/software/Amiberry/build.bash b/.build/software/Amiberry/build.bash index 8cf47af660..345973ec0c 100644 --- a/.build/software/Amiberry/build.bash +++ b/.build/software/Amiberry/build.bash @@ -20,7 +20,7 @@ G_AGUP G_AGDUG "${adeps_build[@]}" # Build libSDL2 -v_sdl='2.26.3' +v_sdl='2.26.4' if [[ ! -d /tmp/SDL2-$v_sdl ]] then G_DIETPI-NOTIFY 2 "Building libSDL2 version \e[33m$v_sdl" @@ -185,7 +185,7 @@ grep -q 'raspbian' /etc/os-release && DEPS_APT_VERSIONED=$(sed 's/+rp[it][0-9]\+ # - control cat << _EOF_ > "$DIR/DEBIAN/control" Package: amiberry -Version: $v_ami-dietpi3 +Version: $v_ami-dietpi4 Architecture: $(dpkg --print-architecture) Maintainer: MichaIng Date: $(date -u '+%a, %d %b %Y %T %z') diff --git a/.build/software/gogs/container_build.bash b/.build/software/gogs/container_build.bash index 8e8b5db0da..f79b4e731c 100644 --- a/.build/software/gogs/container_build.bash +++ b/.build/software/gogs/container_build.bash @@ -56,6 +56,7 @@ case $ARCH in 2) image="DietPi_Container-ARMv7-${distro^}" arch='armv7l';; 3) image="DietPi_Container-ARMv8-${distro^}" arch='aarch64';; 10) image="DietPi_Container-x86_64-${distro^}" arch='x86_64';; + 11) image='DietPi_Container-RISC-V-Sid' arch='riscv64';; *) G_DIETPI-NOTIFY 1 "Invalid architecture \"$ARCH\" passed, aborting..."; exit 1;; esac diff --git a/.github/workflows/dietpi-build.yml b/.github/workflows/dietpi-build.yml index 6ae19ac164..c7bf684f35 100644 --- a/.github/workflows/dietpi-build.yml +++ b/.github/workflows/dietpi-build.yml @@ -70,11 +70,13 @@ jobs: '"-m 75 -a 1 -d 5", "-m 75 -a 2 -d 5", "-m 75 -a 3 -d 5", "-m 75 -a 10 -d 5", '\ '"-m 75 -a 1 -d 6", "-m 75 -a 2 -d 6", "-m 75 -a 3 -d 6", "-m 75 -a 10 -d 6", '\ '"-m 75 -a 1 -d 7", "-m 75 -a 2 -d 7", "-m 75 -a 3 -d 7", "-m 75 -a 10 -d 7", '\ + '"-m 75 -a 11 -d 7", '\ '"-m 76 -d 6", "-m 76 -d 7", '\ '"-m 77 -d 6", "-m 77 -d 7", '\ '"-m 78 -d 6", "-m 78 -d 7", '\ '"-m 79 -d 6", "-m 79 -d 7", '\ - '"-m 80 -d 6", "-m 80 -d 7"]' >> "$GITHUB_OUTPUT" + '"-m 80 -d 6", "-m 80 -d 7", '\ + '"-m 81 -d 7"]' >> "$GITHUB_OUTPUT" elif [ "${{ github.event.inputs.buildargs }}" = 'quartz64' ] then echo buildargs=[\ diff --git a/.github/workflows/gogs.yml b/.github/workflows/gogs.yml index 73cadf96b0..d294e3959e 100644 --- a/.github/workflows/gogs.yml +++ b/.github/workflows/gogs.yml @@ -3,7 +3,7 @@ on: workflow_dispatch: inputs: arch: - description: 'Target architecture index: 1, 2, 3, 10 or all' + description: 'Target architecture index: 1, 2, 3, 10, 11 or all' required: true dist: description: 'Target Debian version index: 5, 6, 7 or all' @@ -26,7 +26,7 @@ jobs: run: | if [ '${{ github.event.inputs.arch }}' = 'all' ] then - echo arch='[1, 2, 3, 10]' >> "$GITHUB_OUTPUT" + echo arch='[1, 2, 3, 10, 11]' >> "$GITHUB_OUTPUT" else echo arch='[${{ github.event.inputs.arch }}]' >> "$GITHUB_OUTPUT" fi @@ -44,6 +44,9 @@ jobs: matrix: arch: ${{ fromJson(needs.prep.outputs.arch) }} dist: ${{ fromJson(needs.prep.outputs.dist) }} + exclude: + - { arch: 11, dist: 5 } + - { arch: 11, dist: 6 } fail-fast: false name: "Build: ${{ matrix.arch }} - ${{ matrix.dist }}" # https://github.com/actions/virtual-environments @@ -59,7 +62,7 @@ jobs: # Build variables arch=${{ matrix.arch }} dist=${{ matrix.dist }} - arch_to_name=([1]='armv6l' [2]='armv7l' [3]='aarch64' [10]='x86_64') + arch_to_name=([1]='armv6l' [2]='armv7l' [3]='aarch64' [10]='x86_64' [11]='riscv64') dist_to_name=([5]='buster' [6]='bullseye' [7]='bookworm') arch_name=${arch_to_name[$arch]} dist_name=${dist_to_name[$dist]} From be8e2a23e1c363d18b4eade3b64a131c51f4f23d Mon Sep 17 00:00:00 2001 From: MichaIng Date: Tue, 7 Mar 2023 14:28:30 +0100 Subject: [PATCH 116/155] v8.15 - Quartz64 | Revert to older BL31, as the newer one seems to break boot --- .github/workflows/quartz64.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/quartz64.yml b/.github/workflows/quartz64.yml index 6eff95cec2..2426edd8ef 100644 --- a/.github/workflows/quartz64.yml +++ b/.github/workflows/quartz64.yml @@ -38,7 +38,7 @@ jobs: mkdir artefacts/mainline-u-boot cd "u-boot-$uboot_branch" curl -sSfo 'u-boot-spl-ddr.bin' 'https://raw.githubusercontent.com/JeffyCN/rockchip_mirrors/rkbin/bin/rk35/rk3568_ddr_1560MHz_v1.13.bin' & - curl -sSfo 'bl31.elf' 'https://raw.githubusercontent.com/JeffyCN/rockchip_mirrors/rkbin/bin/rk35/rk3568_bl31_v1.32.elf' & + curl -sSfo 'bl31.elf' 'https://raw.githubusercontent.com/JeffyCN/rockchip_mirrors/6186deb/bin/rk35/rk3568_bl31_v1.28.elf' & export BL31='bl31.elf' wait make quartz64-a-rk3566_defconfig From fa5a82c8a6ec7472192a442d0c541c2582d34852 Mon Sep 17 00:00:00 2001 From: MichaIng Date: Tue, 7 Mar 2023 14:37:43 +0100 Subject: [PATCH 117/155] v8.15 - DietPi-Installer | Remove obsolete ports package install, marked for RISC-V arch a few lines down --- .build/images/dietpi-installer | 1 - 1 file changed, 1 deletion(-) diff --git a/.build/images/dietpi-installer b/.build/images/dietpi-installer index d88976215d..e7a6ac63af 100644 --- a/.build/images/dietpi-installer +++ b/.build/images/dietpi-installer @@ -1137,7 +1137,6 @@ _EOF_ # VisionFive 2 elif [[ $G_HW_MODEL == 81 ]] then - G_AGI debian-ports-archive-keyring [[ -f '/boot/extlinux/extlinux.conf' ]] && G_EXEC rm /boot/extlinux/extlinux.conf G_EXEC curl -sSfo package.deb 'https://dietpi.com/downloads/binaries/linux-image-visionfive2.deb' G_EXEC_OUTPUT=1 G_EXEC dpkg -i package.deb From 32e423dbc7c120fcb793266b805adbea04ac5b35 Mon Sep 17 00:00:00 2001 From: MichaIng Date: Tue, 7 Mar 2023 14:48:35 +0100 Subject: [PATCH 118/155] v8.15 - CI | Add some more explicit RISC-V support --- .build/images/dietpi-build | 2 +- .build/software/gogs/container_build.bash | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/.build/images/dietpi-build b/.build/images/dietpi-build index 95c299db3c..5180fde149 100755 --- a/.build/images/dietpi-build +++ b/.build/images/dietpi-build @@ -196,7 +196,7 @@ fi (( $efi_size )) || [[ $boot_size -gt 0 && $boot_fstype == 'fat32' ]] && apackages+=('dosfstools') # Emulation support in case of incompatible architecture -(( ( $G_HW_ARCH < 10 && $G_HW_ARCH < $HW_ARCH ) || ( $G_HW_ARCH == 10 && $G_HW_ARCH != $HW_ARCH ) )) && apackages+=('qemu-user-static' 'binfmt-support') +(( ( $G_HW_ARCH < 10 && $G_HW_ARCH < $HW_ARCH ) || ( ( $G_HW_ARCH == 10 || $G_HW_ARCH == 11 ) && $G_HW_ARCH != $HW_ARCH ) )) && apackages+=('qemu-user-static' 'binfmt-support') # Virtual machine disk conversion [[ $VMTYPE && $VMTYPE != 'raw' ]] && apackages+=('qemu-utils') diff --git a/.build/software/gogs/container_build.bash b/.build/software/gogs/container_build.bash index f79b4e731c..4784599457 100644 --- a/.build/software/gogs/container_build.bash +++ b/.build/software/gogs/container_build.bash @@ -19,6 +19,7 @@ case $G_HW_ARCH_NAME in 'armv7l') export G_HW_ARCH=2;; '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;; esac readonly G_PROGRAM_NAME='DietPi-Gogs_container_setup' From ece81c3a558d3b11880f01fb541cf4f34d9672f7 Mon Sep 17 00:00:00 2001 From: MichaIng Date: Tue, 7 Mar 2023 15:18:24 +0100 Subject: [PATCH 119/155] v8.15 - DietPi-Software | Amiberry: Add commented RK3588 target, available with next release --- .build/software/Amiberry/container_build.bash | 2 +- .github/workflows/amiberry.yml | 38 +++++++++++++++++++ dietpi/dietpi-software | 9 ++++- 3 files changed, 46 insertions(+), 3 deletions(-) diff --git a/.build/software/Amiberry/container_build.bash b/.build/software/Amiberry/container_build.bash index e0706d7060..c3a2b3ca5a 100644 --- a/.build/software/Amiberry/container_build.bash +++ b/.build/software/Amiberry/container_build.bash @@ -53,7 +53,7 @@ image= case $PLATFORM in 'rpi'[1-4]) image="DietPi_Container-ARMv6-${distro^}";; 'c1'|'xu4'|'RK3288'|'sun8i'|'s812') image="DietPi_Container-ARMv7-${distro^}";; - 'rpi'[34]'-64-dmx'|'AMLSM1'|'n2'|'a64') image="DietPi_Container-ARMv8-${distro^}";; + 'rpi'[34]'-64-dmx'|'AMLSM1'|'n2'|'a64'|'rk3588') image="DietPi_Container-ARMv8-${distro^}";; 'x86-64') image="DietPi_Container-x86_64-${distro^}";; *) G_DIETPI-NOTIFY 1 "Invalid platform \"$PLATFORM\" passed, aborting..."; exit 1;; esac diff --git a/.github/workflows/amiberry.yml b/.github/workflows/amiberry.yml index 3cfb429085..497599429b 100644 --- a/.github/workflows/amiberry.yml +++ b/.github/workflows/amiberry.yml @@ -883,3 +883,41 @@ jobs: curl -T rootfs/amiberry_x86-64.deb --key ~/.ssh/id_ed25519 '${{ secrets.UPLOAD_URL }}bookworm/' curl 'https://api.cloudflare.com/client/v4/zones/${{ secrets.CF_ZONE }}/purge_cache' -H 'Authorization: Bearer ${{ secrets.CF_TOKEN }}' -H 'Content-Type: application/json' \ --data '{"files":["https://dietpi.com/downloads/binaries/bookworm/testing/","https://dietpi.com/downloads/binaries/bookworm/testing/amiberry_x86-64.deb"]}' + # rk3588_bullseye: + # if: ( github.event.inputs.platform == 'rk3588' || github.event.inputs.platform == 'all' ) && ( github.event.inputs.distro == 6 || github.event.inputs.distro == 'all' ) + # runs-on: ubuntu-22.04 + # defaults: + # run: + # shell: sh + # working-directory: /dev/shm + # steps: + # - name: Start build container + # run: sudo bash -c "G_GITOWNER=$GITHUB_REPOSITORY_OWNER G_GITBRANCH=${GITHUB_REF#refs/heads/}; $(curl -sSf "https://raw.githubusercontent.com/$GITHUB_REPOSITORY_OWNER/DietPi/${GITHUB_REF#refs/heads/}/.build/software/Amiberry/container_build.bash")" 'DietPi-Build_Amiberry' -p rk3588 -d 6 + # - name: Upload package + # run: | + # [ -d ~/.ssh ] || mkdir ~/.ssh + # umask 377 + # echo '${{ secrets.KNOWN_HOSTS }}' > ~/.ssh/known_hosts + # echo '${{ secrets.SSH_KEY }}' > ~/.ssh/id_ed25519 + # curl -T rootfs/amiberry_rk3588.deb --key ~/.ssh/id_ed25519 '${{ secrets.UPLOAD_URL }}bullseye/' + # curl 'https://api.cloudflare.com/client/v4/zones/${{ secrets.CF_ZONE }}/purge_cache' -H 'Authorization: Bearer ${{ secrets.CF_TOKEN }}' -H 'Content-Type: application/json' \ + # --data '{"files":["https://dietpi.com/downloads/binaries/bullseye/testing/","https://dietpi.com/downloads/binaries/bullseye/testing/amiberry_rk3588.deb"]}' + # rk3588_bookworm: + # if: ( github.event.inputs.platform == 'rk3588' || github.event.inputs.platform == 'all' ) && ( github.event.inputs.distro == 7 || github.event.inputs.distro == 'all' ) + # runs-on: ubuntu-22.04 + # defaults: + # run: + # shell: sh + # working-directory: /dev/shm + # steps: + # - name: Start build container + # run: sudo bash -c "G_GITOWNER=$GITHUB_REPOSITORY_OWNER G_GITBRANCH=${GITHUB_REF#refs/heads/}; $(curl -sSf "https://raw.githubusercontent.com/$GITHUB_REPOSITORY_OWNER/DietPi/${GITHUB_REF#refs/heads/}/.build/software/Amiberry/container_build.bash")" 'DietPi-Build_Amiberry' -p rk3588 -d 7 + # - name: Upload package + # run: | + # [ -d ~/.ssh ] || mkdir ~/.ssh + # umask 377 + # echo '${{ secrets.KNOWN_HOSTS }}' > ~/.ssh/known_hosts + # echo '${{ secrets.SSH_KEY }}' > ~/.ssh/id_ed25519 + # curl -T rootfs/amiberry_rk3588.deb --key ~/.ssh/id_ed25519 '${{ secrets.UPLOAD_URL }}bookworm/' + # curl 'https://api.cloudflare.com/client/v4/zones/${{ secrets.CF_ZONE }}/purge_cache' -H 'Authorization: Bearer ${{ secrets.CF_TOKEN }}' -H 'Content-Type: application/json' \ + # --data '{"files":["https://dietpi.com/downloads/binaries/bookworm/testing/","https://dietpi.com/downloads/binaries/bookworm/testing/amiberry_rk3588.deb"]}' diff --git a/dietpi/dietpi-software b/dietpi/dietpi-software index a0f7d41f9f..e96b55bd35 100755 --- a/dietpi/dietpi-software +++ b/dietpi/dietpi-software @@ -5302,6 +5302,11 @@ _EOF_ then platform='n2' + # - ToDo: RK3588 + #elif (( $G_HW_CPUID == 11 )) + #then + # platform='rk3588' + # - Generic ARMv7 elif (( $G_HW_ARCH == 2 )) then @@ -11060,7 +11065,7 @@ _EOF_ if (( $G_HW_ARCH == 11 )) then G_EXEC cmake .. -DRV64=1 -DNOGIT=1 -DCMAKE_BUILD_TYPE=RelWithDebInfo - # - RPi 3 + # - ToDo: RPi 3 #elif (( $G_HW_MODEL == 3 )) #then # G_EXEC cmake .. -DRPI3ARM64=1 -DNOGIT=1 -DCMAKE_BUILD_TYPE=RelWithDebInfo @@ -11076,7 +11081,7 @@ _EOF_ elif (( $G_HW_CPUID == 3 )) then G_EXEC cmake .. -DRK3399=1 -DNOGIT=1 -DCMAKE_BUILD_TYPE=RelWithDebInfo - # - RK3588 + # - ToDo: RK3588 #elif (( $G_HW_CPUID == 11 )) #then # G_EXEC cmake .. -DRK3588=1 -DNOGIT=1 -DCMAKE_BUILD_TYPE=RelWithDebInfo From f8a54c633ab6a9df3ae2971c60faf1f0ff58bfe0 Mon Sep 17 00:00:00 2001 From: MichaIng Date: Tue, 7 Mar 2023 16:27:04 +0100 Subject: [PATCH 120/155] v8.15 - CHANGELOG | Add/update entries --- CHANGELOG.txt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.txt b/CHANGELOG.txt index 934dd12d4e..e7fcdb3cb5 100644 --- a/CHANGELOG.txt +++ b/CHANGELOG.txt @@ -17,10 +17,11 @@ Enhancements: Bug fixes: - Quartz64 | Resolved an issue where the system boots read-only on very first boot. Many thanks to @belveder79 for reporting this issue: https://github.com/MichaIng/DietPi/issues/6149 +- ROCK 5B | Resolved an issue with kernel upgrades since the boot partition was too small. The image is not shipped without a dedicated boot partition. Many thanks to @isarrider and @skyuplam for reporting this issue and testing the solution: https://github.com/MichaIng/DietPi/issues/6206 - DietPi-Sync | Resolved an issue where the prompt after the dry run was shown even in non-interactive mode (input argument "1"), and when selecting "Cancel" or ESC, the real sync ran regardless. Many thanks to @Ruud for reporting this issue: https://dietpi.com/forum/t/howto-call-dietpi-sync-1-without-user-interaction/15964 - DietPi-Software | Docker Compose: Resolved an issue where installing and uninstalling Docker Compose could have failed if pip was installed without the distutils module. Many thanks to @bccarbone for reporting this issue: https://github.com/MichaIng/DietPi/issues/6153 - DietPi-Software | Pi-hole: Resolved an issue where Nginx, if chosen as webserver, failed to start due to an invalid variable. Many thanks to @Trimble-tech for reporting this issue: https://dietpi.com/forum/t/pi-hole-install-crashes-nginx/15960 -- DietPi-Software | Python 3: Resolved an issue where the install failed because pip started to deny system-wide package installs without passing a new flag. +- DietPi-Software | Python 3: Resolved an issue on Bookworm where installs of and via pip failed because the Debian Python 3.11 packages added a flag to prevent system-wide module installs without an override flag. - DietPi-Software | Synapse: Resolved an issue where the install failed on Debian Bookworm. 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/XXXX From 256483b96e4fb56af6a96aecbecec2ab0a591560 Mon Sep 17 00:00:00 2001 From: MichaIng Date: Tue, 7 Mar 2023 19:30:22 +0100 Subject: [PATCH 121/155] v8.15 - DietPi-Software | Gogs: Enable for RISC-V as we have a functional binary now. However, it won't work with the intended MariaDB server yet, since MariaDB fails hard on RISC-V, currently --- dietpi/dietpi-software | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/dietpi/dietpi-software b/dietpi/dietpi-software index e96b55bd35..2c6754ff45 100755 --- a/dietpi/dietpi-software +++ b/dietpi/dietpi-software @@ -812,8 +812,6 @@ Available commands: aSOFTWARE_DOCS[$software_id]='https://dietpi.com/docs/software/cloud/#gogs' aSOFTWARE_DEPS[$software_id]='17 88 0' aSOFTWARE_CONFLICTS[$software_id]='165' - # - RISC-V: Missing binary - aSOFTWARE_AVAIL_G_HW_ARCH[$software_id,11]=0 #------------------ software_id=50 aSOFTWARE_NAME[$software_id]='Syncthing' @@ -8382,20 +8380,21 @@ _EOF_ if To_Install 49 # Gogs then - # ARMv6: No pre-compiled binaries available, so we host our own. - local url="https://dietpi.com/downloads/binaries/$G_DISTRO_NAME/gogs_armv6l.7z" + # ARMv6/RISC-V: No pre-compiled binaries available, so we host our own. + if (( $G_HW_ARCH == 1 || $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 - if (( $G_HW_ARCH != 1 )) - then + else case $G_HW_ARCH in - 2) arch='armv7';; - 3) arch='armv8';; - *) arch='amd64';; + 2) local arch='armv7';; + 3) local arch='armv8';; + *) local arch='amd64';; esac local fallback_url="https://github.com/gogs/gogs/releases/download/v0.13.0/gogs_0.13.0_linux_$arch.tar.gz" - url=$(curl -sSfL 'https://api.github.com/repos/gogs/gogs/releases/latest' | mawk -F\" "/\"browser_download_url\": \".*\/gogs_[^\"\/]*_linux_$arch.tar.gz\"/{print \$4}") + 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 Download_Install "$url" From e31c993531cecab9fc36671a063cc6ebc988e926 Mon Sep 17 00:00:00 2001 From: MichaIng Date: Tue, 7 Mar 2023 20:01:37 +0100 Subject: [PATCH 122/155] v8.15 - DietPi-Software | Syncthing: Update fallback URLs --- dietpi/dietpi-software | 21 ++++++++++----------- 1 file changed, 10 insertions(+), 11 deletions(-) diff --git a/dietpi/dietpi-software b/dietpi/dietpi-software index 2c6754ff45..9812f30ecf 100755 --- a/dietpi/dietpi-software +++ b/dietpi/dietpi-software @@ -8941,17 +8941,17 @@ _EOF_ *) local arch='arm';; esac - local fallback_url="https://github.com/syncthing/syncthing/releases/download/v1.23.1/syncthing-linux-$arch-v1.23.1.tar.gz" + local fallback_url="https://github.com/syncthing/syncthing/releases/download/v1.23.2/syncthing-linux-$arch-v1.23.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 - # Permissions - G_EXEC chown -R dietpi:dietpi /opt/syncthing # to permit self-updates + # Permit self-updates + G_EXEC chown -R dietpi /opt/syncthing # Pre-create and edit default config only on fresh installs - if [[ ! -f '/mnt/dietpi_userdata/syncthing/config.xml' ]]; then - + if [[ ! -f '/mnt/dietpi_userdata/syncthing/config.xml' ]] + then # Failsafe: Assure that "dietpi" has permission to create the /mnt/dietpi_userdata/syncthing directory G_EXEC chown dietpi /mnt/dietpi_userdata @@ -8962,14 +8962,13 @@ _EOF_ G_EXEC sed -i '\|:8384|c\
0.0.0.0:8384
' /mnt/dietpi_userdata/syncthing/config.xml # Set default data directory - [[ -d '/mnt/dietpi_userdata/syncthing_data' ]] || G_EXEC mkdir /mnt/dietpi_userdata/syncthing_data + G_EXEC mkdir -p /mnt/dietpi_userdata/syncthing_data G_EXEC chown -R dietpi:dietpi /mnt/dietpi_userdata/syncthing_data - sed -i '\| /etc/systemd/system/syncthing.service [Unit] Description=Syncthing (DietPi) @@ -8980,7 +8979,7 @@ StartLimitBurst=4 [Service] User=dietpi -ExecStart=/opt/syncthing/syncthing -no-browser -no-restart -logflags=0 -home=/mnt/dietpi_userdata/syncthing +ExecStart=/opt/syncthing/syncthing --no-browser --no-restart --logflags=0 -home=/mnt/dietpi_userdata/syncthing Restart=on-failure RestartSec=1 SuccessExitStatus=3 4 From a28c47a40032fb217fed47a651d881c1a0972ca9 Mon Sep 17 00:00:00 2001 From: MichaIng Date: Tue, 7 Mar 2023 21:39:53 +0100 Subject: [PATCH 123/155] v8.15 - DietPi-LetsEncrypt | Remove client verification CA setting from our default HTTPS configs. This needs manual setup anyway and should be hence done in a dedicated config for client verification, if wanted --- dietpi/dietpi-letsencrypt | 2 -- 1 file changed, 2 deletions(-) diff --git a/dietpi/dietpi-letsencrypt b/dietpi/dietpi-letsencrypt index 0860f2f482..1fd9d684a3 100755 --- a/dietpi/dietpi-letsencrypt +++ b/dietpi/dietpi-letsencrypt @@ -119,7 +119,6 @@ server.modules += ( "mod_openssl" ) ssl.engine = "enable" ssl.pemfile = "$fp_cert_dir/fullchain.pem" ssl.privkey = "$fp_cert_dir/privkey.pem" - ssl.ca-file = "$fp_cert_dir/fullchain.pem" # For DH/DHE ciphers, dhparam should be >= 2048-bit #ssl.dh-file = "/path/to/dhparam.pem" @@ -141,7 +140,6 @@ server.modules += ( "mod_openssl" ) ssl.engine = "enable" ssl.pemfile = "$fp_cert_dir/fullchain.pem" ssl.privkey = "$fp_cert_dir/privkey.pem" - ssl.ca-file = "$fp_cert_dir/fullchain.pem" # For DH/DHE ciphers, dhparam should be >= 2048-bit #ssl.dh-file = "/path/to/dhparam.pem" From e0df7c7b92d90224bcec6b5b418677a6558fee85 Mon Sep 17 00:00:00 2001 From: MichaIng Date: Wed, 8 Mar 2023 19:02:17 +0100 Subject: [PATCH 124/155] v8.15 - DietPi-Software | Update two fallback URLs --- dietpi/dietpi-software | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/dietpi/dietpi-software b/dietpi/dietpi-software index 9812f30ecf..d9576bfef2 100755 --- a/dietpi/dietpi-software +++ b/dietpi/dietpi-software @@ -6513,7 +6513,7 @@ _EOF_ esac # Download - local fallback_url="https://github.com/fatedier/frp/releases/download/v0.47.0/frp_0.47.0_linux_$arch.tar.gz" + local fallback_url="https://github.com/fatedier/frp/releases/download/v0.48.0/frp_0.48.0_linux_$arch.tar.gz" Download_Install "$(curl -sSfL 'https://api.github.com/repos/fatedier/frp/releases/latest' | mawk -F\" "/\"browser_download_url\": .*\/frp_[0-9.]*_linux_$arch\.tar\.gz\"/{print \$4}")" G_EXEC cd frp_* @@ -7424,7 +7424,7 @@ _EOF_ if To_Install 179 # Komga then - local fallback_url='https://github.com/gotson/komga/releases/download/v0.162.0/komga-0.162.0.jar' + local fallback_url='https://github.com/gotson/komga/releases/download/v0.163.0/komga-0.163.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 f8db5169a27bb17ff9511e7fc84c879559ded0bb Mon Sep 17 00:00:00 2001 From: MichaIng Date: Wed, 8 Mar 2023 21:47:35 +0100 Subject: [PATCH 125/155] v8.15 - DietPi-Software | Koel: Resolved an issue where the install failed on Buster systems, since Koel 5.1.14 requires at least PHP 7.4. Koel 5.0.2 will now be installed on Buster, being the latest functional one supporting PHP 7.3. Many thanks to @bartolus39 for reporting this issue: https://github.com/MichaIng/DietPi/issues/6226 --- CHANGELOG.txt | 1 + dietpi/dietpi-software | 9 +++++++-- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.txt b/CHANGELOG.txt index e7fcdb3cb5..d3d1fd803f 100644 --- a/CHANGELOG.txt +++ b/CHANGELOG.txt @@ -23,6 +23,7 @@ Bug fixes: - DietPi-Software | Pi-hole: Resolved an issue where Nginx, if chosen as webserver, failed to start due to an invalid variable. Many thanks to @Trimble-tech for reporting this issue: https://dietpi.com/forum/t/pi-hole-install-crashes-nginx/15960 - DietPi-Software | Python 3: Resolved an issue on Bookworm where installs of and via pip failed because the Debian Python 3.11 packages added a flag to prevent system-wide module installs without an override flag. - DietPi-Software | Synapse: Resolved an issue where the install failed on Debian Bookworm. +- DietPi-Software | Koel: Resolved an issue where the install failed on Buster systems, since Koel 5.1.14 requires at least PHP 7.4. Koel 5.0.2 will now be installed on Buster, being the latest functional one supporting PHP 7.3. Many thanks to @bartolus39 for reporting this issue: https://github.com/MichaIng/DietPi/issues/6226 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/XXXX diff --git a/dietpi/dietpi-software b/dietpi/dietpi-software index d9576bfef2..68f5cf3c26 100755 --- a/dietpi/dietpi-software +++ b/dietpi/dietpi-software @@ -9427,7 +9427,7 @@ _EOF_ # - pdo_sqlite module required for "artisan koel:init" < "artisan db:seed", despite MySQL database engine used aDEPS=("php$PHP_VERSION-bcmath" "php$PHP_VERSION-mbstring" "php$PHP_VERSION-sqlite3" "php$PHP_VERSION-xml") - # Grab latest supported release: Koel v6 requires PHP 8.0 or higher for Laravel 9 + # Grab latest supported release: Koel v6 requires PHP 8.0 or higher for Laravel 9 and Koel v5.1.14 (latest v5) requires PHP 7.4 if (( ${PHP_VERSION::1} > 7 )) then aDEPS+=("php$PHP_VERSION-curl") @@ -9436,7 +9436,12 @@ _EOF_ else aDEPS+=("php$PHP_VERSION-json") local aphp_deps=('json') - Download_Install 'https://github.com/koel/koel/releases/download/v5.1.14/koel-v5.1.14.tar.gz' + if (( $PHP_VERSION == 7.4 )) + then + Download_Install 'https://github.com/koel/koel/releases/download/v5.1.14/koel-v5.1.14.tar.gz' + else + Download_Install 'https://github.com/koel/koel/releases/download/v5.0.2/koel-v5.0.2.tar.gz' + fi fi # Reinstall: Clear previous install, but keep existing config file From 39d4b1ce57137e1d4f9b560056b80f772c497e61 Mon Sep 17 00:00:00 2001 From: MichaIng Date: Wed, 8 Mar 2023 21:49:00 +0100 Subject: [PATCH 126/155] v8.15 - DietPi-Software | Minor comment fix --- dietpi/dietpi-software | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dietpi/dietpi-software b/dietpi/dietpi-software index 68f5cf3c26..a71782683f 100755 --- a/dietpi/dietpi-software +++ b/dietpi/dietpi-software @@ -9427,7 +9427,7 @@ _EOF_ # - pdo_sqlite module required for "artisan koel:init" < "artisan db:seed", despite MySQL database engine used aDEPS=("php$PHP_VERSION-bcmath" "php$PHP_VERSION-mbstring" "php$PHP_VERSION-sqlite3" "php$PHP_VERSION-xml") - # Grab latest supported release: Koel v6 requires PHP 8.0 or higher for Laravel 9 and Koel v5.1.14 (latest v5) requires PHP 7.4 + # Grab latest supported release: Koel v6 requires PHP 8.0 or higher for Laravel 9 and Koel v5.1 requires PHP 7.4 if (( ${PHP_VERSION::1} > 7 )) then aDEPS+=("php$PHP_VERSION-curl") From 5ec16db6c62c93545ebcae24feebb18503249ae3 Mon Sep 17 00:00:00 2001 From: MichaIng Date: Wed, 8 Mar 2023 21:59:22 +0100 Subject: [PATCH 127/155] v8.15 - DietPi-Software | Syntax --- dietpi/dietpi-software | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dietpi/dietpi-software b/dietpi/dietpi-software index a71782683f..88adbf1ea6 100755 --- a/dietpi/dietpi-software +++ b/dietpi/dietpi-software @@ -9436,7 +9436,7 @@ _EOF_ else aDEPS+=("php$PHP_VERSION-json") local aphp_deps=('json') - if (( $PHP_VERSION == 7.4 )) + if [[ $PHP_VERSION == '7.4' ]] then Download_Install 'https://github.com/koel/koel/releases/download/v5.1.14/koel-v5.1.14.tar.gz' else From 34450464b9855d80994010a934a791a81c36e6c4 Mon Sep 17 00:00:00 2001 From: MichaIng Date: Thu, 9 Mar 2023 13:24:24 +0100 Subject: [PATCH 128/155] v8.15 - DietPi-Software | ownCloud: Install ownCloud 10.11 explicitly on Buster systems, since the upcoming ownCloud 10.12 drops PHP 7.3 support (while it does not even support PHP 8.0 yet) --- dietpi/dietpi-software | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/dietpi/dietpi-software b/dietpi/dietpi-software index 88adbf1ea6..8a5f751c7c 100755 --- a/dietpi/dietpi-software +++ b/dietpi/dietpi-software @@ -4265,7 +4265,14 @@ _EOF_ # Correct config.php data directory entry, in case it changed due to server migration: G_CONFIG_INJECT "'datadirectory'" "'datadirectory' => '$datadir'," /var/www/owncloud/config/config.php "'dbtype'" else - Download_Install 'https://download.owncloud.com/server/stable/owncloud-latest.tar.bz2' /var/www + # ownCloud 10.12 drops PHP 7.3 support: https://github.com/owncloud/core/pull/40394 + if (( $G_DISTRO < 6 )) + then + G_DIETPI-NOTIFY 2 'Downloading latest ownCloud 10.11, since ownCloud 10.12 does not support PHP7.3 anymore' + Download_Install 'https://download.owncloud.com/server/stable/owncloud-10.11.0.tar.bz2' /var/www + else + Download_Install 'https://download.owncloud.com/server/stable/owncloud-latest.tar.bz2' /var/www + fi fi fi From bf59e289559b4c773a95a58abe6992bb64f6358b Mon Sep 17 00:00:00 2001 From: MichaIng Date: Thu, 9 Mar 2023 20:44:40 +0100 Subject: [PATCH 129/155] v8.15 - Odroid C4 | Added support for HDMI audio to dietpi-config. The manual setup via a(lsa)mixer was very complicated. Many thanks to @MDAR for testing the solution: https://github.com/MichaIng/DietPi/issues/6178 --- CHANGELOG.txt | 5 +++-- dietpi/dietpi-config | 5 +++++ dietpi/func/dietpi-set_hardware | 26 ++++++++++++++++++++++++++ 3 files changed, 34 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.txt b/CHANGELOG.txt index d3d1fd803f..d33d073974 100644 --- a/CHANGELOG.txt +++ b/CHANGELOG.txt @@ -3,12 +3,14 @@ v8.15 New images: - StarFive VisionFive 2 | An experimental image has been added. For details, please read our related blog post: https://dietpi.com/blog/?p=2629 +- ROCK 5B | Resolved an issue with kernel upgrades since the boot partition was too small. The image is not shipped without a dedicated boot partition. Many thanks to @isarrider and @skyuplam for reporting this issue and testing the solution: https://github.com/MichaIng/DietPi/issues/6206 Removed software: - Build-Essential | The C/C++ build tools and headers install option has been removed. It was used as generic dependency for other software options, but with the downside that often more packages were installed than required. When compiling is done, specific additional development headers are usually required anyway, so adding the required compiler and in case "make" per software option isn't such a burden. Hence, this has been done gradually and finally finished, making "Build-Essential" obsolete. Enhancements: - Quartz64 | Major kernel update to latest v6.1.14, stable U-Boot v2022.04 and enabled a lot of kernel features for various container engines and firewall/filter tasks: https://github.com/MichaIng/DietPi/issues/6151. The kernel upgrade will be applied on DietPi update. +- Odroid C4 | Added support for HDMI audio to dietpi-config. The manual setup via a(lsa)mixer was very complicated. Many thanks to @MDAR for testing the solution: https://github.com/MichaIng/DietPi/issues/6178 - DietPi-Installer | Resolved an issue where conflicting network configurations were left in place, e.g. from cloud-init when running the script on a VPS Debian image. Many thanks to @mews-se for reporting this issue: https://github.com/MichaIng/DietPi/issues/6067 - DietPi-CPU_info | The script and "cpu" command do not require root privileges anymore. Many thanks to @hansratzinger for bringing this to our attention: https://github.com/MichaIng/DietPi/issues/6196. The option to write available scaling frequencies to a file via command argument "2" has been removed as well. This was not documented anywhere and has no use for end users. Internally it was used by dietpi-config, where the code has now been moved to and overall shortened. - DietPi-Software | XRDP: TLS via snakeoil certificate is now enabled OOTB. This leads to a warning shown on Windows RDP clients until either a proper certificate signed by a trusted CA is used (e.g. by Let's Encrypt), or it is muted for the particular server via checkbox at the client. Many thanks to @amibumping for providing the needed step: https://github.com/MichaIng/DietPi/issues/5976 @@ -17,7 +19,6 @@ Enhancements: Bug fixes: - Quartz64 | Resolved an issue where the system boots read-only on very first boot. Many thanks to @belveder79 for reporting this issue: https://github.com/MichaIng/DietPi/issues/6149 -- ROCK 5B | Resolved an issue with kernel upgrades since the boot partition was too small. The image is not shipped without a dedicated boot partition. Many thanks to @isarrider and @skyuplam for reporting this issue and testing the solution: https://github.com/MichaIng/DietPi/issues/6206 - DietPi-Sync | Resolved an issue where the prompt after the dry run was shown even in non-interactive mode (input argument "1"), and when selecting "Cancel" or ESC, the real sync ran regardless. Many thanks to @Ruud for reporting this issue: https://dietpi.com/forum/t/howto-call-dietpi-sync-1-without-user-interaction/15964 - DietPi-Software | Docker Compose: Resolved an issue where installing and uninstalling Docker Compose could have failed if pip was installed without the distutils module. Many thanks to @bccarbone for reporting this issue: https://github.com/MichaIng/DietPi/issues/6153 - DietPi-Software | Pi-hole: Resolved an issue where Nginx, if chosen as webserver, failed to start due to an invalid variable. Many thanks to @Trimble-tech for reporting this issue: https://dietpi.com/forum/t/pi-hole-install-crashes-nginx/15960 @@ -25,7 +26,7 @@ Bug fixes: - DietPi-Software | Synapse: Resolved an issue where the install failed on Debian Bookworm. - DietPi-Software | Koel: Resolved an issue where the install failed on Buster systems, since Koel 5.1.14 requires at least PHP 7.4. Koel 5.0.2 will now be installed on Buster, being the latest functional one supporting PHP 7.3. Many thanks to @bartolus39 for reporting this issue: https://github.com/MichaIng/DietPi/issues/6226 -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/XXXX +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/6231 For all additional issues that may appear after release, please see the following link for active tickets: https://github.com/MichaIng/DietPi/issues diff --git a/dietpi/dietpi-config b/dietpi/dietpi-config index 4a6936be89..31946c3f2e 100755 --- a/dietpi/dietpi-config +++ b/dietpi/dietpi-config @@ -3322,6 +3322,11 @@ Additional benchmarks: G_WHIP_MENU_ARRAY+=('OdroidN2_HDMI' ': Onboard digital HDMI audio (default)') G_WHIP_MENU_ARRAY+=('OdroidN2_3.5mm' ': Onboard analogue 3.5mm audio') + # Odroid C4: Modern image + elif [[ $G_HW_MODEL == 16 && -f '/boot/dietpiEnv.txt' ]]; then + + G_WHIP_MENU_ARRAY+=('OdroidC4_HDMI' ': Onboard digital HDMI audio (default)') + fi # Intel SST DSP diff --git a/dietpi/func/dietpi-set_hardware b/dietpi/func/dietpi-set_hardware index 15e303685e..e3ae2d7064 100755 --- a/dietpi/func/dietpi-set_hardware +++ b/dietpi/func/dietpi-set_hardware @@ -1680,6 +1680,11 @@ _EOF_ Soundcard_Reset_OdroidN2 + # - Odroid C4: Modern image + elif [[ $G_HW_MODEL == 16 && -f '/boot/dietpiEnv.txt' ]]; then + + Soundcard_Reset_OdroidC4 + # - Odroid elif (( $G_HW_MODEL < 20 )); then @@ -1768,6 +1773,11 @@ _EOF_ [[ $INPUT_DEVICE_VALUE == 'default' ]] && INPUT_DEVICE_VALUE='odroidn2_hdmi' } + Soundcard_Reset_OdroidC4() + { + [[ $INPUT_DEVICE_VALUE == 'default' ]] && INPUT_DEVICE_VALUE='odroidc4_hdmi' + } + Soundcard_Reset_Asus() { SOUNDCARD_TARGET_CARD=1 # HDMI @@ -2106,6 +2116,22 @@ _EOF_ G_EXEC amixer -c 0 set 'ACODEC' '85%' ;; + 'odroidc4_hdmi') + + # Enable HDMI output + G_EXEC amixer -c 0 set 'TOHDMITX' 'on' + # Use I2S B as source for HDMI output (I2S A does not work) + G_EXEC amixer -c 0 set 'TOHDMITX I2S SRC' 'I2S B' + # Use ALSA device 0 as input for I2S B + G_EXEC amixer -c 0 set 'TDMOUT_B SRC SEL' 'IN 0' + # Enable I2S B (SRC 2) on device 0 (_A) + G_EXEC amixer -c 0 set 'FRDDR_A SRC 2 EN' 'on' + # Set output channels for device 0 (_A) + G_EXEC amixer -c 0 set 'FRDDR_A SINK 1 SEL' 'OUT 0' + G_EXEC amixer -c 0 set 'FRDDR_A SINK 2 SEL' 'OUT 1' + G_EXEC amixer -c 0 set 'FRDDR_A SINK 3 SEL' 'OUT 2' + ;; + # --------------- H3 -------------------- 'h3-analogue') SOUNDCARD_TARGET_CARD=0;; From 53eea71f1450a9da41e798bf9250a270d2971575 Mon Sep 17 00:00:00 2001 From: MichaIng Date: Fri, 10 Mar 2023 00:13:08 +0100 Subject: [PATCH 130/155] v8.15 - CHANGELOG | HDMI audio for C4 generally works on HC4 as well --- CHANGELOG.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.txt b/CHANGELOG.txt index d33d073974..699d41462f 100644 --- a/CHANGELOG.txt +++ b/CHANGELOG.txt @@ -10,7 +10,7 @@ Removed software: Enhancements: - Quartz64 | Major kernel update to latest v6.1.14, stable U-Boot v2022.04 and enabled a lot of kernel features for various container engines and firewall/filter tasks: https://github.com/MichaIng/DietPi/issues/6151. The kernel upgrade will be applied on DietPi update. -- Odroid C4 | Added support for HDMI audio to dietpi-config. The manual setup via a(lsa)mixer was very complicated. Many thanks to @MDAR for testing the solution: https://github.com/MichaIng/DietPi/issues/6178 +- Odroid C4/HC4 | Added support for HDMI audio to dietpi-config. The manual setup via a(lsa)mixer was very complicated. Many thanks to @MDAR for testing the solution: https://github.com/MichaIng/DietPi/issues/6178 - DietPi-Installer | Resolved an issue where conflicting network configurations were left in place, e.g. from cloud-init when running the script on a VPS Debian image. Many thanks to @mews-se for reporting this issue: https://github.com/MichaIng/DietPi/issues/6067 - DietPi-CPU_info | The script and "cpu" command do not require root privileges anymore. Many thanks to @hansratzinger for bringing this to our attention: https://github.com/MichaIng/DietPi/issues/6196. The option to write available scaling frequencies to a file via command argument "2" has been removed as well. This was not documented anywhere and has no use for end users. Internally it was used by dietpi-config, where the code has now been moved to and overall shortened. - DietPi-Software | XRDP: TLS via snakeoil certificate is now enabled OOTB. This leads to a warning shown on Windows RDP clients until either a proper certificate signed by a trusted CA is used (e.g. by Let's Encrypt), or it is muted for the particular server via checkbox at the client. Many thanks to @amibumping for providing the needed step: https://github.com/MichaIng/DietPi/issues/5976 From 4870ccfde706aa843970e2e7d6b6e8ebebb2d800 Mon Sep 17 00:00:00 2001 From: MichaIng Date: Fri, 10 Mar 2023 00:18:15 +0100 Subject: [PATCH 131/155] v8.15 - RC up --- .update/version | 2 +- dietpi/func/dietpi-globals | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.update/version b/.update/version index a5ec8297b3..fd8b67aafa 100644 --- a/.update/version +++ b/.update/version @@ -3,7 +3,7 @@ # Available DietPi version G_REMOTE_VERSION_CORE=8 G_REMOTE_VERSION_SUB=15 -G_REMOTE_VERSION_RC=0 +G_REMOTE_VERSION_RC=1 # Minimum DietPi version to allow update G_MIN_VERSION_CORE=6 G_MIN_VERSION_SUB=14 diff --git a/dietpi/func/dietpi-globals b/dietpi/func/dietpi-globals index ef7c65a037..b9cf0521c9 100644 --- a/dietpi/func/dietpi-globals +++ b/dietpi/func/dietpi-globals @@ -59,7 +59,7 @@ # - Assign defaults/code version as fallback [[ $G_DIETPI_VERSION_CORE ]] || G_DIETPI_VERSION_CORE=8 [[ $G_DIETPI_VERSION_SUB ]] || G_DIETPI_VERSION_SUB=15 - [[ $G_DIETPI_VERSION_RC ]] || G_DIETPI_VERSION_RC=0 + [[ $G_DIETPI_VERSION_RC ]] || G_DIETPI_VERSION_RC=1 [[ $G_GITBRANCH ]] || G_GITBRANCH='master' [[ $G_GITOWNER ]] || G_GITOWNER='MichaIng' # - Save current version and Git branch From 1aeef2ff359f55b2b68e8d867642a8c01e5070bd Mon Sep 17 00:00:00 2001 From: MichaIng Date: Fri, 10 Mar 2023 13:53:00 +0100 Subject: [PATCH 132/155] v8.15 - CHANGELOG | Typo --- CHANGELOG.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.txt b/CHANGELOG.txt index 699d41462f..58592456ae 100644 --- a/CHANGELOG.txt +++ b/CHANGELOG.txt @@ -3,7 +3,7 @@ v8.15 New images: - StarFive VisionFive 2 | An experimental image has been added. For details, please read our related blog post: https://dietpi.com/blog/?p=2629 -- ROCK 5B | Resolved an issue with kernel upgrades since the boot partition was too small. The image is not shipped without a dedicated boot partition. Many thanks to @isarrider and @skyuplam for reporting this issue and testing the solution: https://github.com/MichaIng/DietPi/issues/6206 +- ROCK 5B | Resolved an issue with kernel upgrades since the boot partition was too small. The image is now shipped without a dedicated boot partition. Many thanks to @isarrider and @skyuplam for reporting this issue and testing the solution: https://github.com/MichaIng/DietPi/issues/6206 Removed software: - Build-Essential | The C/C++ build tools and headers install option has been removed. It was used as generic dependency for other software options, but with the downside that often more packages were installed than required. When compiling is done, specific additional development headers are usually required anyway, so adding the required compiler and in case "make" per software option isn't such a burden. Hence, this has been done gradually and finally finished, making "Build-Essential" obsolete. From b47d218473b5aac4784a2cfb4a95c254a0119227 Mon Sep 17 00:00:00 2001 From: MichaIng Date: Fri, 10 Mar 2023 14:54:51 +0100 Subject: [PATCH 133/155] v8.15 - DietPi-Config | Resolved a v8.14 regression where an invalid post-down interface entry was created when using WiFi Hotspot. Many thanks to @as-shura for reporting this issue: https://github.com/MichaIng/DietPi/issues/6224 --- CHANGELOG.txt | 1 + dietpi/dietpi-config | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.txt b/CHANGELOG.txt index 58592456ae..326305d0e8 100644 --- a/CHANGELOG.txt +++ b/CHANGELOG.txt @@ -20,6 +20,7 @@ Enhancements: Bug fixes: - Quartz64 | Resolved an issue where the system boots read-only on very first boot. Many thanks to @belveder79 for reporting this issue: https://github.com/MichaIng/DietPi/issues/6149 - DietPi-Sync | Resolved an issue where the prompt after the dry run was shown even in non-interactive mode (input argument "1"), and when selecting "Cancel" or ESC, the real sync ran regardless. Many thanks to @Ruud for reporting this issue: https://dietpi.com/forum/t/howto-call-dietpi-sync-1-without-user-interaction/15964 +- DietPi-Config | Resolved a v8.14 regression where an invalid post-down interface entry was created when using WiFi Hotspot. Many thanks to @as-shura for reporting this issue: https://github.com/MichaIng/DietPi/issues/6224 - DietPi-Software | Docker Compose: Resolved an issue where installing and uninstalling Docker Compose could have failed if pip was installed without the distutils module. Many thanks to @bccarbone for reporting this issue: https://github.com/MichaIng/DietPi/issues/6153 - DietPi-Software | Pi-hole: Resolved an issue where Nginx, if chosen as webserver, failed to start due to an invalid variable. Many thanks to @Trimble-tech for reporting this issue: https://dietpi.com/forum/t/pi-hole-install-crashes-nginx/15960 - DietPi-Software | Python 3: Resolved an issue on Bookworm where installs of and via pip failed because the Debian Python 3.11 packages added a flag to prevent system-wide module installs without an override flag. diff --git a/dietpi/dietpi-config b/dietpi/dietpi-config index 31946c3f2e..b87f657a21 100755 --- a/dietpi/dietpi-config +++ b/dietpi/dietpi-config @@ -1910,7 +1910,7 @@ netmask 255.255.255.0 #gateway 192.168.0.1 #dns-nameservers 9.9.9.9 149.112.112.112 pre-up iw dev $WIFI_DEV_IFACE set power_save off -post-down iw dev "WIFI_DEV_IFACE set power_save on +post-down iw dev "$WIFI_DEV_IFACE set power_save on # iptables NAT rules up iptables-restore < /etc/iptables.ipv4.nat From 517b74546bab0fc3c3019b93bb18b7c9afee639b Mon Sep 17 00:00:00 2001 From: MichaIng Date: Fri, 10 Mar 2023 15:31:50 +0100 Subject: [PATCH 134/155] v8.15 - Quartz64 | Bump Linux to v6.1.16 --- .github/workflows/quartz64.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/quartz64.yml b/.github/workflows/quartz64.yml index 2426edd8ef..f306ea485c 100644 --- a/.github/workflows/quartz64.yml +++ b/.github/workflows/quartz64.yml @@ -13,7 +13,8 @@ jobs: shell: sh working-directory: /dev/shm env: - linux_version: '6.1.14' + # https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/?h=linux-rolling-stable + linux_version: '6.1.16' uboot_branch: 'v2022.04-dietpi' CROSS_COMPILE: 'aarch64-linux-gnu-' ARCH: 'arm64' From 8b8dbcdabbbd10a62a6664b4d6e3338349e39531 Mon Sep 17 00:00:00 2001 From: MichaIng Date: Fri, 10 Mar 2023 16:45:26 +0100 Subject: [PATCH 135/155] v8.15 - CI | Update Quartz64 workflow --- .github/workflows/quartz64.yml | 25 +++++++++++-------------- 1 file changed, 11 insertions(+), 14 deletions(-) diff --git a/.github/workflows/quartz64.yml b/.github/workflows/quartz64.yml index f306ea485c..3ceb4e3c1f 100644 --- a/.github/workflows/quartz64.yml +++ b/.github/workflows/quartz64.yml @@ -22,26 +22,24 @@ jobs: # https://github.com/actions/setup-python/tags - uses: actions/setup-python@v4 with: - # https://github.com/actions/python-versions/tags python-version: '3.x' check-latest: true - name: Setup build run: | - { sudo apt-get -q update; sudo apt-get -qq install make gcc libc6-dev gcc-aarch64-linux-gnu bc bison flex libssl-dev libncurses5-dev libelf-dev time xz-utils device-tree-compiler kmod swig zip; } & + { sudo apt-get -q update; sudo DEBIAN_FRONTEND=noninteractive apt-get --no-install-recommends -qq install make gcc libc6-dev flex bison gcc-aarch64-linux-gnu bc libssl-dev; } & { python3 -m pip install --no-cache-dir -U pip setuptools wheel; python3 -m pip install --no-cache-dir -U pyelftools; } & - { curl -fO "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/snapshot/linux-$linux_version.tar.gz"; tar xf "linux-$linux_version.tar.gz"; rm "linux-$linux_version.tar.gz"; } & { curl -fO "https://gitlab.com/MichaIng/u-boot/-/archive/$uboot_branch/u-boot-$uboot_branch.tar.bz2"; tar xf "u-boot-$uboot_branch.tar.bz2"; rm "u-boot-$uboot_branch.tar.bz2"; } & - mkdir artefacts + { curl -fO "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/snapshot/linux-$linux_version.tar.gz"; tar xf "linux-$linux_version.tar.gz"; rm "linux-$linux_version.tar.gz"; } & + wait + curl -sSfo "u-boot-$uboot_branch/u-boot-spl-ddr.bin" 'https://raw.githubusercontent.com/JeffyCN/rockchip_mirrors/rkbin/bin/rk35/rk3568_ddr_1560MHz_v1.13.bin' & + curl -sSfo "u-boot-$uboot_branch/bl31.elf" 'https://raw.githubusercontent.com/JeffyCN/rockchip_mirrors/6186deb/bin/rk35/rk3568_bl31_v1.28.elf' & + curl -sSfo "linux-$linux_version/arch/arm64/configs/quartz64_defconfig" "https://raw.githubusercontent.com/$GITHUB_REPOSITORY_OWNER/DietPi/${GITHUB_REF#refs/heads/}/.build/images/Quartz64/quartz64_defconfig" & + mkdir -p artefacts/mainline-u-boot modules wait - curl -sSfo "linux-$linux_version/arch/arm64/configs/quartz64_defconfig" "https://raw.githubusercontent.com/$GITHUB_REPOSITORY_OWNER/DietPi/${GITHUB_REF#refs/heads/}/.build/images/Quartz64/quartz64_defconfig" - name: Build U-Boot run: | - mkdir artefacts/mainline-u-boot - cd "u-boot-$uboot_branch" - curl -sSfo 'u-boot-spl-ddr.bin' 'https://raw.githubusercontent.com/JeffyCN/rockchip_mirrors/rkbin/bin/rk35/rk3568_ddr_1560MHz_v1.13.bin' & - curl -sSfo 'bl31.elf' 'https://raw.githubusercontent.com/JeffyCN/rockchip_mirrors/6186deb/bin/rk35/rk3568_bl31_v1.28.elf' & export BL31='bl31.elf' - wait + cd "u-boot-$uboot_branch" make quartz64-a-rk3566_defconfig make -j$(nproc) mv u-boot-rockchip.bin ../artefacts/mainline-u-boot/quartz64-a-u-boot-rockchip.bin @@ -55,7 +53,6 @@ jobs: rm -R "u-boot-$uboot_branch" - name: Build Linux run: | - mkdir modules export INSTALL_MOD_PATH="$PWD/modules" cd "linux-$linux_version" make quartz64_defconfig @@ -73,7 +70,7 @@ jobs: umask 377 echo '${{ secrets.KNOWN_HOSTS }}' > ~/.ssh/known_hosts echo '${{ secrets.SSH_KEY }}' > ~/.ssh/id_ed25519 - zip -9r artefacts.zip artefacts - curl -T artefacts.zip --key ~/.ssh/id_ed25519 '${{ secrets.UPLOAD_URL }}all/' + tar cI 'gzip -9' -f artefacts.tar.gz artefacts + curl -T artefacts.tar.gz --key ~/.ssh/id_ed25519 '${{ secrets.UPLOAD_URL }}all/' curl 'https://api.cloudflare.com/client/v4/zones/${{ secrets.CF_ZONE }}/purge_cache' -H 'Authorization: Bearer ${{ secrets.CF_TOKEN }}' -H 'Content-Type: application/json' \ - --data '{"files":["https://dietpi.com/downloads/binaries/testing/","https://dietpi.com/downloads/binaries/testing/artefacts.zip"]}' + --data '{"files":["https://dietpi.com/downloads/binaries/testing/","https://dietpi.com/downloads/binaries/testing/artefacts.tar.gz"]}' From 5046df6f1e65f10a1a6a774f239e7b5ed300f148 Mon Sep 17 00:00:00 2001 From: MichaIng Date: Fri, 10 Mar 2023 18:38:35 +0100 Subject: [PATCH 136/155] v8.15 - DietPi-Software | Box64: Added RISC-V support, as well as optimised builds for Raspberry Pi 3 and RK3588 boards, available since v0.2.2: https://github.com/ptitSeb/box64/releases/tag/v0.2.2 --- CHANGELOG.txt | 1 + dietpi/dietpi-software | 20 ++++++++++---------- 2 files changed, 11 insertions(+), 10 deletions(-) diff --git a/CHANGELOG.txt b/CHANGELOG.txt index 326305d0e8..c081b36ce7 100644 --- a/CHANGELOG.txt +++ b/CHANGELOG.txt @@ -16,6 +16,7 @@ Enhancements: - DietPi-Software | XRDP: TLS via snakeoil certificate is now enabled OOTB. This leads to a warning shown on Windows RDP clients until either a proper certificate signed by a trusted CA is used (e.g. by Let's Encrypt), or it is muted for the particular server via checkbox at the client. Many thanks to @amibumping for providing the needed step: https://github.com/MichaIng/DietPi/issues/5976 - DietPi-Software | Home Assistant: Our Home Assistant integration used two Python environments: A pyenv is used to install the "homeassistant" core module and its direct dependencies. Home Assistant itself installs its frontend with dependencies on startup, as well as dependencies for integrations on demand, internally into another Python environment. On Home Assistant reinstalls, pyenv is removed but the internal dependencies were left untouched. This caused issues when those dependency builds were incompatible with the new pyenv Python version, or conflicting with other pyenv module upgrades. Both environments are now merged and reset on every reinstall, which solves potential conflicts but means that the first Home Assistant startup after a reinstall takes longer. Many thanks to @maury77 for reporting a related issue: https://github.com/MichaIng/DietPi/issues/6117 - DietPi-Software | WiFi Hotspot: hostapd and the DHCP server are not stopped and restarted on DietPi updates, software installs and backups anymore, since the hotspot might be used by the client which does this task and then cuts its own connection. Many thanks to @symbios24 for making us aware of this: https://github.com/MichaIng/DietPi/issues/6166 +- DietPi-Software | Box64: Added RISC-V support, as well as optimised builds for Raspberry Pi 3 and RK3588 boards, available since v0.2.2: https://github.com/ptitSeb/box64/releases/tag/v0.2.2 Bug fixes: - Quartz64 | Resolved an issue where the system boots read-only on very first boot. Many thanks to @belveder79 for reporting this issue: https://github.com/MichaIng/DietPi/issues/6149 diff --git a/dietpi/dietpi-software b/dietpi/dietpi-software index 8a5f751c7c..e8e244c987 100755 --- a/dietpi/dietpi-software +++ b/dietpi/dietpi-software @@ -11020,7 +11020,7 @@ _EOF_ # Download local version=$(curl -sSfL 'https://api.github.com/repos/ptitSeb/box86/tags' | mawk -F\" '/"name": /{print $4}' | head -1) - [[ $version ]] || { version='v0.2.8'; G_DIETPI-NOTIFY 1 "Automatic latest ${aSOFTWARE_NAME[$software_id]} version detection failed. Version \"$version\" will be installed as fallback, but a newer version might be available. Please report this at: https://github.com/MichaIng/DietPi/issues"; } + [[ $version ]] || { version='v0.3.0'; G_DIETPI-NOTIFY 1 "Automatic latest ${aSOFTWARE_NAME[$software_id]} version detection failed. Version \"$version\" will be installed as fallback, but a newer version might be available. Please report this at: https://github.com/MichaIng/DietPi/issues"; } Download_Install "https://github.com/ptitSeb/box86/archive/$version.tar.gz" # Build for targets: https://github.com/ptitSeb/box86/blob/master/CMakeLists.txt @@ -11065,7 +11065,7 @@ _EOF_ # Download local version=$(curl -sSfL 'https://api.github.com/repos/ptitSeb/box64/tags' | mawk -F\" '/"name": /{print $4}' | head -1) - [[ $version ]] || { version='v0.2.0'; G_DIETPI-NOTIFY 1 "Automatic latest ${aSOFTWARE_NAME[$software_id]} version detection failed. Version \"$version\" will be installed as fallback, but a newer version might be available. Please report this at: https://github.com/MichaIng/DietPi/issues"; } + [[ $version ]] || { version='v0.2.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://github.com/ptitSeb/box64/archive/$version.tar.gz" # Build for targets: https://github.com/ptitSeb/box64/blob/main/CMakeLists.txt @@ -11075,10 +11075,10 @@ _EOF_ if (( $G_HW_ARCH == 11 )) then G_EXEC cmake .. -DRV64=1 -DNOGIT=1 -DCMAKE_BUILD_TYPE=RelWithDebInfo - # - ToDo: RPi 3 - #elif (( $G_HW_MODEL == 3 )) - #then - # G_EXEC cmake .. -DRPI3ARM64=1 -DNOGIT=1 -DCMAKE_BUILD_TYPE=RelWithDebInfo + # - RPi 3 + elif (( $G_HW_MODEL == 3 )) + then + G_EXEC cmake .. -DRPI3ARM64=1 -DNOGIT=1 -DCMAKE_BUILD_TYPE=RelWithDebInfo # - RPi 4 elif (( $G_HW_MODEL == 4 )) then @@ -11091,10 +11091,10 @@ _EOF_ elif (( $G_HW_CPUID == 3 )) then G_EXEC cmake .. -DRK3399=1 -DNOGIT=1 -DCMAKE_BUILD_TYPE=RelWithDebInfo - # - ToDo: RK3588 - #elif (( $G_HW_CPUID == 11 )) - #then - # G_EXEC cmake .. -DRK3588=1 -DNOGIT=1 -DCMAKE_BUILD_TYPE=RelWithDebInfo + # - RK3588 + elif (( $G_HW_CPUID == 11 )) + then + G_EXEC cmake .. -DRK3588=1 -DNOGIT=1 -DCMAKE_BUILD_TYPE=RelWithDebInfo # - Others else G_EXEC cmake .. -DARM_DYNAREC=1 -DNOGIT=1 -DCMAKE_BUILD_TYPE=RelWithDebInfo From adcbb59eeaa7a4d2ee03c2fb1195f6dedd2a994e Mon Sep 17 00:00:00 2001 From: MichaIng Date: Fri, 10 Mar 2023 19:59:12 +0100 Subject: [PATCH 137/155] v8.15 - DietPi-Config | VisionFive 2: Added an entry to "Advanced Options" to update the SPI flash bootloader. --- CHANGELOG.txt | 1 + dietpi/dietpi-config | 23 ++++++++++++++++------- dietpi/func/dietpi-set_hardware | 28 +++++++++++++++++++++++----- 3 files changed, 40 insertions(+), 12 deletions(-) diff --git a/CHANGELOG.txt b/CHANGELOG.txt index c081b36ce7..9bb415833a 100644 --- a/CHANGELOG.txt +++ b/CHANGELOG.txt @@ -13,6 +13,7 @@ Enhancements: - Odroid C4/HC4 | Added support for HDMI audio to dietpi-config. The manual setup via a(lsa)mixer was very complicated. Many thanks to @MDAR for testing the solution: https://github.com/MichaIng/DietPi/issues/6178 - DietPi-Installer | Resolved an issue where conflicting network configurations were left in place, e.g. from cloud-init when running the script on a VPS Debian image. Many thanks to @mews-se for reporting this issue: https://github.com/MichaIng/DietPi/issues/6067 - DietPi-CPU_info | The script and "cpu" command do not require root privileges anymore. Many thanks to @hansratzinger for bringing this to our attention: https://github.com/MichaIng/DietPi/issues/6196. The option to write available scaling frequencies to a file via command argument "2" has been removed as well. This was not documented anywhere and has no use for end users. Internally it was used by dietpi-config, where the code has now been moved to and overall shortened. +- DietPi-Config | VisionFive 2: Added an entry to "Advanced Options" to update the SPI flash bootloader. - DietPi-Software | XRDP: TLS via snakeoil certificate is now enabled OOTB. This leads to a warning shown on Windows RDP clients until either a proper certificate signed by a trusted CA is used (e.g. by Let's Encrypt), or it is muted for the particular server via checkbox at the client. Many thanks to @amibumping for providing the needed step: https://github.com/MichaIng/DietPi/issues/5976 - DietPi-Software | Home Assistant: Our Home Assistant integration used two Python environments: A pyenv is used to install the "homeassistant" core module and its direct dependencies. Home Assistant itself installs its frontend with dependencies on startup, as well as dependencies for integrations on demand, internally into another Python environment. On Home Assistant reinstalls, pyenv is removed but the internal dependencies were left untouched. This caused issues when those dependency builds were incompatible with the new pyenv Python version, or conflicting with other pyenv module upgrades. Both environments are now merged and reset on every reinstall, which solves potential conflicts but means that the first Home Assistant startup after a reinstall takes longer. Many thanks to @maury77 for reporting a related issue: https://github.com/MichaIng/DietPi/issues/6117 - DietPi-Software | WiFi Hotspot: hostapd and the DHCP server are not stopped and restarted on DietPi updates, software installs and backups anymore, since the hotspot might be used by the client which does this task and then cuts its own connection. Many thanks to @symbios24 for making us aware of this: https://github.com/MichaIng/DietPi/issues/6166 diff --git a/dietpi/dietpi-config b/dietpi/dietpi-config index b87f657a21..ead357360b 100755 --- a/dietpi/dietpi-config +++ b/dietpi/dietpi-config @@ -1013,22 +1013,23 @@ Re-enabling HDMI requires a reboot. If you need emergency HDMI output, edit the fi # RPi4 EEPROM update: https://www.raspberrypi.org/documentation/hardware/raspberrypi/booteeprom.md - if (( $G_HW_MODEL == 4 )); then - - if dpkg -s 'rpi-eeprom' &> /dev/null; then - + if (( $G_HW_MODEL == 4 )) + then + if dpkg -s 'rpi-eeprom' &> /dev/null + then rpi-eeprom-update -m version_eeprom # shellcheck disable=SC1091 . ./version_eeprom rm version_eeprom G_WHIP_MENU_ARRAY+=('Update RPi4 EEPROM firmware' ": [Bootloader: ${BOOTLOADER_CURRENT:-N/A} | VL805: ${VL805_CURRENT:-N/A}]") - else - G_WHIP_MENU_ARRAY+=('Update RPi4 EEPROM firmware' ': Install rpi-eeprom APT package') - fi + # VisionFive 2: https://doc-en.rvspace.org/VisionFive2/PDF/VisionFive2_QSG.pdf + elif (( $G_HW_MODEL == 81 )) + then + G_WHIP_MENU_ARRAY+=('Update bootloader' ': on VisionFive 2 SPI storage') fi # Serial/UART devices @@ -1146,6 +1147,14 @@ Further information: https://www.raspberrypi.org/documentation/hardware/raspberr \nDo you want to continue?' || return /boot/dietpi/func/dietpi-set_hardware rpi-eeprom + elif [[ $G_WHIP_RETURNED_VALUE == 'Update bootloader' ]]; then + + G_WHIP_YESNO '[ INFO ] SPI bootloader update +\nThis will download and flash the latest U-Boot from StarFive to your VisionFive 2 SPI storage. +Latest release notes: https://github.com/starfive-tech/VisionFive2/releases +\nDo you want to continue?' || return + /boot/dietpi/func/dietpi-set_hardware vf2-spi-update + elif [[ $G_WHIP_RETURNED_VALUE == 'I2C state' ]]; then /boot/dietpi/func/dietpi-set_hardware i2c $(( ! $rpi_i2c_enabled )) && REBOOT_REQUIRED=1 diff --git a/dietpi/func/dietpi-set_hardware b/dietpi/func/dietpi-set_hardware index e3ae2d7064..8cc3595d53 100755 --- a/dietpi/func/dietpi-set_hardware +++ b/dietpi/func/dietpi-set_hardware @@ -223,22 +223,36 @@ _EOF_ } #///////////////////////////////////////////////////////////////////////////////////// - # rpi-eeprom: https://www.raspberrypi.org/documentation/hardware/raspberrypi/booteeprom.md + # rpi-eeprom: https://www.raspberrypi.com/documentation/computers/raspberry-pi.html#updating-the-bootloader #///////////////////////////////////////////////////////////////////////////////////// - RPi_EEPROM(){ - + RPi_EEPROM() + { (( $G_HW_MODEL == 4 )) || { Unsupported_Input_Name; return 1; } # Exit path for non-RPi4 # Install required APT package - G_AGUP - G_AGI rpi-eeprom + G_AG_CHECK_INSTALL_PREREQ rpi-eeprom # Update/flash new bootloader and VL805 USB firmware to EEPROM rpi-eeprom-update -a # Failsafe G_EXEC systemctl enable rpi-eeprom-update + } + #///////////////////////////////////////////////////////////////////////////////////// + # vf2-spi-update: https://doc-en.rvspace.org/VisionFive2/PDF/VisionFive2_QSG.pdf + #///////////////////////////////////////////////////////////////////////////////////// + VF2_SPI_Update() + { + (( $G_HW_MODEL == 81 )) || { Unsupported_Input_Name; return 1; } # Exit path for non-VisionFive 2 + + G_AG_CHECK_INSTALL_PREREQ mtd-utils + local version=$(curl -sSf 'https://api.github.com/repos/starfive-tech/VisionFive2/releases/latest' | mawk -F\" '/"tag_name": /{print $4}') + G_EXEC curl -sSfLO "https://github.com/starfive-tech/VisionFive2/releases/download/$version/u-boot-spl.bin.normal.out" + G_EXEC curl -sSfLO "https://github.com/starfive-tech/VisionFive2/releases/download/$version/visionfive2_fw_payload.img" + G_EXEC_OUTPUT=1 G_EXEC flashcp -v u-boot-spl.bin.normal.out /dev/mtd0 + G_EXEC_OUTPUT=1 G_EXEC flashcp -v visionfive2_fw_payload.img /dev/mtd1 + G_EXEC rm u-boot-spl.bin.normal.out visionfive2_fw_payload.img } #///////////////////////////////////////////////////////////////////////////////////// @@ -2332,6 +2346,10 @@ _EOF_ RPi_EEPROM + elif [[ $INPUT_DEVICE_NAME == 'vf2-spi-update' ]]; then + + VF2_SPI_Update + elif [[ $INPUT_DEVICE_NAME == 'headless' ]]; then Headless_Main From e6b5e14025d1e2a8289b76730dec07313ad0becb Mon Sep 17 00:00:00 2001 From: MichaIng Date: Fri, 10 Mar 2023 22:48:03 +0100 Subject: [PATCH 138/155] v8.15 - 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 e8e244c987..6ef51f9a50 100755 --- a/dietpi/dietpi-software +++ b/dietpi/dietpi-software @@ -11125,7 +11125,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/v3.0.0/tasmoadmin_v3.0.0.tar.gz' + local fallback_url='https://github.com/TasmoAdmin/TasmoAdmin/releases/download/v3.0.1/tasmoadmin_v3.0.1.tar.gz' Download_Install "$(curl -sSfL 'https://api.github.com/repos/TasmoAdmin/TasmoAdmin/releases/latest' | mawk -F\" '/"browser_download_url": ".*\/tasmoadmin_v[^"\/]*\.tar\.gz"$/{print $4}')" # v2 drops PHP <7.4 support: https://github.com/TasmoAdmin/TasmoAdmin/releases/tag/v2.0.0 From d32aa7dd95b3631924bd40323c425faa10bbcc01 Mon Sep 17 00:00:00 2001 From: MichaIng Date: Sat, 11 Mar 2023 00:14:30 +0100 Subject: [PATCH 139/155] v8.15 - VisionFive 2 | Updated Linux to v5.15.98. --- .update/patches | 6 ++++++ CHANGELOG.txt | 3 ++- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/.update/patches b/.update/patches index 6788a0bd78..e04e70e3ed 100755 --- a/.update/patches +++ b/.update/patches @@ -1113,6 +1113,12 @@ Patch_8_15() # Revert with new kernel: https://github.com/MichaIng/DietPi/issues/5890 grep -q ' systemd.unified_cgroup_hierarchy=0' /boot/extlinux/extlinux.conf && G_EXEC sed -i '/^append /s/ systemd.unified_cgroup_hierarchy=0//' /boot/extlinux/extlinux.conf + + elif (( $G_HW_MODEL == 81 )) && dpkg-query -s 'linux-image-visionfive2' &> /dev/null + then + G_EXEC_OUTPUT=1 G_EXEC curl -fO 'https://dietpi.com/downloads/binaries/linux-image-visionfive2.deb' + G_EXEC_OUTPUT=1 G_EXEC dpkg -i linux-image-visionfive2.deb + G_EXEC_HOHALT=1 G_EXEC rm linux-image-visionfive2.deb fi (( $G_DISTRO > 6 )) || for i in '/etc/systemd/system/serial-getty@'*'.service.d/dietpi-baudrate.conf' diff --git a/CHANGELOG.txt b/CHANGELOG.txt index 9bb415833a..7e29e75022 100644 --- a/CHANGELOG.txt +++ b/CHANGELOG.txt @@ -9,8 +9,9 @@ Removed software: - Build-Essential | The C/C++ build tools and headers install option has been removed. It was used as generic dependency for other software options, but with the downside that often more packages were installed than required. When compiling is done, specific additional development headers are usually required anyway, so adding the required compiler and in case "make" per software option isn't such a burden. Hence, this has been done gradually and finally finished, making "Build-Essential" obsolete. Enhancements: -- Quartz64 | Major kernel update to latest v6.1.14, stable U-Boot v2022.04 and enabled a lot of kernel features for various container engines and firewall/filter tasks: https://github.com/MichaIng/DietPi/issues/6151. The kernel upgrade will be applied on DietPi update. +- Quartz64 | Major kernel update to latest v6.1.16, stable U-Boot v2022.04 and enabled a lot of kernel features for various container engines and firewall/filter tasks: https://github.com/MichaIng/DietPi/issues/6151. The kernel upgrade will be applied on DietPi update. - Odroid C4/HC4 | Added support for HDMI audio to dietpi-config. The manual setup via a(lsa)mixer was very complicated. Many thanks to @MDAR for testing the solution: https://github.com/MichaIng/DietPi/issues/6178 +- VisionFive 2 | Updated Linux to v5.15.98. - DietPi-Installer | Resolved an issue where conflicting network configurations were left in place, e.g. from cloud-init when running the script on a VPS Debian image. Many thanks to @mews-se for reporting this issue: https://github.com/MichaIng/DietPi/issues/6067 - DietPi-CPU_info | The script and "cpu" command do not require root privileges anymore. Many thanks to @hansratzinger for bringing this to our attention: https://github.com/MichaIng/DietPi/issues/6196. The option to write available scaling frequencies to a file via command argument "2" has been removed as well. This was not documented anywhere and has no use for end users. Internally it was used by dietpi-config, where the code has now been moved to and overall shortened. - DietPi-Config | VisionFive 2: Added an entry to "Advanced Options" to update the SPI flash bootloader. From 65cf83d144630d1082344ef330751a56798930a0 Mon Sep 17 00:00:00 2001 From: MichaIng Date: Sat, 11 Mar 2023 00:36:33 +0100 Subject: [PATCH 140/155] v8.15 - DietPi-Cleaner | Add cmake to development package cleaner --- dietpi/dietpi-cleaner | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dietpi/dietpi-cleaner b/dietpi/dietpi-cleaner index e16d09edc4..774d63601e 100755 --- a/dietpi/dietpi-cleaner +++ b/dietpi/dietpi-cleaner @@ -325,7 +325,7 @@ $G_PROGRAM_NAME simulation has finished: Press any key to continue..." Banner_Cleaning local apackages - mapfile -t apackages < <(dpkg --get-selections '*-dev' build-essential make automake autoconf g++ gcc pkg-config libtool 2> /dev/null | mawk '{print $1}') + mapfile -t apackages < <(dpkg --get-selections '*-dev' build-essential make cmake automake autoconf g++ gcc pkg-config libtool 2> /dev/null | mawk '{print $1}') if (( $DRY_RUN )); then From efae8b12102d346f9f4a9233e5c126eee1cf28da Mon Sep 17 00:00:00 2001 From: MichaIng Date: Sat, 11 Mar 2023 13:33:48 +0100 Subject: [PATCH 141/155] v8.15 - DietPi-PostBoot | Do not strictly depend on DietPi-PreBoot and turn the script into POSIX/bourne shell complicant - DietPi-PreBoot | Skip set CPU script in container - DietPi-Config | Hide performance options in container --- dietpi/dietpi-config | 4 +-- dietpi/postboot | 25 ++++++++----------- dietpi/preboot | 20 +++++++-------- .../system/dietpi-fs_partition_resize.service | 2 +- .../systemd/system/dietpi-postboot.service | 1 - .../etc/systemd/system/dietpi-preboot.service | 2 +- 6 files changed, 24 insertions(+), 30 deletions(-) diff --git a/dietpi/dietpi-config b/dietpi/dietpi-config index ead357360b..a197c90e32 100755 --- a/dietpi/dietpi-config +++ b/dietpi/dietpi-config @@ -62,8 +62,8 @@ '1' ': Display Options' '2' ': Audio Options' ) - # Hide performance options on VM - (( $G_HW_MODEL == 20 )) || G_WHIP_MENU_ARRAY+=('3' ': Performance Options') + # Hide performance options on VM and container + (( $G_HW_MODEL == 20 || $G_HW_MODEL == 75 )) || G_WHIP_MENU_ARRAY+=('3' ': Performance Options') G_WHIP_MENU_ARRAY+=( '4' ': Advanced Options' diff --git a/dietpi/postboot b/dietpi/postboot index 1dfd560941..e43a380d00 100755 --- a/dietpi/postboot +++ b/dietpi/postboot @@ -1,4 +1,4 @@ -#!/bin/bash +#!/bin/dash { #//////////////////////////////////// # DietPi PostBoot Script @@ -10,17 +10,14 @@ # # Info: # - Location: /boot/dietpi/postboot - # - Handles install stage for pre-installed images (AlloGUI) - # - Network time sync, DietPi-Update check and DietPi-Services start on regular boot - # - Executes optional user scripts from: /var/lib/dietpi/postboot.d/ - # - Prints login banner + # - Run on boot from dietpi-postboot.service after dietpi-preboot.service and optionally after network #//////////////////////////////////// EXIT_CODE=0 G_DIETPI_INSTALL_STAGE=$( to login\n' + [ "$G_DIETPI_INSTALL_STAGE" = 2 ] || echo '\n Default Login:\n Username = root\n Password = dietpi (or custom dietpi.txt entry)' + echo '\n Please hit to login\n' fi #----------------------------------------------------------------------------------- diff --git a/dietpi/preboot b/dietpi/preboot index 4deb53dbeb..6fa054522d 100755 --- a/dietpi/preboot +++ b/dietpi/preboot @@ -10,22 +10,20 @@ # # Info: # - Location: /boot/dietpi/preboot - # - Activates on boot from dietpi-preboot.service, runs before dietpi-boot.service and networking + # - Runs on boot from dietpi-preboot.service before network and dietpi-postboot.service #//////////////////////////////////// - #///////////////////////////////////////////////////////////////////////////////////// - # Main Loop - #///////////////////////////////////////////////////////////////////////////////////// - #----------------------------------------------------------------------------------- - # RPi: Disable display ports in headless mode to reduce power consumption by ~0.1W even without attached display, disabled hotplug detection and no framebuffer - [ ! -f '/etc/.dietpi_hw_model_identifier' ] && grep -q '^[[:blank:]]*AUTO_SETUP_HEADLESS=1' /boot/dietpi.txt && tvservice -o - # Obtain hardware info: Do on every boot since some contained info can change, especially when allowing RPi SDcard swap /boot/dietpi/func/dietpi-obtain_hw_model + . /boot/dietpi/.hw_model + + # RPi: Disable display ports in headless mode to reduce power consumption by ~0.1W even without attached display, disabled hotplug detection and no framebuffer + [ "$G_HW_MODEL" -le 9 ] && grep -q '^[[:blank:]]*AUTO_SETUP_HEADLESS=1' /boot/dietpi.txt && tvservice -o + + # Apply CPU governor and settings on physical machines + [ "$G_HW_MODEL" = 20 ] || [ "$G_HW_MODEL" = 75 ] || /boot/dietpi/func/dietpi-set_cpu - # Apply CPU governor and settings - /boot/dietpi/func/dietpi-set_cpu #----------------------------------------------------------------------------------- - exit + exit 0 #----------------------------------------------------------------------------------- } diff --git a/rootfs/etc/systemd/system/dietpi-fs_partition_resize.service b/rootfs/etc/systemd/system/dietpi-fs_partition_resize.service index 3a9009e3b7..8b3d695fd5 100644 --- a/rootfs/etc/systemd/system/dietpi-fs_partition_resize.service +++ b/rootfs/etc/systemd/system/dietpi-fs_partition_resize.service @@ -1,8 +1,8 @@ [Unit] Description=DietPi-FS_partition_resize DefaultDependencies=no -Wants=local-fs-pre.target After=systemd-remount-fs.service -.mount +Wants=local-fs-pre.target Before=var-swap.swap swap.target local-fs-pre.target [Service] diff --git a/rootfs/etc/systemd/system/dietpi-postboot.service b/rootfs/etc/systemd/system/dietpi-postboot.service index 82d4a2995d..ddff675e93 100644 --- a/rootfs/etc/systemd/system/dietpi-postboot.service +++ b/rootfs/etc/systemd/system/dietpi-postboot.service @@ -1,6 +1,5 @@ [Unit] Description=DietPi-PostBoot -Requisite=dietpi-preboot.service After=dietpi-preboot.service [Service] diff --git a/rootfs/etc/systemd/system/dietpi-preboot.service b/rootfs/etc/systemd/system/dietpi-preboot.service index c440f84891..44b34b3a1c 100644 --- a/rootfs/etc/systemd/system/dietpi-preboot.service +++ b/rootfs/etc/systemd/system/dietpi-preboot.service @@ -1,7 +1,7 @@ [Unit] Description=DietPi-PreBoot -Wants=network-pre.target After=dietpi-ramlog.service +Wants=network-pre.target Before=network-pre.target [Service] From 99cb25fe98a008ef06c0d6c3f9b181db7b034328 Mon Sep 17 00:00:00 2001 From: MichaIng Date: Sat, 11 Mar 2023 13:58:02 +0100 Subject: [PATCH 142/155] v8.15 - DietPi-PostBoot | Further tweak script, removing exit code handling here --- dietpi/postboot | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/dietpi/postboot b/dietpi/postboot index e43a380d00..0855530809 100755 --- a/dietpi/postboot +++ b/dietpi/postboot @@ -13,8 +13,7 @@ # - Run on boot from dietpi-postboot.service after dietpi-preboot.service and optionally after network #//////////////////////////////////// - EXIT_CODE=0 - G_DIETPI_INSTALL_STAGE=$( /boot/dietpi/.install_stage - G_DIETPI_INSTALL_STAGE=2 fi # Regular boot - if [ "$G_DIETPI_INSTALL_STAGE" = 2 ] + if [ "$G_DIETPI_INSTALL_STAGE" = 2 ] || [ "$G_DIETPI_INSTALL_STAGE" = 10 ] then # Run network time sync and check for DietPi updates if chosen, both in background if grep -q '^[[:blank:]]*CONFIG_CHECK_DIETPI_UPDATES=1' /boot/dietpi.txt @@ -43,7 +41,7 @@ fi # Start DietPi controlled services - /boot/dietpi/dietpi-services start || EXIT_CODE=$? + /boot/dietpi/dietpi-services start fi # Execute optional user scripts @@ -52,7 +50,7 @@ [ "${f##*/}" != 'readme.txt' ] && [ -f "$f" ] || continue [ -x "$f" ] || chmod +x "$f" echo "\e[90m[\e[0m INFO \e[90m] DietPi-PostBoot | Running user script: ${f##*/}\e[0m" - "$f" || { EXIT_CODE=$?; echo "\e[90m[\e[31mFAILED\e[90m] DietPi-PostBoot |\e[0m User script ${f##*/} failed with exit code: $EXIT_CODE"; } + "$f" || echo "\e[90m[\e[31mFAILED\e[90m] DietPi-PostBoot |\e[0m User script ${f##*/} failed with exit code: $?" done # Print DietPi login banner if no autologin selected @@ -66,6 +64,6 @@ fi #----------------------------------------------------------------------------------- - exit "$EXIT_CODE" + exit 0 #----------------------------------------------------------------------------------- } From 5419d39ee2b6b01d64606730a2ddcbacb6189533 Mon Sep 17 00:00:00 2001 From: MichaIng Date: Sat, 11 Mar 2023 14:00:51 +0100 Subject: [PATCH 143/155] v8.15 - DietPi-PostBoot | Syntax for muting commad outputs in bourne shell - DietPi-Software | Fix Homer docs URL: https://github.com/ravenclaw900/DietPi-Dashboard/issues/512 --- dietpi/dietpi-software | 2 +- dietpi/postboot | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/dietpi/dietpi-software b/dietpi/dietpi-software index 6ef51f9a50..583b90d669 100755 --- a/dietpi/dietpi-software +++ b/dietpi/dietpi-software @@ -1141,7 +1141,7 @@ Available commands: aSOFTWARE_NAME[$software_id]='Homer' aSOFTWARE_DESC[$software_id]='Simple HOMepage for your servER to keep your services on hand' aSOFTWARE_CATX[$software_id]=8 - aSOFTWARE_DOCS[$software_id]='https://dietpi.com/docs/software/social/#homer' + aSOFTWARE_DOCS[$software_id]='https://dietpi.com/docs/software/system_stats/#homer' aSOFTWARE_DEPS[$software_id]='webserver' # Remote Access diff --git a/dietpi/postboot b/dietpi/postboot index 0855530809..c5ed559d00 100755 --- a/dietpi/postboot +++ b/dietpi/postboot @@ -35,9 +35,9 @@ if grep -q '^[[:blank:]]*CONFIG_CHECK_DIETPI_UPDATES=1' /boot/dietpi.txt then # Network time sync is included in every dietpi-update call - /boot/dietpi/dietpi-update 2 &> /dev/null & + /boot/dietpi/dietpi-update 2 > /dev/null 2>&1 & else - /boot/dietpi/func/run_ntpd &> /dev/null & + /boot/dietpi/func/run_ntpd > /dev/null 2>&1 & fi # Start DietPi controlled services From 442c5721f764f5f3e7b4b8f8692c11559ae0fd08 Mon Sep 17 00:00:00 2001 From: MichaIng Date: Sat, 11 Mar 2023 14:02:34 +0100 Subject: [PATCH 144/155] v8.15 - DietPi-PostBoot | Satisfy shellcheck --- dietpi/postboot | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dietpi/postboot b/dietpi/postboot index c5ed559d00..f043ca2bbd 100755 --- a/dietpi/postboot +++ b/dietpi/postboot @@ -47,7 +47,7 @@ # Execute optional user scripts for f in /var/lib/dietpi/postboot.d/* do - [ "${f##*/}" != 'readme.txt' ] && [ -f "$f" ] || continue + [ "${f##*/}" = 'readme.txt' ] || [ ! -f "$f" ] || continue [ -x "$f" ] || chmod +x "$f" echo "\e[90m[\e[0m INFO \e[90m] DietPi-PostBoot | Running user script: ${f##*/}\e[0m" "$f" || echo "\e[90m[\e[31mFAILED\e[90m] DietPi-PostBoot |\e[0m User script ${f##*/} failed with exit code: $?" From c61db99caf08850b03955dc78964fc2aff565f14 Mon Sep 17 00:00:00 2001 From: MichaIng Date: Sat, 11 Mar 2023 14:08:06 +0100 Subject: [PATCH 145/155] v8.15 - DietPi-PostBoot | Logic --- dietpi/postboot | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/dietpi/postboot b/dietpi/postboot index f043ca2bbd..919ed81ff4 100755 --- a/dietpi/postboot +++ b/dietpi/postboot @@ -47,7 +47,8 @@ # Execute optional user scripts for f in /var/lib/dietpi/postboot.d/* do - [ "${f##*/}" = 'readme.txt' ] || [ ! -f "$f" ] || continue + # shellcheck disable=2015 + [ "${f##*/}" != 'readme.txt' ] && [ -f "$f" ] || continue [ -x "$f" ] || chmod +x "$f" echo "\e[90m[\e[0m INFO \e[90m] DietPi-PostBoot | Running user script: ${f##*/}\e[0m" "$f" || echo "\e[90m[\e[31mFAILED\e[90m] DietPi-PostBoot |\e[0m User script ${f##*/} failed with exit code: $?" From cabcb4839cd165b45d8360d55dec316dd54c0f27 Mon Sep 17 00:00:00 2001 From: MichaIng Date: Sat, 11 Mar 2023 14:25:07 +0100 Subject: [PATCH 146/155] v8.15 - DietPi-BugReport | Pass errors on informative commands execution intoo the upload file as well: https://github.com/MichaIng/DietPi/issues/6237 --- dietpi/dietpi-bugreport | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dietpi/dietpi-bugreport b/dietpi/dietpi-bugreport index 63f11264cd..0d469ebbfa 100755 --- a/dietpi/dietpi-bugreport +++ b/dietpi/dietpi-bugreport @@ -137,7 +137,7 @@ Available commands: echo -e "\n----------\n$i\n----------" $i - done > CMD_OUT.txt + done &> CMD_OUT.txt # Copy the Git error template to working directory [[ -f '/tmp/G_EXEC_ERROR_REPORT' ]] && G_EXEC cp /tmp/G_EXEC_ERROR_REPORT G_EXEC_ERROR_REPORT From fb29a717ec9e0419a484694a2c5ae31b92103252 Mon Sep 17 00:00:00 2001 From: MichaIng Date: Sat, 11 Mar 2023 14:50:49 +0100 Subject: [PATCH 147/155] v8.15 - RC up --- .update/version | 2 +- dietpi/func/dietpi-globals | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.update/version b/.update/version index fd8b67aafa..102c21e699 100644 --- a/.update/version +++ b/.update/version @@ -3,7 +3,7 @@ # Available DietPi version G_REMOTE_VERSION_CORE=8 G_REMOTE_VERSION_SUB=15 -G_REMOTE_VERSION_RC=1 +G_REMOTE_VERSION_RC=2 # Minimum DietPi version to allow update G_MIN_VERSION_CORE=6 G_MIN_VERSION_SUB=14 diff --git a/dietpi/func/dietpi-globals b/dietpi/func/dietpi-globals index b9cf0521c9..92e257d465 100644 --- a/dietpi/func/dietpi-globals +++ b/dietpi/func/dietpi-globals @@ -59,7 +59,7 @@ # - Assign defaults/code version as fallback [[ $G_DIETPI_VERSION_CORE ]] || G_DIETPI_VERSION_CORE=8 [[ $G_DIETPI_VERSION_SUB ]] || G_DIETPI_VERSION_SUB=15 - [[ $G_DIETPI_VERSION_RC ]] || G_DIETPI_VERSION_RC=1 + [[ $G_DIETPI_VERSION_RC ]] || G_DIETPI_VERSION_RC=2 [[ $G_GITBRANCH ]] || G_GITBRANCH='master' [[ $G_GITOWNER ]] || G_GITOWNER='MichaIng' # - Save current version and Git branch From aaecea342747b855052a56d79e28705420bf601a Mon Sep 17 00:00:00 2001 From: MichaIng Date: Sat, 11 Mar 2023 15:02:45 +0100 Subject: [PATCH 148/155] v8.15 - DietPi-Installer | Remove pre-v8.15 patches --- .build/images/dietpi-installer | 13 +------------ 1 file changed, 1 insertion(+), 12 deletions(-) diff --git a/.build/images/dietpi-installer b/.build/images/dietpi-installer index e7a6ac63af..3bf698181d 100644 --- a/.build/images/dietpi-installer +++ b/.build/images/dietpi-installer @@ -746,13 +746,6 @@ setenv rootuuid "true"' /boot/boot.cmd G_CONFIG_INJECT "G_LIVE_PATCH_STATUS\[$i\]=" "G_LIVE_PATCH_STATUS[$i]='${G_LIVE_PATCH_STATUS[$i]}'" /boot/dietpi/.version done - # ToDo: Temporary fix for wrong serial console baudrate override below Bookworm, fixed via live patch only if an actual console has been enabled already - (( $DISTRO_TARGET > 6 )) || G_EXEC sed -i 's/9600 -/9600 %I/' /boot/dietpi/func/dietpi-set_hardware - - # Pre-v8.15 ToDo: Fix Bookworm detection on Sid - # shellcheck disable=SC2016 - G_EXEC sed -i 's/\[\[ \$distro == '\''bookworm\/sid'\''/\[\[ \$distro == '\''12.'\''\* || \$distro == '\''bookworm\/sid'\''/' /boot/dietpi/func/dietpi-obtain_hw_model - G_EXEC cp /boot/dietpi/.version /var/lib/dietpi/.dietpi_image_version G_EXEC systemctl daemon-reload @@ -765,8 +758,6 @@ setenv rootuuid "true"' /boot/boot.cmd # We need to forward $DISTRO_TARGET* to dietpi-set_software, as well as $G_HW_MODEL + $G_RASPBIAN for Debian vs Raspbian decision. G_DISTRO=$DISTRO_TARGET G_DISTRO_NAME=$DISTRO_TARGET_NAME G_HW_ARCH=$G_HW_ARCH G_HW_MODEL=$G_HW_MODEL G_RASPBIAN=$G_RASPBIAN G_EXEC /boot/dietpi/func/dietpi-set_software apt-mirror default - # ToDo: Temporary step until v8.15 release: Since Bookworm, non-free firmware has been moved to new component: https://deb.debian.org/debian/pool/ - (( $DISTRO_TARGET > 6 )) && G_EXEC sed -i 's/$/ non-free-firmware/' /etc/apt/sources.list # (Re)create DietPi runtime and logs dir, used by G_AGx G_EXEC mkdir -p /run/dietpi /var/tmp/dietpi/logs @@ -1110,8 +1101,6 @@ _EOF_ G_EXEC curl -sSfo package.deb "https://dietpi.com/downloads/binaries/firmware-$variant.deb" G_EXEC_OUTPUT=1 G_EXEC dpkg -i package.deb G_EXEC rm package.deb - # ToDo: Temporary workaround for read-only mount after filesystem expansion until v8.15 has been released: https://github.com/MichaIng/DietPi/issues/6149 - G_EXEC sed -i '/resize2fs/s/;;/ || reboot;;/' /var/lib/dietpi/services/fs_partition_resize.sh # NanoPi R5S elif (( $G_HW_MODEL == 76 )) && { [[ ! $(find /lib/modules -mindepth 1 -maxdepth 1 -type d) ]] || dpkg-query -s 'firmware-nanopi5' &> /dev/null; } @@ -1777,7 +1766,7 @@ _EOF_' then /boot/dietpi/func/dietpi-set_hardware serialconsole enable ttyS0 # With our current VisionFive 2 kernel, the Xen hypervisor virtual console device /dev/hvc0 is active and leads to a serial-getty spawn. Mask it explicitly, in case the installer runs within a container. - [[ $G_HW_MODEL == 81 ]] && /boot/dietpi/func/dietpi-set_hardware serialconsole disable hvc0 && G_EXEC systemctl mask serial-getty@hvc0 # ToDo: dietpi-set_hardware can be omitted after DietPi v8.15 release, which brings general support for these serial console device schemes. + [[ $G_HW_MODEL == 81 ]] && G_EXEC systemctl mask serial-getty@hvc0 # NanoPi R1 elif (( $G_HW_MODEL == 48 )) From 057a9b2f85f16cb2049eb33849f8c678edc9372f Mon Sep 17 00:00:00 2001 From: MichaIng Date: Sat, 11 Mar 2023 17:43:10 +0100 Subject: [PATCH 149/155] v8.15 - DietPi-Software | ympd: Disable on Bookworm since our binary requires libssl1.1 - DietPi-Software | CAVA: Fix install on Bookworm where the libfftw3-3 does not exist anymore, which was a meta package only. Install libfftw3-double3 which is the actual library our CAVA requires. Also remove explicit libpulse0 install, as this is a dependency of MPD on all Debian versions --- dietpi/dietpi-software | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/dietpi/dietpi-software b/dietpi/dietpi-software index 583b90d669..138b5a7946 100755 --- a/dietpi/dietpi-software +++ b/dietpi/dietpi-software @@ -340,6 +340,8 @@ Available commands: aSOFTWARE_CATX[$software_id]=2 aSOFTWARE_DOCS[$software_id]='https://dietpi.com/docs/software/media/#ympd' aSOFTWARE_DEPS[$software_id]='128' + # - Bookworm: No libssl3 support + aSOFTWARE_AVAIL_G_DISTRO[$software_id,7]=0 # - RISC-V: No binary: https://dietpi.com/downloads/binaries/all/ympd_1.2.3.7z aSOFTWARE_AVAIL_G_HW_ARCH[$software_id,11]=0 #------------------ @@ -4995,7 +4997,7 @@ _EOF_ G_THREAD_START curl -sSf 'https://dietpi.com/downloads/binaries/all/cava.psf' -o /root/cava.psf # Font for nice bars - aDEPS=('libpulse0' 'libfftw3-3' 'libncursesw5') + aDEPS=('libfftw3-double3' 'libncursesw5') Download_Install "https://dietpi.com/downloads/binaries/all/cava_0.6.1-1_$arch.deb" # CAVA conf, preserve existing From f5807075fad8eb4ee724b9b238d6327a6012439f Mon Sep 17 00:00:00 2001 From: MichaIng Date: Sat, 11 Mar 2023 23:22:50 +0100 Subject: [PATCH 150/155] v8.15 - DietPi-Software | ympd: Run as service user right from the start instead of dropping privileges. Connect via MPD UNIX socket instead of TCP and add systemd sandboxing as it does not need any write access or any - DietPi-Software | CAVA: Install via Debian repo from Bullseye on, where it is available and ships a newer version than our server. Any "apt upgrade" installs that one anyway. Skip the cava.psf font install. It is part of the package (also ours) and successfully used by all CAVA versions at /usr/share/consolefonts/cava.psf. --- .update/patches | 3 +++ dietpi/dietpi-autostart | 3 +-- dietpi/dietpi-software | 54 +++++++++++++++++++++++++++-------------- 3 files changed, 40 insertions(+), 20 deletions(-) diff --git a/.update/patches b/.update/patches index e04e70e3ed..af0732ff9b 100755 --- a/.update/patches +++ b/.update/patches @@ -1139,6 +1139,9 @@ _EOF_ # Remove obsolete Build-Essential install state grep -q '^[[:blank:]]*aSOFTWARE_INSTALL_STATE\[16\]=' /boot/dietpi/.installed && G_EXEC sed -i '/^[[:blank:]]*aSOFTWARE_INSTALL_STATE\[16\]=/d' /boot/dietpi/.installed + + # Remove obsolete CAVA console font + grep -q '^[[:blank:]]*aSOFTWARE_INSTALL_STATE\[119\]=' /boot/dietpi/.installed && G_EXEC rm -f /{root,home/*}/cava.psf fi } diff --git a/dietpi/dietpi-autostart b/dietpi/dietpi-autostart index c3527aa54d..a07fad724c 100755 --- a/dietpi/dietpi-autostart +++ b/dietpi/dietpi-autostart @@ -160,8 +160,7 @@ _EOF_ elif (( $ID_AUTOSTART == 10 )) then local home=$(eval "echo ~$user") - [[ ! -d $home/.config/cava ]] && mkdir -p "$home/.config" && cp /root/.config/cava "$home/.config/cava" && chown -R "$user:" "$home/.config" - [[ ! -f $home/cava.psf ]] && cp /root/cava.psf "$home/cava.psf" && chown "$user:" "$home/cava.psf" + [[ ! -f $home/.config/cava ]] && mkdir -p "$home/.config" && cp /root/.config/cava "$home/.config/cava" && chown -R "$user:" "$home/.config" fi # Apply to TTY1 getty: Skip for LightDM-based autologin diff --git a/dietpi/dietpi-software b/dietpi/dietpi-software index 138b5a7946..e90dbe61ba 100755 --- a/dietpi/dietpi-software +++ b/dietpi/dietpi-software @@ -4877,7 +4877,18 @@ Description=ympd (DietPi) After=mpd.service [Service] -ExecStart=/usr/bin/ympd --user ympd --webport 1337 +User=ympd +ExecStart=/usr/bin/ympd -h /run/mpd/socket -w 1337 + +# Hardenings +ProtectSystem=strict +PrivateTmp=true +ProtectHome=true +PrivateDevices=true +ProtectKernelTunables=true +ProtectKernelModules=true +ProtectControlGroups=true +NoNewPrivileges=true [Install] WantedBy=multi-user.target @@ -4988,23 +4999,31 @@ _EOF_ if To_Install 119 # CAVA then - case $G_HW_ARCH in - 1) local arch='armv6';; - 2) local arch='armv7';; - 3) local arch='arm64';; - *) local arch='amd64';; - esac - - G_THREAD_START curl -sSf 'https://dietpi.com/downloads/binaries/all/cava.psf' -o /root/cava.psf # Font for nice bars - - aDEPS=('libfftw3-double3' 'libncursesw5') - Download_Install "https://dietpi.com/downloads/binaries/all/cava_0.6.1-1_$arch.deb" + # Debian ships packages from Bullseye on + if (( $G_DISTRO > 5 )) + then + G_AGI cava + # CAVA conf, preserve existing + if [[ ! -f '/root/.config/cava/config' ]] + then + G_EXEC cp /usr/share/cava/example_files/config /root/.config/cava/config + G_CONFIG_INJECT 'method[[:blank:]]+=' 'method = fifo' /root/.config/cava/config '\[input\]' + G_CONFIG_INJECT 'foreground[[:blank:]]+=' 'foreground = cyan' /root/.config/cava/config '\[color\]' + fi + else + case $G_HW_ARCH in + 1) local arch='armv6';; + 2) local arch='armv7';; + 3) local arch='arm64';; + *) local arch='amd64';; + esac - # CAVA conf, preserve existing - [[ -f '/root/.config/cava/config' ]] || dps_index=$software_id Download_Install 'cava.conf' /root/.config/cava/config + aDEPS=('libfftw3-double3' 'libncursesw5') + Download_Install "https://dietpi.com/downloads/binaries/all/cava_0.6.1-1_$arch.deb" - # Lower MPD buffer size to reduce latency of spectrum - G_EXEC sed -i '/audio_buffer_size /c\audio_buffer_size "384"' /etc/mpd.conf + # CAVA conf, preserve existing + [[ -f '/root/.config/cava/config' ]] || dps_index=$software_id Download_Install 'cava.conf' /root/.config/cava/config + fi # FIFO stream for MPD grep -q '/tmp/mpd.fifo' /etc/mpd.conf || cat << '_EOF_' >> /etc/mpd.conf @@ -5012,7 +5031,6 @@ _EOF_ # CAVA FIFO stream audio_output { type "fifo" - enabled "yes" name "CAVA" path "/tmp/mpd.fifo" format "44100:16:2" @@ -12876,7 +12894,7 @@ If no WireGuard (auto)start is included, but you require it, please do the follo if To_Uninstall 119 # CAVA then G_AGP cava - G_EXEC rm -Rf /{root,home/*}/{.config/cava,cava.psf} + G_EXEC rm -Rf /{root,home/*}/.config/cava fi if To_Uninstall 118 # Mopidy From 9c49117a14b76a1b7ca1fac416c0c7d5d00da1ba Mon Sep 17 00:00:00 2001 From: MichaIng Date: Sat, 11 Mar 2023 23:26:26 +0100 Subject: [PATCH 151/155] v8.15 - DietPi-AutoStart | Little fix --- dietpi/dietpi-autostart | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dietpi/dietpi-autostart b/dietpi/dietpi-autostart index a07fad724c..c562b0d659 100755 --- a/dietpi/dietpi-autostart +++ b/dietpi/dietpi-autostart @@ -160,7 +160,7 @@ _EOF_ elif (( $ID_AUTOSTART == 10 )) then local home=$(eval "echo ~$user") - [[ ! -f $home/.config/cava ]] && mkdir -p "$home/.config" && cp /root/.config/cava "$home/.config/cava" && chown -R "$user:" "$home/.config" + [[ ! -d $home/.config/cava ]] && mkdir -p "$home/.config" && cp -R /root/.config/cava "$home/.config/cava" && chown -R "$user:" "$home/.config" fi # Apply to TTY1 getty: Skip for LightDM-based autologin From 727814c134b5ec28772eab17c64439e528cf23d6 Mon Sep 17 00:00:00 2001 From: MichaIng Date: Sat, 11 Mar 2023 23:32:00 +0100 Subject: [PATCH 152/155] v8.15 - DietPi-AutoStart | Copy CAVA config more explicitly --- dietpi/dietpi-autostart | 2 +- dietpi/dietpi-software | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/dietpi/dietpi-autostart b/dietpi/dietpi-autostart index c562b0d659..b5850a542d 100755 --- a/dietpi/dietpi-autostart +++ b/dietpi/dietpi-autostart @@ -160,7 +160,7 @@ _EOF_ elif (( $ID_AUTOSTART == 10 )) then local home=$(eval "echo ~$user") - [[ ! -d $home/.config/cava ]] && mkdir -p "$home/.config" && cp -R /root/.config/cava "$home/.config/cava" && chown -R "$user:" "$home/.config" + [[ ! -f $home/.config/cava/config ]] && mkdir -p "$home/.config/cava" && cp /root/.config/cava/config "$home/.config/cava/" && chown -R "$user:" "$home/.config" fi # Apply to TTY1 getty: Skip for LightDM-based autologin diff --git a/dietpi/dietpi-software b/dietpi/dietpi-software index e90dbe61ba..a204dd26d2 100755 --- a/dietpi/dietpi-software +++ b/dietpi/dietpi-software @@ -5006,6 +5006,7 @@ _EOF_ # CAVA conf, preserve existing if [[ ! -f '/root/.config/cava/config' ]] then + G_EXEC mkdir -p /root/.config/cava G_EXEC cp /usr/share/cava/example_files/config /root/.config/cava/config G_CONFIG_INJECT 'method[[:blank:]]+=' 'method = fifo' /root/.config/cava/config '\[input\]' G_CONFIG_INJECT 'foreground[[:blank:]]+=' 'foreground = cyan' /root/.config/cava/config '\[color\]' From 471ef109528aae9a8570fd9fde612ead36ce8705 Mon Sep 17 00:00:00 2001 From: MichaIng Date: Sat, 11 Mar 2023 23:44:04 +0100 Subject: [PATCH 153/155] v8.15 - DietPi-AutoStart | Hand over ~/.config to user even if copying the CAVA config fails --- dietpi/dietpi-autostart | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dietpi/dietpi-autostart b/dietpi/dietpi-autostart index b5850a542d..cc0943ccb3 100755 --- a/dietpi/dietpi-autostart +++ b/dietpi/dietpi-autostart @@ -160,7 +160,7 @@ _EOF_ elif (( $ID_AUTOSTART == 10 )) then local home=$(eval "echo ~$user") - [[ ! -f $home/.config/cava/config ]] && mkdir -p "$home/.config/cava" && cp /root/.config/cava/config "$home/.config/cava/" && chown -R "$user:" "$home/.config" + [[ ! -f $home/.config/cava/config ]] && mkdir -p "$home/.config/cava" && { cp /root/.config/cava/config "$home/.config/cava/"; chown -R "$user:" "$home/.config"; } fi # Apply to TTY1 getty: Skip for LightDM-based autologin From 684db62e8b38f0cabdf0cd427c1c88ebf6d7a0ad Mon Sep 17 00:00:00 2001 From: MichaIng Date: Sat, 11 Mar 2023 23:47:31 +0100 Subject: [PATCH 154/155] v8.15 - DietPi-Software | Tiny alignment --- dietpi/dietpi-software | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dietpi/dietpi-software b/dietpi/dietpi-software index a204dd26d2..eab2aca9a7 100755 --- a/dietpi/dietpi-software +++ b/dietpi/dietpi-software @@ -5007,7 +5007,7 @@ _EOF_ if [[ ! -f '/root/.config/cava/config' ]] then G_EXEC mkdir -p /root/.config/cava - G_EXEC cp /usr/share/cava/example_files/config /root/.config/cava/config + G_EXEC cp /usr/share/cava/example_files/config /root/.config/cava/ G_CONFIG_INJECT 'method[[:blank:]]+=' 'method = fifo' /root/.config/cava/config '\[input\]' G_CONFIG_INJECT 'foreground[[:blank:]]+=' 'foreground = cyan' /root/.config/cava/config '\[color\]' fi From 9de7c347f6c209b1d62d5197d2514a1e3b5c5aec Mon Sep 17 00:00:00 2001 From: MichaIng Date: Sun, 12 Mar 2023 00:21:44 +0100 Subject: [PATCH 155/155] v8.15 - DietPi-Services | Not "haproxy" but "hostapd" must be removed from dietpi-controlled list --- dietpi/dietpi-services | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/dietpi/dietpi-services b/dietpi/dietpi-services index 6a6c3a3ece..dc2f083a39 100755 --- a/dietpi/dietpi-services +++ b/dietpi/dietpi-services @@ -59,6 +59,7 @@ Available services: # Core --------------------------------------------------------------- # - Network 'avahi-daemon' + 'haproxy' 'frps' 'frpc' @@ -190,7 +191,6 @@ Available services: 'noip2' 'virtualhere' 'tor' - 'hostapd' # - System stats / Management 'netdata' @@ -222,7 +222,7 @@ Available services: # WiFi Hotspot 'isc-dhcp-server' - 'haproxy' + 'hostapd' # SSH servers 'dropbear'