Hello all,
Note up front: LMS will support Perl 5.32 when the developers state that it will! This post is intended to help people getting LMS back up and running with Perl 5.32, and is in no way a definitive guide. Yesterday I updated my Fedora installation from 32 to 33, and after that LMS stopped working. After investigating I found the following messages in my journald logging: ... Starting Squeezebox Server: ... The following modules failed to load: EV JSON::XS Digest::SHA1 YAML::XS Sub::Name ... This is perl 5, version 32, subversion 0 (v5.32.0) built for x86_64-linux-thread-multi ... (with 41 registered patches, see perl -V for more detail) After some googling I noticed that Perl was updated from 5.30 to 5.32 in Fedora 33, and that the CPAN modules for Perl 5.32 where not defined in /usr/share/squeezeboxserver/CPAN. According to various other posts building your own modules from source as described 'here' (https://github.com/Logitech/slimserver-vendor/tree/public/8.0/CPAN) should do the trick, but that fails due to the fact that the glibc version present in fedora 33 (2.32) does not provide the 'xlocale.h' (https://sourceware.org/glibc/wiki/Release/2.26#Removal_of_.27xlocale.h.27) header anymore in their development packages since glibc version 2.26. After some more digging I found that there are some workarounds in place for the missing xlocale.h header in the 'code' (https://github.com/Logitech/slimserver-vendor/blob/public/8.0/CPAN/icu58_patches/digitlst.cpp.patch), but they do not work properly on my setup. After locating the digitlist.cpp file in file icu4c-58_2-src.tgz and seeing from the history of the file in github that it has been updated more recently than other items of the code I replaced the 58_2 file with the latest available source file (at the time of writing 'icu4c-63_1-src.tgz' (https://sourceforge.net/projects/icu/files/ICU4C/)). In order for the this change to be picked up I needed to modify the buildme.sh script, as the ICU4C version is hardcoded there. On line '696' (https://github.com/Logitech/slimserver-vendor/blob/public/8.0/CPAN/buildme.sh#L696) of the file I updated the tar filename, and I commented line '699' (https://github.com/Logitech/slimserver-vendor/blob/public/8.0/CPAN/buildme.sh#L696) as the patch is no longer required. After this I was able to run the buildme.sh script without fatal errors, and after copying the files to /usr/share/squeezeboxserver/CPAN/arch/5.32 per the provided instructions on github LMS came to life. So in a nutshell: - Install LMS rpm from nightly builds (I used logitechmediaserver-8.0.0-0.1.1603862260.noarch.rpm) - Clone https://github.com/Logitech/slimserver-vendor.git to your system - Update ICU4U version - Update buildme.sh script - Compile code - Copy CPAN modules to standard location - Start LMS by running systemctl start squeezeboxserver.service - Listen to some music :) ------------------------------------------------------------------------ daganz's Profile: http://forums.slimdevices.com/member.php?userid=23304 View this thread: http://forums.slimdevices.com/showthread.php?t=113135 _______________________________________________ Squeezecenter mailing list [email protected] http://lists.slimdevices.com/mailman/listinfo/squeezecenter
