MichaIng / DietPi

Lightweight justice for your single-board computer!
https://dietpi.com/
GNU General Public License v2.0
4.89k stars 498 forks source link

Request to update Shairport-sync to most recent version #3370

Closed Hammer8 closed 4 years ago

Hammer8 commented 4 years ago

Creating a software request

Hi, I’m running 6.28 Dietpi on a pi 4 and am having some issues with Shairport and a usb DAC. Are there plans to update the Dietpi install to the most recent version? I tried Dietpi-software reinstall 124, which worked for updating Signalyst NAA and other items, but it did not update Shairport-sync. Thank you!

Formal software information

Are there similar/alternative software titles available with DietPi-Software?

What makes your requested software better than the above solutions, if available?

How can DietPi make the installation easier or compatible, than following the install instructions or do APT installation, if available?

Can you provide the installation steps that you would suggest DietPi-Software to do?

  1. ...

Are you willing to help maintaining the software installation, e.g. in case of needed setup changes due to updates etc.? This is not needed, but could speed up our decision to implement it, as man power is always a topic :wink:.

Vote for this software on FeatHub: https://feathub.com/MichaIng/DietPi/

Joulinar commented 4 years ago

Hi, As far a I can see, Shairport-sync download URL is hard coded into dietpi-software script.

https://github.com/MichaIng/DietPi/blob/6ff308bdf88b6e3411bd61b4e3d16edded82fe38/dietpi/dietpi-software#L4755

@MichaIng I guess new software package would need to be created? Latest version on Shairport-sync GitHub seems to be 3.3.5

MichaIng commented 4 years ago

@Hammer8 Many thanks for your request. Yes indeed we ship a custom compiled version currently since it is newer than what Debian Stretch repo ships. Buster and Stretch-backports now ship the same version: https://packages.debian.org/buster/shairport-sync Bullseye and even Buster-backports the most current: https://packages.debian.org/buster-backports/shairport-sync

Are there any important changes with the current version? I am thinking if we simply revert to Debian APT install on Buster and Bullseye systems, on non-RPi systems to backports, and only ship out custom compiled package for RPi-Stretch systems, where no backports are available, hence otherwise much older 2.8.6 would be shipped: https://packages.debian.org/stretch/shairport-sync

But if there are real benefits of the new version, I can update our custom compiled binaries as well. Of course if someone else has time/mood to do that for certain architecture/distro version (not sure if Buster-compiled binary works e.g. with Stretch libraries), feel free to do so and I can upload them when working fine: https://github.com/mikebrady/shairport-sync/blob/master/INSTALL.md

Hammer8 commented 4 years ago

Hi, yes, looking at the release notes, there are a lot of bug fixes and enhancements added since the Dietpi version in the most recent version; especially from v3.2xx to v3.3. A few of which I am especially interested in given I am not able to get the Dietpi version working with my USB DAC. Additionally, there appears to be more troubleshooting features in the new version when things don’t work as expected.

Thank you for your help.

MichaIng commented 4 years ago

@Hammer8 Okay, since I have a bid limited time currently and am busy with redoing all our images, it can take some days. If I'm in mood and things go easy, I'll compile one RPi Buster binary over the weekend to test.

Joulinar commented 4 years ago

@MichaIng are the following steps needed only to compile the stuff? if yes I could do it on my RPi3B+

$ git clone https://github.com/mikebrady/shairport-sync.git
$ cd shairport-sync
$ autoreconf -fi
$ ./configure --sysconfdir=/etc --with-alsa --with-soxr --with-avahi --with-ssl=openssl --with-systemd
$ make
FusionPlmH commented 4 years ago

Here is an New AirPlay Mirroring Server Found in github , support airplay2; https://www.raspberrypi.org/forums/viewtopic.php?t=239964 GITHUB: https://github.com/FD-/RPiPlay

MichaIng commented 4 years ago

For reference, the thread with USB DAC issue: EDIT: REMOVED OBSOLETE LINK Not sure whether new Shairport-Sync can solve it, but at least worth to give it a try.

@Joulinar Looks good, but I didn't have a closer look into compile options yet. Of course the mentioned build tools and dev packages are required first: build-essential git xmltoman autoconf automake libtool libpopt-dev libconfig-dev libasound2-dev avahi-daemon libavahi-client-dev libssl-dev libsoxr-dev

Joulinar commented 4 years ago

