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

Reply via email to