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
mb.patch.txt
Description: Binary data