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

Release v7.9 #5053

Merged
merged 111 commits into from
Dec 11, 2021
Merged

Release v7.9 #5053

merged 111 commits into from
Dec 11, 2021

Conversation

MichaIng
Copy link
Owner

@MichaIng MichaIng commented Dec 10, 2021

Release v7.9

(2021-12-11)

Stretch support

  • This is the last DietPi release with support for Debian Stretch. Next release will be DietPi v8.0 which requires Debian Buster or newer. Read our article about why we need to make this move and how you can easily upgrade your system to Debian Buster and even further to current stable Debian Bullseye: https://dietpi.com/blog/?p=1001

Changes

  • Raspberry Pi | Since Bullseye, some media software titles, most importantly FFmpeg and those which make use of FFmpeg libraries compiled for Raspberry Pi firmware (Kodi, Jellyfin, Chromium), utilise the Raspberry Pi V4L2 codec drivers. Those were previously enabled/disabled with the RPi camera module switch in dietpi-config. The hardware codec drivers have now become an own CLI command and menu switch in the dietpi-config display options and are enabled automatically when one of the mentioned software titles is installed or reinstalled on Bullseye (or above).
  • DietPi-Dashboard | On fresh installs, password protection is now enabled by default, using the global software password. You can apply or change this manually by following the instructions in our documentation: https://dietpi.com/docs/software/system_stats/#dietpi-dashboard
  • DietPi-Dashboard | The default TCP network port has been changed from 8088 to 5252 to resolve a port conflict with InfluxDB. This does not affect existing installs, but you will be asked whether to apply this change during DietPi update. Many thanks to @blablazzz for reporting this issue: DietPi-Software | Influxdb, port conflict with DietPi-Dashboard #4966
  • DietPi-Backup | A backup archive with a selectable amount of backups to keep can be created now. Backups are rotated automatically and if the maximum amount has been reached, the oldest backup is used as basis for the incremental new backup sync, to reduce writes and increase speed. Many thanks to @johnvick and many others for requesting this feature: https://dietpi.com/phpbb/viewtopic.php?t=3593
  • DietPi-Backup | Backups can now be stored outside of /mnt into any directory or mount point as long as the filesystem supports symlinks and UNIX permissions.
  • DietPi-Software | The file server choice menu has been removed. Most file servers can run concurrently, hence it is not required to remove e.g. a Samba server to install an FTP server, so that a dedicated menu lost its reason. File servers can be selected the regular way via "Browse/Search Software" menus or CLI. The related dietpi.txt setting has been removed for new images as well, but it will still be respected when present. For an automated install with new images, use the "AUTO_SETUP_INSTALL_SOFTWARE_ID" setting instead.
  • DietPi-Software | SABnzbd: For fresh installs, file logging has been disabled in favour of journal logging. All service and process logs can hence now be reviewed via: journalctl -u sabnzbd
  • DietPi-Software | Apache: Fresh installs and reinstalls will be configured with PHP-FPM instead of mod_php. As a requirement, the event MPM is used instead of prefork. This reduces memory usage and increases access performance significantly on concurrent requests, as the Apache parent process does not need to fork a new child process for every single process. We further optimised it by spawning a single static child process only while handling concurrent requests by a sufficient amount of process threads. This allows Apache to share memory efficiently and makes it quite lightweight. There are no downsides known when using a single process only, compared to multiple processes with less threads each. Related StackExchange questions: https://superuser.com/questions/1611015/apache2-mpm-event-more-threads-vs-more-processes
  • DietPi-Software | Apache: Our default/base configuration is now added as separate file, so that the main apache2.conf is not touched anymore. Furthermore the default vhost is now pre-created before the package install, so that it can be skipped on a reinstall to not overwrite user customisations. These in combination allow for a safe and clean reinstall without breaking any changes done by the admin, with the little exception that the webroot is set to /var/www which is required for all our software options which make use of an external webserver.
  • DietPi-Software | Apache: Our new default config provides maximum privacy settings and security headers. It is trivial to override these with own configurations, on vhost or directory level.
  • DietPi-Software | Apache: Logging is now done to journal (journalctl -u apache2) by default and the ServerName directive added with the local IP, to mute related startup warnings. This may imply access and CORS failures when applications check for the server name as allowed hostname but a different external IPs/hostnames was used for access. In such case generally applications provide a way to define a list of permitted hostnames. Without a server name set, usually webserver simply apply the HTTP_HOST header, which bypasses every related check. Apache, according to the logged warning, seems to use 127.0.1.1 then.
  • DietPi-Software | Kodi: On Raspberry Pi Bullseye systems, the new official Raspberry Pi repository build for Kodi 19.3 is now installed. You can apply the upgrade manually by reinstalling Kodi: dietpi-software reinstall 31
  • DietPi-Software | Kodi: The addon repository is now installed by default with all Kodi installs, which previously was the case only on RPi and Odroids. When currently missing, it can be manually installed: apt install kodi-repository-kodi
  • DietPi-Software | Gitea: The service runs now as dedicated user "gitea" with its home directory "/mnt/dietpi_userdata/gitea" to allow easy transfer and usage of SSH keys for remote access. This applies to newly installed or reinstalled Gitea instances. Many thanks to @LilTrublMakr for reporting the related limitation with the previously used "dietpi" user: DietPi-Software | Gitea: Run as system user with SSH key option #4620
  • DietPi-Software | Chromium: On Raspberry Pi, the chromium-codecs-ffmpeg-extra package is now installed together with Chromium, which adds additional codecs for patented video/audio formats. Many thanks to @Krawei for identifying this Chromium video playback enhancement: Pi 400 and Debian Bullseye aarch64: Hardware Acceleration does not work #5013
  • DietPi-Software | rTorrent: By default on fresh installs, rTorrent now listens on TCP port 49164 for incoming BitTorrent connections. Aside of DHT, listening for incoming connections was completely disabled before, which lead to slow or no peer connections, depending on the tracker used. Many thanks to @Camry2731 for reporting this inconsistency with our other BitTorrent server options.

