diff options
author | 2018-06-19 09:58:36 +0000 | |
---|---|---|
committer | 2018-06-19 09:58:36 +0000 | |
commit | fe06cbb56bdaedbaf4986b01fcbf3a4fc55f8631 (patch) | |
tree | 1db885d6114c1ccea819c443b3ba903f0c733842 | |
parent | spelling; (diff) | |
download | wireguard-openbsd-fe06cbb56bdaedbaf4986b01fcbf3a4fc55f8631.tar.xz wireguard-openbsd-fe06cbb56bdaedbaf4986b01fcbf3a4fc55f8631.zip |
tidy. no actual behavior change
-rw-r--r-- | usr.sbin/pkg_add/OpenBSD/ForwardDependencies.pm | 81 |
1 files changed, 39 insertions, 42 deletions
diff --git a/usr.sbin/pkg_add/OpenBSD/ForwardDependencies.pm b/usr.sbin/pkg_add/OpenBSD/ForwardDependencies.pm index 86a040a536f..5950bf48c52 100644 --- a/usr.sbin/pkg_add/OpenBSD/ForwardDependencies.pm +++ b/usr.sbin/pkg_add/OpenBSD/ForwardDependencies.pm @@ -1,5 +1,5 @@ # ex:ts=8 sw=4: -# $OpenBSD: ForwardDependencies.pm,v 1.13 2012/04/28 15:24:52 espie Exp $ +# $OpenBSD: ForwardDependencies.pm,v 1.14 2018/06/19 09:58:36 espie Exp $ # # Copyright (c) 2009 Marc Espie <espie@openbsd.org> # @@ -29,8 +29,8 @@ sub find my $forward = {}; for my $old ($set->older) { for my $f (OpenBSD::RequiredBy->new($old->pkgname)->list) { - next if defined $set->{older}->{$f}; - next if defined $set->{kept}->{$f}; + next if defined $set->{older}{$f}; + next if defined $set->{kept}{$f}; $forward->{$f} = 1; } } @@ -45,47 +45,52 @@ sub adjust for my $f (keys %{$self->{forward}}) { my $deps_f = OpenBSD::Requiring->new($f); for my $check ($deps_f->list) { - my $h = $set->{older}->{$check}; + my $h = $set->{older}{$check}; next unless defined $h; - if (!defined $h->{update_found}) { + my $r = $h->{update_found}; + if (!defined $r) { $state->errsay("XXX #1", $check); $deps_f->delete($check); - } else { - # XXX proper OO wouldn't have ->is_real - # but it would use double dispatch to record - # every dependency. - # ETOOMUCHSCAFFOLDING, quick&dirty hack - # is much shorter and fairly localized. - my $r = $h->{update_found}; - my $p = $r->pkgname; - $state->say("Adjusting #1 to #2 in #3", - $check, $p, $f) - if $state->verbose >= 3; - if ($check ne $p) { - if ($r->is_real) { - $deps_f->delete($check)->add($p); - } else { - $deps_f->delete($check); - } - } + next; + } + # XXX is_real corresponds to actual package dependencies + # for stuff moving to the base system, we got + # a pseudo handle which shouldn't be recorded. + my $p = $r->pkgname; + $state->say("Adjusting #1 to #2 in #3", $check, $p, $f) + if $state->verbose >= 3; + if ($check ne $p) { if ($r->is_real) { - OpenBSD::RequiredBy->new($p)->add($f); + $deps_f->delete($check)->add($p); + } else { + $deps_f->delete($check); } } + if ($r->is_real) { + OpenBSD::RequiredBy->new($p)->add($f); + } } } } +sub dump +{ + my ($self, $result, $state) = @_; + $state->say("#1 forward dependencies:", $self->{set}->print); + while (my ($pkg, $l) = each %$result) { + my $deps = join(',', map {$_->{pattern}} @$l); + $state->say("| Dependencies of #1 on #2 don't match", + $pkg, $deps); + } +} + sub check { my ($self, $state) = @_; - my $forward = $self->{forward}; - my $set = $self->{set}; - - my @r = keys %$forward; + my @r = keys %{$self->{forward}}; + my $set = $self->{set}; my $result = {}; - return $result if @r == 0; $state->say("Verifying dependencies still match for #1", join(', ', @r)) if $state->verbose >= 2; @@ -97,23 +102,15 @@ sub check my $p2 = OpenBSD::PackingList->from_installation( $f, \&OpenBSD::PackingList::DependOnly); if (!defined $p2) { - $state->errsay("Error: #1 missing from installation", $f); + $state->errsay("Error: #1 missing from installation", + $f); } else { - $p2->check_forward_dependency($f, \@old, \@new, $result); + $p2->check_forward_dependency($f, \@old, \@new, + $result); } } if (%$result) { - $state->say("#1 forward dependencies:", $set->print); - while (my ($pkg, $l) = each %$result) { - my $deps = join(',', map {$_->{pattern}} @$l); - if (@$l == 1) { - $state->say("| Dependency of #1 on #2 doesn't match", - $pkg, $deps); - } else { - $state->say("| Dependencies of #1 on #2 don't match", - $pkg, $deps); - } - } + $self->dump($result, $state); } return $result; } |