diff options
author | Marc Espie <espie@cvs.openbsd.org> | 2007-05-17 14:08:50 +0000 |
---|---|---|
committer | Marc Espie <espie@cvs.openbsd.org> | 2007-05-17 14:08:50 +0000 |
commit | 9cdd5aefa0e68a0ef1bf8c9810c09549d6faa0be (patch) | |
tree | bfb1b84df31be626810c94b2cef5f5d8f79412b6 | |
parent | fa96d2ce39bd41cf5a64eab209a9f7197d8a57ba (diff) |
access solver internals in a clean way through dependencies, uses it
internally.
store solver objects along with solved_dependencies.
Eventually, all solved_dependencies requests will use solver objects
instead.
-rw-r--r-- | usr.sbin/pkg_add/OpenBSD/Dependencies.pm | 16 | ||||
-rw-r--r-- | usr.sbin/pkg_add/pkg_add | 3 |
2 files changed, 15 insertions, 4 deletions
diff --git a/usr.sbin/pkg_add/OpenBSD/Dependencies.pm b/usr.sbin/pkg_add/OpenBSD/Dependencies.pm index 7e50a4b27fe..bce3d732d73 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.32 2007/05/17 13:58:44 espie Exp $ +# $OpenBSD: Dependencies.pm,v 1.33 2007/05/17 14:08:49 espie Exp $ # # Copyright (c) 2005-2007 Marc Espie <espie@openbsd.org> # @@ -39,6 +39,16 @@ sub new bless {plist => $plist, to_install => {}, deplist => [], to_register => {} }, $class; } +sub dependencies +{ + my $self = shift; + if (wantarray) { + return keys %{$self->{to_register}}; + } else { + return scalar(%{$self->{to_register}}); + } +} + sub pkgname { my $self = shift; @@ -140,9 +150,9 @@ sub solve sub dump { my $self = shift; - if (%{$self->{to_register}}) { + if ($self->dependencies) { print "Dependencies for ", $self->pkgname, " resolve to: ", - join(', ', keys %{$self->{to_register}}); + join(', ', $self->dependencies); print " (todo: ", join(',', @{$self->{deplist}}), ")" if @{$self->{deplist}} > 0; print "\n"; diff --git a/usr.sbin/pkg_add/pkg_add b/usr.sbin/pkg_add/pkg_add index 65f3b54ba5b..fcb27b11d91 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.248 2007/05/17 13:36:21 espie Exp $ +# $OpenBSD: pkg_add,v 1.249 2007/05/17 14:08:49 espie Exp $ # # Copyright (c) 2003-2007 Marc Espie <espie@openbsd.org> # @@ -532,6 +532,7 @@ sub install_package if (!defined $handle->{solved_dependencies}) { my $solver = OpenBSD::Dependencies::Solver->new($handle->{plist}); my @deps = $solver->solve($state, @todo); + $handle->{solver} = $solver; $handle->{solved_dependencies} = $solver->{to_register}; if ($state->{verbose}) { $solver->dump; |