summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorespie <espie@openbsd.org>2018-06-19 09:58:36 +0000
committerespie <espie@openbsd.org>2018-06-19 09:58:36 +0000
commitfe06cbb56bdaedbaf4986b01fcbf3a4fc55f8631 (patch)
tree1db885d6114c1ccea819c443b3ba903f0c733842
parentspelling; (diff)
downloadwireguard-openbsd-fe06cbb56bdaedbaf4986b01fcbf3a4fc55f8631.tar.xz
wireguard-openbsd-fe06cbb56bdaedbaf4986b01fcbf3a4fc55f8631.zip
tidy. no actual behavior change
-rw-r--r--usr.sbin/pkg_add/OpenBSD/ForwardDependencies.pm81
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;
}