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 v6.29.0 #3443

Merged
merged 255 commits into from
Apr 1, 2020
Merged

Beta v6.29.0 #3443

merged 255 commits into from
Apr 1, 2020

Conversation

MichaIng
Copy link
Owner

@MichaIng MichaIng commented Mar 30, 2020

Beta v6.29.0

(01/04/20)

API Changes

  • Hardware info | The hardware info file /DietPi/dietpi/.hw_model should be now accessed at /boot/dietpi/.hw_model (see DietPi-RAMdisk removal below) and contains info now as NAME=VALUE like lines, which can be sourced from shell scripts.
  • Flag/Info files | /DietPi/dietpi/.update_available, /DietPi/dietpi/.timesync_exit_status, /DietPi/dietpi/.network and /tmp/.dietpi_motd have all been moved into a new runtime directory: /run/dietpi/
  • DietPi-Globals | The global variables G_HW_ARCH_DESCRIPTION and G_HW_MODEL_DESCRIPTION have been renamed to G_HW_ARCH_NAME and G_HW_MODEL_NAME. The new variables G_HW_UUID (DietPi-internal device UUID) and G_ROOTFS_DEV (RootFS device path) are available. On RPi additionally G_HW_REVISION, G_HW_PCB_REVISION, G_HW_MEMORY_SIZE and G_HW_MANUFACTURER are available, the revision code and its decoded information: https://www.raspberrypi.org/documentation/hardware/raspberrypi/revision-codes/README.md
  • DietPi-Globals | G_RUN_CMD and G_ERROR_HANDLER have been removed and replaced with G_EXEC. Basically G_EXEC can be used the same way G_RUN_CMD was before and it is wider configurable to make manual G_ERROR_HANDLER usage obsolete where custom solution menu entries or command output parsing is required, e.g. to check for errors that do not produce exit codes. Visual change for regular DietPi users is that every error handled command can be retried, a subshell can be opened to investigate or fix the originating issue and, for experienced users, the command can be altered, e.g. if a download link has changed or an expected file has been moved manually to a new path. Further details can be found in the script: /boot/dietpi/func/dietpi-globals
  • DietPi-Globals | G_FILE_EXISTS has been removed, as it was used only a single time in our code and usually it needs to be checked and handled explicitly, whether it is a file, directory, symlink with or without existing target.

