OpenPKG CVS Repository http://cvs.openpkg.org/ ____________________________________________________________________________
Server: cvs.openpkg.org Name: Michael van Elst Root: /e/openpkg/cvs Email: [EMAIL PROTECTED] Module: openpkg-src Date: 28-Jul-2003 21:55:14 Branch: HEAD Handle: 2003072820551400 Modified files: openpkg-src/openpkg-tool openpkg-build.pl Log: fix revdep computation, small code cleanup Summary: Revision Changes Path 1.97 +14 -13 openpkg-src/openpkg-tool/openpkg-build.pl ____________________________________________________________________________ patch -p0 <<'@@ .' Index: openpkg-src/openpkg-tool/openpkg-build.pl ============================================================================ $ cvs diff -u -r1.96 -r1.97 openpkg-build.pl --- openpkg-src/openpkg-tool/openpkg-build.pl 28 Jul 2003 17:17:11 -0000 1.96 +++ openpkg-src/openpkg-tool/openpkg-build.pl 28 Jul 2003 19:55:14 -0000 1.97 @@ -515,8 +515,9 @@ # compute reverse dependency map # # -sub get_revdep ($$) { - my($env, $i) = @_; +sub get_revdep ($) { + my($env) = @_; + my($i) = $env->{'installed'}; my($r) = $env->{'repository'}; my($pkg, %dep, %dlist, %rev); my(@vers,$t,$t1,$t2,$with,$name,$vmap); @@ -548,9 +549,9 @@ %d = unique_map($d,$k); # resolve package unless (exists $pkg{$pkg}) { - ($t2,$old) = dep2target({ name => $pkg }, $env); + ($t2,$old) = dep2target({ name => $pkg }, $env, 1); $t2 = undef if $old; - $pkg{$pkg} = undef; + $pkg{$pkg} = $t2; } $t2 = $pkg{$pkg}; next unless $t2; @@ -558,7 +559,7 @@ next if $_ eq 'OpenPKG'; # resolve target unless (exists $name{$_}) { - ($t1,$old) = dep2target($d{$_}, $env); + ($t1,$old) = dep2target($d{$_}, $env, 0); $name{$_} = $t1 ? $t1->{name} : $_; } $name = $name{$_}; @@ -1615,8 +1616,8 @@ # # locate target for a dependency # -sub dep2target ($$) { - my($dep, $env) = @_; +sub dep2target ($$$) { + my($dep, $env, $source) = @_; my($name,$op,@vers); my($i,$r,$b,$cond,$version); my($t,$tdef,$why); @@ -1654,11 +1655,11 @@ if ($i && (@vers = get_versions($i, $cond))) { foreach (@vers) { $t = $i->{$_}->[0]; - next unless $t && + next unless $t; get_with($t); if (target_suitable($t, $env->{with}, 0)) { $tdef = $t; - unless ($env->{upgrade} || $env->{zero}) { + unless ($env->{upgrade} || $env->{zero} || $source) { return ($t, 1); } } @@ -1685,7 +1686,7 @@ if (!$tdef || ( ($why = target_better($env, $t, $env->{installed})) && $why ne 'new' - )) { + ) || $source) { return ($t, 0); } } @@ -1795,7 +1796,7 @@ # old index misses a OpenPKG provider in the index... skip it next if $_ eq 'OpenPKG'; - ($t,$old) = dep2target($d{$_}, $env); + ($t,$old) = dep2target($d{$_}, $env, 0); if ($t) { if ($old) { print "# $target->{name} uses ".vsn($t)." for $_\n"; @@ -1864,7 +1865,7 @@ if (!$env->{quick} && $target->{name} ne 'openpkg' ) { unless ($env->{revdep}) { - $env->{revdep} = get_revdep($env, $env->{installed}); + $env->{revdep} = get_revdep($env); } foreach $t (@{$env->{revdep}->{$target->{name}}}) { @@ -2021,7 +2022,7 @@ # cache reverse dependencies # unless ($env->{revdep}) { - $env->{revdep} = get_revdep($env, $env->{repository}); + $env->{revdep} = get_revdep($env); } # @@ . ______________________________________________________________________ The OpenPKG Project www.openpkg.org CVS Repository Commit List [EMAIL PROTECTED]