Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Beta v8.16.0 #6258

Merged
merged 111 commits into from
Apr 1, 2023
Merged

Beta v8.16.0 #6258

merged 111 commits into from
Apr 1, 2023

Conversation

MichaIng
Copy link
Owner

@MichaIng MichaIng commented Mar 19, 2023

Beta v8.16.0

(2023-04-01)

New software

Enhancements

  • General | Reworked GPU driver installations for x86 systems. This provides better control of GPU drivers for DietPi, adding support for Vulkan and resolves issues with Steam Proton. Users will be prompted to select a driver package during DietPi-Update.: Steam + Vulkan support (Proton) | Notes #6262
  • NanoPi R5S/R6S | The kernel will be upgraded during the DietPi update to disable a writable clk DebugFS flag it was previously shipped with. Many thanks to @thinkpanzer for bringing this to our attention: NanoPi R5S/R6S | Writable clk DebugFS enabled #6136
  • Orange Pi 5/ROCK 5B | The hardware random generator daemon rngd is used now in favour of the software random generator haveged. It will be replaced on DietPi update.
  • First run setup | When connected via local console and the keyboard layout has not been changed in dietpi.txt, an additional prompt allows you now to change the keyboard layout before you are offered to change passwords. This is obviously helpful since the password input fields are masked, hence false characters due to false keyboard layout may not be recognised but bite you later when you cannot login into your installed application. Many thanks to @LeFish1 for doing this suggestion: Improvement: Keyboard layout vs. password change during initial setup #5925
  • DietPi-Services | The service handling for software installed via dietpi-software has received a major rework. Previously, services were "disabled" by default, so that the systemd init system did not start them automatically at boot. Instead, they were enabled at a late boot stage as part of the dietpi-postboot service via dietpi-services. The idea was to assure fast undisturbed early boot process and to have all services started up in a specific order, which guarantees that dependencies are running before dependants. But it had several negative implications: systemd is designed to speed overall services startup via parallelism, while our serial startup broke this benefit. "systemctl status SERVICE" showed services as "disabled", which caused confusion as they were still started at boot. Consequently the only way to prevent them from being started was to mask services or exclude them with our script or its config file, as "systemctl disable SERVICE" had no effect. Also it was not uncommon that APT package upgrades left the service stopped, respecting the "disabled" state. DietPi has now been aligned with how Linux distros with systemd handle services commonly. The most important startup ordering is instead done via systemd unit "After=" ordering directives to have e.g. webservers starting after PHP, and PHP after databases.
  • DietPi-RAMlog | For unknown historical reasons, the /var/log tmpfs mount had 1777 mode, i.e. was world-writable with sticky bit. Since this does not match the Debian default for this directory, this mode has been removed from the mount options, so that the default mode 0755 is now used.

Bug fixes

  • General | Added more generic support for obtaining the CPU temperature, covering some thin clients and potentially other systems where no CPU temperature was shown when running the "cpu" command or enabling it for the login banner.
  • Orange Pi 5/ROCK 5B | Resolved an issue where the wrong serial console device name was expected. The correct /dev/ttyFIQ0 will be enabled on DietPi update and patched for a baudrate of 1,500,000.
  • Raspberry Pi | With the recent official Raspberry Pi kernel upgrade, Raspberry Pi 4 systems do now boot with the 64-bit kernel by default, even if the underlying OS/userland is 32-bit. While we doubt in any practical benefits, dietpi-software has been patched to correctly deal with this case, i.e. installing 32-bit packages and binaries instead of relying on the "uname -m" kernel architecture output. Some 3rd party software installers may still fail to deal with this case, but we give it a chance for now and hope that affected installers can be relatively easily made compatible.
  • DietPi-Config | Resolved an issue where selecting the Nvidia driver on x86_64 systems did not actually install the needed kernel module if kernel headers were not installed before. Headers matching your kernel package are now installed automatically when selecting this option, to have the driver compiled and installed.
  • DietPi-Software | Fail2Ban: Resolved a DietPi v8.11 regression where moving logs to systemd journal on install fails due to a typo.
  • DietPi-Software | Portainer: Disabled the install option on ARMv6 RPi models since no Portainer Docker image is available for this architecture anymore. Many thanks to @intiplink for making us aware of this: https://dietpi.com/forum/t/armv6-bookworm-software-test-matrix-question/16380/11

MichaIng and others added 30 commits March 12, 2023 00:30
- DietPi-Set_hardware | Add new vf2-spi-update command to usage output
DietPi-Software | Fail2Ban: Resolved a DietPi v8.11 regression where moving logs to systemd journal on install fails due to a typo.