Changes / Improvements / Optimisations

  • NanoPi M4v2 | Initial hardware identifier (ID: 58) and support for this device has been added to DietPi. Many thanks to @purist doing this request: https://dietpi.com/phpbb/viewtopic.php?f=12&t=6451
  • Pine H64 | Initial hardware identifier (ID: 45) and support for this device has been added to DietPi. Many thanks to @unixino for doing this request: Image | PINE H64 #3286
  • ROCK Pi S | Initial hardware identifier (ID: 73) and support for this device has been added to DietPi. Many thanks to @lwqcz for doing this request: Image | ROCK Pi S #3365
  • Sparky SBC | Updated kernel drivers and SBC-specific service and config files
  • General | Switched to C.UTF-8 as default locale and for DietPi scripts. It is shipped statically by APT package, international and more lightweight compared to en_GB.UTF-8.
  • DietPi-RAMdisk | Removed from DietPi, which means that one can edit config files in /boot directory directly now. To keep performance for our scripts up, vmtouch is installed instead, which allows to lock files in native file system cache, configured to lock /boot/dietpi and /boot/dietpi.txt in cache by default. More info: DietPi-RAMdisk | Replace with vmtouch to use native fs caching #3288
  • DietPi-LED_control | LED trigger choices are now applied via udev rules, existing settings are migrated on DietPi-Update. This allows to skip running this script at boot and simplify the preboot script, which both reduces boot time a bid. Additionally, applied LED triggers can now be reset to system defaults, which removes related udev rules. Since the script is now for interactive usage only, it has been moved to /boot/dietpi/dietpi-led_control and an alias has been added to call it from console via "dietpi-led_control" command.
  • DietPi-Cron | Allows now to set the cron job output mail recipient. Cron mails are disabled by default since no MTA is preconfigured on DietPi. Additionally the execution times are now shown more clearly in 24h format.
  • DietPi-Autostart | When selecting a non-root autologin user, some required tasks, like permissions, are now applied automatically, based on autostart option. This especially allows non-root users to launch Kodi without applying permissions manually. Many thanks to @sbrl for requesting this feature: DietPi-Autostart | Add autologin user to required groups #3351
  • DietPi-Drive_Manager | GlusterFS fstab entries are now preserved. Many thanks to @Sudrien for implementing this addition: DietPi-Drive_Manager | Support glusterfs mounts #3374
  • DietPi-Software | Domoticz: open-source home automation platform is now available for install. Many thanks to @AndyB for doing this request a long time ago: https://dietpi.com/phpbb/viewtopic.php?f=12&t=222
  • DietPi-Software | phpBB: Updated to v3.3.0 which has PHP7.3 support, hence can be installed on all hardware models and distro versions.
  • DietPi-Software | Sonarr/Radarr/Lidarr: Enhanced install and uninstall steps. On reinstalls, the install dir is left unchanged now, suggesting to use the internal updater instead, which is generally safer and now does not require a manual service restart (see bug fix below). In case of a broken instance, the install dir /opt/ needs to be removed manually now, to have reinstalls downloading and installing the newest binaries.
  • DietPi-Software | Sonarr/Radarr/Lidarr: The service now runs with hardened permissions, by default blocking access to directories outside of /opt/ /mnt /var/log/ and /tmp. If writing to other directories is wanted, the service file needs to be edited, easiest with "dietpi-services" > "" > "Edit" and adding an additional "ReadWritePaths=/path/to/custom/dir".
  • DietPi-Software | Chromium: Unlocked install on ARMv6 RPi models: RPi1/Zero/Zero W. Browsing performance will not be perfect, but for kiosk mode or light usage there are use cases. Many thanks to @kmplngj for requesting and testing: Could not install Chromium from dietpi-software #3364
  • DietPi-Software | myMPD: Updated installer according to next upstream release v6.2.0. Many thanks to @jcorporation for informing us about the new version: Notice of myMPD behaviour change - primary group of mympd user #3382
  • DietPi-Software | MPD: Assured that UNIX domain socket and systemd unit for socket activation is present on Stretch systems. As well the obsolete cache dir symlinks in "/var/lib/mpd" will not be present anymore. Any custom scripts must use the absolute paths in "/mnt/dietpi_userdata/.mpd_cache" from now on.
  • DietPi-Software | Pi-hole: Enabled support for Pi-hole v5. Many thanks to @maartenlangeveld for reporting the required change: DietPi-Software | Pi-hole: Add version 5 support #3391
  • DietPi-Software | Shairport-Sync: Updated to new version 3.3.6, using self-compiled deb packages. Many thanks to @kmplngj for doing this request: DietPi-Software | Update Shairport binaries #3216
  • DietPi-Software | HAProxy: Updated to newest stable upstream version 2.1.3 and the sysvinit service has been replaced with the officially provided systemd service. It will be reinstalled on all systems via DietPi-Update, your config files will not be touched on any reinstall.
  • DietPi-Software | rTorrent: Further rework and update of the default config file. Many thanks to @bbsixzz for this contribution: rTorrent Performance Tuning - proposal for a modern .rtorrent.rc #3332

Bug Fixes

Known/Outstanding Issues

