Re: Module::Build failures on VMS - [EMAIL PROTECTED]

2008-10-23 Thread Craig A. Berry


On Oct 22, 2008, at 7:10 PM, John E. Malmberg wrote:


Ken, Craig,

Somewhere the fix to have the Module::Build tests use the blead perl  
under test instead of the production perl on VMS got lost from blead.



I think what you are saying is that the tests end up being run against  
an installed Perl rather than the Perl being built when testing  
Module::Build as part of a core build.  Is that what you are saying?


A more specific pointer to the fix would be helpful.


Craig A. Berry
mailto:[EMAIL PROTECTED]

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



Re: Module::Build 0.30 is released

2008-10-02 Thread Craig A. Berry
On Tue, Sep 30, 2008 at 6:33 AM, Steve Hay [EMAIL PROTECTED] wrote:

 Thanks, applied to bleadperl as 34446.

 Two local changes remain:

 Change 32357 by [EMAIL PROTECTED] on 2007/11/17 04:19:47

Skip Module::Build ppm test -- not ready for prime time on VMS.

 (ppm.t)

 Change 32351 by [EMAIL PROTECTED] on 2007/11/16 23:43:46

Silence ill-behaved or failing Module::Build tests on VMS.

 (test_type.t and xs.t parts only--the tilde.t part appears to have been
 superseded by code in 0.30. Please can you check that, Craig?)

I'll look into it.  I think those were band-aids to expedite getting
5.10.0 out the door and what's coming from upstream now will fix at
least some of the problems we had then.


Re: Module::Build 0.30 is released - ppm.t on VMS depends on Archive::Tar patch.

2008-10-02 Thread Craig A. Berry
On Wed, Oct 1, 2008 at 12:00 PM, Steve Hay [EMAIL PROTECTED] wrote:

 Blead is now updated to Archive-Tar-1.39_04 in #34452.

 One local change remains in blead:

 Change 32352 by [EMAIL PROTECTED] on 2007/11/16 23:46:13

The new Archive::Tar tests are TODO on VMS for reasons unrelated
to the security issue for which they are testing.

Well, that's a desperate-sounding and evasive commit message if I've
ever seen one.  And the evidence suggests I have seen this one.  I'll
take a look and see if the evasion is still necessary.


Re: Module::Build interim release

2008-01-22 Thread Craig A. Berry
At 3:48 PM -0600 1/21/08, Ken Williams wrote:

Also, almost all the changes involve small tweaks to the tests to make
them pass (or skip) under VMS.  I'm of the opinion that in the M::B
mainline code, we shouldn't integrate the changes that just skip under
VMS, e.g. the following:

