Skip to content

Beta v10.2.0#8006

Merged
MichaIng merged 66 commits intobetafrom
dev
Mar 14, 2026
Merged

Beta v10.2.0#8006
MichaIng merged 66 commits intobetafrom
dev

Conversation

@MichaIng
Copy link
Owner

@MichaIng MichaIng commented Mar 8, 2026

Beta v10.2.0

(2025-03-14)

New software

  • Immich | This high performance self-hosted photo and video management solution has been added to our software catalogue. Available on x86_64 and ARMv8 only (ID 215).
  • Immich Machine Learning | The machine learning server for Immich, enabling facial recognition and smart search via CLIP embeddings, has been added as a separate software option. It can be installed on the same system as Immich or on a remote machine. Available on x86_64 and ARMv8 only (ID 216).
  • uv | This extremely fast Python package and project manager, written in Rust, has been added as a standalone software option (ID 217).
  • RustDesk Client | Client software for the RustDesk desktop sharing platform (ID 13). Fits perfect to our software package "RustDesk Server". X11 needs to be installed or will be installed during the RustDesk Client installation process.

Enhancements

  • DietPi-Benchmark | The benchmark script has been moved to /boot/dietpi/dietpi-benchmark and a shell alias has been added, so it can now be called directly from the console as dietpi-benchmark without having to browse through dietpi-config first.
  • DietPi-Servarr_to_RAM | The original script dietpi-arr_to_RAM was renamed to dietpi-servarr_to_ram, got Prowlarr support, and protection against malicious symlinks when creating files and directories.
  • DietPi-Config | The performance options were expanded by a menu to select the CPU temperature sensor used across our scripts. It affects the CPU temperature shown in performance options, in "cpu" command output, the DietPi login banner, and elsewhere within our scripts and menus. Since the sysfs nodes for temperature sensors are not consistent across devices, the hardcoded logic we use does not always pick the right one. Now you can select from a list of detected sensor paths with their returned temperatures, or enter a custom path to read from. A related dietpi.txt setting CONFIG_CPU_TEMP_PATH has been added as well. Many thanks to @N7-BADA for adding this feature: Add CPU temp sensor path selection option #8012
  • DietPi-Software | A desktop selection menu was added to make it clearer and easier to get started for those who require a graphical desktop environment. A new dietpi.txt setting AUTO_SETUP_DESKTOP allows to pre-select a desktop for first boot. It takes textual values like "lxde" and "xfce", and serves as better accessible alternative to numerical software ID selections like AUTO_SETUP_INSTALL_SOFTWARE_ID=23.
  • DietPi-Software | Home Assistant: The Python version for the pyenv has been raised to latest 3.14, needed since Home Assistant v2026.3. Many thanks to @lukaszsobala for reporting the missing update: Home Assistant 2026.2.3 not upgrading to 2026.3 #8003

Bug fixes

MichaIng and others added 30 commits February 22, 2026 00:56
This is only needed since Armbian somehow disabled kernel module xz compression. Will check for reasons and in case revert in our fork, after which image sizes could be reduced again.
Some older DietPi versions altered and used 15-fastcgi-php.conf with versioned PHP-FPM socket path, which needed to be updated. In the meantime, there is 15-fastcgi-php-fpm.conf, which uses the non-versioned PHP-FPM socket symlink, and which DietPi uses now.

Reinstall Lighttpd once to assure this config is applied. The reinstall otherwise is non-intrusive, hence safe to apply without risking any customization breakage.
Changes in Linux require an additional switch to be set. And enable in-kernel decompression support to not rely on userland tools doing this.
Also assign correct NanoPi Zero2 device tree in that case and simplify ZSTD compressed initramfs logic, not that all supported kernel versions support it.
It is now compiled with SDIO support by default. I doubt there is some USB or PCIe card that does not run with mainline Linux brcmfmac.
since R76S lacks dts in 6.18 and M5 some features like HDMI audio

Build U-Boot for all branches for NanoPi Zero2. It should work.
When moving to versions.json for version detection, we missed to update the download URL accordingly. Funnily, the update_url script forced that URL correctly.
Two changes were done to make this possible:
- 180 MiB of firmware for a single Snapdragon Handheld device we do not support has been removed from armbian-firmware. A recent x4 duplication of already large ~40 MiB of firmware blobs lead to the recent need to increase image sizes.
- Kernel module compression is again enabled for all kernel builds. Some change in Linux 6.12 lead to this being again disabled by default, requiring new flags. This reduces the size of the kernel modules by ~70%, saving 100 - 150 MiB disk space with Armbian kernel, though much less for our own custom mainline kernel builds.

