summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorespie <espie@openbsd.org>2018-06-22 21:16:01 +0000
committerespie <espie@openbsd.org>2018-06-22 21:16:01 +0000
commitb4e0ee5dd57f4dd035b984fafec411f8511530b4 (patch)
tree128f1fd40295626bebdc03e1b0b422c1bf0d3bc6
parentMove up the setting of pcb_tf, refreshcreds(), and stack check so that (diff)
downloadwireguard-openbsd-b4e0ee5dd57f4dd035b984fafec411f8511530b4.tar.xz
wireguard-openbsd-b4e0ee5dd57f4dd035b984fafec411f8511530b4.zip
as discussed with aja@, some commands must be run once for every distinct
path :/ Not 100% happy with it, but easy enough to do
-rw-r--r--usr.sbin/pkg_add/OpenBSD/PackingElement.pm21
1 files changed, 14 insertions, 7 deletions
diff --git a/usr.sbin/pkg_add/OpenBSD/PackingElement.pm b/usr.sbin/pkg_add/OpenBSD/PackingElement.pm
index bee8158aa0b..3c2221697f3 100644
--- a/usr.sbin/pkg_add/OpenBSD/PackingElement.pm
+++ b/usr.sbin/pkg_add/OpenBSD/PackingElement.pm
@@ -1,5 +1,5 @@
# ex:ts=8 sw=4:
-# $OpenBSD: PackingElement.pm,v 1.255 2018/06/22 15:01:07 espie Exp $
+# $OpenBSD: PackingElement.pm,v 1.256 2018/06/22 21:16:01 espie Exp $
#
# Copyright (c) 2003-2014 Marc Espie <espie@openbsd.org>
#
@@ -1325,13 +1325,12 @@ sub destate
sub run
{
- my ($self, $state) = @_;
+ my ($self, $state, $v) = @_;
+ $v //= $self->{expanded};
$state->ldconfig->ensure;
- $state->say("#1 #2", $self->keyword, $self->{expanded})
- if $state->verbose >= 2;
- $state->log->system(OpenBSD::Paths->sh, '-c', $self->{expanded})
- unless $state->{not};
+ $state->say("#1 #2", $self->keyword, $v) if $state->verbose >= 2;
+ $state->log->system(OpenBSD::Paths->sh, '-c', $v) unless $state->{not};
}
# so tags are going to get triggered by packages we depend on.
@@ -1442,7 +1441,15 @@ sub run_tag
my $l = join(' ', keys %{$self->{list}});
$self->{expanded} =~ s/\%l/$l/g;
}
- $self->run($state);
+ if ($self->{expanded} =~ m/\%u/) {
+ for my $p (keys %{$self->{list}}) {
+ my $v = $self->{expanded};
+ $v =~ s/\%u/$p/g;
+ $self->run($state, $v);
+ }
+ } else {
+ $self->run($state);
+ }
}
package OpenBSD::PackingElement::Exec;