On Saturday, March 15, 2003, at 03:06 PM, Richard Clamp wrote:
> I've discovered an inconsistency between Module::Build and EU::MM.
>
> When I declare a script via the scripts property Module::Build isn't
> rewriting the shebang line to match that of the perl it's installing
> against, so when I later run the script it fails in the require of
> it's companion module.
>
> MakeMaker uses ExtUtils::MM->fixin($script) to do it, if that helps
> any.
Hi Richard,
Thanks for the report. Can you verify that the following patch solves
the problem? I've checked it into CVS.
===================================================================
RCS file: /cvsroot/module-build/Module-Build/lib/Module/Build/Base.pm,v
retrieving revision 1.70
diff -u -r1.70 Base.pm
--- lib/Module/Build/Base.pm 26 Feb 2003 22:41:10 -0000 1.70
+++ lib/Module/Build/Base.pm 16 Mar 2003 00:34:41 -0000
@@ -724,8 +724,10 @@
File::Path::mkpath( $script_dir );
foreach my $file (@{$self->{properties}{scripts}}) {
- my $result = $self->copy_if_modified($file, $script_dir,
'flatten');
- $self->make_executable($result) if $result;
+ my $result = $self->copy_if_modified($file, $script_dir,
'flatten') or next;
+ require ExtUtils::MM;
+ ExtUtils::MM->fixin($result);
+ $self->make_executable($result);
}
}
===================================================================
It feels like this should be handled by ExtUtils::Install instead of
ExtUtils::MM, but I guess MM is where it is.
-Ken
|