Bug 16253 - Interpreted Squeezebox Server cannot load YAML::Syck module on 64-bit Perl running on Win32-x64
: Interpreted Squeezebox Server cannot load YAML::Syck module on 64-bit Perl ru...
Status: RESOLVED WONTFIX
Product: Logitech Media Server
Classification: Unclassified
Component: Windows Service
: 7.5.x
: PC Windows Server 2008
: -- normal (vote)
: ---
Assigned To: Unassigned bug - please assign me!
:
Depends on:
Blocks:
  Show dependency treegraph
 
Reported: 2010-05-24 04:58 UTC by Martin Cizmar
Modified: 2019-01-25 12:11 UTC (History)
1 user (show)

See Also:
Category: ---


Attachments
missing packages screenshot while test run after check out (18.30 KB, image/png)
2010-05-24 05:38 UTC, Martin Cizmar
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Martin Cizmar 2010-05-24 04:58:36 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)
Comment 1 Martin Cizmar 2010-05-24 05:38:10 UTC
Created attachment 6865 [details]
missing packages screenshot while test run after check out
Comment 2 Mark Miksis 2010-05-24 11:19:24 UTC
Starting with --d_startup will show you where it looks for all the perl modules.
Comment 3 Martin Cizmar 2010-05-25 05:43:14 UTC
(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.
Comment 4 Michael Herger 2011-05-27 09:02:56 UTC
*** Bug 17244 has been marked as a duplicate of this bug. ***