I've checked the attached into blead as #31619.  It gets a few more
things working, mostly with platform overrides.  There are still
about 10 test scripts that fail, but fewer individual failures within
those.  Here's a summary of some of the remaining issues with Module::Build.

The home-grown glob() implementation does not know what a tilde is,
and it returns VMS-format filespecs as absolute, not relative specs.
Both of these are contrary to the assumptions of various parts of
Module::Build and account for a number of test failures.  The easiest
thing should be to override glob() and do a little pre-processing to
expand tildes and post-processing to convert paths from absolute to
relative.  However, it has so far proven beyond my Perl foo to
override CORE::GLOBAL::glob in terms of itself without either getting
infinite recursion or having whatever I do in
Module::Build::Platform::VMS ignored from within Module::Build::Base.

A number of the tests call is_deeply() to compare an array of
case-preserved filenames with another array of (by default)
non-case-preserved filenames. Obviously they don't match and the
tests fail.  What's needed is a like_deeply() or similar where you
can pass a regex qualifier such as "?i:" to wrap around each of the
comparisons.  So maybe I'll add that to MBTest one of these days.

The ppm test appears to be creating a tarball of a binary
distribution and then unpacking it to see if the bits are still
recognizable.  They aren't.  There are a lot of invalid header errors
thrown by Archive::Tar.  Not sure if the problem is in Archive::Tar
or Module::Build, or both.  But tar isn't really a good format for
distributing VMS object code and executables as it doesn't, as far as
I know, have a way to preserve VMS file attributes.  It is just
possible we could get it working by having it guess the right
attributes  based on file extension.

xs.t now gets pretty far after my patch but then fails like so:

ok 15
Can't locate object method "blib
" via package "Module::Build" at /perl_root/lib/Module/Build/Base.pm line 2208.

Line 2208 in the ACTION_code method is just:

   my $blib = $self->blib;

It's supposed to be reading a property, not calling a method, so its
OO marbles have gotten scrambled somehow.  I really have no idea
what's causing that.

So, there's more work to do.  If anyone has time or interest to dig
into one or more of these issues, they might get fixed sooner than if
it's left to me.

--
________________________________________
Craig A. Berry
mailto:[EMAIL PROTECTED]

"... getting out of a sonnet is much more
 difficult than getting in."
                 Brad Leithauser

Attachment: mb.patch.txt
Description: Binary data

Reply via email to