@MichaIng Of course they are needed for building the package. I just skipped it in my post :laughing:

Joulinar commented 4 years ago

@MichaIng ok I tried to setup the package on my RPi3B+ but I discover some differences between the package you created and the one I did now.

/usr/local/etc is empty. Files in my installation are located on /etc file in /usr/local/share/man/man7 is shairport-sync.7 and not shairport-sync.7.gz

Anyway attached the file. Just remove *.txt

shairport-sync_3.3.5_armv7l.7z.txt

MichaIng commented 4 years ago

@Joulinar Totally forgot about this issue. I already compiled new packages based on v3.3.6: https://dietpi.com/downloads/binaries/buster/

Strange that your config file is located in /etc since by default the binary should look inside /usr/local/etc which as well matches all other files locations. However possibly the binary searches the other default config file locations as well so that it does not make a difference. However, ah I see that I created this default config manually, although only because I didn't want a sample config which contains non-supported settings (based compile-time options).

Here my script:

``` { . /boot/dietpi/func/dietpi-globals # Download G_RUN_CMD cd /tmp G_RUN_CMD curl -sSfL https://github.com/mikebrady/shairport-sync/archive/master.tar.gz -O G_RUN_CMD rm -Rf shairport-sync-master G_RUN_CMD tar xf master.tar.gz G_RUN_CMD rm master.tar.gz # Compile G_RUN_CMD cd shairport-sync-master G_AGUP G_AGI automake pkg-config make g++ libpopt-dev libconfig-dev libssl-dev libsoxr-dev libavahi-client-dev libasound2-dev autoreconf -i -f || exit 1 ./configure --with-alsa --with-avahi --with-ssl=openssl --with-soxr --with-metadata --with-systemd || exit 1 make CFLAGS='-g0 -O3' CXXFLAGS='-g0 -O3' || exit 1 # - Stip down binary size strip --remove-section=.comment --remove-section=.note shairport-sync || exit 1 # Package dir: In case of Raspbian, force ARMv6 G_RUN_CMD cd /tmp grep -q 'raspbian' /etc/os-release && DIR='shairport-sync_armv6l' || DIR="shairport-sync_$(uname -m)" G_RUN_CMD rm -Rf $DIR # - Control files, systemd service, config file, executable, copyright G_RUN_CMD mkdir -p $DIR/{DEBIAN,lib/systemd/system,usr/local/{bin,etc,share/doc/shairport-sync}} # Binary G_RUN_CMD cp shairport-sync-master/shairport-sync $DIR/usr/local/bin/ # Copyright curl -sSfL https://raw.githubusercontent.com/mikebrady/shairport-sync/master/LICENSES > $DIR/usr/local/share/doc/shairport-sync/copyright || exit 1 # systemd service G_RUN_CMD cp shairport-sync-master/scripts/shairport-sync.service $DIR/lib/systemd/system/ # Cleanup G_RUN_CMD rm -Rf shairport-sync-master # Config file cat << _EOF_ > $DIR/usr/local/etc/shairport-sync.conf // Sample Configuration File for Shairport Sync // Commented out settings are generally the defaults, except where noted. // Some sections are operative only if Shairport Sync has been built with the right configuration flags. // See the individual sections for details. // General Settings general = { name = "%H"; // This means "Hostname" -- see below. This is the name the service will advertise to iTunes. // The default is "Hostname" -- i.e. the machine's hostname with the first letter capitalised (ASCII only.) // You can use the following substitutions: // %h for the hostname, // %H for the Hostname (i.e. with first letter capitalised (ASCII only)), // %v for the version number, e.g. 3.0 and // %V for the full version string, e.g. 3.3-OpenSSL-Avahi-ALSA-soxr-metadata-sysconfdir:/etc // Overall length can not exceed 50 characters. Example: "Shairport Sync %v on %H". // password = "secret"; // leave this commented out if you don't want to require a password interpolation = "soxr"; // aka "stuffing". Default is "auto". Alternatives are "basic" or "soxr". Choose "soxr" only if you have a reasonably fast processor and Shairport Sync has been built with "soxr" support. // output_backend = "alsa"; // Run "shairport-sync -h" to get a list of all output_backends, e.g. "alsa", "pipe", "stdout". The default is the first one. // mdns_backend = "avahi"; // Run "shairport-sync -h" to get a list of all mdns_backends. The default is the first one. // port = 5000; // Listen for service requests on this port // udp_port_base = 6001; // start allocating UDP ports from this port number when needed // udp_port_range = 10; // look for free ports in this number of places, starting at the UDP port base. Allow at least 10, though only three are needed in a steady state. // drift_tolerance_in_seconds = 0.002; // allow a timing error of this number of seconds of drift away from exact synchronisation before attempting to correct it // resync_threshold_in_seconds = 0.050; // a synchronisation error greater than this number of seconds will cause resynchronisation; 0 disables it // ignore_volume_control = "no"; // set this to "yes" if you want the volume to be at 100% no matter what the source's volume control is set to. // volume_range_db = 60 ; // use this advanced setting to set the range, in dB, you want between the maximum volume and the minimum volume. Range is 30 to 150 dB. Leave it commented out to use mixer's native range. // volume_max_db = 0.0 ; // use this advanced setting, which must have a decimal point in it, to set the maximum volume, in dB, you wish to use. // The setting is for the hardware mixer, if chosen, or the software mixer otherwise. The value must be in the mixer's range (0.0 to -96.2 for the software mixer). // Leave it commented out to use mixer's maximum volume. // volume_control_profile = "standard" ; // use this advanced setting to specify how the airplay volume is transferred to the mixer volume. // "standard" makes the volume change more quickly at lower volumes and slower at higher volumes. // "flat" makes the volume change at the same rate at all volumes. // volume_range_combined_hardware_priority = "no"; // when extending the volume range by combining the built-in software attenuator with the hardware mixer attenuator, set this to "yes" to reduce volume by using the hardware mixer first, then the built-in software attenuator. // run_this_when_volume_is_set = "/full/path/to/application/and/args"; // Run the specified application whenever the volume control is set or changed. // The desired AirPlay volume is appended to the end of the command line – leave a space if you want it treated as an extra argument. // AirPlay volume goes from 0 to -30 and -144 means "mute". // regtype = "_raop._tcp"; // Use this advanced setting to set the service type and transport to be advertised by Zeroconf/Bonjour. Default is "_raop._tcp". // playback_mode = "stereo"; // This can be "stereo", "mono", "reverse stereo", "both left" or "both right". Default is "stereo". // alac_decoder = "hammerton"; // This can be "hammerton" or "apple". This advanced setting allows you to choose // the original Shairport decoder by David Hammerton or the Apple Lossless Audio Codec (ALAC) decoder written by Apple. // If you build Shairport Sync with the flag --with-apple-alac, the Apple ALAC decoder will be chosen by default. // interface = "name"; // Use this advanced setting to specify the interface on which Shairport Sync should provide its service. Leave it commented out to get the default, which is to select the interface(s) automatically. // audio_backend_latency_offset_in_seconds = 0.0; // Set this offset to compensate for a fixed delay in the audio back end. E.g. if the output device delays by 100 ms, set this to -0.1. // audio_backend_buffer_desired_length_in_seconds = 0.2; // If set too small, buffer underflow occurs on low-powered machines. Too long and the response time to volume changes becomes annoying. Default is 0.15 seconds in the alsa backend, 0.35 seconds in the pa backend and 1.0 seconds otherwise. // audio_backend_buffer_interpolation_threshold_in_seconds = 0.075; // Advanced feature. If the buffer size drops below this, stop using time-consuming interpolation like soxr to avoid dropouts due to underrun. // audio_backend_silent_lead_in_time = 2.0; // This optional advanced setting, from 0.0 and 4.0 seconds, sets the length of the period of silence that precedes the start of the audio. The default is the latency, usually 2.0 seconds. Values greater than the latency are ignored. Values that are too low will affect initial synchronisation. // dbus_service_bus = "system"; // The Shairport Sync dbus interface, if selected at compilation, will appear // as "org.gnome.ShairportSync" on the whichever bus you specify here: "system" (default) or "session". // mpris_service_bus = "system"; // The Shairport Sync mpris interface, if selected at compilation, will appear // as "org.gnome.ShairportSync" on the whichever bus you specify here: "system" (default) or "session". // resend_control_first_check_time = 0.10; // Use this optional advanced setting to set the wait time in seconds before deciding a packet is missing. // resend_control_check_interval_time = 0.25; // Use this optional advanced setting to set the time in seconds between requests for a missing packet. // resend_control_last_check_time = 0.10; // Use this optional advanced setting to set the latest time, in seconds, by which the last check should be done before the estimated time of a missing packet's transfer to the output buffer. // }; // Advanced parameters for controlling how Shairport Sync stays active and how it runs a session sessioncontrol = { // run_this_before_play_begins = "/full/path/to/application and args"; // make sure the application has executable permission. If it's a script, include the shebang (#!/bin/...) on the first line // run_this_after_play_ends = "/full/path/to/application and args"; // make sure the application has executable permission. If it's a script, include the shebang (#!/bin/...) on the first line // "active" state starts when play begins and ends when the active_state_timeout has elapsed after play ends, unless another play session starts before the timeout has fully elapsed. // run_this_before_entering_active_state = "/full/path/to/application and args"; // make sure the application has executable permission. If it's a script, include the shebang (#!/bin/...) on the first line // run_this_after_exiting_active_state = "/full/path/to/application and args"; // make sure the application has executable permission. If it's a script, include the shebang (#!/bin/...) on the first line // active_state_timeout = 10.0; // wait for this number of seconds after play ends before leaving the active state, unless another play session begins. // run_this_if_an_unfixable_error_is_detected = "/full/path/to/application and args"; // if a problem occurs that can't be cleared by Shairport Sync itself, hook a program on here to deal with it. An error code-string is passed as the last argument. // Many of these "unfixable" problems are caused by malfunctioning output devices, and sometimes it is necessary to restart the whole device to clear the problem. // You could hook on a program to do this automatically, but beware -- the device may then power off and restart without warning! // wait_for_completion = "no"; // set to "yes" to get Shairport Sync to wait until the "run_this..." applications have terminated before continuing // allow_session_interruption = "no"; // set to "yes" to allow another device to interrupt Shairport Sync while it's playing from an existing audio source // session_timeout = 120; // wait for this number of seconds after a source disappears before terminating the session and becoming available again. }; // Back End Settings // These are parameters for the "alsa" audio back end. // For this section to be operative, Shairport Sync must be built with the following configuration flag: // --with-alsa alsa = { // output_device = "default"; // the name of the alsa output device. Use "alsamixer" or "aplay" to find out the names of devices, mixers, etc. // mixer_control_name = "PCM"; // the name of the mixer to use to adjust output volume. If not specified, volume in adjusted in software. // mixer_device = "default"; // the mixer_device default is whatever the output_device is. Normally you wouldn't have to use this. // output_rate = "auto"; // can be "auto", 44100, 88200, 176400 or 352800, but the device must have the capability. // output_format = "auto"; // can be "auto", "U8", "S8", "S16", "S16_LE", "S16_BE", "S24", "S24_LE", "S24_BE", "S24_3LE", "S24_3BE", "S32", "S32_LE" or "S32_BE" but the device must have the capability. Except where stated using (*LE or *BE), endianness matches that of the processor. // disable_synchronization = "no"; // Set to "yes" to disable synchronization. Default is "no". // period_size = ; // Use this optional advanced setting to set the alsa period size near to this value // buffer_size = ; // Use this optional advanced setting to set the alsa buffer size near to this value // use_mmap_if_available = "yes"; // Use this optional advanced setting to control whether MMAP-based output is used to communicate with the DAC. Default is "yes" // use_hardware_mute_if_available = "no"; // Use this optional advanced setting to control whether the hardware in the DAC is used for muting. Default is "no", for compatibility with other audio players. // maximum_stall_time = 0.200; // Use this optional advanced setting to control how long to wait for data to be consumed by the output device before considering it an error. It should never approach 200 ms. // use_precision_timing = "auto"; // Use this optional advanced setting to control how Shairport Sync gathers timing information. When set to "auto", if the output device is a real hardware device, precision timing will be used. Choose "no" for more compatible standard timing, choose "yes" to force the use of precision timing, which may cause problems. // disable_standby_mode = "never"; // This setting prevents the DAC from entering the standby mode. Some DACs make small "popping" noises when they go in and out of standby mode. Settings can be: "always", "auto" or "never". Default is "never", but only for backwards compatibility. The "auto" setting prevents entry to standby mode while Shairport Sync is in the "active" mode. You can use "yes" instead of "always" and "no" instead of "never". // disable_standby_mode_silence_threshold = 0.040; // Use this optional advanced setting to control how little audio should remain in the output buffer before the disable_standby code should start sending silence to the output device. // disable_standby_mode_silence_scan_interval = 0.004; // Use this optional advanced setting to control how often the amount of audio remaining in the output buffer should be checked. }; // How to deal with metadata, including artwork // For this section to be operative, Shairport Sync must be built with at one (or more) of the following configuration flags: // --with-metadata, --with-dbus-interface, --with-mpris-interface or --with-mqtt-client. // In those cases, "enabled" and "include_cover_art" will both be "yes" by default metadata = { enabled = "yes"; // set this to yes to get Shairport Sync to solicit metadata from the source and to pass it on via a pipe include_cover_art = "no"; // set to "yes" to get Shairport Sync to solicit cover art from the source and pass it via the pipe. You must also set "enabled" to "yes". // cover_art_cache_directory = "/tmp/shairport-sync/.cache/coverart"; // artwork will be stored in this directory if the dbus or MPRIS interfaces are enabled or if the MQTT client is in use. Set it to "" to prevent caching, which may be useful on some systems pipe_name = "/tmp/shairport-sync-metadata"; pipe_timeout = 5000; // wait for this number of milliseconds for a blocked pipe to unblock before giving up socket_address = "226.0.0.1"; // if set to a host name or IP address, UDP packets containing metadata will be sent to this address. May be a multicast address. "socket-port" must be non-zero and "enabled" must be set to yes" socket_port = 5555; // if socket_address is set, the port to send UDP packets to socket_msglength = 65000; // the maximum packet size for any UDP metadata. This will be clipped to be between 500 or 65000. The default is 500. }; // Diagnostic settings. These are for diagnostic and debugging only. Normally you should leave them commented out diagnostics = { // disable_resend_requests = "no"; // set this to yes to stop Shairport Sync from requesting the retransmission of missing packets. Default is "no". // statistics = "no"; // set to "yes" to print statistics in the log // log_verbosity = 0; // "0" means no debug verbosity, "3" is most verbose. // log_show_file_and_line = "yes"; // set this to yes if you want the file and line number of the message source in the log file // log_show_time_since_startup = "no"; // set this to yes if you want the time since startup in the debug message -- seconds down to nanoseconds // log_show_time_since_last_message = "yes"; // set this to yes if you want the time since the last debug message in the debug message -- seconds down to nanoseconds // drop_this_fraction_of_audio_packets = 0.0; // use this to simulate a noisy network where this fraction of UDP packets are lost in transmission. E.g. a value of 0.001 would mean an average of 0.1% of packets are lost, which is actually quite a high figure. // retain_cover_art = "no"; // artwork is deleted when its corresponding track has been played. Set this to "yes" to retain all artwork permanently. Warning -- your directory might fill up. }; _EOF_ # Control files # - conffiles echo 'usr/local/etc/shairport-sync.conf' > $DIR/DEBIAN/conffiles # - postinst cat << _EOF_ > $DIR/DEBIAN/postinst #!/bin/sh if [ -d '/run/systemd/system' ]; then if getent passwd shairport-sync > /dev/null 2>&1; then echo 'Configuring shairport-sync service user ...' usermod -aG audio -d /run/shairport-sync -s $(command -v nologin) shairport-sync else echo 'Creating shairport-sync service user ...' useradd -rMU -G audio -d /run/shairport-sync -s $(command -v nologin) shairport-sync fi echo 'Configuring Shairport-Sync systemd service ...' systemctl enable --now shairport-sync fi _EOF_ # - prerm cat << _EOF_ > $DIR/DEBIAN/prerm #!/bin/sh if [ -d '/run/systemd/system' ]; then echo 'Deconfiguring Shairport-Sync systemd service ...' systemctl unmask shairport-sync systemctl disable --now shairport-sync fi _EOF_ G_RUN_CMD chmod +x $DIR/DEBIAN/{postinst,prerm} # - Estimate deb arch if [[ $G_HW_ARCH_NAME == 'x86_64' ]]; then arch='amd64' elif [[ $G_HW_ARCH_NAME == 'aarch64' ]]; then arch='arm64' elif [[ $G_HW_ARCH_NAME == armv[67]l ]]; then arch='armhf' fi # - control cat << _EOF_ > $DIR/DEBIAN/control Package: shairport-sync Version: 3.3.6-dietpi1 Architecture: $arch Maintainer: MichaIng Date: $(date '+%a, %d %b %Y %T %z') Standards-Version: 4.5.0.0 Installed-Size: $(du -sk $DIR | mawk '{print $1}') Depends: libc6 (>= $(dpkg-query -Wf '${VERSION}' libc6)), avahi-daemon, libasound2 (>= 1.1.0), libavahi-client3 (>= 0.6.16), libsoxr0 (>= 0.1.0), libconfig9, libssl1.1 (>= 1.1.0), libpopt0 (>= 1.14) Section: sound Priority: optional Homepage: https://github.com/mikebrady/shairport-sync Vcs-Git: git://github.com/mikebrady/shairport-sync.git Vcs-Browser: https://github.com/mikebrady/shairport-sync Description: AirPlay audio player Plays audio streamed from iTunes, iOS devices and third-party AirPlay sources such as ForkedDaapd and others. Audio played by a Shairport Sync-powered device stays synchronised with the source and hence with similar devices playing the same source. In this way, synchronised multi-room audio is possible without difficulty. . Shairport Sync does not support AirPlay video or photo streaming. _EOF_ # Build deb package G_RUN_CMD rm -Rf $DIR.deb dpkg-deb --build $DIR || exit 1 G_RUN_CMD rm -Rf $DIR exit } ```
MichaIng commented 4 years ago

