my %is_on_cpan = (
'Audio-CD-disc-cover' => 0,
+ 'Video-Frequencies' => 0,
+ 'Sphinx-Search' => 1,
'WattsUp-Daemon' => 1,
);
die "system(\"@cmd\") returned $ret and/or failed with status $code";
}
- while ($err =~ /SRC_URI=((['"]).*?\2|\S+)/gs) {
- $uri = $1;
- $uri =~ s{^(['"])(.*?)\1$}{$2}s;
+ my %map;
+ while ($err =~ /([a-zA-Z0-9_]+)=((['"]).*?\3|\S+)/gs) {
+ my $key = $1;
+ my $val = $2;
+ $val =~ s{^(['"])(.*?)\1$}{$2}s;
+ $map{$key} = $val;
}
+
+ $uri = $map{SRC_URI};
+ unless (defined $uri) {
+ my $author = $map{MODULE_AUTHOR};
+ if (defined $author) {
+ my ($au, $a) = $author =~ /^((.).)/;
+ my $dist_version = $map{MODULE_VERSION};
+ $dist_version = $last->[1] unless defined $dist_version;
+ $uri = "mirror://cpan/$a/$au/$author/$pkg_name/$dist_version.tar.gz";
+ }
+ }
+
$fetched_uri{$ebuild} = $uri;
Storable::store([
$timestamp,
local $@;
eval { $pcp->latest_distribution($pseudo_dist->dist) };
};
+
+ unless (defined $latest_dist) {
+ print "no\n";
+ p(2, 'is similiar to a module indexed in another distribution of the CPAN... ');
+ (my $mod_name = $pkg_name) =~ s/-/::/g;
+ $latest_dist = do {
+ local $@;
+ eval {
+ my $module = $pcp->package($mod_name);
+ defined $module ? $module->distribution : undef;
+ };
+ };
+ if (defined $latest_dist) {
+ # Re-forge the pseudo dist so that it will pick up the correct dist
+ # name when looking for a mismatch.
+ $pseudo_dist = CPAN::DistnameInfo->new(
+ $latest_dist->dist . '-' . $pseudo_dist->version
+ . '.' . $pseudo_dist->extension
+ );
+ }
+ }
+
my ($latest_file, $latest_author);
if (defined $latest_dist) {
$latest_file = $latest_dist->filename;