Subject: | Patch for Module::Build::PPMMaker to add PROVIDE support |
PPMMaker doesn't seem to create the PROVIDE lines for PPM.
Here is a patch that should create the the needed lines (and updated test)
Subject: | PPMMaker.pm.patch |
diff --git "a/D:\\Users\\mafoo\\Documents\\Komodo-Projects-Files\\perl-Module-Build-0.4005\\lib\\Module\\Build\\PPMMaker.pm" "b/D:\\Users\\mafoo\\Documents\\Komodo-Projects-Files\\perl-Module-Build\\lib\\Module\\Build\\PPMMaker.pm"
index a996e59..5361d06 100644
--- "a/D:\\Users\\mafoo\\Documents\\Komodo-Projects-Files\\perl-Module-Build-0.4005\\lib\\Module\\Build\\PPMMaker.pm"
+++ "b/D:\\Users\\mafoo\\Documents\\Komodo-Projects-Files\\perl-Module-Build\\lib\\Module\\Build\\PPMMaker.pm"
@@ -78,6 +78,22 @@ PPD
}
}
+ # information is currently directly obtained from $build->find_dist_packages
+ # as that is how prepare_metadata collects the provide information and there
+ # is no public method $build->provides
+
+ my $pkgs = eval { $build->find_dist_packages };
+ if ($@) {
+ $self->log_warn("$@\nWARNING: Possible missing or corrupt 'MANIFEST' file.\n" .
+ "Cannot create PROVIDE in ppd.\n");
+ } else {
+ foreach my $pkg (keys %$pkgs)
+ {
+ my $pkg_version = $pkgs->{$pkg}->{version} || "";
+ $ppd .= qq! <PROVIDE NAME="$pkg" VERSION="$pkg_version" />\n!;
+ }
+ }
+
# We only include these tags if this module involves XS, on the
# assumption that pure Perl modules will work on any OS.
if (keys %{$build->find_xs_files}) {
Subject: | ppm.t.patch |
diff --git "a/D:\\Users\\mafoo\\Documents\\Komodo-Projects-Files\\perl-Module-Build-0.4005\\t\\ppm.t" "b/D:\\Users\\mafoo\\Documents\\Komodo-Projects-Files\\perl-Module-Build\\t\\ppm.t"
index 9de28ec..dec7fcb 100644
--- "a/D:\\Users\\mafoo\\Documents\\Komodo-Projects-Files\\perl-Module-Build-0.4005\\t\\ppm.t"
+++ "b/D:\\Users\\mafoo\\Documents\\Komodo-Projects-Files\\perl-Module-Build\\t\\ppm.t"
@@ -103,6 +103,7 @@ is $ppd, <<"---";
<ABSTRACT>Perl extension for blah blah blah</ABSTRACT>
<AUTHOR>A. U. Thor, a.u.thor\@a.galaxy.far.far.away</AUTHOR>
<IMPLEMENTATION>
+ <PROVIDE NAME="Simple" VERSION="0.01" />
<ARCHITECTURE NAME="$varchname" />
<CODEBASE HREF="/path/to/codebase-xs" />
</IMPLEMENTATION>