philippe44/LMS-Raop

squeeze2raop not found on FreeBSD

Closed this issue ยท 8 comments

Hi,

I've did a LMS installation on FreeBSD for testing purpose. I've installed LMS dependencies from pkg repository and LMS from ports:

# uname -a
FreeBSD freebsd.example.org 13.2-RELEASE-p4 FreeBSD 13.2-RELEASE-p4 GENERIC amd64
Logitech Media Server Version: 8.3.1 - TRUNK @ UNKNOWN

Server starts fine and I've installed Airplay Bridge v1.4.3.

The configuration dialog only shows:
Screenshot 2023-11-28 at 16-12-26 Server-Einstellungen

On my Linux servers I can chose between squeeze2raop-linux-x86_64 and squeeze2raop-linux-x86_64-static. Therefore I've checked the plugin dir:

root in freebsd in /var/db/logitechmediaserver/cache/InstalledPlugins/Plugins/RaopBridge/Bin
# ll
total 119300
-rw-r--r--  1 slimserv  slimserv   1.1K Nov 28 15:47 config.xml
-rw-r--r--  1 slimserv  slimserv   2.3M Oct  9  2022 libcrypto-1_1.dll
-rw-r--r--  1 slimserv  slimserv   701K Oct  9  2022 libssl-1_1.dll
-rw-r--r--  1 slimserv  slimserv   1.8M Nov 27 19:03 squeeze2raop-freebsd-x86_64
-rw-r--r--  1 slimserv  slimserv   6.1M Nov 27 19:03 squeeze2raop-freebsd-x86_64-static
-rw-r--r--  1 slimserv  slimserv   1.7M Nov 27 19:02 squeeze2raop-linux-aarch64
-rw-r--r--  1 slimserv  slimserv   5.6M Nov 27 19:02 squeeze2raop-linux-aarch64-static
-rw-r--r--  1 slimserv  slimserv   1.1M Nov 27 19:02 squeeze2raop-linux-arm
-rw-r--r--  1 slimserv  slimserv   4.9M Nov 27 19:02 squeeze2raop-linux-arm-static
-rw-r--r--  1 slimserv  slimserv   1.6M Nov 27 19:03 squeeze2raop-linux-armv5
-rw-r--r--  1 slimserv  slimserv   5.5M Nov 27 19:03 squeeze2raop-linux-armv5-static
-rw-r--r--  1 slimserv  slimserv   1.5M Nov 27 19:03 squeeze2raop-linux-armv6
-rw-r--r--  1 slimserv  slimserv   5.5M Nov 27 19:03 squeeze2raop-linux-armv6-static
-rw-r--r--  1 slimserv  slimserv   1.8M Nov 27 19:02 squeeze2raop-linux-mips
-rw-r--r--  1 slimserv  slimserv   6.9M Nov 27 19:02 squeeze2raop-linux-mips-static
-rw-r--r--  1 slimserv  slimserv   1.8M Nov 27 19:03 squeeze2raop-linux-powerpc
-rw-r--r--  1 slimserv  slimserv   6.3M Nov 27 19:03 squeeze2raop-linux-powerpc-static
-rw-r--r--  1 slimserv  slimserv   1.7M Nov 27 19:02 squeeze2raop-linux-sparc64
-rw-r--r--  1 slimserv  slimserv   5.9M Nov 27 19:02 squeeze2raop-linux-sparc64-static
-rw-r--r--  1 slimserv  slimserv   1.6M Nov 27 19:02 squeeze2raop-linux-x86
-rw-r--r--  1 slimserv  slimserv   5.2M Nov 27 19:02 squeeze2raop-linux-x86-static
-rw-r--r--  1 slimserv  slimserv   1.8M Nov 27 19:02 squeeze2raop-linux-x86_64
-rw-r--r--  1 slimserv  slimserv   6.5M Nov 27 19:02 squeeze2raop-linux-x86_64-static
-rw-r--r--  1 slimserv  slimserv   3.8M Nov 27 19:03 squeeze2raop-macos
-rw-r--r--  1 slimserv  slimserv   1.6M Nov 27 19:03 squeeze2raop-macos-arm64
-rw-r--r--  1 slimserv  slimserv   4.8M Nov 27 19:03 squeeze2raop-macos-arm64-static
-rw-r--r--  1 slimserv  slimserv    10M Nov 27 19:03 squeeze2raop-macos-static
-rw-r--r--  1 slimserv  slimserv   2.2M Nov 27 19:03 squeeze2raop-macos-x86_64
-rw-r--r--  1 slimserv  slimserv   5.6M Nov 27 19:03 squeeze2raop-macos-x86_64-static
-rw-r--r--  1 slimserv  slimserv   1.8M Nov 27 19:03 squeeze2raop-solaris-x86_64
-rw-r--r--  1 slimserv  slimserv   4.9M Nov 27 19:03 squeeze2raop-solaris-x86_64-static
-rw-r--r--  1 slimserv  slimserv   1.2M Nov 27 19:03 squeeze2raop-static.exe
-rw-r--r--  1 slimserv  slimserv   1.2M Nov 27 19:03 squeeze2raop.exe

