Check all build requirements against CPAN
- If a module is provided by ourselves: don't add a build dependency - If a module does not exist on CPAN: don't add a build dependency. It is most likely a module shipped by the module itself to support tests
This commit is contained in:
1 parent
28dc8e9339
commit
1cd8735b7c
1 file changed
+19
-5
@@ -586,6 +586,12 @@ while (my $provides=<$rpm>) {
|
|||||||
my @args=@ARGV;
|
my @args=@ARGV;
|
||||||
my @processed=();
|
my @processed=();
|
||||||
|
|
||||||
|
update_packages();
|
||||||
|
$packages=Parse::CPAN::Packages->new($pkgdetails)
|
||||||
|
if (!defined($packages));
|
||||||
|
die "Parse::CPAN::Packages->new() failed: $!\n"
|
||||||
|
if (!defined($packages));
|
||||||
|
|
||||||
for my $file (@args) {
|
for my $file (@args) {
|
||||||
my ($name,$version,$type);
|
my ($name,$version,$type);
|
||||||
|
|
||||||
@@ -607,11 +613,6 @@ for my $file (@args) {
|
|||||||
$file =~ s/-/::/g;
|
$file =~ s/-/::/g;
|
||||||
|
|
||||||
# Look up $file in 02packages.details.txt.
|
# Look up $file in 02packages.details.txt.
|
||||||
update_packages();
|
|
||||||
$packages=Parse::CPAN::Packages->new($pkgdetails)
|
|
||||||
if (!defined($packages));
|
|
||||||
die "Parse::CPAN::Packages->new() failed: $!\n"
|
|
||||||
if (!defined($packages));
|
|
||||||
my ($m,$d);
|
my ($m,$d);
|
||||||
if ($m=$packages->package($file) and $d=$m->distribution()) {
|
if ($m=$packages->package($file) and $d=$m->distribution()) {
|
||||||
$source=$cpan . "/authors/id/" . $d->prefix();
|
$source=$cpan . "/authors/id/" . $d->prefix();
|
||||||
@@ -922,6 +923,19 @@ for my $file (@args) {
|
|||||||
#print STDERR "$testfile: @{[$extract_o_matic->array()]}\n";
|
#print STDERR "$testfile: @{[$extract_o_matic->array()]}\n";
|
||||||
for my $dep ($extract_o_matic->array()) {
|
for my $dep ($extract_o_matic->array()) {
|
||||||
next if ($dep eq $module);
|
next if ($dep eq $module);
|
||||||
|
next if exists $build_requires{$dep};
|
||||||
|
my $package = $packages->package($dep);
|
||||||
|
if(!defined($package)) {
|
||||||
|
# Don't print this for common false positives
|
||||||
|
unless($dep =~ /^(Config|base|5|lib)/) {
|
||||||
|
print STDERR "Module not on CPAN, not adding dependency: $dep\n";
|
||||||
|
}
|
||||||
|
next;
|
||||||
|
}
|
||||||
|
if($package->distribution->dist eq $name) {
|
||||||
|
print STDERR "Dependency $dep provided by ourselves, not adding dependency\n";
|
||||||
|
next;
|
||||||
|
}
|
||||||
$build_requires{$dep} ||= 0;
|
$build_requires{$dep} ||= 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in new issue
Block a user