Installing XML::LibXSLT (ActiveState/32-bit)

Daniel Perrett <[email protected]> Wed, 28 Sep 2011 18:35:26 +0100
Newsgroups gmane.comp.lang.perl.xml
Message-ID <OFFD8365EE.8215F183-ON80257919.00530E77-80257919.0060A1F2@cambridge.org>
Hello

I am having trouble loading XML::LibXSLT on ActiveState Perl (XP; 32-bit). 
Has anyone had any success?

On Perl 5.14 there are no PPAs available. An error log is available: 
http://ppm4.activestate.com/MSWin32-x86/5.14/1400/P/PA/PAJAS/XML-LibXSLT-1.70.d/log-20110430T090745.txt

When I try to make it via CPAN (using dmake) I get a similar experience: 
even though it has successfully found the libraries (looking for 
-llibxslt... yes), it then forgets (Note (probably harmless): No library 
found for -llibxslt). There then follows a series of complaints which look 
like calls to the libxslt dlls (which it hasn't loaded).

I have successfully used 5.10 in the past, though I suspect I had to 
perform some crude trick to make it work... I can't remember what. 
Installing it via CPAN hasn't worked.

Beware the pitfall that the most up-to-date version of LibXSLT built as 
PPA so far (1.63, from http://cpan.uwinnipeg.ca/PPMPackages/10xx/zips/ ) 
is not compatible with ActiveState's PPA for LibXML (1.7). 

So I've installed LibXML 1.65, (also available from the Winnipeg link 
above) then installed the LibXSLT 1.63 PPA. Installing like this does not 
result in any error.

LibXML works fine this way, but simply trying to perl -e "use 
XML::LibXSLT;" results in the following error:

Can't load 'C:/Perl/site/lib/auto/XML/LibXSLT/LibXSLT.dll' for module 
XML::LibXSLT: load_file:The specified procedure could not be found at 
C:/Perl/lib/DynaLoader.pm line 202.
 at -e line 1
Compilation failed in require at -e line 1.
BEGIN failed--compilation aborted at -e line 1.

In addition to a windows critical error (×) message box titled "perl.exe - 
Entry Point not found" with message "The procedure entry point 
xsltRegisterExtModuile could not be located in the dynamic link library 
libxslt.dll"

I notice that the dll file in the 'auto' directory is 45KB, whereas 
libxslt-1.1.26 (available from zlatkovic.com, which is where 
http://xmlsoft.org/ points you to) is 163KB. Using the 163KB version in 
place of the 45KB version also doesn't work, it reports "Can't find 
'boot_XML__LibXSLT' symbol in 
C:/Perl/site/lib/auto/XML/LibXSLT/LibXSLT.dll", but generates no 
messagebox.

I have downloaded up-to-date dll files and placed the following in 
c:\Perl\site\bin:
libexslt.dll
libexslt_win32.dll
libxslt.dll
libxslt_win32.dll
xsltproc.exe
minigzip.exe
zlib1.dll
libxml2.dll
xmlcatalog.exe
xmllint.exe
dmake.exe

(_win32 files are simply manual copies of the original - see below)

Should they be in other places? Are other files supposed to be in other 
places?

I notice there is a warning the in Makefile.pl:

According to the version string you are running a win32 perl 5.10.0 that 
is
known to be suffering from dynaloader bug that prevents using non-default 
module's DLL name. Therefore we have to use LibXSLT.dll that will clash 
with the
standard name of xslt library DLL. Please consider renaming your xslt 
library
to e.g. libxslt_win32.dll and then make the appropriate changes to this 
module's
build process to look for that instead of standard libxslt.dll. If you do 
not
make the proposed changes you will got during the tests many error popups 
with 
slightly confusing message about "xsltApplyOneTemplate" function. 
This bug is not present in perl 5.8.* and will be fixed in 5.10.1.

I've not been able to work out what the "appropriate changes" are that 
will make the installation work (I've tried a couple, not using the PPAs, 
obviously). I don't know which copy of the XSLT library and whether I can 
fix this post-installation. NB: I don't have the installer for 5.10.1, 
only an old copy of 5.10.0 as ActiveState have taken 5.10.x down entirely. 
Am I stuffed?

Many thanks to anyone who reads this far - any ideas? If it's not possible 
to have a working set of PPAs for the most up-to-date versions of 
Perl/LibXML/LibXSLT, it would at least be good to be able to put together 
reproduceable instructions for installing a version of this very useful 
module!

Daniel

_______________________________________________
Perl-XML mailing list
[email protected]
To unsubscribe: http://listserv.ActiveState.com/mailman/mysubs