I'v tried to mak the FreeBSD binaries executable: # chmod +x squeeze2raop-freebsd-x86_64 squeeze2raop-freebsd-x86_64-static but still no luck.

Therefore I wonder if there is a bug? There obviously is some criteria what is shown in the dropdown list for the Binary. Maybe it's wrong for FreeBSD?

What options are you given in the dialog box of the plugin's settings where you select the helper binary?

The whole option dialog looks like this:
Screenshot 2023-11-29 at 10-01-59 Server-Einstellungen

Huh... that does not make sense. Can you tell me what LMS evaluates for system name, version (detailed) and Perl version ... (in settings, tab information I think).

This one:

Logitech Media Server Status

Logitech Media Server Version: 8.3.1 - TRUNK @ UNKNOWN
Hostname: freebsd.example.org
Server IP Address: 10.x.y.z
Server HTTP Port Number: 9000
Operating system: FreeBSD - EN - utf8
Platform Architecture: amd64-freebsd
Perl Version: 5.34.2 - amd64-freebsd-thread-multi
Audio::Scan: 1.06
IO::Socket::SSL: 2.083
Database Version: DBD::SQLite 1.58 (sqlite 3.22.0)
Total Players Recognized: 0
Folders
 
Cache Folder
/var/db/logitechmediaserver/cache

Preferences Folder
/var/db/logitechmediaserver/prefs

Plugin Folders
/usr/local/lib/perl5/site_perl, /usr/local/share/logitechmediaserver/Plugins, /var/db/logitechmediaserver/cache/InstalledPlugins/Plugins

Helper Applications Folder
/usr/local/share/logitechmediaserver/Bin, /sbin, /bin, /usr/sbin, /usr/bin, /usr/local/bin, /usr/libexec, /usr/local/libexec, /var/db/logitechmediaserver/cache/InstalledPlugins/Plugins/RaopBridge/Bin

Can you edit the file squeeze2raop.pm in cache/InstalledPlugins/Plugins/RaopBridge and change line 54

if ($os->{'osName'} =~ /freebsd/) {

with

if ($os->{'osName'} =~ /freebsd/i) {

To see if it makes a change. The cache directory might be under /var/lib/squeezeboxserver but I'm not sure

Ok - found it. Either I got the name wrong in the past or there is change if you run it in a NAS vs native but anyway, it would not find the helper. I've uploaded a new version. Had to install a FreeBSD VM and all the jazz of LMS 3rd party compile ๐Ÿ˜„

Yes, it works now ๐Ÿ‘

Site note: Yesterday evening I'va also tried to manually install LMS on the same FreeBSD VM. I've used the Unix package (http://downloads.slimdevices.com/nightly/8.3/lms/2b19c834c9e5654326a573ca4190274791c4b058/logitechmediaserver-8.3.2-1699864324.tgz) and I've run the CPAN buildme.sh from slimserver-vendor, just like done in the FreeBSD port of LMS.

The result is following version:

Logitech Media Server Version: 8.3.2 - 1699864324 @ Mon 13 Nov 2023 09:59:27 AM CET
Hostname: freebsd.example.org
Server IP Address: 10.x.y.z
Server HTTP Port Number: 9000
Operating system: freebsd - EN - utf8
Platform Architecture: amd64-freebsd
Perl Version: 5.34.2 - amd64-freebsd-thread-multi
Audio::Scan: 1.06
IO::Socket::SSL: 2.083
Database Version: DBD::SQLite 1.58 (sqlite 3.22.0)
Total Players Recognized: 0

On this LMS version the 1.4.3 plugin works. So apparantly Slim::Utils::OSDetect::details gives different results in these two LMS versions.

It seems that it can be either

- 'os' = 'Unix' 
- 'osname' = 'freebsd' 
or
- 'os' = 'FreeBSD' 
- 'osname' (we don't care)

Well, it can't find libstdc++.so.6, there seem to be no libstdc++ (huh?) but the static version works.

[edit]: well, forgot that llvm is by default on FreeBSD but I use gcc, so needed to install it to have the libraries added. Both static and non-static work now