Fixes

  • Raspberry Pi | Resolved an issue in our images where on first boot two serial login consoles on the generic symlinked and actual serial devices could have been started. This doubled inputs and in turn broke successful username and password login via serial console on first boot. Many thanks to @ad7718 for reporting this issue: Raspberry zero serial console login problem #5014
  • DietPi-Backup | Resolved an issue where backup and restore failed if a non-default backup location is used, as a wrong log file path was used. This is a v7.8 regression. Many thanks to @malinka for reporting this issue: https://dietpi.com/phpbb/viewtopic.php?p=39909#p39909
  • DietPi-Config | Resolved an issue where enabling the "odroid-lcd35" LCD panel on Odroids failed as SPI is enabled by default, blocking the same GPIO ports. Many thanks to @MarcProux for reporting this issue: Odroid C2 LCD 3.5 not working with Linux 3.16.85+ #4154
  • DietPi-Config | Resolved an issue where the network adapter menu did not show the static DNS server(s) effetively applied at first boot based on dietpi.txt settings. Many thanks to @nils-trubkin for reporting this issue: DNS settings in dietpi.txt are ignored/not applied (AUTO_SETUP_NET_STATIC_DNS) #5054
  • DietPi-Software | Resolved a v7.8 regression where ReadyMedia, Deluge, Sonarr and Jellyfin installs failed with an error on "usermod", since the services were not stopped first. This has been loved via live patches for v7.8 as well.
  • DietPi-Software | Transmission: Resolved a v7.8 regression where on fresh installs the intended configuration was not deployed. Many thanks to @kannz and @alessandro.psrt for reporting this issue: https://dietpi.com/phpbb/viewtopic.php?t=9567, https://dietpi.com/phpbb/viewtopic.php?t=9683
  • DietPi-Software | SABnzbd: Resolved an issue where installs failed on ARMv6 and ARMv7 Stretch systems. Many thanks to @bensp for reporting this issue: DietPi-Software | SABnzbd: Install fails on Buster and Stretch #4997
  • DietPi-Software | Deluge: Worked around an issue on Raspberry Pi ARMv6 userland systems where the service failed to start. Deluge has hence been re-enabled for this systems. Many thanks to @themagicbullet for providing the workaround: DietPi-Software | Deluge fails on Raspbian Bullseye #4944
  • DietPi-Software | UnRAR: Resolved an issue on Raspberry Pi 1 an Zero (1) where an incompatible "unrar" binary was installed. "unrar-free" from Raspbian is installed now on these models, but note that it does not fully support all RAR formats and may hence fail to extract archives in some cases.
  • DietPi-Software | rTorrent: Resolved an issue where with Apache webserver the /RPC2 proxy to the rTorrent UNIX socket did not work due to invalid syntax. Many thanks to @Camry2731 for reporting this issue.
  • DietPi-Software | RealVNC: Updated/fixed the workaround for a failing first start of RealVNC due to a cleared password file. Many thanks to @xmicky for reporting this issue: Real VNC install Dietpi #5050

