On Tue, Mar 26, 2002 at 09:49:37PM -0600, Craig A. Berry wrote:
> Patch below against what I retrieved from cvs about 7 PM CST. It
> builds and installs successfully against bleadperl on VMS 7.3 with
> both MMS and MMK. The biggest issue was that you cannot concatenate
> unexpanded macros as if they were file and directory components. The
> concatenation routines have to have the delimiters to know what's
> what.
Gotcha. I'm going to handle this one a little differently. I like to
avoid pre-expanding make constants. Makes things less flexible. So
instead of:
$(NOECHO) $(PERL) -e "print 'read
].File::Spec->catfile($self->{PERL_ARCHLIB},'auto','$(FULLEXT)','.packlist').q[ '"
>.MM_tmp
we'll do:
$(NOECHO) $(PERL) "-MFile::Spec" -e "print 'read
'.File::Spec->catfile('$(PERL_ARCHLIB)','auto','$(FULLEXT)','.packlist')'" >.MM_tmp
that should do the right thing and still leave $(PERL_ARCHLIB) &
$(FULLEXT) in the descrip.mms, available to be altered by the caller
(for whatever reason).
> There is one remaining cluster of test failures which I
> haven't figured out what to do with yet:
> t/installed......
> # Failed test (t/installed.t at line 62)
> # got: '0'
> # expected: '1'
> # Failed test (t/installed.t at line 171)
> # got: '0'
> # expected: '1'
> # Failed test (t/installed.t at line 172)
> # undef
> # doesn't match '(?-xism:foobar[>\]]?$)'
> # Looks like you failed 3 tests of 42.
>
> The basic issue here is that the pieces of the FakeMod module are not
> guaranteed to have the same case when you retrieve their names from
> the file system as they had when you created them.
No, that's a completely different problem (and it's been fixed).
These are something else entirely.
It's these tests.
# VMS 5.6.1 doesn't seem to have $Config{prefixexp}
my $prefix = $Config{prefixexp} || $Config{prefix};
# ActivePerl 5.6.1/631 has $Config{prefixexp} as 'p:' for some reason
$prefix = $Config{prefix} if $prefix eq 'p:' && $^O eq 'MSWin32';
is( $ei->_is_type( File::Spec->catfile($prefix, 'bar'), 'prog'), 1,
"... should find prog file under $prefix" );
If you'll look at ExtUtils::Installed::_is_type you'll see it calls
_is_prefix. If you look at _is_prefix you'll see some ugly hackery
for VMS because ExtUtils::Installed wasn't designed with VMS paths in
mind. If you run it in the debugger it should be pretty obvious from
your end why it's not working.
Show me your $Config{prefix} and $Config{prefixexp}, please. That
might shed light on the problem.
> The other remaining issue is that we still get a lot of spurious
> newlines with MMS.
Using this descrip.mms
a :
@ Write SYS$OUTPUT "It worked!"
I get:
$ mms
It worked!
$ mmk
It worked!
for some weird reason, mms is throwing extra newlines in.
$ mms/ident
%MMS-I-IDENT, MMS V3.4-3 � Compaq Computer Corporation 2000. � Electronic Data Systems
Limited 1995, 2000
$ mmk/ident
%MMK-I-IDENT, this is the MadGoat Make Utility V3.9-2
-MMK-I-COPYRIGHT, Copyright � 1992-2001, MadGoat Software. All Rights Reserved.
> --- t/installed.t;-0 Mon Mar 25 23:31:20 2002
> +++ t/installed.t Tue Mar 26 19:13:07 2002
> @@ -56,6 +56,9 @@
> # ActivePerl 5.6.1/631 has $Config{prefixexp} as 'p:' for some reason
> $prefix = $Config{prefix} if $prefix eq 'p:' && $^O eq 'MSWin32';
>
> +# You can concatenate /foo but not foo:, which defaults in the current directory
> +$prefix = VMS::Filespec::unixify($prefix) if $^O eq 'VMS';
> +
> is( $ei->_is_type( File::Spec->catfile($prefix, 'bar'), 'prog'), 1,
> "... should find prog file under $prefix" );
What's the above for? I sort of follow the comment, but it should be
taken care of inside ExtUtils::Installed.
--
Michael G. Schwern <[EMAIL PROTECTED]> http://www.pobox.com/~schwern/
Perl Quality Assurance <[EMAIL PROTECTED]> Kwalitee Is Job One
I was *meant* to mount your donuts.