=> 200 MiB - 400 MiB smaller (uncompressed) image sizes with those 2 changes

Re-arrange CI options to allow building SBCs without x86 systems and containers.
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: MichaIng <micha@dietpi.com>
…morsecode (#7978)

* DietPi-Launcher: Add dietpi-display and dietpi-banner, remove dietpi-morsecode

* Update dietpi-launcher

* Update dietpi-launcher

* Added DietPi-Benchmark

* Update dietpi-launcher
…led (#7986)

Generally it is possible to leave mpd.service disabled, while having only mpd.socket enabled. The activation socket triggers MPD once a client/frontend connects. While this is not how dietpi-software sets things up, it makes sense to support this setup in our ympd package.

Co-authored-by: MichaIng <micha@dietpi.com>
to prevent activation socket auto-enable
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: Joulinar <47155374+Joulinar@users.noreply.github.com>
Co-authored-by: MichaIng <micha@dietpi.com>
* Initial plan

* Add RustDesk Client (software ID 13) to dietpi-software

Co-authored-by: StephanStS <57687516+StephanStS@users.noreply.github.com>

* Update CHANGELOG.txt

* Added RustDesk Client to dietpi-services

* Added RustDesk Client to README.md

* Add RustDesk Client to dietpi-survey_report and update_urls.bash

Co-authored-by: StephanStS <57687516+StephanStS@users.noreply.github.com>

* Add RustDesk Client (ID 13) to dietpi-software.bash CI test verification

Co-authored-by: StephanStS <57687516+StephanStS@users.noreply.github.com>

* dietpi-software: RustDesk Server: name it "Server" on survey page

* changelog: align architecture names

* Fix indentation of rustdesk entry in dietpi-services

Co-authored-by: StephanStS <57687516+StephanStS@users.noreply.github.com>

* dietpi-software: RustDesk Client: apply workaround for missing Python

The postinst unnecessarily does a Python version check, which leads to an install failure if not installed. It has been removed for v1.4.6, but until then the issue is worked around.

* dietpi-services: remove redundant comments

The one for NoMachine is only there since "nxserver" does not give a hint that it is NoMachine, and I stumbled above this in the past xD.

* dietpi-survey_report: restore execute permissions

Signed-off-by: MichaIng <micha@dietpi.com>

* dietpi-software: RustDesk Client: fix workaround

grep needs to match the string to succeed.

* dietpi-softwae: RustDesk Client: add execute bit for workaround

* dietpi-software: RustDesk Client: hash executable for workaround

* dietpi-software: RustDesk Client: disable for ARMv7

And test whether workaround with /usr/bin path works better. For whatever reason, the postinst does not see the executable on first attempt, even that in any other bash it works immediately.

* dietpi-software: RustDesk Client: remove test/debug code

postinst is happy if the executable is below /usr/bin, but seems to have issues with new executables below /usr/local/bin on first attempt, somehow.

---------

Signed-off-by: MichaIng <micha@dietpi.com>
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: StephanStS <57687516+StephanStS@users.noreply.github.com>
Co-authored-by: StephanStS <StephanStS@freenet.de>
Co-authored-by: MichaIng <micha@dietpi.com>
* Added dietpi-servarr_to_ram to dietpi-launcher

* Update dietpi/dietpi-launcher

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update dietpi-arr_to_RAM

* Update dietpi/misc/dietpi-servarr_to_ram

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update dietpi/misc/dietpi-servarr_to_ram

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update dietpi/misc/dietpi-servarr_to_ram

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update dietpi/misc/dietpi-servarr_to_ram

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* dietpi-patches: add migration from old to new script name

* dietpi-servarr-to-ram: harden patch and simplify Prowlarr logic

There never was a Prowlarr version based on Sonarr v2. This did exist for Radarr only.

* dietpi-servarr-to-ram: guard RAM dir and database backup against malicious symlinks

So if a compromised service user pre-creates either/and of those as symlink to a sensitive directory elsewhere, the script won't create/overwrite/copy following that symlink. Instead it will (attempt to) remove the symlink before processing, or skip it if removal fails. This is also safe to do regarding data loss, since only a symlink is ever removed, and users are transparently informed, in case that symlink was created without bad intention.

* dietpi-servarr_to_ram: fix call in patch

* dietpi-servarr-to-ram: further hardening

Check again and fail if database backup and RAM dir are symlinks right before processing those, and fail in case: it would mean that the symlink was created in a short time period, indicating an attempt to gain access to external files. We should probably point this out in the output?

It is not perfect yet, a race condition remains. We need to think through how the script can be used:
- Only updating database backups is possible as respective service user
- Everything else requires root. Hence we actually can use a root-only path for the RAM dir, e.g. a subdir. And we could do write operations within the program dir via "runuser" as service user. That would also eliminate the need for "chown".

However, since this requires more testing, doing the less intrusive change for now, to at least minimize the race condition.

* Update dietpi-launcher

* dietpi-servarr_to_ram: some logging cleanup

* dietpi-servarr-to-ram: another malicious symlink protection

and assure that old service is removed on DietPi update, even if it was disabled via systemctl instead of "dietpi-arr_to_RAM disable".

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: MichaIng <micha@dietpi.com>
We removed it from Servarr software dependencies a while ago, since it is not required. They use the client library only.
* Update CHANGELOG with recent enhancements and fixes

Updated changelog with enhancements and bug fixes for DietPi.

* Update CHANGELOG.txt

Co-authored-by: Joulinar <47155374+Joulinar@users.noreply.github.com>

---------

Co-authored-by: Joulinar <47155374+Joulinar@users.noreply.github.com>
…#7995)

Co-authored-by: MichaIng <micha@dietpi.com>
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: StephanStS <57687516+StephanStS@users.noreply.github.com>
* NoMachine can even work with DRM and EGL, not even an X11 server is strictly needed
* Steam can work with X11 alone
* While on it, remove obsolete chromium-browser package handling and files which might still be present on older systems
* `steam` is a transitional dummy package since Bookworm, `steam-installer` is the actual package needed, and it does not have the license debconf question anymore
* dietpi-autostart: show "Done" on cancel button when called from other script: "Exit" might be confusing it dietpi-autostart is called from other DietPi scripts without further explanation. Show "Done" in such cases, which is sufficiently close in meaning to "Back" which we otherwise use for dietpi-config subscript calls, and "Continue" which we thought about using for calls from dietpi-software.
@MichaIng MichaIng added this to the v10.2 milestone Mar 8, 2026
@MichaIng MichaIng added the Beta 🧪 Issues specific to the Beta branch testing label Mar 8, 2026
MichaIng added 9 commits March 8, 2026 22:42
Also migrate from policykit-1 to polkitd for Bookworm and consequently via update for all systems. It is only a transitional dummy package for polkitd on Bookworm.
* dietpi-software: HA: skip piwheels and clean /tmp in between: Since Python 3.14 is needed now, piwheels cannot be used anymore, since it builds for Python versions of stable Debian releases only. Also: The pyenv and pip builds leave temporary data in /tmp behind. Since the core module install requires a lot of RAM and /tmp space, remove everything generated by the "homeassistant" user.
While Immich works with the single line DB_URL using the UNIX socket, the backup feature fails, but works when using the dedicated variables.
MichaIng and others added 5 commits March 13, 2026 19:45
Many thanks to Chris for the long period of supporting DietPi as Patreon Legend! And welcome and many thanks to Oliver to fill the free spot within the blink of an eye!
Implements sysfs node selection for CPU temp #7870
- Add CONFIG_CPU_TEMP_PATH option in dietpi.txt
- Add sensor selection in dietpi-config Performance Options
- Update dietpi-globals to use custom path

Co-authored-by: N7-BADA <N7-BADA@users.noreply.github.com>
Co-authored-by: MichaIng <micha@dietpi.com>
@MichaIng MichaIng marked this pull request as ready for review March 14, 2026 14:23
@MichaIng MichaIng merged commit 455ef35 into beta Mar 14, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Beta 🧪 Issues specific to the Beta branch testing

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Open Beta v10.2 | Please help testing and hardening our upcoming release

6 participants