Releases: MichaIng/DietPi
Releases · MichaIng/DietPi
v9.16
Enhancements
- General | The number of APT update calls within our script has been reduced: it is skipped in case the less than an hour ago, sources lists and architectures were not changed in between. This should speed up certain update and install processes, and reduce disk writes. The 1 hour however is taken somewhat arbitrary. If you ever face the issue that a package install of upgrade fails with 404, while it works after a fresh
apt update
, please let us know. - General | Our scripts and
G_*
functions do now internally re-execute themselves with sudo if needed, which makes e.g.sudo dietpi-software
obsolete. This is especially helpful when using thefish
shell, wheresudo dietpi-software
cannot work, since fish does not support calling shell aliases withsudo
as easily asbash
. It is however still possible to use sudo by yourself, of course. The internal root privileges checker, instead of exiting the script, runsexec sudo <script> <arguments>...
, replacing the parent script instance with the sudo wrapped call. It works as well for ourG_*
functions, like G_AGUG for non-interactive error-handled APT upgrades. Since sudo cannot run functions from the parent shell, we have another function which handles this, soG_SUDO G_AGUG
was needed. This is now internally handled as well, soG_AGUG
can be called directly from an unprivileged but sudo-capable user. In any case, of course, the calling user must be able to use sudo, with or without entering its password. In non-interactive shells, or whenG_INTERACTIVE=0
has been set,sudo
will be called with-n
argument, which aborts the call with error, to avoid hanging processes. - dietpi-globals | G_CHECK_ROOT_USER: Related to above change, just in case anyone uses this function in own scripts: The previous CLI arguments have been removed, instead scripts can pass their positional arguments
"$@"
to this function, for automatic re-execution with sudo to work properly. SetG_INTERACTIVE=0
to avoid interactive sudo password inputs if you want to assure the script does not hang at this point. This is internally set if the shell's STDIN is no terminal, like systemd services, cron jobs etc, but better be safe than sorry. IfG_CHECK_ROOT_USER
is called from within a function as part of an interactive shell session, previously the shell itself was exited if the check failed, unlessG_CHECK_ROOT_USER 1
was called. This argument does not exist anymore, but the function detects an interactive parent shell and only terminates the command sequence in that case, likeG_CHECK_ROOT_USER 1
did before. The automatic G_SUDO call works only if the invoking function is one of ourG_*
functions, else it is not attempted. More details: #7686 - Raspberry Pi | The primary UART adapter is now enabled on first boot. It was unintentionally disabled on our Raspberry Pi images.
- ROCK Pi S | Device tree overlays have been added to switch the USB-C port to host or OTG mode. By default it is in peripheral mode. Many thanks to @starsoccer for doing this suggestion: #6611
- RISC-V | The Docker Compose, Snapcast, and Amiberry
dietpi-software
options are now available on RISC-V systems. - Debian Forky | We added initial support to the new Debian 14 Forky testing version and next release expected for summer 2027. This means it is detected correctly by our scripts, included in our automated testing, images are generated and hosted at https://dietpi.com/downloads/images/. But note that due to regular changes on Debian testing, software installation options are expected to break regularly, and are tested much less frequently. Use it if you like to stay on edge, and are fine to tinker more frequently after APT package upgrades.
- DietPi-Software | Domoticz: This software option has been enabled for all Debian versions and architectures. We build and distribute own packages via our own APT server for this purpose. All files in
/mnt/dietpi_userdata/domoticz
are treated asconffiles
, hence manual changes will never be overwritten by package upgrades. For fresh installs, however, the plain HTTP listener at port 8124 has been disabled, hence by default, access is possible via HTTPS on port 8424 only. Asudoers
config has been added to make the system shutdown and restart options from the web UI work. - DietPi-Software | Kodi: On Raspberry Pi Bookworm systems, Kodi 21 is now installed, provided as separate package from the RPi APT repository. If you want to upgrade your previously installed instance:
sudo dietpi-software reinstall 31
- DietPi-Software | Kubo: The IPFS Node install option has been renamed to "Kubo". It has been renamed upstream a while ago: https://github.com/ipfs/helia/wiki/FAQ
- DietPi-Software | Java: Our implementation switched for 64-bit systems from Debian's OpenJDK packages to Adoptium's Temurin Java packages. This allows us and DietPi users to install any released Java version on any Debian version. Previously on older Debian version, some Java applications could not be used anymore, or only older versions. For now, Java 21 will be installed by
dietpi-software
, which is the latest LTS version. But users can add any other version via APT: https://packages.adoptium.net/ui/native/deb/pool/main/t/. However, the Adoptium repository does not support the 32-bit architecture anymore, hence those system will remain with Debian's OpenJDK packages and the related restrictions. - DietPi-Software | Java: The Raspberry Pi repository maintainers went through the efforts to provide ARMv6-compatible Java 17 packages. Thanks to this fact, we can re-enable the Java installation options for RPi 1/Zero models, however with the limitations Java 17 has compared to Java 21, at time of writing: Minecraft max v1.20.4 and openHAB max v4.
- DietPi-Software | PaperMC: On 64-bit Debian Bullseye and Bookworm systems, PaperMC can be updated again to its latest version, using Adoptium Temurin Java 21. Previously, due to minimum Java requirements, PaperMC 1.20.4 was the latest supported version on these systems.
- DietPi-Software | Nextcloud Talk/Synapse/WireGuard: It is now possible to install these software options non-interactively, e.g. via automated first boot installs:
AUTO_SETUP_AUTOMATED=1
indietpi.txt
. For this, a new dietpi.txt settingSOFTWARE_PUBLIC_DOMAIN_NAME
has been added to define the (planned) public domain name of the DietPi system, used as default for software options which require or benefit from it. For now, only these software options anddietpi-letsencrypt
will make use ofSOFTWARE_PUBLIC_DOMAIN_NAME
for non-interactive setups, while installs from an interactive terminal will still show a dialogue to change the default. - DietPi-Software | Synapse: In addition to
SOFTWARE_PUBLIC_DOMAIN_NAME
, for Synapse installations, the newSOFTWARE_SYNAPSE_USERNAME
dietpi.txt
option can be set to define the initial admin username on non-interactive installs, which defaults to "dietpi". Hence be sure to set this when usingAUTO_SETUP_AUTOMATED=1
andAUTO_SETUP_INSTALL_SOFTWARE_ID=125
. - DietPi-Software | WireGuard: In addition to
SOFTWARE_PUBLIC_DOMAIN_NAME
, for WireGuard installations, the newSOFTWARE_WIREGUARD_MODE
andSOFTWARE_WIREGUARD_PORT
dietpi.txt
options can be set to define whether WireGuard will shall be installed as server or client, and in case which UDP port it shall listen to. The defaults are server mode and port 51820. - DietPi-Software | Portainer: Fresh installs and reinstalls will now enable HTTPS access on port 9442. Plain HTTP access via port 9002 remains possible for now, but will be probably disabled in the future. Let us know if you face any issues accessing Portainer via HTTPS, aside of the fact that you need to accept the self-signed certificate in browsers once.
Bug fixes
- Raspberry Pi | Resolved issues due to conflicting APT packages for the Raspberry Pi OS desktop. The related packages are now prevented via APT pins on all Raspberry Pi systems, added as well with this DietPi update. This was previously done only on LXDE install, since its base packages from the RPi repo are highly customized for the RPi OS desktop. But e.g. related GTK packages with conflicting dependencies are pulled in by other desktop and GUI packages as well. Many thanks to @anijatsu and others for reporting related issues: #6959
- NanoPi 4/5/6 series | Resolved an issue where the DietPi APT repo entry could have been malformed so that kernel upgrades were missing.
- Debian Trixie | The install of Xfce and GNUstep desktops, as well as enabling Amiberry standard boot via
dietpi-autostart
failed, due the attempt to install thepolicykit-1
package, which is a dummy transitional on Bookworm and has been removed on Trixie. Instead, from Bookworm on, the successorpolkitd
package is installed, which provides the same features to elevate privileges for e.g.poweroff
/reboot
from desktop andsystemctl
execution. Many thanks to @0xB33r for reporting this issue: #7650 - DietPi-BugReport | Resolved an issue where generating a bug report failed on recent images if (p)7zip was not installed. This became an issue since we stopped to pre-install it on our images. Bug reports are not compress with
xz
if present, elsegzip
. Many thanks to @0xB33r for reporting this issue: #7650 - DietPi-Display | Resolved an issue where display with once stored settings were always shown as disabled, when starting the script again.
- DietPi-Software | VSCodium: This software options has been disabled on 32-bit ARM systems, since the project stopped distribution packag...
v9.15
New images
- Orange Pi 3 | Support for the non-LTS version of this board was added.
Enhancements
- Debian Trixie | In preparation for the Debian Trixie release, scheduled for August 9th, we further polished compatibility, and created a script for a seamless distro upgrade from Bookworm to Trixie, similar to the script which allows upgrades from Debian Bullseye to Bookworm. All info can be found here: #7644
- NanoPi R5C | Its onboard Ethernet adapters are now assigned static MAC addresses as well, like done earlier for the other NanoPi mini routers last DietPi release.
- DietPi-Display | Kernel command-line config detection has been widened to support more setups: GRUB is supported independent of the architecture, and settings are now changed in all found (and supported) config files, instead of just in the first. Many thanks to @adshrc for pointing out the too limited support for GRUB: #7390 (comment)
- DietPi-Display | The tool does now always show those settings previously applied, and reads the sysfs API only for settings which were not explicitly saved earlier. Previously, to faster detect non-functional settings and inconsistencies, even if settings were previously stored to the kernel command-line, the tool always read all values for enabled and connected displays from the sysfs API. This however means that when applying settings, exiting and restarting the tool, the previously applied settings are not shown anymore, and more importantly, all shown possibly different values were applied when changing only one setting. In the meantime, we know about inconsistencies when managing multiple displays, that e.g. on Raspberry Pi the rotation applied to one display, applies to all onboard display ports, and that the list of nodes from the sysfs API is neither consistently sorted, nor complete, entries can miss parameters, leading to duplicates, and on Raspberry Pi all modes with resolutions above the current one are simply missing. It makes more sense to consequently show those settings explicitly applied, and it can be seen on the display(s) whether/in how far they work or not. Many thanks to @adshrc again for the follow-up report.
- DietPi-Software | Moonlight (GUI): The game streaming client has been unlocked for all ARM and RISC-V systems, excluding only ARMv6 RPi models. Functionality may however depend on whether KMS and V4L2 drivers are available, and how well they work.
- DietPi-Software | Unbound: In favour of Unbound builtin data, the monthly cron job to download DNS root hints from https://www.internic.net/domain/named.root is removed, together with the
root-hints:
setting in our default config. DNS root servers do by far not change that regularly, and Debian defaults do not make use of dedicated root hints either. This also closes one potential attack vector introduced by the monthly download, which relied on HTTPS authenticity only. - DietPi-Software | Unbound: We do now provide our own up-to-date Unbound package, though for now not automatically via our APT server. All details and install instructions can be found in the respective pull request, which can be also used for discussing the topic: #7632
Bug fixes
- Debian Bullseye | Resolved an issue where APT updates failed because the
bullseye-backports
suite is not available on the main Debian repo anymore. It will be pulled from archive.debian.org now. Many thanks to @ILPlais for reporting this issue: #7630 - DietPi-Dashboard | Resolved an issue where the installing the nightly version, enforced on Raspberry Pi 5 and RISC-V systems, failed if no
unzip
was installed. Reason was a resultingHEAD
request, which is always failing with 404 on thenightly.link
URL we use to store dashboard nightly builds. - DietPi-Software | microblog.pub: Resolved an issue where the installation failed because of outdated dependencies. Since the project is not currently maintained, its Python dependencies are not updated. This is now done with Poetry within our installation code.
- DietPi-Software | Ampache: Resolved an issue where the install on Debian Bullseye systems always throw an error that the latest version could not be detected, hence the fallback URL was used. Many thanks to @jerin04 for reporting this issue: #7611
- DietPi-Software | File Browser: Resolved an issue where the installation failed if the default software password had a length below 12 characters. The minimum password length requirement for File Browser is reduced automatically, to match the default software password if needed. However, we do encourage everyone to assign a long and strong default software password. 12 characters is not an unreasonable minimum. Many thanks to @lutfor-diu for reporting this issue: #7612
- DietPi-Software | OctoPrint: Resolved a regression where the installation failed on RISC-V systems because of false
runuser
syntax.
v9.14
New images
- Orange Pi 5 Ultra | Support for the latest successor of the Orange Pi 5 family has been added to DietPi. Compared to the original Orange Pi 5, it features DDR5 RAM, onboard WiFi 6E, 2.5 Gbit Ethernet, an eMMC slot, an additional HDMI input port, and supports NVMe SSDs up to 2280 format. It is very similar to the Orange Pi 5 Max, but one of its HDMI port is an input port. It is disabled by default but can be enabled via device tree overlay by setting
overlays=hdmirx
in your/boot/dietpiEnv.txt
. - Orange Pi CM5 | Support for the latest compute module from Xunlong/Orange Pi has been added to DietPi. It features an RK3588S SoC 2-16 GiB DDR4 RAM, 32-256 MiB onboard eMMC storage, other features depending on the used base board. It has been tested on the Tablet Base Board. If you have the other Base Board, please check the following discussion to check or report which features have been tested successfully: #7574
New software
- GZDoom | This modder-friendly OpenGL and Vulkan source port based on the DOOM engine has been added to our software catalogue. Many thanks to @Captain-Beefheart for suggestion and supporting the implementation of this software option: #7497
Enhancements
- Container |
sysctl
cannot change values from within containers, but it needs to be done on the host instead. Whendietpi-software
would applysysctl
settings for certain software options, on container systems, it instead shows a dialogue with additional information, and how to apply the suggested change on the host. - NanoPi R4S/R5S/R6S/R6C | All onboard Ethernet adapters are now assigned a static MAC address.
- NanoPi R4S/R5S | A kernel patch was added which applies the native Ethernet driver LED triggers as default for their respective LEDs. In turn we remove the
udev
rules for thenetdev
trigger, which caused boot issues in rare cases, due to the needed interface up/down hack. The downside is that the native triggers do not indicate network activity, only a cable link as static light. Many thanks to @cxgth and @yjteng for reporting a related issue: #6951 - Orange Pi Zero 2W | Added udev rules to enable the Ethernet LEDs of the official Orange Pi Expansion Board. Many thanks to @ZjemCiKolege for the request: #6827 (comment)
- SOQuartz | The recent kernel upgrade ships device trees for the Blade and Model A base boards. Previously, only the C4 base board was included. For now, the device tree needs to be adjusted manually in
/boot/extlinux/extlinux.conf
. If you own a Blase base board, please reach out. So we can figure out a method to detect it, and apply the correct device tree automatically on first boot. - Odroid HC4 | We created an own hardware ID and provide own images for this SBC from now on. Previously, Odroid C4 and HC4 shared the same hardware ID and bootloader. In recent versions, this caused issues with the USB ports on HC4, and it always had the issue that no SPI bootloader was shipped with the package. Many thanks to
@amibumpin
and others for reporting this issue and testing the fix: https://dietpi.com/forum/t/23524 - ARM SBCs | New ARM images with U-Boot
/boot/boot.scr
script usage will not make use of the legacy/boot/uInitrd
format initramfs image anymore, but will load rawinitrd
images instead. This makes one step during initramfs updates obsolete, where an additional script converts the raw image generated byinitramfs-tools
into anuInitrd
format image. However, for this to work, there are changes at multiple lines needed in the boot script, which is not trivial to safely patch during DietPi update. We might do it with a later release, but until then, if you are interested in applying the change, just reach out, and we will provide instructions. - ARM SBCs | Similarly to above change, the
/boot/boot.scr
script of new images supports multiple device tree overlay prefixes. The overlays shipped with the kernel/dtb package have different by times overlapping prefixes, also depending on the kernel version/branch. Especially for RK35xx SBCs this made it unnecessarily difficult to deal with overlays. This also opens the door for implementing a fully functional device tree overlay selection menu intodietpi-config
, but with a later release 😉. - ARM SBCs | Realtek WiFi drivers for Rockchip/Allwinner/Amlogic mainline Linux builds have been reviewed and aligned: Where available, the module of the mainline
RTW88
driver family has been enabled and respective 3rd party drivers disabled. If you have a WiFi adapter withRTL8814AU
chip, and it is not working properly after the kernel upgrade, please inform us. It is the only missing dedicated driver module on Linux 6.12, compared to before the change. But another module from theRTL88XXAU
family should work as fallback. Many thanks to @kartikynwa for reporting a related problem with an unnecessarily enabled and used 3rd party driver: #7151
Bug fixes
- Allwinner H3 | Resolved an issue where boot could fail with the new Linux 6.12 kernel on old systems. Reason is a too low memory address used to load the environment variables and device tree overlays to, overlapping with the memory region used by the raised initramfs image. Many thanks to @mhjessen for reporting this issue: #7557
- Raspberry Pi | Resolved an issue where on older images, hardware accelerated video codecs could stay disabled, even when enabling them via
dietpi-config
. We split camera and codec toggles a while ago, but did not migrate the module blacklists accordingly. This is now done via DietPi update for affected systems. Many thanks to @danergo for reporting this issue: #7491 - ROCK64 | Resolved an issue where boot could fail with Linux 6.12 if a too old U-Boot version is present on the SPI storage. In turn, our new U-Boot package contains an SPI image as well, which will be flashed on DietPi update to prevent issues with the kernel upgrade. Many thanks to
@usr_9
and others for reporting this issue: https://dietpi.com/forum/t/23426 - DietPi-Backup | Resolved an issue where white spaces and some other special characters in the backup directory path were not correctly handled, when the config file is read. If you were affected be regular resets to the default path, please set the path once more after this update, and it should stay persistent. Many thanks to @Krouwndouwn for reporting this issue: #7439
- DietPi-Software | X11: Resolved a regression where X11 was not actually installed, but only configuration files. Many thanks to @oliverhbailey for reporting this issue: #7560
- DietPi-Software | Home Assistant: Resolve an issue where the service could have failed to start after a reinstall (HA update) if the Python version was updated as well, due to an obsolete config file pointing to the old Python version. Many thanks to @GrimXer0 for reporting this issue: #7525 (comment)
- DietPi-Software | Chromium: Resolved an issue where hardware acceleration on ARM systems was mostly disabled due to a faulty flag. Many thanks to
@mjmo
for reporting this issue: https://dietpi.com/forum/t/22518 - DietPi-Software | Deluge: Resolved an issue where Deluge was not functional on Bookworm systems due to an unfixed incompatibility between the Deluge version and Python 3.11, shipped by Bookworm APT repositories. Many thanks to @shlatchz and @Arghh for reporting the issue and texting the fix: #6408
v9.13
Removed software
- Google AIY | The Google AIY Voice Kit is not produced or sold anymore, and the related software repositories have been archived years ago. Furthermore we used install steps which were deprecated even years before the repository has been archived, and no sample to test whether it still works or not. If you still have an instance running, or aim to still try to get one running, here are uninstall instructions, as well as a link to the latest install instructions: #7533
- Mycroft AI | As we state on our docs since over a year, Mycroft AI has shut down: https://mailchi.mp/cccbfdd464c7/mycroft-is-winding-down-its-operations-6268807. There are two forks we might want to implement as alternative: OpenVoiceOS and Neon AI. Let us know if you are interested, and we will help with the implementation. If you have a left dysfunctional Mycroft AI instance on your DietPi system, here is how to uninstall it manually: #7534
Enhancements
- General | DietPi will now enforce the change of the default user and software passwords for security reasons. This also applies retrospectively during DietPi update, showing a prompt, if one of the two default users or
dietpi-software
still use the default password. However, the password set indietpi.txt
will now be applied in any case (before it is removed from that file), also withoutAUTO_SETUP_AUTOMATED=1
, and if it does not equal the default, no further prompt will be shown. - General | DietPi images will now ship without
unzip
, 7zip andbzip2
compression tools pre-installed. Our code has been adjusted to install those automatically if needed. Let us know if you think these are manually used too often to be missing. - Orange Pi 3B | Added support for the PWM fan connector to mainline kernel builds. Many thanks to @Vyacheslav-S for reporting this missing kernel feature: #7490 (comment)
- Radxa ZERO 3 | An upgrade to the Linux 6.1 based vendor kernel will be offered on DietPi update and implemented into new images from now on. Among other enhancements, this enables HDMI audio. Many thanks to @simpL3gr for reporting the missing HDMI audio functionality: #7520
- ASUS Tinker Board 2 | Resolved an issue where the onboard Ethernet MAC address changed each boot with the new Linux 6.12 based kernel. Many thanks to @briney83 for reporting this issue: #7522
- Virtual Machines | Our future VM images will ship with initramfs-tools instead of tiny-initramfs. The latter generates much smaller initramfs images (~1 MiB vs ~35 MiB), which is partly achieved by adding only those kernel modules actually used by the host. This auto-detection cannot work when generating images via container on other host systems, hence we maintained a small list of block device controller drivers known to be used by the visualizers we provide images for. The default controller can however be changed, which then renders the image unbootable, and a static list of controller drivers reduces the compatibility of our VM images. For our Clonezilla-based installer images it causes the additional issue that Clonezilla aims to regenerate the initramfs via
update-initramfs
command, which would add possibly missing drivers, but tiny-initramfs providesupdate-tirfs
instead. Furthermore, while Debian still maintains a tiny-initramfs package, there is actually no upstream development since years. We love small images with low disk I/O (for initramfs image generation), but sadly the downsides have become too large to keep using tiny-initramfs. Many thanks to @TheLinuxGuy for reporting the issue with Clonezilla, and an in turn unbootable VM image on Proxmox: #7468 - First run setup/DietPi-Config | The keyboard layout dialogue has been simplified. It shows a single list of supported layouts now, instead of the multiple steps to select keyboard model, navigate back and forth for the correct language, layout, and layout variant, and additional options like AltGr and compose key functions, presented by
dpkg-reconfigure keyboard-configuration
. If additional options are needed, it is still possible to start the extended dialogue by selecting "Advanced" in our simplified menu. Else it will select the genetic 105-key keyboard model, default layout variant and options, which will work fine for most users, including most laptop keyboards, with and without keypad. The goal is to simplify and speed up the first run setup, as well as to unify the code sections which trigger a keyboard configuration. - DietPi-Software | Gitea: This software option has been enabled for RISC-V systems, supported since v1.23.8.
Bug fixes
- Orange Pi 3B v1.1 | Resolved an issue where Ethernet did not work with the old revision of this board, when booting with the vendor bootloader from SPI. Many thanks to @iivailo for reporting this issue, and @Kwiboo for valuable insights based on ROCK 3B, which suffered from the same issue: #7490, #7327 (comment)
- Orange Pi Zero 3/2W | Resolved an issue where, especially on the 1 GB RAM variant, the RAM was sometimes detected with doubled size, leading to system crashes when it tries to write to these non-existing addresses. Many thanks to @bigross8 and others for reporting this issue: #7242
- DietPi-Set_CPU | Resolved an issue where on certain rare systems, the maximum CPU scheduling frequency was set to the min possible frequency, or the other way round, if not explicitly set differently. Many thanks to
@fat-pi2
and@waym
for reporting this issue: https://dietpi.com/forum/t/6560 - DietPi-Imager | Resolved an issue where the last partition of the input system was not detected correctly, when running the imager on a Debian Bullseye host, or one with comparable
lsblk
/util-linux
version. Its size was hence not reduced as intended, leading to a huge output image. Many thanks to @DrCWO for reporting this issue: #7527 - DietPi-Display | Resolved an issue where manually disabled displays did never show up again in the menu after a reboot, until the related kernel command-line argument is removed or adjusted manually. This is since disabled displays usually show up as "disconnected" in the sysfs API, which is then skipped by the tool. In addition to the sysfs API, kernel command-line configs are now checked for video (display) entries, and those in case shown in the tool. That way it is possible to always re-enable displays, which have been disabled with the tool.
- DietPi-Display | Resolved an issue where the extlinux config was not parsed correctly, which could lead to duplicate kernel command-line arguments, when changing settings for the same display multiple times.
- DietPi-Software | RPi.GPIO: Resolved a regression where the installation failed on Bullseye systems as the
python3-rpi-lgpio
compatibility package exists since Bookworm only. - DietPi-Software | fish: Resolved a syntax error on uninstall, and assured that all users who use fish as login shell are altered to use bash instead. Many thanks to @echtfrank for reporting these issues: #7500
- DietPi-Software | Home Assistant: Resolved an issue where latest HA could not be installed/updated due to a raised Python requirement on v3.13.2. Many thanks to @whyisthisbroken and @Yougoshatenshi for reporting this issue: #7525
- DietPi-Software | Redis: Solved a startup warning that memory overcommit should be enabled. This is applied for fresh Redis installs as well as via DietPi update for existing instances.
- DietPi-Software | Resolved an old visual glitch in the "Browse software" menu, where cryptic characters showed up the end of some checkbox lines, worsening when scrolling up and down. The underlying reason is a 199 bytes limit for whiptail checkbox and menu lines, which splits also multi-byte characters apart, like the "box drawing" horizontal line used for category delimiter lines by some of our menus. And since those line characters are 3-bytes in size, the 199 bytes limit can be reached as well in dialogues with only 96 characters width, like our current software menu. We use now regular 1-byte size dashes in category delimiter lines, to never reach the 199 bytes limit.