New, quicker, workaround for getting XML::Parser working

Alias on 2008-01-16T03:27:03

The highest priority for Strawberry Perl is getting XML::Parser working (it will almost certainly come pre-installed in the next quarterly release due April 1st plus or minus a week).

In the mean time, we're trying to work out the problems that prevent it working, focusing on getting the XML::Parser Makefile.PL to recognize that the binary libs are installed.

In the mean time though, here is a MUCH simpler workaround for getting XML::Parser installed.

1. Download the "vanilla package" zip file for Expat.

http://strawberryperl.com/package/expat-2.0.1-vanilla.zip

2. Move the zip file to the C:/strawberry/c/ and extract it there.

3. Start the CPAN shell and run the following

> look XML::Parser
This will drop you into a subshell in the XML::Parser build directory.

4. Edit the Makefile.PL for XML::Parser and replace this...
die <<'Expat_Not_Installed;';
...with this...
warn <<'Expat_Not_Installed;';
5. Run "perl Makefile.PL; make; make test; make install" as normal for a CPAN module.

Since the only dependency XML::Parser has is on LWP (which should be already installed) this manual installation should succeed.

More thorough patches are now in RT for XML::Parser, and we hope to have a new XML::Parser out shortly which will auto-detect the vanilla form of expat correctly.

And so we can include support in Perl::Dist and it will be available bundled by default.


You know...

tsee on 2008-01-16T07:25:20

... that back in ye olde days, I built PAR packages for Strawberry of expat, XML::Parser, PDL, and all those yucky bastards? I don't remember where I put them, though.

Re:You know...

Alias on 2008-01-16T09:13:44

That would indeed be interesting, since Strawberry has PAR::Dist in it already.

Re:You know...

tsee on 2008-01-16T15:55:08

Damn. I just recently cleaned up old stuff as I was retiring the server I built it on.

However, for non Perl-module-.par's, it wen basically as follows:

- Build the lib using mingw, possibly sh.
- Put the lib in a zip under a certain directory
- Install it with a small PAR::Dist based script which set custom installation targets for that directory in the .par.

I can probably still find a copy of the installation script somewhere. (This is all related to the old external-library-handling musing of mine on the win32.perl.org wiki.)

This brings some memories back: I had built that .par manually because you'd need XML::Parser or so for using PAR::Dist::InstallPPD (and ::InstallPPD::GUI). When you'd gotten that working, you could just select almost any .ppd file from any PPM repository and install it without having the PPM software at all. Hijacking++ ;)

Oh, and that gives me yet another idea: Use PAR::Dist::FromPPD to generate a .par from some XML::Parser PPM package floating around. (For example http://cpan.uwinnipeg.ca/module/XML::Parser.)
Note how this is a bootstrapping process. You need XML::Parser to use ::FromPPD. I suppose you could do it under Linux where installing XML::Parser is a breeze.

PS: I tried it on linux. I had to download the ppm manually beacuse of our proxy, however.
$ ppd2par -u XML-Parser.ppd -n XML-Parser -p 5.10.0 --sp 5\.10
Successfully created binary distribution 'XML-Parser-2.36-MSWin32-x86-multi-thread-5.10.0.par'.