diff options
author | 2009-12-27 22:27:03 +0000 | |
---|---|---|
committer | 2009-12-27 22:27:03 +0000 | |
commit | 6233ac2fd610cd6b6c42651c796230dd57185630 (patch) | |
tree | ccd2c8431e1bd379be5cc89c891846f49ba567d8 | |
parent | check for loops and merge sets, in case we end up with real funky depends. (diff) | |
download | wireguard-openbsd-6233ac2fd610cd6b6c42651c796230dd57185630.tar.xz wireguard-openbsd-6233ac2fd610cd6b6c42651c796230dd57185630.zip |
tweak forward dep "almost ready" code and activate loop checker.
-rw-r--r-- | usr.sbin/pkg_add/pkg_add | 28 |
1 files changed, 15 insertions, 13 deletions
diff --git a/usr.sbin/pkg_add/pkg_add b/usr.sbin/pkg_add/pkg_add index e604e8e07bc..8beaaee3e68 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.438 2009/12/27 01:24:42 espie Exp $ +# $OpenBSD: pkg_add,v 1.439 2009/12/27 22:27:03 espie Exp $ # # Copyright (c) 2003-2009 Marc Espie <espie@openbsd.org> # @@ -255,6 +255,17 @@ sub can_install my $bad = $set->{forward}->check($set, $state); if (keys %$bad > 0) { +# for my $m (keys %$bad) { +# my $s = $state->tracker->is_to_update($m); +# if (defined $s) { +# $set->merge($state->tracker, $s); +# } else { +# $set->add_older(OpenBSD::Handle->create_old($m, +# $state)); +# } +# } +# $state->say("Merging ", $set->print, $state->ntogo); +# return; if ($state->{defines}->{updatedepends}) { $state->errsay("Forcing update"); } elsif ($state->{interactive}) { @@ -263,17 +274,6 @@ sub can_install } else { return 0; } -# XXX can't do this yet, have to protect updates against loops -# $later = 1; -# for my $m (keys %$bad) { -# my $s = $state->tracker->is_to_update($m); -# if (defined $s) { -# $set->merge($state->tracker, $s); -# } else { -# $set->add_older(OpenBSD::Handle->create_old($m, -# $state)); -# } -# } } } @@ -640,7 +640,9 @@ sub install_set } if (@deps > 0) { $state->build_deptree($set, @deps); - # here I can check for loops + if ($set->{solver}->check_for_loops($state)) { + return $set; + } return (@deps, $set); } } |