Bugzilla – Bug 16253
Interpreted Squeezebox Server cannot load YAML::Syck module on 64-bit Perl running on Win32-x64
Last modified: 2019-01-25 12:11:17 UTC
Product: Squeezebox Server 7.5.x branch Sorry, I am not sure about choosing correct component (interpreting script slimserver.pl does not start at all). --- Issue outline: Trying to run Squeezebox Server from SVN trunk as Perl-interpreted (MSWin32-x64) on 64-bit Windows OS (I am aware this setup is not supported officially yet). Used software details: OS version Windows Server 2008 R2 (x64) Perl version 5.10.1.1007 x64 (MSWin32-x64) tested Squeezebox Server version 7.5 revision 30817 (also 7.6 revision 30817) tested YAML::Syck versions 1.07 and 1.08_01 Repro steps: 1. 64-bit Perl is installed on the machine, after pre-test fly executing "perl %ProgramFiles%\Squeezebox\slimserver.pl" script resulting in exit failing to load several modules (DBD::mysql EV JSON::XS etc. - attached screenshot). Obviously more or less as there are not Perl binaries included for Windows 64-bit architecture. 2. Missing modules from the list are installed with all dependencies using ppm install..., after test run, message "The following modules failed to load: YAML::Syck" still appears. Other points and what I tried so far: - While trying to run with 32-bit Perl (MSWin32-x86) on 64-bit Windows OS, slimserver.pl runs fine without issue. I still would like to interpret scripts on x64 Perl rather. - I install all other YAML-* modules, without success - I did uninstall YAML::Syck from site area as there on CPAN was only 1.07 as of 22nd May, however I found at author's repository http://github.com/avar/YAML-Syck newer versions 1.07_01, 1.08, 1.08_01 - i picked up the latest; I compiled from the source using mingwx64 and dmake 64-bit compatible binary and have installed this one, resulting the same error module has not been loaded. - Now I am clueless, was looking for possible workaround, however I do think the issue is now at script which does not found YAML::Syck module even it is installed... If was thinking about creating subdirectory ./CPAN/arch/5.10/MSWin32-x64-multi-thread/ where I can copy builded up 64-bit binaries from local site area and after that explicitly set to load CPAN modules from Squeezebox server path in Custom.pm Slimdevice's wiki states (http://wiki.slimdevices.com/index.php/InstallSVNTrunkAsService) as "unshift @INC, 'C:/Program Files/Squeezebox/CPAN';" and explicitly set architecture to "MSWin32-x64-multi-thread" (have no clue where it is possible to proceed with this)
Created attachment 6865 [details] missing packages screenshot while test run after check out
Starting with --d_startup will show you where it looks for all the perl modules.
(In reply to comment #2) > Starting with --d_startup will show you where it looks for all the perl > modules. Thanks for your comment Mark, that helped a lot. Finally, I found out it is enough to delete CPAN/YAML directory at all, after that all modules are loaded either from slimserver's CPAN subdirectory or Perl's CPAN. Unfortunately, Squeezebox Server still would not start after that resulting error: The following CPAN modules were found but cannot work with Squeezebox Server: Audio::Scan (loaded 0.82 but missing object file, need 0.82) This module is not available in ActiveState's PPM repository (however according to the http://ppm4.activestate.com/idx/APR...AX.html it should be) and I tried to compile it myself at x64 target using mingw64+dmake and Platform SDK+nmake as well, however in both cases it failed (reading through ActiveState's compilation log it failed anyway http://ppm4.activestate.com/MSWin32-x64/5.10/1000/A/AG/AGRUNDMA/Audio-Scan-0.81.d/log-20100515T220301.txt), so I guess I have to stick with x86 version anyway. Nevertheless, this is not related to the YAML::Syck issue anymore, as I used workaroud above. If anyone has got any clue with bringing Squeezebox Server to x64 platform, feel free to contact me, I will appreciate that.
*** Bug 17244 has been marked as a duplicate of this bug. ***