diff options
author | 2009-12-07 13:41:02 +0000 | |
---|---|---|
committer | 2009-12-07 13:41:02 +0000 | |
commit | 7dd5c23b5f04437e52f4180cef72eec4085a35c3 (patch) | |
tree | 839e269ad7228a7caf47647e07a53e161355f9d8 | |
parent | oops, wrong version of previous diff. (diff) | |
download | wireguard-openbsd-7dd5c23b5f04437e52f4180cef72eec4085a35c3.tar.xz wireguard-openbsd-7dd5c23b5f04437e52f4180cef72eec4085a35c3.zip |
simplify tracker a bit now we know what we're doing.
kill code that never got used
-rw-r--r-- | usr.sbin/pkg_add/OpenBSD/Dependencies.pm | 8 | ||||
-rw-r--r-- | usr.sbin/pkg_add/OpenBSD/Tracker.pm | 39 | ||||
-rw-r--r-- | usr.sbin/pkg_add/OpenBSD/Update.pm | 6 | ||||
-rw-r--r-- | usr.sbin/pkg_add/OpenBSD/UpdateSet.pm | 6 | ||||
-rw-r--r-- | usr.sbin/pkg_add/pkg_add | 43 |
5 files changed, 38 insertions, 64 deletions
diff --git a/usr.sbin/pkg_add/OpenBSD/Dependencies.pm b/usr.sbin/pkg_add/OpenBSD/Dependencies.pm index 8c07a6c8392..36149c89342 100644 --- a/usr.sbin/pkg_add/OpenBSD/Dependencies.pm +++ b/usr.sbin/pkg_add/OpenBSD/Dependencies.pm @@ -1,5 +1,5 @@ # ex:ts=8 sw=4: -# $OpenBSD: Dependencies.pm,v 1.95 2009/12/05 11:45:35 espie Exp $ +# $OpenBSD: Dependencies.pm,v 1.96 2009/12/07 13:41:02 espie Exp $ # # Copyright (c) 2005-2007 Marc Espie <espie@openbsd.org> # @@ -311,7 +311,7 @@ sub solve_dependency } my $set = OpenBSD::UpdateSet->new->add_older(OpenBSD::Handle->create_old($v, $state)); push(@{$self->{deplist}}, $set); - $state->tracker->add_set($set); + $state->tracker->todo($set); $self->{not_ready} = 1; } return $v; @@ -327,7 +327,7 @@ sub solve_dependency if ($v) { my $s = OpenBSD::UpdateSet->from_location($v); - $state->tracker->add_set($s); + $state->tracker->todo($s); push(@{$self->{deplist}}, $s); return $v->{name}; @@ -336,7 +336,7 @@ sub solve_dependency # resort to default if nothing else $v = $dep->{def}; my $s = OpenBSD::UpdateSet->create_new($v); - $state->tracker->add_set($s); + $state->tracker->todo($s); push(@{$self->{deplist}}, $s); return $v; } diff --git a/usr.sbin/pkg_add/OpenBSD/Tracker.pm b/usr.sbin/pkg_add/OpenBSD/Tracker.pm index d83cd4cb44d..6bb418847e3 100644 --- a/usr.sbin/pkg_add/OpenBSD/Tracker.pm +++ b/usr.sbin/pkg_add/OpenBSD/Tracker.pm @@ -1,5 +1,5 @@ # ex:ts=8 sw=4: -# $OpenBSD: Tracker.pm,v 1.12 2009/12/04 10:43:02 espie Exp $ +# $OpenBSD: Tracker.pm,v 1.13 2009/12/07 13:41:02 espie Exp $ # # Copyright (c) 2009 Marc Espie <espie@openbsd.org> # @@ -38,6 +38,14 @@ sub new return bless {}, $class; } +sub known +{ + my ($self, $set) = @_; + for my $n ($set->newer, $set->older, $set->hints) { + $self->{known}->{$n->pkgname} = 1; + } +} + sub add_set { my ($self, $set) = @_; @@ -47,10 +55,11 @@ sub add_set for my $n ($set->older, $set->hints) { $self->{to_update}->{$n->pkgname} = $set; } + $self->known($set); return $self; } -sub add_sets +sub todo { my ($self, @sets) = @_; for my $set (@sets) { @@ -70,29 +79,30 @@ sub remove_set } } -sub mark_uptodate +sub uptodate { my ($self, $set) = @_; + $self->remove_set($set); for my $n ($set->older) { - delete $self->{to_update}->{$n->pkgname}; $self->{uptodate}->{$n->pkgname} = 1; } } -sub mark_cant_update +sub cant { my ($self, $set) = @_; + $self->remove_set($set); for my $n ($set->older) { - delete $self->{to_update}->{$n->pkgname}; $self->{cant_update}->{$n->pkgname} = 1; } } -sub mark_installed +sub done { my ($self, $set) = @_; $self->remove_set($set); + $self->known($set); for my $n ($set->newer) { $self->{uptodate}->{$n->pkgname} = 1; @@ -115,12 +125,7 @@ sub is sub is_known { my ($self, $pkg) = @_; - my $r; - for my $k qw(installed uptodate cant_update to_update) { - $r = $self->is($k, $pkg); - return $r if defined $r; - } - return $r; + return $self->is('known', $pkg); } sub is_installed @@ -135,13 +140,7 @@ sub is_to_update return $self->is('to_update', $pkg); } -sub installed -{ - my $self = shift; - return keys %{$self->{installed}}; -} - -sub cant_update +sub cant_list { my $self = shift; return keys %{$self->{cant_update}}; diff --git a/usr.sbin/pkg_add/OpenBSD/Update.pm b/usr.sbin/pkg_add/OpenBSD/Update.pm index 54c78f90850..cfef522a9f7 100644 --- a/usr.sbin/pkg_add/OpenBSD/Update.pm +++ b/usr.sbin/pkg_add/OpenBSD/Update.pm @@ -1,5 +1,5 @@ # ex:ts=8 sw=4: -# $OpenBSD: Update.pm,v 1.112 2009/12/05 14:41:03 espie Exp $ +# $OpenBSD: Update.pm,v 1.113 2009/12/07 13:41:02 espie Exp $ # # Copyright (c) 2004-2006 Marc Espie <espie@openbsd.org> # @@ -272,10 +272,10 @@ sub process_set } } if ($problem) { - $state->tracker->mark_cant_update($set) if !$set->{quirks}; + $state->tracker->cant($set) if !$set->{quirks}; return 0; } elsif ($set->{updates} == 0 && $set->newer == 0) { - $state->tracker->mark_uptodate($set); + $state->tracker->uptodate($set); return 0; } $state->tracker->add_set($set); diff --git a/usr.sbin/pkg_add/OpenBSD/UpdateSet.pm b/usr.sbin/pkg_add/OpenBSD/UpdateSet.pm index dba90f70850..15a8fc36b38 100644 --- a/usr.sbin/pkg_add/OpenBSD/UpdateSet.pm +++ b/usr.sbin/pkg_add/OpenBSD/UpdateSet.pm @@ -1,5 +1,5 @@ # ex:ts=8 sw=4: -# $OpenBSD: UpdateSet.pm,v 1.33 2009/12/05 10:08:58 espie Exp $ +# $OpenBSD: UpdateSet.pm,v 1.34 2009/12/07 13:41:02 espie Exp $ # # Copyright (c) 2007 Marc Espie <espie@openbsd.org> # @@ -258,8 +258,6 @@ sub merge for my $set (@sets) { $self->add_newer($set->newer); $self->add_older($set->older); - # BUT XXX tell the tracker we killed the set - $tracker->remove_set($set); # ... and mark it as already done $set->{finished} = 1; # XXX and mark it as merged, for eventual updates @@ -267,7 +265,7 @@ sub merge $self->{updates} += $set->{updates}; } # then regen tracker info for $self - $tracker->add_set($self); + $tracker->todo($self); delete $self->{solver}; return $self; } diff --git a/usr.sbin/pkg_add/pkg_add b/usr.sbin/pkg_add/pkg_add index fd4f6a2a64d..5aa568eab4d 100644 --- a/usr.sbin/pkg_add/pkg_add +++ b/usr.sbin/pkg_add/pkg_add @@ -1,7 +1,7 @@ #! /usr/bin/perl # ex:ts=8 sw=4: -# $OpenBSD: pkg_add,v 1.418 2009/12/06 07:53:07 jmc Exp $ +# $OpenBSD: pkg_add,v 1.419 2009/12/07 13:41:02 espie Exp $ # # Copyright (c) 2003-2009 Marc Espie <espie@openbsd.org> # @@ -175,35 +175,11 @@ sub complete if (!$set->{installable}) { $set->cleanup(OpenBSD::Handle::CANT_INSTALL); - $state->tracker->mark_cant_update($set); + $state->tracker->cant($set); } return 1; } -sub reorder_old -{ - my ($set, $state) = @_; - # no need to sort things if there is one package to replace - # return if $set->older <= 1; - - my $resolved; - my @l = (); - my %todo = map {($_->pkgname, $_)} $set->older; - do { - $resolved = 0; -BIGLOOP: while (my ($pkg, $h) = each %todo) { - for my $name (OpenBSD::RequiredBy->new($pkg)->list) { - next BIGLOOP if defined $todo{$name}; - } - push(@l, $h); - delete $todo{$pkg}; - $resolved++; - } - } while ($resolved); - push(@l, values %todo); - $set->{older} = \@l; -} - sub find_conflicts { my ($set, $state) = @_; @@ -553,7 +529,7 @@ sub install_set $handle->error_message, "\n"); $bad++; $set->cleanup($handle->has_error); - $state->tracker->mark_cant_update($set); + $state->tracker->cant($set); return (); } @@ -562,7 +538,7 @@ sub install_set $state->log($handle->pkgname, " is not for the right architecture"); if (!$defines{arch}) { $set->cleanup(OpenBSD::Handle::CANT_INSTALL); - $state->tracker->mark_cant_update($set); + $state->tracker->cant($set); return (); } } @@ -595,7 +571,7 @@ sub install_set } $bad++; $set->cleanup(OpenBSD::Handle::CANT_INSTALL); - $state->tracker->mark_cant_update($set); + $state->tracker->cant($set); return (); } @@ -605,7 +581,7 @@ sub install_set $handle->location->close_now; } $set->cleanup(OpenBSD::Handle::CANT_INSTALL); - $state->tracker->mark_cant_update($set); + $state->tracker->cant($set); $bad++; return (); } @@ -618,7 +594,7 @@ sub install_set # } really_add($set, $state); $set->cleanup; - $state->tracker->mark_installed($set); + $state->tracker->done($set); return (); } @@ -683,7 +659,7 @@ my @todo2 = (); sub inform_user_of_problems { my $state = shift; - my @cantupdate = $state->tracker->cant_update; + my @cantupdate = $state->tracker->cant_list; if (@cantupdate > 0) { $state->print("Couldn't find updates for ", join(', ', @cantupdate), "\n"); } @@ -795,12 +771,13 @@ sub finish_display framework( sub { - $state->tracker->add_sets(@todo2); if ($state->{allow_replacing}) { $state->progress->set_header("Looking for packages"); $state->{todo} = (scalar @todo2) + 1; do_quirks($state); } + + $state->tracker->todo(@todo2); # This is the actual very small loop that adds all packages while (my $set = shift @todo2) { $state->progress->set_header("Looking for packages"); |