CC: | klaus03 [...] gmail.com |
Subject: | ExtUtils::Command::MM - resolving problems with ActiveState |
As described in http://groups.google.com/group/perl.module-authors/msg/2f6db1f9dee97858 ,
There are problems in the way that Module::Build interacts with ActiveState Perl, those problems are:
- HTML generated with Module::Build is not conform
with the way HTML is generated by ActiveState /
ExtUtils::MakeMaker
- with Module::Build, ActiveState's Table of Contents
(html\index.html) is not updated (with
ExtUtils::MakeMaker it is updated)
- with Module::Build, the file 'lib/perllocal.pod' is not
updated, which leaves ActiveState's PPM-utility in
the dark about the newly installed distribution. (with
ExtUtils::MakeMaker the file 'lib/perllocal.pod' is
correctly updated)
I have a patch that fixes those problems. 3 modules are to be patched:
"ActivePerl::DocTools::Pod", "ExtUtils::Command::MM" and "Module::Build::Base".
The main patch is in "Module::Build::Base", but before this can be done, "ExtUtils::Command::MM" needs to be patched as described in the attached file "ExtUtils-Command-MM.txt". (I will also talk to ActiveState about patching "ActivePerl::DocTools::Pod")
Functionally nothing changes in "ExtUtils::Command::MM", only a new subroutine perllocal_instd() will be exposed (to be called later by "Module::Build::Base") that allows to extract the textual representation of what the existing subroutine perllocal_install() does.
There are problems in the way that Module::Build interacts with ActiveState Perl, those problems are:
- HTML generated with Module::Build is not conform
with the way HTML is generated by ActiveState /
ExtUtils::MakeMaker
- with Module::Build, ActiveState's Table of Contents
(html\index.html) is not updated (with
ExtUtils::MakeMaker it is updated)
- with Module::Build, the file 'lib/perllocal.pod' is not
updated, which leaves ActiveState's PPM-utility in
the dark about the newly installed distribution. (with
ExtUtils::MakeMaker the file 'lib/perllocal.pod' is
correctly updated)
I have a patch that fixes those problems. 3 modules are to be patched:
"ActivePerl::DocTools::Pod", "ExtUtils::Command::MM" and "Module::Build::Base".
The main patch is in "Module::Build::Base", but before this can be done, "ExtUtils::Command::MM" needs to be patched as described in the attached file "ExtUtils-Command-MM.txt". (I will also talk to ActiveState about patching "ActivePerl::DocTools::Pod")
Functionally nothing changes in "ExtUtils::Command::MM", only a new subroutine perllocal_instd() will be exposed (to be called later by "Module::Build::Base") that allows to extract the textual representation of what the existing subroutine perllocal_install() does.
Subject: | ExtUtils-Command-MM.txt |
--- lib/ExtUtils/Command/MM.pm.bak 2010-01-06 15:17:20.201000000 +0100
+++ lib/ExtUtils/Command/MM.pm 2010-01-06 15:17:20.201000000 +0100
@@ -206,6 +206,13 @@
my @mod_info = $Is_VMS ? split /\|/, <STDIN>
: @ARGV;
+ print perllocal_instd($type, $name, @mod_info);
+}
+
+sub perllocal_instd {
+ my($type, $name) = splice(@_, 0, 2);
+ my @mod_info = @_;
+
my $pod;
$pod = sprintf <<POD, scalar localtime;
=head2 %s: C<$type> L<$name|$name>
@@ -228,9 +235,8 @@
$pod .= "=back\n\n";
$pod =~ s/^ //mg;
- print $pod;
- return 1;
+ return $pod;
}
=item B<uninstall>