philippe44/LMS-ShairTunes2W

Can't start plugin (can't locate openSSL RSA autosplit)

djoole opened this issue · 17 comments

Hi Philippe,
I've just installed your plugin via LMS plugin management UI (LMS 7.9.2 on Freebsd), and it seems it can't start because of an openssl problem :
[20-06-09 17:49:47.9614] Slim::Utils::Misc::msg (1252) Warning: [17:49:47.9612] Can't locate auto/Crypt/OpenSSL/RSA/autosplit.ix in @INC (@INC contains: /usr/local/share/logitechmediaserver/Plugins/TrackStat/lib /usr/local/share/logitechmediaserver/Cache/InstalledPlugins /usr/local/share/logitechmediaserver/Plugins/SQLPlayList/lib /usr/local/share/logitechmediaserver/CPAN/arch/5.28/amd64-freebsd-thread-multi /usr/local/share/logitechmediaserver/CPAN/arch/5.28/amd64-freebsd-thread-multi/auto /usr/local/share/logitechmediaserver/CPAN/arch/5.28.2/amd64-freebsd-thread-multi /usr/local/share/logitechmediaserver/CPAN/arch/5.28.2/amd64-freebsd-thread-multi/auto /usr/local/share/logitechmediaserver/CPAN/arch/amd64-freebsd-thread-multi /usr/local/share/logitechmediaserver/CPAN/arch/5.28 /usr/local/share/logitechmediaserver/lib /usr/local/share/logitechmediaserver/CPAN /usr/local/share/logitechmediaserver /usr/local/lib/perl5/site_perl/mach/5.28 /usr/local/lib/perl5/site_perl /usr/local/lib/perl5/5.28/mach /usr/local/lib/perl5/5.28 /var/db/logitechmediaserver/cache/InstalledPlugins/Plugins/ShairTunes2W/elib /var/db/logitechmediaserver/cache/InstalledPlugins/Plugins/ShairTunes2W/elib/5.28 /var/db/logitechmediaserver/cache/InstalledPlugins/Plugins/ShairTunes2W/elib/5.28/amd64-freebsd-thread-multi /var/db/logitechmediaserver/cache/InstalledPlugins/Plugins/ShairTunes2W/elib/5.28/amd64-freebsd-thread-multi/auto) at /usr/local/lib/perl5/5.28/AutoLoader.pm line 181. at /var/db/logitechmediaserver/cache/InstalledPlugins/Plugins/ShairTunes2W/elib/Crypt/OpenSSL/RSA.pm line 11.

Could you help me please? Thanks in advance!

What is your Perl version? 5.28?

Indeed. Here are some info about my system :

Logitech Media Server Version : 7.9.2 - TRUNK @ UNKNOWN
SE : FreeBSD - FR - utf8
Plate-forme : amd64-freebsd
Version de Perl : 5.28.2 - amd64-freebsd-thread-multi
Audio::Scan : 0.95
IO::Socket::SSL : 2.066
Version de la base de données : DBD::SQLite 1.34_01 (sqlite 3.7.7.1)

@philippe44 Hi, any idea what the problem could be? It would be so cool to use my SB devices as airplay device..

@philippe44
I've looked for the missing file, and it's there, but only for Linux and Solaris :

/var/db/logitechmediaserver/cache/InstalledPlugins/Plugins/ShairTunes2W/elib/5.28/aarch64-linux-gnu-thread-multi/auto/Crypt/OpenSSL/RSA/autosplit.ix
/var/db/logitechmediaserver/cache/InstalledPlugins/Plugins/ShairTunes2W/elib/5.28/i686-linux-thread-multi-64int/auto/Crypt/OpenSSL/RSA/autosplit.ix
/var/db/logitechmediaserver/cache/InstalledPlugins/Plugins/ShairTunes2W/elib/5.28/i86pc-solaris-thread-multi-64int/auto/Crypt/OpenSSL/RSA/autosplit.ix
/var/db/logitechmediaserver/cache/InstalledPlugins/Plugins/ShairTunes2W/elib/5.28/arm-linux-gnueabihf-thread-multi-64int/auto/Crypt/OpenSSL/RSA/autosplit.ix

Freebsd isn't supported by your plugin?

Yes, I'm not building for Freebsd / Perl 5.28

ok, I tried to build for 5.28 and 5.30 with version 0.111.0 - might work

You made my day it's working!!!
I see my SBs and can choose them and hear the sweet music :)

There is still a minor remaining problem though : volume change is not taken..
I see logs which seem to indicate volume change are sent though :

...
[20-07-13 18:29:03.5290] Plugins::ShairTunes2W::Plugin::conn_handle_request (978) sending-> vol: 53
[20-07-13 18:29:03.5693] Plugins::ShairTunes2W::Plugin::conn_handle_request (978) sending-> vol: 59
[20-07-13 18:29:03.6108] Plugins::ShairTunes2W::Plugin::conn_handle_request (978) sending-> vol: 65
...

And meta data is not refreshed on the squeezebox (displaying the song which was last sent by LMS), but this might be normal because if I understand the logs well, a wav stream is sent to the SB but no meta data about the songs.

Forget what I've said about volume issue!
Once I changed the volume from the SB, it sorted it out, now I can change from the iPhone or from the SB.

Perfect, thanks very much Philippe, thumbs up.

Are you planning to send songs metadata?

Song metadata is sent if the airplay controller sends it

By airplay controller you mean the source? An iPhone for my case? Why the iPhone wouldn't send the metadata? I've nothing on iPhone side to set anything about Airplay protocol. I just know it works well when I send music to the Homepods.

Décidément...
It was my SB Radio which was "stuck" on a song info and cover art.
I've rebooted it and now it works perfectly, displaying the right song metada coming from my iPhone.

All in all, it's perfect.

Thank you very much for your help Philippe!

One last question : I can only select one squeezebox as target from the airplay devices selection box on the iPhone.
I assume the plugin turns the squeezebox as Airplay 1 devices and not Airplay 2?
If so, is there any plans for making this fantastic plugins AirPlay 2 compatible?

One last question : I can only select one squeezebox as target from the airplay devices selection box on the iPhone.

Slightly tangential response: Target devices can be synchronized in LMS and that works with ShairTunes too.

Thanks for the input @chrisy, my bad I should have specified that the aim would be to synchronize squeezebox and "real" AirPlay devices together (Homepods in my case).

Indeed if there was only SBs in the picture I could use the inbuilt LMS synchronize abilities.

No, no plan to have AirPlay2 support and even then sync would not work. AirPlay want to be sycn master as well as LMS, so can't have tow masters :-)

OK, thanks for the input.

I have another question : I've noticed that I can hear on the Squeezebox not only the music playing from my iPhone, but other sounds, like sounds fx from a game.
It behaves like classic bluetooth audio device...
One of the purposes of Airplay is sending only the selected stream (music from app Music in my case) and not everything (like other apps sounds, phone call...)
Is the plugin not working that way?

it is receiving whatever AirPlay decides to send, so if there is any "unwanted" sound, it's to be addressed on the source (iPhone ...) side