-
 SKIP: {
+skip Needs case and syntax tweaks for VMS, 1 if $^O eq 'VMS';
-

, on the theory that it's better to fix than hide.

I'm in complete agreement with that.  We just punted on a couple of
things because we ran out of time before 5.10.
-- 

Craig A. Berry
mailto:[EMAIL PROTECTED]

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


Re: m b beta from CPAN - More patches for VMS

2007-11-07 Thread Craig A. Berry
At 5:20 PM -0600 11/6/07, Ken Williams wrote:
On Nov 3, 2007, at 2:14 AM, John E. Malmberg wrote:

John E. Malmberg wrote:

The patches previously submitted have not yet been applied.

I have just applied them to the M::B repo.  Is your subsequent patch still 
good to go?

I think you and I agreed that the is_vmsish property should remain an
indication of what OS we are on and not get tangled up with what make
utility is in use (though a separate property might well track that).
Other than that I think John's patch was headed in the right
direction, though I have not yet found time to Q.A. in any serious
fashion.  I believe John has limited availability this week and may
not respond until next week.
-- 

Craig A. Berry
mailto:[EMAIL PROTECTED]

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


Re: m b beta from CPAN - More patches for VMS

2007-10-28 Thread Craig A. Berry
On 10/27/07, John E. Malmberg [EMAIL PROTECTED] wrote:
 These patches actually get VMS beyond where it was before by a little
 bit.  Compat.t was not being run on VMS because it could not determine
 if the Config{make} image was present.

 It still can not, but assumes that it is on VMS now.

Sounds promising.  Couldn't we do a test to determine whether our make
or make equivalent is present?

 In Module/Build.pm :

 It is vmsish if OS is VMS and the make program is one of MMK or MMS.

That seems wrong to me because it assumes we'd only need to do some
things natively when run in compatibility mode.  I think we should
leave it as a general property and if compatibility mode needs
something else as well, then do the something else there.

 Overriding localize_file_path and localize_dir_path in Platform/VMS.pm
 now, so do not need is_vmsish here.

Makes sense.

 A catdir() should be a catfile().

Since what we're concatenating is 'blib' which is a directory, why
shouldn't it be catdir?

 Add the filenames generated on VMS to the Manifest skip list.

Good, I've been meaning to do that for awhile.  Did you get .OPT and .LIS?

 In Compat.pm :

 glob on VMS will not handle tildes, so use the Module::Build-_detildefy
 to help.

 Generated Makefile - Descrip.mms needs some changes for MMS/MMK.

 1. Perl image needs to be preceded by MCR.

We can probably get away with doing that in our find_perl_interpreter
override.  A spawned Perl will add that on its own, but it should hurt
if it's already there.  Spawning other things, like MMS or MMK,
obviously does need it.

 2. It is Build.COM instead of just Build.

 3. Unlink of the makefile is done differently for realclean target.

 4. MMS/MMK do not support .EXPORT.


 Set the makefile to be Descrip.MMS when building for MMS/MMK on VMS.

 MMS/MMK will use 'Makefile', but that could confuse things.

 Note:  Do not use 'Makefile.vms' for a MMS/MMK style makefile.  It
 breaks GNU make in the GNV kit, as it chooses Makefile.vms over a plain
 Makefile when searching.


 In Compat.t :

 If using VMS and MMK/MMS assume that MMS or MMK is present.  The only
 practical way to test to see if an program is present on VMS is to try
 to run it.

 find_in_path simply will not work on VMS, so not fixing the issues in it
 where it is not handling VMS format file specifications correctly and
 emitting diagnostics, just not using it on VMS.

 If on VMS and using MMK or MMS, assume that the makefile is 'Descrip.MMS'.

 TEST_VERBOSE = 0, must be done by setting and restoring the environment
 variable on VMS.  This is because Perl on VMS is using logical names for
 environment variables, and this is incompatible with MMS/MMK macros.

 The non-verbose output on VMS is apparently slightly different, as there
   appears to be extra newlines inserted.


 In VMS.pm :

 Do not quote /qualifiers which are already in VMS syntax.

 Add localize_file_path and localize_dir_path to use VMS::Filespec
 routines, and so will handle most VMS and UNIX format names.  The
 existing ones were just passing through the VMS format names with out
 changing them, which was good enough for the tests, but would have
 mangled the UNIX format names on VMS.

 Probably have to revise those two when implementing support for gnu make
 on VMS, as then the result should be in LINUX format.


 With this patch, compat.t now passes all tests.

All sounds very promising, except for the nits I've noted above.


 We still have two issues with Module build on VMS:

 1. ppm.t fails because it is apparently creating a corrupt compressed
 tarball..

 2. xs.t is failing because it is mis-interpreting how to lookup blib.
 It is not failing when run in the Perl debugger.

 -John
 [EMAIL PROTECTED]
 Personal Opinion Only

 --- /rsync_root/perl/lib/Module/Build.pmThu Oct 25 04:50:40 2007
 +++ lib/Module/Build.pm Sat Oct 27 01:16:39 2007
 @@ -96,7 +96,9 @@

  sub os_type { $OSTYPES{$^O} }

 -sub is_vmsish { return ((os_type() || '') eq 'VMS') }
 +sub is_vmsish {
 +return ((os_type() || '') eq 'VMS'  $Config::Config{make} =~ 
 /MM[K|S]/i)
 +}
  sub is_windowsish { return ((os_type() || '') eq 'Windows') }
  sub is_unixish { return ((os_type() || '') eq 'Unix') }

 --- /rsync_root/perl/lib/Module/Build/Base.pm   Thu Oct 25 04:50:40 2007
 +++ lib/Module/Build/Base.pmSat Oct 27 22:53:33 2007
 @@ -2392,7 +2392,6 @@

  sub localize_file_path {
my ($self, $path) = @_;
 -  $path =~ s/\.\z// if $self-is_vmsish;
return File::Spec-catfile( split m{/}, $path );
  }

 @@ -2879,7 +2878,7 @@
 File::Spec-abs2rel( File::Spec-rel2abs( $file ),
  File::Spec-rel2abs( $dir  ) );
my $to_file  =
 -   File::Spec-catdir( $ppm, 'blib',
 +   File::Spec-catfile( $ppm, 'blib',
 exists( $types{$type} ) ? $types{$type} : $type,
 $rel_file );
$self-copy_if_modified( from = $file, to = $to_file );
 @@ -3179,10 +3178,18 @@
  

Re: New M::B beta on CPAN

2007-10-27 Thread Craig A. Berry
On 10/26/07, John E. Malmberg [EMAIL PROTECTED] wrote:
 Craig A. Berry wrote:
  On 10/26/07, Rafael Garcia-Suarez [EMAIL PROTECTED] wrote:
 
 On 25/10/2007, Ken Williams [EMAIL PROTECTED] wrote:
 
 I just upgraded it in bleadperl.
 
 Excellent, thanks.
 
 It seems that xs.t is now failing on many platforms. Since the test
 file itself hasn't many changes, I'd blame the code itself...
 
 
 
  All of the M::B tests now fail (in fact fail even to compile) on VMS
  (we had been down to about 3).  Looks like something to do with
  changes to library paths:

 This traceback indicates what is wrong.  The temporary directory has a
 C. character in it, which is not legal on VMS ODS-2 volumes, and
 File::Spec::VMS methods do not know to handle VMS ODS-5 file specifications.

Good catch.  I've committed the attached as #32195, which gets us
nearly back to where we were. In addition to getting rid of the dots
in the temp  directory names, it restores several VMS fixes that went
missing when we integrated from CPAN.  These were probably my fault
for forgetting to send things to Ken as well as check them in.

The xs.t failure on other platforms is still there.  On VMS, tilde.t
is a new failure.  _detildefy changed quite a bit and this will take
some more digging to work out.


mbfix.patch
Description: Binary data


Re: New M::B beta on CPAN

2007-10-26 Thread Craig A. Berry
On 10/26/07, Rafael Garcia-Suarez [EMAIL PROTECTED] wrote:
 On 25/10/2007, Ken Williams [EMAIL PROTECTED] wrote:
   I just upgraded it in bleadperl.
 
  Excellent, thanks.

 It seems that xs.t is now failing on many platforms. Since the test
 file itself hasn't many changes, I'd blame the code itself...


All of the M::B tests now fail (in fact fail even to compile) on VMS
(we had been down to about 3).  Looks like something to do with
changes to library paths:


$ define PERL_CORE 1
$ mcr []perl test -v [-.lib.module.build.t]basic.t
Use of uninitialized value $fixedpath in substitution (s///) at
../lib/File/Spec/VMS.pm line 503.
Use of uninitialized value $path in pattern match (m//) at
../lib/File/Spec/VMS.pm line 39.
Use of uninitialized value in transliteration (tr///) at
../lib/File/Spec/VMS.pm line 46.
Use of uninitialized value $path in substitution (s///) at
../lib/File/Spec/VMS.pm line 47.
Use of uninitialized value $path in substitution (s///) at
../lib/File/Spec/VMS.pm line 48.
Use of uninitialized value $path in substitution (s///) at
../lib/File/Spec/VMS.pm line 49.
Use of uninitialized value $path in substitution (s///) at
../lib/File/Spec/VMS.pm line 50.
Use of uninitialized value $path in substitution (s///) at
../lib/File/Spec/VMS.pm line 51.
Use of uninitialized value $path in substitution (s///) at
../lib/File/Spec/VMS.pm line 52.
Use of uninitialized value $path in substitution (s///) at
../lib/File/Spec/VMS.pm line 59.
Use of uninitialized value $path in substitution (s///) at
../lib/File/Spec/VMS.pm line 69.
Use of uninitialized value $path in substitution (s///) at
../lib/File/Spec/VMS.pm line 70.
Use of uninitialized value $path in substitution (s///) at
../lib/File/Spec/VMS.pm line 71.
Use of uninitialized value $path in substitution (s///) at
../lib/File/Spec/VMS.pm line 72.
Use of uninitialized value $path in substitution (s///) at
../lib/File/Spec/VMS.pm line 73.
Use of uninitialized value $path in string eq at
../lib/File/Spec/VMS.pm line 74.
Use of uninitialized value $path in substitution (s///) at
../lib/File/Spec/VMS.pm line 74.
Use of uninitialized value $tmp in -d at
../lib/Module/Build/t/lib/MBTest.pm line 66.
Use of uninitialized value $tmp in mkdir at
../lib/Module/Build/t/lib/MBTest.pm line 66.
1..52
Can't locate Tie/CPHash.pm in @INC (@INC contains:
D0:[CRAIG.PERL.lib.Module.Build.t.lib] D0:[CRAIG.PERL.lib] .
[.lib.Module.Build.t
.bundled]) at /D0/CRAIG/PERL/lib/Module/Build/t/lib/DistGen.pm line 17.
BEGIN failed--compilation aborted at
/D0/CRAIG/PERL/lib/Module/Build/t/lib/DistGen.pm line 17.
Compilation failed in require at [-.lib.module.build.t]basic.t line 11.
BEGIN failed--compilation aborted at [-.lib.module.build.t]basic.t line 11.
Use of uninitialized value $tmp in -d at
../lib/Module/Build/t/lib/MBTest.pm line 70.
# Looks like your test died before it could output anything.
%SYSTEM-F-ABORT, abort
lib/module/build/t/basicFAILED--expected 52 tests, saw 0
Failed 1 test out of 1, 0.00% okay.
[-.lib.module.build.t]basic.t
### Since not all tests were successful, you may want to run some of
### them individually and examine any diagnostic messages they produce.
### See the INSTALL document's section on make test.
u=2513.67  s=0.00  cu=0.00  cs=0.00  scripts=1  tests=52
%SYSTEM-F-ABORT, abort


[PATCH] some M::B::Platform::VMS fixes

2007-09-07 Thread Craig A. Berry

I've checked the attached into blead as #31815.  It gets rid of a
call to eliminate_macros, which I don't think is needed in
Module::Build since there is no external make utility involved, and
it overrides expand_test_dir to make up for the fact that the
home-grown glob() returns absolute, not relative, paths.

--

Craig A. Berry
mailto:[EMAIL PROTECTED]

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

mb_platform_vms.patch
Description: Binary data


Re: inching toward Module::Build-ability on VMS

2007-07-18 Thread Craig A. Berry
At 1:18 AM -0700 7/18/07, Michael G Schwern wrote:
Craig A. Berry wrote:
   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.

FWIW, you avoid the infinite recursion by calling CORE::glob() instead of just
glob().

sub _fixed_glob {
...
CORE::glob(...);
...
}

BEGIN {
local *CORE::GLOBAL::glob = \fixed_glob;
}

Yeah, I did that (without the local) in one of the umpteen
permutations I tried.  Just tried the following again in
Module::Build::Platform::VMS and the override doesn't exist as far as
Module::Build::Base::_detildefy is concerned.  My current guess is
that it has something to do with the _interpose_module business in
Module::Build, which maybe doesn't set up the @ISA hierarchy until
run-time, or maybe it's just that Module::Build::Base is already
compiled before the platform stuff is invoked, so assigning to the
typeglob, even though it's in a BEGIN block, is too late.  But I'm
speculating without really knowing what I'm talking about.

---
sub _vms_glob_override {
die got here\n;
return CORE::glob(@_);
}

BEGIN {
*CORE::GLOBAL::glob = \_vms_glob_override;
}
---


 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.

Would Test::Deep be useful here?

Looks like it might be.
-- 

Craig A. Berry
mailto:[EMAIL PROTECTED]

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