@Joulinar Do you have devices to the our new build? Since we have a report that it does not work: #3461 Could be due to strict compile-time options (-g0 -O3) instead of (Debian) default (-g -O2).

Joulinar commented 4 years ago

hmm I don't have much experience on shairport-sync. However I flashed a new image to my RPi3B+ and did the update to v6.29 beta. Installed shairport-sync and looks like it's working fine

root@DietPi3:~# systemctl status shairport-sync
● shairport-sync.service - Shairport Sync - AirPlay Audio Receiver
   Loaded: loaded (/lib/systemd/system/shairport-sync.service; disabled; vendor preset: enabled)
   Active: active (running) since Tue 2020-04-07 12:26:57 CEST; 2min 25s ago
 Main PID: 520 (shairport-sync)
    Tasks: 5 (limit: 2319)
   Memory: 1.7M
   CGroup: /system.slice/shairport-sync.service
           └─520 /usr/local/bin/shairport-sync

Apr 07 12:26:57 DietPi3 systemd[1]: Started Shairport Sync - AirPlay Audio Receiver.
root@DietPi3:~# journalctl -u shairport-sync
-- Logs begin at Thu 2019-02-14 11:11:58 CET, end at Tue 2020-04-07 12:28:27 CEST. --
Apr 07 12:26:57 DietPi3 systemd[1]: Started Shairport Sync - AirPlay Audio Receiver.
root@DietPi3:~#
MichaIng commented 4 years ago