+ DietPi-PREP | Update default htoprc to contain all settings of current version in Stretch - Bullseye. Some changes are contained based on my personal preferences.
+ DietPi-Banner | Always load DietPi-Globals: #3313
+ DietPi-Banner | Run G_INIT only on menu calls to allow concurrent banner prints but a single menu call only
+ DietPi-Banner | Menu calls require root permissions to write to settings files
+ DietPi-Banner | Only re-obtain network details if resulting file does not exist instead of if it exist
+ CHANGELOG | Resolved an issue where clearing the screen fails due to missing G_TERM_CLEAR command
+ RC up
+ DietPi-Globals | Default RC up
+ DietPi-Software | Redis: Skip incompatible always-show-logo setting on Stretch: #3314
+ CHANGELOG | Redis: Resolved an issue where service start fails on Stretch systems
+ DietPi-PREP | Configure WiFi and wpa_supplicant only if WiFi support was chosen before
+ DietPi-PREP | Remove obsolete AppArmor cache dir (Buster+ pre-image)
+ DietPi-PREP | RPi: Update USBridgeSig Ethernet driver via postinst kernel script, until it has been merged into official RPi kernel: https://github.com/allocom/USBridgeSig/tree/master/ethernet. This patch is applied via DietPi-Update to v6.27 already, hence this is makes it consistent for new images as well.
+ DietPi-Logclear | Only process log file array, if it has any content
+ DietPi-PREP | Clear /var/log once before starting RAMdisk (below mount point) and once before RAMdisk is stopped, to prevent logs being synced to disk. Skip other obsolete log file clearing.
+ DietPi-Patch | Before I forget it, don't enable MOTD anymore, Christmas and New Year greetings have been done ;).
+ DietPi-FirstBoot | Minor coding
+ DietPi-Software | Fix zip extraction without defined target dir. The new syntax ${var:+alt} allows as well cleaner argument handling for other extractors: #3320
+ CHANGELOG | DietPi-Software: Resolved an issue where extraction of zip archives to current directory failed
+ DietPi-Software | Lighttpd: Disable all URL parsing options, which conflict with PHP and most likely many other web applications. This is WIP, better would be a separate priority 99 drop-in config to explicitly set all settings to "disabled", since by default (if commented or removed) those are "enabled": nextcloud/server#17065
+ DietPi-PREP | Removing some additional files, present but obsolete on Armbian pre-images
+ DietPi-PREP | Restoring original (base-files package default) /etc/motd, e.g. Armbian places and leaves back an orphaned symlink
+ DietPi-PREP | Failsafe: Unmask and enable Dropbear service, e.g. since it must be masked when installing inside systemd-nspawn container, where service cannot start, leading to APT failure
+ DietPi-PREP | Skip DietPi-RAMlog start/stop, which does nothing here, since no logs have been stored to the persistent disk location. To prevent logs to disk during PREP, a tmpfs mount would be required, but since we do not expect much logs and can clear it afterwards, this is overkill
+ DietPi-PREP | Clearing files below tmpfs mount points by mounting the rootfs to an tmp dir and removing files from there. This is much safer and cleaner compared to unmounting and remounting each tmpfs.
+ DietPi-PREP | Clearing some additional obsolete (old) dpkg files
+ DietPi-Patch | Syntax
+ DietPi-PREP | Syntax
+ DietPi-PREP | Syntax
+ DietPi-Software | phpBB: Install v3.3.0 which finally support PHP7.3, hence allow install on all HW models and distro versions. The updater to v3.3.0 works with PHP7.3 on earlier versions.
+ DietPi-PREP | phpBB: Remove obsolete PHP7.3 workaround
+ DietPi-Software | Jackett: Suppress pgrep output while waiting for updater to finish
+ DietPi-Software | SABnzbd: Minor uninstall enhancements
+ DietPi-Config Revert change from ac3de5e to again allow usage prior to firstrun update. This is potentially risky e.g. in case of error prompts during firstrun updates, when only half patches have been applied, having an unexpected state and since its interface contains options which redirect to dietpi-drive_manager and even dietpi-software etc. But currently the error handler offers to open dietpi-config to fix wrong configs, e.g. network setup, swap file or things like that, regardless of install state. We we want to remove this, we must add some targeted config options first, e.g. edit network interfaces on connection check error, edit DNS nameserver on resolver error, and some other typical things during checks being performed. Reference: #2979 (comment)
+ DietPi-WiFiDB | Do not apply execute bit to dietpi-wifi.db, since sourcing does not require it
+ DietPi-WiFiDB | Minor coding
@MichaIng
Copy link
Owner Author

@drieksje
Could you paste the exact error you face? The related APT packages were missing on Buster but were added some days ago actually, so at least the packages should install fine. But it might be possible that the new build require an xorg.conf adjustment.

@drieksje
Copy link

drieksje commented Mar 30, 2020 via email

@drieksje
Copy link

drieksje commented Mar 31, 2020 via email

@MichaIng
Copy link
Owner Author

@drieksje
No picture arrived here, I guess you have to upload via web browser as GitHub likely does not provide appends via email. But might you please open a new issue about this? It is related to Debian Buster on Odroid C2, not so much to DietPi v6.29.

@drieksje
Copy link

drieksje commented Mar 31, 2020 via email

@MichaIng
Copy link
Owner Author

MichaIng commented Mar 31, 2020

@drieksje
Nope, DietPi supports Stretch and Buster for a long time, Bullseye mostly as well. It was by chance that we updated most Stretch images to Buster during v6.29 dev phase.

+ DietPi-Software | Updated Allo web UI to v13.2
+ DietPi-Patch | Reinstall Allo web UI to apply update to v13.2
+ DietPi-Software | Odroid C2: Do not install aml-libs-odroid with Xserver but with Kodi instead, as this is only required for Kodi and only for Odroid C2+N2.
+ DietPi-Patch | Syntax
+ DietPi-Set_software | locale: Allow C.UTF-8 input
+ DietPi-Globals | G_AGP: Fix package array handling
+ DietPi-Software | Remove Shairport-Sync before Avahi-Daemon since the first depends on the latter
+ DietPi-Banner | WAN IP: Only scrape string if curl succeeds, else print full error output
+ DietPi-Globals | G_EXEC: Remove colour codes when printing $G_EXEC_DESC in whiptail menu, as it is shown raw there
@MichaIng
Copy link
Owner Author

