PDA

View Full Version : [Howto] update perl modules bundled with LMS



Roland0
2017-02-27, 11:47
A number of the perl modules (and their dependencies) bundled with LMS haven't been updated for some time. As I needed to rebuild my LMS installation, I decided to upgrade these to the latest available versions. Since this seems to have worked out pretty well (so far ;-), here are some notes on this topic.

Advantages
Stability, performance and security improvements in the new versions of the perl modules and support libraries
(not tested) may compile on architectures not yet supported by official version

Disadvantages
May introduce new bugs (interaction between new modules and LMS, unexpected side effects etc.)

Other notes
Only rudimentarily tested on Linux x64 / perl 5.24 (i.e. has been running for a couple of days without any obvious errors)
Older perl versions (<5.22) most likely won't work
Not all libraries have been updated (notably ffmpeg, which is only used for videos)
Can be easily combined with Opus support (http://forums.slimdevices.com/showthread.php?107011-Howto-play-Ogg-Opus-files)

Instructions
Make sure your build environment is set up (gcc, nasm, -dev packages for Debian/Ubuntu etc.)
Create a folder somewhere
Unzip the attachment into it
Download all required sources. There is a file included (CPANsources.txt) containing the URLs, so simply do


wget -v -nc -i CPANsources.txt


Execute the build script


export PERL_CANARY_STABILITY_NOPROMPT=1
chmod +x buildme.sh
./buildme.sh &> build.log

(Note: if you want to use a non-standard perl, you can tell buildme.sh like this:


PERL_524=/opt/perl-5.24-LMS/bin/perl5.24.0 ../buildme.sh &> build.log

)
Check build.log for errors.
If the build was successful, you'll find the perl modules in


./build/arch/<perl version>/<architecture>

e.g. for perl 5.24 on Linux 64bit:


build/arch/5.24/x86_64-linux-thread-multi

copy the build/arch directory to your LMS installation's CPAN folder
e.g. if your LMS is in opt/logitechmediaserver-7.8-0-noCPAN, the full final path will be


/opt/logitechmediaserver-7.8-0-noCPAN/CPAN/arch/5.24/x86_64-linux-thread-multi/auto/Audio
...


Finally, edit your modules.conf


Audio::Scan 0.93 0.96

Krisbee
2017-03-07, 02:44
Thanks for posting this. I recently got in a mess trying build a self-contained LMS on devuan after finding the standard DEB file refused to install. Mismatch between perl modules and binaries and finally an out of date perl module. Resorted to an earlier branch to get LMS built. Clearly, I didn't understand the problem/solution.