Browse Source

Clifford Wolf:


			
			
				rocklinux
			
			
		
Clifford Wolf 20 years ago
parent
commit
dd74efecc3
3 changed files with 66 additions and 27 deletions
  1. +61
    -25
      scripts/Check-Deps-2
  2. +2
    -2
      scripts/Create-DepDB
  3. +3
    -0
      scripts/dep_fixes.txt

+ 61
- 25
scripts/Check-Deps-2

@ -3,23 +3,38 @@
use strict;
use English;
my (@pkg, %opr, %pri, %dep, %rep, %rdp, %ign, %lop, %deldeps);
my (@pkg, %opr, %pri, %dep, %rep, %rdp, %ign, %lop, %deldeps, %bas);
my @useddeps; # deps used for visualization of cross dependencies
my %pkg_redone; # packages built in stages 6-8
foreach (@ARGV) { $ign{$_} = 1; }
my $config = "";
while ($_ = shift @ARGV) {
if ( $_ eq "-cfg" ) {
$config = shift @ARGV;
} else {
$ign{$_} = 1;
}
}
print "Reading package priorities ...\n";
open(F, "./scripts/Create-PkgList |") || die $!;
if ( $config eq "" ) {
open(F, "./scripts/Create-PkgList |") || die $!;
} else {
open(F, "< config/$config/packages") || die $!;
}
while (<F>) {
@_ = split /\s+/;
next if $_[1] =~ /[1234]/ or $_[1] !~ /5/;
$pkg_redone{$_[4]} = 1 if $_[1] =~ /[678]/;
next if defined $ign{$_[3]} || defined $ign{$_[4]};
$opr{$_[4]} = $_[2];
$pri{$_[4]} = $_[2];
$rep{$_[4]} = $_[3];
$pkg[$#pkg+1] = $_[4];
my ($b, $p) = ($_[4], $_[4]);
($b, $p) = ($1, $2) if $_[4] =~ /(.*)=(.*)/;
$opr{$p} = $_[2];
$pri{$p} = $_[2];
$rep{$p} = $_[3];
$bas{$p} = $b;
$pkg[$#pkg+1] = $p;
}
close F;
@ -152,31 +167,52 @@ for $iteration (1..99) {
$lop{$looplog} = $iteration;
}
sub patchfile($$$$) {
my ($tmpfile, $descfile, $re1, $re2) = @_;
if ( ! open(IN, $descfile) )
{ print "ERROR: $descfile: $!\n"; return; }
if ( ! open(OUT, ">$tmpfile") )
{ print "ERROR: $descfile: $!\n"; close IN; return; }
$did_something = 0;
while (<IN>) {
$did_something = 1 if eval "s/$re1/$re2/i";
print OUT;
}
close IN; close OUT;
if (not $did_something) {
print "ERROR: Can't patch $descfile!\n";
print "ERROR: Regex was s/$re1/$re2/\n";
}
system("diff -u0 ./$descfile $tmpfile >> dependencies.patch");
}
sub setpri($$$$$$) {
my ($pri, $opr, $rep, $bas, $package, $tmpfile) = @_;
if ($bas eq "cpan") {
my $r = $package; $r =~ s/^cpan-//g; $r =~ s/-/(-|::)/g;
patchfile($tmpfile, "package/import/cpan/hosted_cpan.txt",
"$opr ($r)", "$pri \$1");
patchfile($tmpfile, "package/import/cpan/hosted_cpan.cfg",
"(pkgfork cpan $package .*) $opr;", "\$1 $pri;");
return;
}
patchfile($tmpfile, "package/$rep/$bas/$package.desc",
"(\\[P\\] . \\S+) $opr", "\$1 $pri");
}
if ( $did_something ) {
print "\nCreate dependencies.patch ...\n";
my $tmpfile = `mktemp`; chomp $tmpfile;
unlink "dependencies.patch";
foreach $package (@pkg) {
if ($pri{$package} != $opr{$package}) {
my $descfile = "package/$rep{$package}/".
"$package/$package.desc";
open(IN, $descfile) || die $!;
open(OUT, ">$tmpfile") || die $!;
$did_something = 0;
my $re1 = "(\\[P\\] . \\S+) $opr{$package}";
my $re2 = "\$1 $pri{$package}";
while (<IN>) {
$did_something = 1 if eval "s/$re1/$re2/";
print OUT;
}
close IN; close OUT;
if (not $did_something) {
print "ERROR: Can't patch $descfile!\n";
print "ERROR: Regex was s/$re1/$re2/\n";
if ($pri{$package} != $opr{$package}) {
print "Setting priority $pri{$package} on package $rep{$package}/$bas{$package}=$package.\n";
setpri($pri{$package}, $opr{$package}, $rep{$package}, $bas{$package}, $package, $tmpfile);
}
system("diff -u0 ./$descfile $tmpfile >> dependencies.patch");
}
}
unlink $tmpfile;
print "Done. Please check moves manually bofore applying the patch.\n";

+ 2
- 2
scripts/Create-DepDB

@ -77,12 +77,12 @@ perl -e '
foreach my $c (<'$cachedir'/*/*/*.cache>) {
my ($pri, $time) = (1, 1);
my $pkg = $c; $pkg=~s,^.*/([^/]*)/[^/]*$,$1,;
my $pkg = $c; $pkg=~s,^.*/([^/]*)\.cache$,$1,;
my $found_dep_entries = 0;
my %deps = ();
my $d = $c;
$d =~ s/\.cache$/.desc/;
$d =~ s,([^/]*)/[^/]*\.cache$,$1/$1.desc,;
$d =~ s,^'$cachedir','$descdir',;
if ( ! -f $d ) {
print STDERR "WARNING: Can'\''t find $d -> skipping $c.\n";

+ 3
- 0
scripts/dep_fixes.txt

@ -4,6 +4,9 @@
# dependencies and by scripts/Build-Pkg to dump additional debug info
# for this dependencies.
# additional false deps added manually (2004-09-21)
gtkdoc del gconf
# additional false deps added manually (2004-08-24)
mysql del mysqlcc
mono del mod_mono mono-xsp

Loading…
Cancel
Save