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 openpkg-web Date: 26-Jun-2003 13:00:39 Branch: HEAD Handle: 2003062612003503 Modified files: openpkg-src/openpkg-tool openpkg-build.pl openpkg-tool.spec openpkg-web news.txt Log: consider options for reverse dependencies Summary: Revision Changes Path 1.86 +30 -23 openpkg-src/openpkg-tool/openpkg-build.pl 1.61 +2 -2 openpkg-src/openpkg-tool/openpkg-tool.spec 1.5023 +1 -0 openpkg-web/news.txt ____________________________________________________________________________ patch -p0 <<'@@ .' Index: openpkg-src/openpkg-tool/openpkg-build.pl ============================================================================ $ cvs diff -u -r1.85 -r1.86 openpkg-build.pl --- openpkg-src/openpkg-tool/openpkg-build.pl 25 Jun 2003 12:01:11 -0000 1.85 +++ openpkg-src/openpkg-tool/openpkg-build.pl 26 Jun 2003 11:00:38 -0000 1.86 @@ -496,8 +496,8 @@ my($env, $i) = @_; my($r) = $env->{'repository'}; my($pkg, %dep, %dlist, %rev); - my(@vers,$t); - my($d,$k,%d); + my(@vers,$t,$t1,$t2,$with,$name); + my($d,$k,%d,$old,%name); print "# computing reverse dependencies\n"; @@ -509,27 +509,36 @@ } # - # get list of package versions from repository - # - @vers = get_versions($r->{$pkg}, sub { 1; }); - - # # get forward dependencies from repository packages + # but blend in options from installed packages # # dep{a}{b} is true if b depends directly on a # dlist{a} is list of packages that depend on a # + @vers = get_versions($r->{$pkg}, sub { 1; }); foreach (@vers) { foreach $t (@{$r->{$pkg}->{$_}}) { - next unless $i->{$t->{name}}; - $d = target_depends($t, $env); - $k = target_keeps($t, $env); + $with = get_with($t); + $t2 = find_target($t->{name}, $i); + if ($t2) { + $with = { %$with }; + override_options($with, get_with($t2), ''); + } + $d = target_attribute($t, $env, 'depends', $with); + $k = target_attribute($t, $env, 'keeps', $with); next unless @$d || @$k; %d = unique_map($d,$k); foreach (keys %d) { - unless ($dep{$_}{$t->{name}}) { - $dep{$_}{$t->{name}} = 1; - push @{$dlist{$_}}, $t; + next if $_ eq 'OpenPKG'; + # resolve target + unless ($name{$_}) { + ($t1,$old) = dep2target($d{$_}, $env); + $name{$_} = $t1 ? $t1->{name} : $_; + } + $name = $name{$_}; + unless ($dep{$name}{$t->{name}}) { + $dep{$name}{$t->{name}} = 1; + push @{$dlist{$name}}, $t; } } } @@ -1281,20 +1290,19 @@ # # retrieve conditional target attributes in map # -sub target_attribute ($$$) { - my($target, $env, $attr) = @_; - my($with) = $env->{with}; +sub target_attribute ($$$;$) { + my($target, $env, $attr, $with) = @_; my($optreg) = $env->{config}->{optreg}; my($name,@out); return unless $target; $name = $target->{name}; - my(%mywith) = %{$target->{OPTIONS}}; - override_options(\%mywith, name_with($name, $with), $optreg); + my($mywith) = $with ? $with : get_with($target); + override_options($mywith, name_with($name, $env->{with}), $optreg); foreach (@{$target->{$attr}}) { - next unless conditional($_->{'cond'}, \%mywith); + next unless conditional($_->{'cond'}, $mywith); push @out, $_->{'value'}; } return [EMAIL PROTECTED]; @@ -1707,6 +1715,7 @@ $target->{PROXY} = $t->{PROXY}; $target->{REBUILD} = 1; } else { + print "# creating $target->{name}\n"; target_setstatus($target,'ADD',3); } @@ -1784,7 +1793,7 @@ $target->{LIMBO} = 0; # remember new options - override_options($target->{OPTIONS}, + override_options(get_with($target), name_with($target->{name}, $env->{with}), ''); @@ -1800,9 +1809,7 @@ # return if $conflict; - if (!$env->{quick} && - $target->{name} ne 'openpkg' && - $target->{REBUILD}) { + if (!$env->{quick} && $target->{name} ne 'openpkg' ) { unless ($env->{revdep}) { $env->{revdep} = get_revdep($env, $env->{installed}); @@ . patch -p0 <<'@@ .' Index: openpkg-src/openpkg-tool/openpkg-tool.spec ============================================================================ $ cvs diff -u -r1.60 -r1.61 openpkg-tool.spec --- openpkg-src/openpkg-tool/openpkg-tool.spec 25 Jun 2003 12:01:11 -0000 1.60 +++ openpkg-src/openpkg-tool/openpkg-tool.spec 26 Jun 2003 11:00:38 -0000 1.61 @@ -32,8 +32,8 @@ Distribution: OpenPKG [PLUS] Group: Bootstrapping License: GPL -Version: 20030625 -Release: 20030625 +Version: 20030626 +Release: 20030626 # list of sources Source0: openpkg.sh @@ . patch -p0 <<'@@ .' Index: openpkg-web/news.txt ============================================================================ $ cvs diff -u -r1.5022 -r1.5023 news.txt --- openpkg-web/news.txt 26 Jun 2003 10:36:05 -0000 1.5022 +++ openpkg-web/news.txt 26 Jun 2003 11:00:35 -0000 1.5023 @@ -1,3 +1,4 @@ +26-Jun-2003: Upgraded package: P<openpkg-tool-20030626-20030626> 26-Jun-2003: Upgraded package: P<perl-conv-20030626-20030626> 26-Jun-2003: Upgraded package: P<skey-1.1.5-20030626> 26-Jun-2003: Upgraded package: P<honeyd-0.6-20030626> @@ . ______________________________________________________________________ The OpenPKG Project www.openpkg.org CVS Repository Commit List [EMAIL PROTECTED]