MichaIng commented Mar 31, 2020

@Joulinar
I made final tests and fine tuning for what I found. From my end ready for a first beta candidate. If you find time for some testing, I would be happy. Especially the smooth update is something that needs to be taken a special eye on, due to the large amount of core changes, RAMdisk remove, info/flag file location and format, changed global functions etc.

@Joulinar
Copy link
Collaborator

Joulinar commented Mar 31, 2020

@MichaIng
it's still dev branch against I can test right?

@MichaIng
Copy link
Owner Author

@Joulinar
Yes it's still dev.

@Joulinar
Copy link
Collaborator

Joulinar commented Mar 31, 2020

@MichaIng
I did 3 test for now

  1. Buster VM
  2. Stretch VM
  3. Buster RPi3B+

so for so good. I attached all 3 logs. One thing I spotted on my RPi system

 DietPi-Update
─────────────────────────────────────────────────────
 Phase: Applying incremental patches

[ INFO ] DietPi-Update | Current version : v6.28.0 (branch: MichaIng/master)
[ INFO ] DietPi-Update | Latest version  : v6.29.0 (branch: MichaIng/dev)
[ INFO ] DietPi-Update | Patching 6.28 to 6.29
Removed /etc/systemd/system/multi-user.target.wants/dietpi-ramdisk.service.
/DietPi/dietpi/patch_file: line 150: /etc/.dietpi_hw_model_identifier: No such file or directory
[  OK  ] DietPi-Patch | Restarting DietPi-Update with new code...

Rest seems to be fine

stretchVM.txt
busterRPi3Bplus.txt
busterVM.txt

+ DietPi-Patch | Do not check HW model ID if no identifier file exists, which is the case for RPi
@MichaIng
Copy link
Owner Author

MichaIng commented Apr 1, 2020

@Joulinar
Great, ah yeah indeed we check the HW model identifier file even if it does not exist (on RPi). I fixed it: 2cce23b

+ DietPi-Software | Update fallback URLs for all software titles where the latest download link ist obtained automatically
+ DietPi-Software | Gogs: The download link for ARMv7 binaries has changed to correctly represent the supported architecture and platform it was compiled on.
+ DietPi-Software | Grafana: Update ARMv6 download to pull v6.7.1
+ DietPi-Software | NAA Daemon: Remove armhf Stretch fallback, since armhf binaries are available for now the current version
+ DietPi-Software | UrBackup Server: Use deb packages for ARMv8 as well, since those are available now
+ DietPi-Software | YaCy: Update download link to pull latest v1.922_20191013_9964
+ DietPi-Software | OpenBazaar: Pull latest officially supported Go v1.11.13
@MichaIng
Copy link
Owner Author

MichaIng commented Apr 1, 2020

I went through dietpi-software and updated some download links, mostly the fallback URLs only, but YaCy has a few years newer version now: 64ea12c
It's a subsubversion raise only, but I am not sure about the actual development/changes since the last official release is still dated 2016... I'll do some test install just to be sure, then merge this as first beta candidate.

MichaIng added 4 commits April 1, 2020 16:23
+ DietPi-Software | UrBackup: Minor fix and uninstall enhancements, mark manual removals as now pre-v6.29 steps
+ DietPi-Software | CloudPrint: Fix variable name
+ DietPi-Set_hardware | RPi: Do not load or remove dtoverlays to disable internal WiFi/BT for current session. This is not really supported, works for some overlays but not for all of them correctly. As well it leads to ugly dmesg prints about memory leaks. This also allows to enable WiFi on the fly during firstrun setup, if it was not enabled via dietpi.txt: https://dietpi.com/phpbb/viewtopic.php?p=23651#p23651
+ DietPi-Software | YaCy: Run service as Type=forking, which allows correct service state and startup tracking
+ DietPi-Software | YaCy: Do not attempt to set the password on install. This does not work as long as the service is not running and according to our online docs as well must be set manually after install
+ DietPi-Software | YaCy: Do not set executable bit on the whole dir, the tarball comes with required modes on all script files
+ DietPi-Software | Java: Do second APT run via new G_EXEC_RETRIES
@MichaIng MichaIng merged commit c91234b into beta Apr 1, 2020
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.

6 participants