Bugzilla – Bug 6987
Add Support for perl 5.10
Last modified: 2009-07-31 10:16:48 UTC
Fedora 9, due out in late April, is tentatively planning to ship with perl 5.10. It would be good for SC to support 5.10 by then, perhaps in 7.0.1. This would require building the binary perl modules for 5.10. I'm not sure if any other changes to SC are required...
FYI, perl 5.10 has been merged into F9 and will be part of the F9 beta next week. This indicates that F9 final will use it unless something turns out to be really broken.
Matt: Please work with Andy on implementing this.
I've done some very limited testing while playing with Fedora 9 Beta and there are definitely a few other issues. After building the necessary perl modules, the first problem I encountered was: [snip] Extended @INC to contain: /usr/share/squeezecenter/CPAN/arch/118.53/i386-linux-thread-multi /usr/share/squeezecenter/CPAN/arch/118.53/i386-linux-thread-multi/auto /usr/share/squeezecenter/CPAN/arch/118.53.46.49.48.46.48/i386-linux-thread-multi /usr/share/squeezecenter/CPAN/arch/118.53.46.49.48.46.48/i386-linux-thread-multi/auto /usr/share/squeezecenter/CPAN/arch/118.53/i386-linux-thread-multi /usr/share/squeezecenter/CPAN/arch/118.53/i386-linux-thread-multi/auto [snip] This is explained at http://perldoc.perl.org/perldelta.html#%24%5eV-is-now-a-'version'-object-instead-of-a-v-string After working around that, SC still won't start. The following is logged to the console: Log4perl: Seems like no initialization happened. Forgot to call init()? Use of uninitialized value $_[0] in join or string at /usr/lib/perl5/5.10.0/File/Spec/Unix.pm line 81. Useless use of a constant in void context at /usr/lib/perl5/vendor_perl/Slim/Networking/Slimproto.pm line 104. Use of uninitialized value $old in pattern match (m//) at /usr/lib/perl5/vendor_perl/Slim/Utils/Prefs.pm line 265. and then after a short delay: Internal error: Root Logger not initialized. at /usr/share/squeezecenter/CPAN/Log/Log4perl/Logger.pm line 557. The log contains only: [08-03-31 02:35:05.3325] Slim::Utils::MySQLHelper::startServer (298) FATAL: Server didn't startup in 30 seconds! Exiting! [08-03-31 02:35:05.3392] Log::Log4perl::Logger::and_die (850) Warning: FATAL: Server didn't startup in 30 seconds! Exiting! at /usr/lib/perl5/vendor_perl/Slim/Utils/MySQLHelper.pm line 298 I've done very little debugging beyond this except to note that mysqld really does start, but SC can't talk to it for some reason. I'm fairly sure it's not a firewall or SELinux issue. I have no idea whether the Log4perl issue and the mysql issue are related (or whether either of them are really due to perl 5.10). Hope this helps. Note that F9 is still scheduled for release in late April so it would be nice to see this resolved before 7.1.
I'll get a FC9 system booted up by tomorrow and start experimenting with this...
Created attachment 3168 [details] patch for perl 5.10 version string behavior Matt/Andy, Here's how I chose to work around the perl version string issue. I'm not a perl guy, so there's probably a better/cleaner way... Is this (or something similar) OK for 7.0/trunk? (I noticed someone retargeted this bug to 7.1.)
I'm OK with it as long as it doesn't break any other platforms.
(In reply to comment #6) > I'm OK with it as long as it doesn't break any other platforms. > Yeah, unfortunately I have no convenient way to test on non-Linux...
I have squeezecenter 7.0.1 working on fc9 with perl 5.1. Though I'm not sure I could explain how I got it working in a sufficient fashion to help anyone; I had to try so many things. In essence, I installed all the RPM's for the perl modules that were being used but most weren't being recognized correctly. So I ended up compiling and installing most of the modules directly; I didn't have much difficulty with that though it was time consuming. I didn't use the included perl script to download and compile the modules, it didnt work, but installed the CPAN module and used the cpan command to download the source and compiled them directly. Then I had to modify some of the squeezecenter scripts to support the new format of JSON::XS. Everything seems to be working now. -- Rob
OK I've applied the bootstrap patch to 7.0.1, will work on compiling binary modules for 5.10 for 7.1.
Matt, Andy, Any ETA on getting the binary stuff added to a CPAN/arch/5.10 directory? I have a clean install of F9 Beta and I'm interested in doing some more testing/experimenting with the RPM before F9 final comes out on Tuesday.
No, but feel free to compile and check in Linux binary modules for 7.1.
(In reply to comment #11) > No, but feel free to compile and check in Linux binary modules for 7.1. > Do you have a script you normally use for this (other than build-perl-modules.pl)? I was wondering whether the reason I had problems the last time I looked at this might be because you built with some options I didn't know about. That's why I was waiting for you...
Some are easy, but those that require other libraries must include the libraries instead of dynamically linking them. Just run ldd on them when you're done and check for dynamic links. The hardest one is GD, and I wrote some docs on that: platforms/doc/Perl-XS-notes.txt
*** Bug 8157 has been marked as a duplicate of this bug. ***
F9 is out, and I find myself in the unfortunate position of not being able to run slimserver on it. Adding self to Cc:.
Is there a way to work around this ? Right now I can't listen to my music using my Debian unstable box.
There are instructions on the forum for manually compiling modules and getting 5.10 working. The reason this is a bit more complicated than it first appears is that some modules we are currently using need to be updated in order to work with 5.10. For example, DBI 1.50 does not work with 5.10, and so we will need to update to the latest version across the board on all OS's.
5.10 support for Linux i386 has been checked in.
(In reply to comment #18) > 5.10 support for Linux i386 has been checked in. > Cool. Limited testing indicates that with these modules added the RPM works out-of-the box with F9. I'll test with Mandriva 2008.1 when I get a chance. Should I reopen this bug to request the perl modules be built for x86_64, or would you prefer a new bug?
Yeah, I don't have an x86_64 system to build on at the moment, though.
(In reply to comment #19) > (In reply to comment #18) > > 5.10 support for Linux i386 has been checked in. > > > > Cool. Limited testing indicates that with these modules added the RPM works > out-of-the box with F9. I'll test with Mandriva 2008.1 when I get a chance. > > Should I reopen this bug to request the perl modules be built for x86_64, or > would you prefer a new bug? > Which RPM did you use? I just tried queezecenter-7.1-0.1.19797.noarch.rpm from http://repos.slimdevices.com/yum/squeezecenter/unstable/ and still get the same error about a load error concerning YAML::Syck
(In reply to comment #21) > Which RPM did you use? I just tried queezecenter-7.1-0.1.19797.noarch.rpm from > http://repos.slimdevices.com/yum/squeezecenter/unstable/ and still get the same > error about a load error concerning YAML::Syck > Yeah, I tested by manually adding the binary perl modules from SVN since there was no new nightly build yet. It now appears that RPMs have not been built at all for the last few days so there's no RPM available that includes the updated modules. Hopefully this will be corrected soon now that the weekend is over.
x86_64 modules committed in change 19938. We don't need to support 5.10 on Mac or Windows yet so I'm considering this bug fixed.
(In reply to comment #23) >x86_64 modules committed in change 19938. >We don't need to support 5.10 on Mac or Windows yet so I'm considering this bug >fixed. Thanks for this -- I was able to download a daily build, install it on Fedora 9 x86_64 and it worked just fine.
(In reply to comment #24) > (In reply to comment #23) > >x86_64 modules committed in change 19938. > >We don't need to support 5.10 on Mac or Windows yet so I'm considering this bug > >fixed. > > Thanks for this -- I was able to download a daily build, install it on Fedora 9 > x86_64 and it worked just fine. > Changing bug status
This bug has now been fixed in the 7.1 release version of SqueezeCenter! Please download the new version from http://www.slimdevices.com if you haven't already. If you are still experiencing this problem, feel free to reopen the bug with your new comments and we'll have another look.
This bug has been fixed in the 7.3.0 release version of SqueezeCenter! Please download the new version from http://www.slimdevices.com/su_downloads.html if you haven't already. If you are still experiencing this problem, feel free to reopen the bug with your new comments and we'll have another look.
Reduce number of active targets for SC