Fedora 18 came out last Friday so over the weekend I updated my main server. I should say that I have been running slimserver/squeezeboxserver/logitechmediaserver on Fedora for a very long time.
But when I installed Fedora 18 it went bang big time. NOT GOOD.
This re-installed the RPM.
Logitechmedia server failed to load.
Investigation showed that it was Perl 5.16 (latest version of Perl if you ignore 6) that had cause logitechmediaserver to barf.
It looks like Perl 5.16 no longer compiles constants to a read only variable but instead converts them to inline code.
This is bad as the main routine has many constants like ISWINDOWS which are referenced in other routines/packages as main::ISWINDOWS.
That's also not liked by Perl 5.16 as it considers it "bareword".
I considered converting the constants such as $ISWINDOWS and the references to $main::ISWINDOWS but this was a big task.
Then I remembered that I had a downloaded copy of Perl 5.14 that I had downloaded to to /opt/ActivePerl-5.14
I then moved the Slim Perl modules from /user/lib/perl5/vendor_perl to /opt/ActivePerl-5.14/site/lib/Slim/
I then edited /etc/init.d/squeezeboxserver and changed the startup as follows:-
====
start() {
echo -n "Starting Squeezebox Server: "
daemon --user $SQUEEZEBOX_USER /opt/ActivePerl-5.14/bin/perl $SQUEEZEBOX_BIN $SQUEEZEBOX_ARGS d_startup
RETVAL=$?
echo
[ $RETVAL -eq 0 ] && touch $LOCKFILE
return $RETVAL
====
I ran it and found some missing modules which I then downloaded using ActiveState ppm utility.
And then it ran and most important the slim classic clock now worked which is what my Wife was most disturbed by.
So I ran away from Perl 5.16 and have a solution to running on Fedora 18.
I think we need to get this working on 5.16, but if you want to follow my kludge download a copy of Perl 5.14 from www.activestate.com, but do it before they put it into legacy support and you have to pay for it.
But when I installed Fedora 18 it went bang big time. NOT GOOD.
This re-installed the RPM.
Logitechmedia server failed to load.
Investigation showed that it was Perl 5.16 (latest version of Perl if you ignore 6) that had cause logitechmediaserver to barf.
It looks like Perl 5.16 no longer compiles constants to a read only variable but instead converts them to inline code.
This is bad as the main routine has many constants like ISWINDOWS which are referenced in other routines/packages as main::ISWINDOWS.
That's also not liked by Perl 5.16 as it considers it "bareword".
I considered converting the constants such as $ISWINDOWS and the references to $main::ISWINDOWS but this was a big task.
Then I remembered that I had a downloaded copy of Perl 5.14 that I had downloaded to to /opt/ActivePerl-5.14
I then moved the Slim Perl modules from /user/lib/perl5/vendor_perl to /opt/ActivePerl-5.14/site/lib/Slim/
I then edited /etc/init.d/squeezeboxserver and changed the startup as follows:-
====
start() {
echo -n "Starting Squeezebox Server: "
daemon --user $SQUEEZEBOX_USER /opt/ActivePerl-5.14/bin/perl $SQUEEZEBOX_BIN $SQUEEZEBOX_ARGS d_startup
RETVAL=$?
echo
[ $RETVAL -eq 0 ] && touch $LOCKFILE
return $RETVAL
====
I ran it and found some missing modules which I then downloaded using ActiveState ppm utility.
And then it ran and most important the slim classic clock now worked which is what my Wife was most disturbed by.
So I ran away from Perl 5.16 and have a solution to running on Fedora 18.
I think we need to get this working on 5.16, but if you want to follow my kludge download a copy of Perl 5.14 from www.activestate.com, but do it before they put it into legacy support and you have to pay for it.