summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorespie <espie@openbsd.org>2009-12-07 13:41:02 +0000
committerespie <espie@openbsd.org>2009-12-07 13:41:02 +0000
commit7dd5c23b5f04437e52f4180cef72eec4085a35c3 (patch)
tree839e269ad7228a7caf47647e07a53e161355f9d8
parentoops, wrong version of previous diff. (diff)
downloadwireguard-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.pm8
-rw-r--r--usr.sbin/pkg_add/OpenBSD/Tracker.pm39
-rw-r--r--usr.sbin/pkg_add/OpenBSD/Update.pm6
-rw-r--r--usr.sbin/pkg_add/OpenBSD/UpdateSet.pm6
-rw-r--r--usr.sbin/pkg_add/pkg_add43
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");