[svn:Module-Build] r12987 - in Module-Build/trunk: . lib/Module/Build

[email protected]
Newsgroups perl.module.build.checkins
Message-ID <[email protected]>
Author: dagolden
Date: Wed Jul  1 09:13:52 2009
New Revision: 12987

Modified:
   Module-Build/trunk/Changes
   Module-Build/trunk/lib/Module/Build/Base.pm

Log:
PL_files check in script_files fixed for case-tolerant systems

Modified: Module-Build/trunk/Changes
==============================================================================
--- Module-Build/trunk/Changes	(original)
+++ Module-Build/trunk/Changes	Wed Jul  1 09:13:52 2009
@@ -1,11 +1,14 @@
 Revision history for Perl extension Module::Build.
 
-0.33_06 - 
+0.33_06 -
 
  Bug-fixes:
  - Bundled version code will use pure Perl on 5.10.0 to work around
    a corner case involving eval and locale [John Peacock]
  - Reversed VMS patch from 0.33_03 [Craig Berry]
+ - PL_files in Build.PL that are in the bin/scripts directory should not be
+   installed as if they are scripts (fixed for case-tolerant systems). 
+   [David Golden, reported by Craig Berry]
 
 0.33_05 - Sun Jun 28 22:06:49 EDT 2009
 

Modified: Module-Build/trunk/lib/Module/Build/Base.pm
==============================================================================
--- Module-Build/trunk/lib/Module/Build/Base.pm	(original)
+++ Module-Build/trunk/lib/Module/Build/Base.pm	Wed Jul  1 09:13:52 2009
@@ -3500,24 +3500,32 @@
 
 sub script_files {
   my $self = shift;
-  
+
   for ($self->{properties}{script_files}) {
     $_ = shift if @_;
     next unless $_;
-    
+
     # Always coerce into a hash
     return $_ if UNIVERSAL::isa($_, 'HASH');
     return $_ = { map {$_,1} @$_ } if UNIVERSAL::isa($_, 'ARRAY');
-    
+
     die "'script_files' must be a hashref, arrayref, or string" if ref();
-    
+
     return $_ = { map {$_,1} $self->_files_in( $_ ) } if -d $_;
     return $_ = {$_ => 1};
   }
-  
-  my %pl_files = map { File::Spec->canonpath($_) => 1 }
-                 keys %{ $self->PL_files || {} };
-  return $_ = { map {$_ => 1} grep !$pl_files{$_}, $self->_files_in('bin') };
+
+  my %pl_files = map {
+    File::Spec->canonpath( File::Spec->case_tolerant ? uc $_ : $_ ) => 1 
+  } keys %{ $self->PL_files || {} };
+
+  my @bin_files = $self->_files_in('bin');
+
+  my %bin_map = map {
+    $_ => File::Spec->canonpath( File::Spec->case_tolerant ? uc $_ : $_ ) 
+  } @bin_files;
+
+  return $_ = { map {$_ => 1} grep !$pl_files{$bin_map{$_}}, @bin_files };
 }
 BEGIN { *scripts = \&script_files; }
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.