@Joulinar Okay, same with me. The service start (running binary, listening to TCP port etc) is not the issue, but playing audio only does not work. However interestingly the ARMv6 binary does work (on RPI3+, armv7l) while ARMv7 does not and if I got it right Raspbian repo package as well not. Probably Debian vs Raspbian library incompatibility (ARMv7 binaries are compiled on Debian, ARMv6 binaries on Raspbian) but I think we need to wait for some more feedback to be sure and this would not fit to failing Raspbian binary as well...

Problem from my side as well that I have no AirPlay-like devices to really test Shairport-Sync.

C0D3-M4513R commented 4 years ago

On ubuntu you can stream to airplay commands, if you install paprefs pulseaudio-module-raop, then run paprefs and check Make discoverable Apple AirTunes sound devices available locally. See https://superuser.com/a/345976. I've been using it, and it works.

mistakenideas commented 4 years ago

Should shairport-sync be automatically upgraded as part of the move to DietPi 6.29? I’ve just upgraded a RaspberryPi 3 B+ from 6.28 and although this process looks to have completed fine, shairport-sync is still at version: 3.2.2-OpenSSL-Avahi-ALSA-soxr-metadata-sysconfdir:/usr/local/etc Forcing it to be reinstalled with dietpi-software reinstall 37 updates to the new binary: 3.3.6-OpenSSL-Avahi-ALSA-soxr-metadata-sysconfdir:/usr/local/etc

MichaIng commented 4 years ago

@mistakenideas Yes indeed we do not force this update.

mistakenideas commented 4 years ago

@MichaIng Great. Thanks for confirming. The new version is working fine so far too.