#!/usr/bin/perl # # check whether perl part of the package depends on perl-base only # use strict; my @packages = @ARGV; my $base = `rpm -q 'perl-base'`; chomp $base; foreach my $package (@packages) { $package = `rpm -q '$package'`; chomp $package; $_= `rpm -ql '$package' '$base' | sort | uniq`; my @files = split; my $n = @files; print "checking whether perl part of $package package ($n files) depends on $base only\n"; foreach my $file (@files) { my @req = `/usr/lib/rpm/perl.req '$file'`; @req = map { /perl\(.+?\)/ ? $& :() } @req; foreach my $req (@req) { $_ = `rpm -q --whatprovides '$req'`; my @prov = split; print "warning: $req is provided by @prov\n" if @prov > 1; print "file $file requires\n\t$req provided by @prov\n" unless grep { "@prov" =~ /\Q$_/ } ($base, $package); } } }