diff options
author | 2007-05-27 22:04:17 +0000 | |
---|---|---|
committer | 2007-05-27 22:04:17 +0000 | |
commit | c34cd4a0f05e5b17814a5543a907c4b45c014f7b (patch) | |
tree | beae1d81cb8302b7f9e9981c884f17b005345368 | |
parent | Simplify symlink creation. ok grunk (diff) | |
download | wireguard-openbsd-c34cd4a0f05e5b17814a5543a907c4b45c014f7b.tar.xz wireguard-openbsd-c34cd4a0f05e5b17814a5543a907c4b45c014f7b.zip |
move packing-list validation to the UpdateSet level.
-rw-r--r-- | usr.sbin/pkg_add/OpenBSD/Add.pm | 4 | ||||
-rw-r--r-- | usr.sbin/pkg_add/OpenBSD/Vstat.pm | 35 | ||||
-rw-r--r-- | usr.sbin/pkg_add/pkg_add | 21 |
3 files changed, 42 insertions, 18 deletions
diff --git a/usr.sbin/pkg_add/OpenBSD/Add.pm b/usr.sbin/pkg_add/OpenBSD/Add.pm index a7cd0a9a9e2..e35f2a4e0d2 100644 --- a/usr.sbin/pkg_add/OpenBSD/Add.pm +++ b/usr.sbin/pkg_add/OpenBSD/Add.pm @@ -1,5 +1,5 @@ # ex:ts=8 sw=4: -# $OpenBSD: Add.pm,v 1.54 2007/05/22 11:02:57 espie Exp $ +# $OpenBSD: Add.pm,v 1.55 2007/05/27 22:04:17 espie Exp $ # # Copyright (c) 2003-2007 Marc Espie <espie@openbsd.org> # @@ -76,7 +76,7 @@ sub validate_plist($$) } Fatal "fatal issues in installing $pkgname" if $problems; $totsize = 1 if $totsize == 0; - return $totsize; + $plist->{totsize} = $totsize; } sub borked_installation diff --git a/usr.sbin/pkg_add/OpenBSD/Vstat.pm b/usr.sbin/pkg_add/OpenBSD/Vstat.pm index a496adde8a6..f3463cbb0d6 100644 --- a/usr.sbin/pkg_add/OpenBSD/Vstat.pm +++ b/usr.sbin/pkg_add/OpenBSD/Vstat.pm @@ -1,5 +1,5 @@ # ex:ts=8 sw=4: -# $OpenBSD: Vstat.pm,v 1.24 2007/05/27 11:21:55 espie Exp $ +# $OpenBSD: Vstat.pm,v 1.25 2007/05/27 22:04:17 espie Exp $ # # Copyright (c) 2003-2007 Marc Espie <espie@openbsd.org> # @@ -284,6 +284,39 @@ sub add_older push(@{$self->{older}}, @handles); } +sub newer +{ + my $self =shift; + return @{$self->{newer}}; +} + +sub older +{ + my $self = shift; + require OpenBSD::PackageInfo; + my @l = (); + for my $h (@{$self->{older}}) { + if (OpenBSD::PackageInfo::is_installed($h->{pkgname})) { + push(@l, $h); + } + } + return @l; +} + +sub validate_plists +{ + my ($self, $state) = @_; + for my $o ($self->older) { + require OpenBSD::Delete; + OpenBSD::Delete::validate_plist($o->{plist}, $state); + } + for my $n ($self->newer) { + require OpenBSD::Add; + OpenBSD::Add::validate_plist($n->{plist}, $state); + } + OpenBSD::Vstat::synchronize(); +} + # temporary shortcut sub handle { diff --git a/usr.sbin/pkg_add/pkg_add b/usr.sbin/pkg_add/pkg_add index 9fdc047400f..ddc6293f10c 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.279 2007/05/27 21:43:06 espie Exp $ +# $OpenBSD: pkg_add,v 1.280 2007/05/27 22:04:17 espie Exp $ # # Copyright (c) 2003-2007 Marc Espie <espie@openbsd.org> # @@ -100,13 +100,7 @@ use OpenBSD::PackageInfo; sub actual_replacements { my $set = shift; - my @toreplace = (); - for my $h (@{$set->{older}}) { - if (is_installed($h->{pkgname})) { - push(@toreplace, $h->{plist}); - } - } - return @toreplace; + return map {$_->{plist}} $set->older; } package main; @@ -336,13 +330,10 @@ sub really_add } print "\n"; } - if (@toreplace) { - for my $old (@toreplace) { - OpenBSD::Delete::validate_plist($old, $state); - } - } - my $totsize = OpenBSD::Add::validate_plist($plist, $state); - OpenBSD::Vstat::synchronize(); + + $set->validate_plists($state); + + my $totsize = $plist->{totsize}; if (!defined $location) { Fatal "Archive in $pkgname broken"; |