Co-authored-by: MichaIng <micha@dietpi.com>
- DietPi-Installer | Download and pre-install U-Boot hosted on dietpi.com where it has not been ported (and probably never will) to the Armbian Bookworm repo.
- DietPi-Software | Komga: Update fallback URL
- DietPi-Installer | Remove legacy code in coditions which cannot be reached anymore and minor refactor
- DietPi-Software | Mopidy: Do not install the official APT repo on RISC-V, as it does not contain RISC-V binaries. Instead, the quite recent packages from Debian Sid will be installed.
- DietPi-Software | Mopidy: Disable service before removing package, which is not done by postinst, failing to remove user then
- DietPi-Software | Pi-hole: Stop, disable and remove as well the new systemd service on uninstall, if present
- DietPi-Software | Remove tailing space
DietPi-Software | Transmission: Stop service before removal
- DietPi-Installer | Remove apt-get clean calls since this is now done as part of G_AG* calls
- DietPi-Software | Rclone: Use "arm-v6" builds on ARMv6 RPis, which seem to make use of hardfloat support, compared to "arm" builds, aimed for ARMv5, and update fallback URL
- DietPi-Software | Rclone: Enable on RISC-V via Debian repo package
- DietPi-Installer | Remove serial-getty@hvc0 mask, obsolete with latest kernel
- DietPi-Installer | Minor: Install u-boot-tools and armbian-firmware together with initramfs before kernel and dtb packages. It never made a difference, but generating the initramfs with U-Boot conversion requires u-boot-tools.
- DietPi-Build | Generate RPi images with only 1 MiB leading empty space, which is still aligned to any possible block/cluster size and matches to what the Debian installer does, even including GRUB
- DietPi-Build | Generate EFI or boot FAT partitions with a maximum cluster size up to 4 KiB to get a potential little performance boost while raising waste space a little. This also matches the default on Windows and follows a recent change on RPi OS where it was changed to 4 sectors per cluster == 2048 bytes.
- DietPi-Software | Rclone: Update fallback URL
- DietPi-Build | Parallels: Provide image as VMX + VMDK combination like for VMware. This can be imported on macOS by Parallels to generate a VM with default settings: #5431
- DietPi-Build | Generate VMDK images with "lsilogic" adapter type option, natively compatible with SCSI controllers, which might solve boot issues on Parallels. Also remove nested virtualisation and IDE CD/DVD drives from VMware and ESXi VMs.
- DietPi-Software | Komga: Update fallback URL
- CI | Quartz64: Move whole package build to workflow and bump Linux to v6.2.7
- Quartz64 | Disable IPv6-in-IPv4 tunnel driver. It enables a sit0@NONE network interface. It is a module in most other kernels, but yet to "y" by default. Since I never heard of someone using this, lets disable until someone explicitly requests it.
- Odroid C1 | Minor config update (no functional change)
- DietPi-Installer | Reduce places for code updates by using a new variable to define whether to use the Armbian repo for kernel/bootloader/firmware or not
- DietPi-Software | Uninstalls: Add and use function to consistently and cleanly remove system services, service users and groups
- DietPi-Software | Skip systemd daemon-reload where possible when (un)masking or (en|dis)abling systemd services, as it takes much time
- DietPi-Build | Remove backports qemu-utils install as we do not generate hda images anymore for Parallels
- DietPi-Software | Uninstalls: Add and use function to consistently remove local databases and database users
- DietPi-Software | phpMyAdmin: Remove it on uninstall! Only the database and user were removed for some reason ...
- DietPi-Software | HAProxy: Bump to v2.7.5
- DietPi-Software | Minor coding consistency
- DietPi-Patches | NanoPi R5S/R6S: Upgrade kernel to disable writable clk DebugFS: #6136
- DietPi-Patches | Typo
- DietPi-Patches | Fix package check
- DietPi-Patches | Fix logic
MichaIng and others added 19 commits March 27, 2023 16:15
- DietPi-Software | Prometheus Node Exporter: Minor updates and disable on RISC-V since there are currently no assets released for this architecture
- DietPi-Services | Aria2 and SABnzbd are backend downloader applications which can be used by Servarr applications and alike, hence move them up
- DietPi-Software | Add service ordering to a bunch of systemd units, to assure that: PHP starts after database servers, webservers start after PHP, any service which accesses or creates media starts after remote-fs.target, network services start after network-online.target, start DNS servers before nss-lookup.target and start Servarr software after backend downloaders
- DietPi-Software | O!MPD: Download and extract in tmpfs move to disk from there
- DietPi-Software | DarkIce: Start services as nobody:dietpi to align with Debian package service on the one hand but grant R/W access to /mnt/dietpi_userdata for (optional) local recording storage
- DietPi-Software | Use "mkdir -p" in most cases instead of checking for the directory. Initially the aim was to minimise external command calls for performance reasons, but the additional code can be annoying and having all steps printed to console can be useful for users to know what needs to be done
- DietPi-Software | AdGuard Home: Remove obsolete dir removal from short beta phase
- DietPi-Services | Rework to not start/stop disabled services anymore. Services previously controlled by DietPi are now enabled and hence started at boot by systemd the common way. DietPi-Services is not invoked at boot anymore, but on software installs and maintenance tasks only to stop services first and restart them afterwards if they are enabled. The menu and CLI has been adjusted to reflect that and further coding changes have been applied in the same turn.
- DietPi-Services | Satisfy shellcheck and fix nested index overwrite
- DietPi-Globals | G_WHIP_MENU/G_WHIP_CHECKLIST: Allow menu entries with leading dash
- DietPi-Services | Internal enhancements: Merge Set_Running_State() and Apply_Service_State() functions into single Apply_Service_Command() function, since those contained mostly repetitive code. Make clear in comments that this function allows not only a single service index input, but multiple indices, which as well worked before but was not documented in the code. And further minor coding enhancements...
- DietPi-Software | Do not unmask and "dietpi_controll" (=disable) all services before installs, instead unmask only those which are to be installed and enable them after all installs have finished
- DietPi-PostBoot | Do not start services as this is now done the common way via systemd
- DietPi-Software | Syntax
- DietPi-Software | Also enable services in aSTART_SERVICES array if aENABLE_SERVICES array is empty
- DietPi-Set_swapfile | Add some error handling when updating the /tmp tmpfs size, but do not exit the whole script if a step fails, but only the related function
- DietPi-Set_swapfile | Switch to G_CONFIG_INJECT and re-add 1777 mode. Removing it was aimed for /var/log tmpfs mounts only
- DietPi-Services | The service handling for software installed via dietpi-software has received a major rework. Previously, services were "disabled" by default, so that the systemd init system did not start them automatically at boot. Instead, they were enabled at a late boot stage as part of the dietpi-postboot service via dietpi-services. The idea was to assure fast undisturbed early boot process and to have all services started up in a specific order, which guarantees that dependencies are running before dependants. But it had several negative implications: systemd is designed to speed overall services startup via parallelism, while our serial startup broke this benefit. "systemctl status SERVICE" showed services as "disabled", which caused confusion as they were still started at boot. Consequently the only way to prevent them from being started was to mask services or exclude them with our script or its config file, as "systemctl disable SERVICE" had no effect. Also it was not uncommon that APT package upgrades left the service stopped, respecting the "disabled" state. DietPi has now been aligned with how Linux distros with systemd handle services commonly. The most important startup ordering is instead done via systemd unit "After=" ordering directives to have e.g. webservers starting after PHP, and PHP after databases.
- DietPi-Software | Grafana: Bump to v9.5.7 on ARMv6
- DietPi-Services | Do not offer to restart services which are not running after doing unit changes, but do offer it for disabled services + visually fix the dialogue
- DietPi-Services | Show "masked" state correctly in service menu and remove doubled "Service control" section title
- DietPi-Services | Update service mode when unmasking it via menu
- DietPi-Services | Remove trailing space
- DietPi-Software | Instead of forcing cron to start after MariaDB and Redis on all systems, force MariaDB and Redis to start before cron when those are installed
- DietPi-Software | Portainer: Disabled the install option on ARMv6 RPi models since no Portainer Docker image is available for this architecture anymore. Many thanks to @intiplink for making us aware of this: https://dietpi.com/forum/t/armv6-bookworm-software-test-matrix-question/16380/11
- Quartz64 | Bump to Linux 6.2.9 and switch to compressed kernel image
- CI | Move all software build scripts to native DietPi automated first run setup, add RISC-V arch and avoid DietPi-Survey uploads (relevant only due to automated first run setup)
Co-authored-by: MichaIng <micha@dietpi.com>
- DietPi-Globals | G_AG_CHECK_INSTALL_PREREQ: If a multi-arch package is installed for multiple architectures (e.g. GPU libraries for Steam), "dpkg-query -s" fails as it expects an explicit architecture to be appended (e.g. ":amd64"). Do solve this, always add the default DPKG architecture as long as none was given as input. This currently solves unnecessarily repeating package install when selecting a GPU driver on x86 with Steam installed.
- DietPi-Config | GPU driver: Pre-select currently installed driver
- First run setup | When connected via local console and the keyboard layout has not been changed in dietpi.txt, an additional prompt allows you now to change the keyboard layout before you are offered to change passwords. This is obviously helpful since the password input fields are masked, hence false characters due to false keyboard layout may not be recognised but bite you later when you cannot login into your installed application. Many thanks to @LeFish1 for doing this suggestion: #5925
- DietPi-Set_software | Remove "userdel" command, since it is not used anywhere
@MichaIng MichaIng marked this pull request as ready for review April 1, 2023 21:00
- META | Merge from master
MichaIng and others added 3 commits April 1, 2023 23:07
- RC up
- DietPi-Software | Adding microblog.pub

Co-authored-by: MichaIng <micha@dietpi.com>
- DietPi-Software | Re-add execute bit
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 v8.16 | Please help testing and hardening our upcoming release
5 participants