MichaIng and others added 30 commits November 15, 2021 14:47
+ DietPi-Software | ReadyMedia/Deluge/Sonarr/Jellyfin: Stop service before usermod attempt
+ CHANGELOG | Fix v7.8 release month
+ DietPi-Software | ReadyMedia/Deluge/Sonarr/Jellyfin: Stop service before usermod
+ DietPi-Software | Apache: Rename from "Apache2" to "Apache". The full name of the project is "Apache HTTP Server" while the "2" is the current version only. Generally we aim to avoid version strings in software names.
+ META | Initiate the DietPi v7.9 development cycle
+ DietPi-PREP | NanoPi R1: Enable second USB port by default
+ DietPi-TimeSync | In oneshot modes, stop systemd-timesyncd as well when time sync fails. Exit the loop when the menu is cancelled: This allows users to ignore without overriding the status to success, so that a next non-forced sync won't be skipped, and it assures that without STDIN no endless loop can happen. G_INTERACTIVE=0 is set if no STDIN is available, but in theory this can be overridden by exporting/passing G_INTERACTIVE=1 explicitly.
+ DietPi-Backup | Fix file path
+ DietPi-Patches | To avoid issues with detached backup drives but active systemd automount unit, the old dietpi-backup.log is now moved to /tmp
+ DietPi-Imager | Give the system some time to remove the ext4 journal
+ DietPi-VPN | Install OpenVPN right before the VPN connection is established, instead of when the script is started. Also add short descriptions to the autostart and killswitch options.
+ DietPi-Software | Transmission: Stop service before applying our configuration settings
+ DietPi-Software | Stop all services right after their (package/installer) installation, which were stopped between install and config code blocks in DietPi v7.8 an earlier. In all added cases, this is not necessary to fix install issues (as far as tested), but it reduces RAM usage and CPU utilisation during subsequent installs and all those services are (re)started at the end of all installations with in case updated configs anyway.
+ DietPi-Update | Show (now shorter) live patch descriptions when those are applied and in the interactive menu list
+ DietPi-Update | Be consistent with G_WHIP_MENU usage and add the colon for separating menu key and description to the live patch menu
+ DietPi-Software | MotionEye: Tiny alignment with Python 3 branch
+ DietPi-Software | Unbound: Skip using obsolete CONFIG_PREFER_IPV4 dietpi.txt setting but use CONFIG_ENABLE_IPV6 only to decide whether to have Unbound listen to and use IPv6 for DNS queries or not. Remove the "prefer-ip6" setting from the default config as well, leave it up to Unbound defaults.
+ DietPi-FirstBoot | If CONFIG_ENABLE_IPV6 has no valid value, hence it is not actively disabled, enable IPv6.
+ DietPi-Services | Do not enable/disable ownCloud/Nextcloud maintenance mode anymore: The cron, the webserver and in case PHP are stopped and started which practically prevents any access to and from Nextcloud anyway.
+ DietPi-Services | Add DietPi-CloudShell to menu and status service list, which is now always present
+ DietPi-Services | Remove some old debug code and minor coding
+ DietPi-PREP | Enable Raspberry Pi Zero 2 W support by copying the 3 B device tree if the one for Zero 2 W does not exist
+ DietPi-PREP | Do not try to remove a service file or link if it got removed e.g. by disabling it before
+ DietPi-Software | Kodi: On RPi, use full KMS driver instead of fake KMS driver now, and use it not only for RPi 4 but for all 64-bit images (userland) as well. Only the 32-bit Raspbian Buster and earlier Kodi build requires RPi models earlier than RPi 4 to use the legacy framebuffer driver.
+ DietPi-Software | Docker: Remove actual service overrides on uninstall
+ DietPi-Build | Set keyring for debootstrap explicitly, especially required when building a Raspbian image on Debian
+ DietPi-Set_hardware | On RPi 4, when checking for KMS HDMI sound devices, do not explicitly required the "-pi4" overlay suffix which is neither required nor used by dietpi-config anymore.
+ DietPi-Build | Prevent doubled upload as the imager does the upload already
+ DietPi-PREP | Be most compatible with date of pre-images as long as a supported distro version is installed
+ DietPi-PREP | Remove some trivial information: Distro downgrades can never work!
+ DietPi-PREP | Remove dead code
+ DietPi-Software | Tiny
+ DietPi-Config | RPi: Show only actually set overclocking values above the menu and no commented ones. If none are set, show the defaults for the apparent RPi model. When resetting values, do not reset comments but only turn actually set values into comments, showing the default value.
+ Spelling
+ DietPi-Set_software | Assure that systemd-timesyncd is installed on Bullseye and up, when trying to enable and/or start it. And only try to stop and disable the service when it is either enabled or running.
+ DietPi-Drive_Manager | When checking for Btrfs kernel module, do load. It is required shortly after.
+ DietPi-Set_software | Mute output for calling G_AG_CHECK_INSTALL_PREREQ with no input
+ DietPi-Software | Kodi: Skip dealing with Kodi service and user, which is not used anyway and if at all present only on legacy images. In fact I couldn't find the config file and user on any currently supported distro/package version. On the regular package on Debian Stretch, the user is used in the Kodi service, but that service is not used, not enabled by default and the user not created on install.
+ DietPi-Software | General internal cleanup of the choice system
+ DietPi-Software | Remove UNINSTALL_REQUIRED variable and instead check for any actual "-1" mark to trigger the Uninstall_Software function call for CLI and after installs. Also the uninstall menu code has been simplified, getting rid of of another flag variable in favour of checking whether any software has been added to the anyway created G_WHIP array.
+ DietPi-Software | If due to choice changes only uninstalls are done and it is not the first run setup, skip the install function and call the uninstall function directly.
+ DietPi-Software | Remove abortion banner: No need to erase the console, especially when no changes have been applied. Also the function contained a 1st run abort (short version) banner which was never used, as aborting DietPi-Software on first run setup was prevented in the first place, reasonably, to have all setup steps done regardless of actual software selections.
+ DietPi-Software | Adjust logging choice index on Rsyslog and DietPi-RAMlog installs and uninstalls. Generally assure that RAMlog index stays active as long as /var/log is still a tmpfs, to rule out filled tmpfs until reboot. On DietPi-RAMlog uninstall, the logging index will be adjusted by the service which does the actual disabling on next reboot.
+ DietPi-Software | Merge webserver preference index variables, prevent preference choice if a webserver is installed already, apply choices immediately (persistent without doing an actual install) and adjust index on webserver uninstalls.
+ DietPi-Software | Merge desktop preference index variables, prevent preference choice if a desktop is installed already, apply choices immediately (persistent without doing an actual install) and adjust index on desktop uninstalls.
+ DietPi-Software | Merge browser preference index variables, prevent preference choice if a browser is installed already, apply choices immediately (persistent without doing an actual install) and adjust index on browser uninstalls.
+ DietPi-Software | Remove file server choice setting from dietpi.txt, but keep code to apply the choice to be backwards compatible with current/old images.
+ DietPi-Software | Remove the File Server selection menu. There is no reason to treat file servers any different than other software titles, they are no dependencies, do not generally conflict with each other and do not affect other installs.
+ DietPi-Software | Fallback to correct default when resolving dependencies. This is done already in parent functions but it doesn't hurt to do this as well in the final function.
+ DietPi-Software | Update webserver stack meta install states right before writing the installed states file. This assures that those always represent the actual webserver and database install states after every install or uninstall.
+ DietPi-Software | Implement a new conflict system which allows to consistently unmark and warn users about conflicting software selections, when doing this interactively from the menus as well as when installing via CLI
+ DietPi-Software | Reorder install steps so that unmarks are done first, and the install is aborted if no marks are left, and required directories only after successfully network check + time sync + APT
+ DietPi-Software | Do not warn or recommend to leave webserver stacks unmarked to be auto-selected as dependency. There is absolutely no problem when users do this manually. It is not required (as long as the webserver stack is not wanted as standalone installation) but the additional step has been done already, so the warning is pointless. The new conflict system additionally prevents and warns about conflicts, if this was one of the reasons behind the warning.
+ DietPi-Software | Remove the flag for software which requires automated APT upgrades. Keeping APT packages updates is generally and always recommended, if there is time for the maintenance, and there is no reason why this would be more important when using a VPN server or Tor compared to e.g. hosting personal data via webserver or similar.
+ DietPi-Software | Consequently loop through aSOFTWARE_NAME instead of aSOFTWARE_INSTALL_STATE keys to not handle install states of software which is not defined anymore, e.g. a forgotten install state while the related software title has been removed with a recent DietPi release. There is an install state assigned in every case as part of the array creation.
+ DietPi-Software | Do not show webserver stacks in uninstall menu: Their install states will be aligned with webserver/database install states automatically.
+ DietPi-Software | Tune preference system texts to be hopefully better understandable: #4914 (comment)
+ DietPi-Software | Update all fallback URLs and hardcoded version strings in software URLs
+ DietPi-Software | Tiny
+ CHANGELOG | UnRAR: Resolved an issue on Raspberry Pi 1 an Zero (1) where an incompatible "unrar" binary was installed. "unrar-free" from Raspbian is installed now on these models, but note that it does not fully support all RAR formats and may hence fail to extract archives in some cases.
+ DietPi-Software | rTorrent: Resolved an issue where with Apache webserver the /RPC2 proxy to the rTorrent UNIX socket did not work due to invalid syntax. Many thanks to @Camry2731 for reporting this issue.
+ RC up
+ DietPi-Software | rTorrent: On new installs, enable TCP listener by default, to align with other BitTorrent servers. Use a single port outside of the well-known port range, following Arch Linux recommendations.
+ DietPi-Software | rTorrent: Update Lighttpd config to mute some startup warnings, and apply some minor code and permission hardenings
@MichaIng MichaIng added this to the v7.9 milestone Dec 10, 2021
+ CHANGELOG | Set release PR URL
+ DietPi-Config | Mute G_GET_NET error if no WiFi or Ethernet adapter is available and fallback to /etc/resolv.conf if dns-nameservers is not present in /etc/network/interfaces
+ DietPi-Config | Tiny
+ DietPi-Config | Only use /etc/network/interfaces for static DNS server info when the dns-nameservers setting is actually in use (uncommented), else fallback to /etc/resolv.conf which is definittly the affectively applied system DNS server, while we do not know whether it has been applied statically or via DHCP or dynamically via resolvconf. Fix mawk syntax for this. Furthermore, to avoid confusion, on first boot adjust the dns-nameservers entry even if resolvconf is not available (commented of course) so that it matches /etc/resolv.conf in any case.
+ DietPi-Config | Show all nameserver entries from /etc/resolv.conf (in a single line). The trailing blank is removed already since '{print $2,$3}' implies it when only one nameserver is applied.
+ CHANGELOG | DietPi-Config: Resolved an issue where the network adapter menu did not show the static DNS server(s) effetively applied at first boot based on dietpi.txt settings. Many thanks to @nils-trubkin for reporting this issue: #5054
@MichaIng MichaIng marked this pull request as ready for review December 11, 2021 14:51
+ CHANGELOG | rTorrent: By default on fresh installs, rTorrent now listens on TCP port 49164 for incoming BitTorrent connections. Aside of DHT, listening for incoming connections was completely disabled before, which lead to slow or no peer connections, depending on the tracker used. Many thanks to @Camry2731 for reporting this inconsistency with our other BitTorrent server options.
+ DietPi-Software | RealVNC: Update workaround for lost VNC password: Pre-create a marker file which for some reason prevents the password file from being cleared on service start. Also assure that the password file is no empty on a reinstall, else re-apply passwords and marker
+ CHANGELOG | RealVNC: Updated/fixed the workaround for a failing first start of RealVNC due to a cleared password file. Many thanks to @xmicky for reporting this issue: #5050
+ DietPi-Config | Syntax
+ DietPi-Set_hardware | Add a command to toggle the Raspberry Pi hardware codec drivers separately. Since Bullseye at least, V4L2 is actively used for video decoding in Kodi and FFmpeg (includes Chromium), so that it requires an independent toggle. On Raspberry Pi 4 there is a dedicated stateless HEVC driver which should then be enabled, too. Enable these as well when the RPi camea module is enabled.
+ DietPi-Config | Implement the new dedicated RPi codecs toggle. As well remove the RPi model checks when an RPi option was selected, as those options are only shown on RPi in the first place. Move some other checks, which imply Odroids up to hide all unsupported menu entries in the first place.
+ DietPi-Software | Enable Raspberry Pi hardware codecs on RPi Bullseye systems for FFmpeg, Jellyfin (internal FFmpeg), Chromium (internal FFmpeg) and Kodi (FFmpeg system libraries), which are known to make use of the RPi hardware codecs.
+ DietPi-Benchmark | Simplify survey optin status check
+ RC up
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Open Beta v7.9 | Please help testing and hardening the upcoming release
3 participants