diff options
author | 2017-09-18 13:01:10 +0000 | |
---|---|---|
committer | 2017-09-18 13:01:10 +0000 | |
commit | fdc4cfafcd9621ed6f5e5d3c0a00e5f55eab8cd5 (patch) | |
tree | a75037386fa51287cce8c838c15e702c3fef0311 | |
parent | Prevent type mismatch warning in debug on platforms where sig_atomic_t (diff) | |
download | wireguard-openbsd-fdc4cfafcd9621ed6f5e5d3c0a00e5f55eab8cd5.tar.xz wireguard-openbsd-fdc4cfafcd9621ed6f5e5d3c0a00e5f55eab8cd5.zip |
-V option for pkg_create and incorporate version into signatures.
-rw-r--r-- | usr.sbin/pkg_add/OpenBSD/PkgCreate.pm | 19 | ||||
-rw-r--r-- | usr.sbin/pkg_add/OpenBSD/Signature.pm | 24 |
2 files changed, 38 insertions, 5 deletions
diff --git a/usr.sbin/pkg_add/OpenBSD/PkgCreate.pm b/usr.sbin/pkg_add/OpenBSD/PkgCreate.pm index f6c4955ff9a..a2ac94b3e65 100644 --- a/usr.sbin/pkg_add/OpenBSD/PkgCreate.pm +++ b/usr.sbin/pkg_add/OpenBSD/PkgCreate.pm @@ -1,6 +1,6 @@ #! /usr/bin/perl # ex:ts=8 sw=4: -# $OpenBSD: PkgCreate.pm,v 1.123 2016/10/03 13:17:30 espie Exp $ +# $OpenBSD: PkgCreate.pm,v 1.124 2017/09/18 13:01:10 espie Exp $ # # Copyright (c) 2003-2014 Marc Espie <espie@openbsd.org> # @@ -82,6 +82,7 @@ sub handle_options { my $state = shift; + $state->{system_version} = 0; $state->{opt} = { 'f' => sub { @@ -95,16 +96,23 @@ sub handle_options my $d = shift; $state->{dependencies}{$d} = 1; }, + 'V' => sub { + my $d = shift; + if ($d !~ m/^\d+$/) { + $state->usage("-V number"); + } + $state->{system_version} += $d; + }, 'W' => sub { my $w = shift; $state->{wantlib}{$w} = 1; }, }; $state->{no_exports} = 1; - $state->SUPER::handle_options('p:f:d:M:U:A:B:P:W:qQ', + $state->SUPER::handle_options('p:f:d:M:U:A:B:P:V:W:qQ', '[-nQqvx] [-A arches] [-B pkg-destdir] [-D name[=value]]', '[-L localbase] [-M displayfile] [-P pkg-dependency]', - '[-U undisplayfile] [-W wantedlib]', + '[-U undisplayfile] [-V n] [-W wantedlib]', '[-d desc -D COMMENT=value -f packinglist -p prefix]', 'pkg-name'); @@ -114,7 +122,6 @@ sub handle_options } $state->{base} = $base; - } package OpenBSD::PkgCreate; @@ -1184,6 +1191,10 @@ sub add_elements OpenBSD::PackingElement::LocalBase->add($plist, $state->opt('L')); } $self->add_extra_info($plist, $state); + if ($state->{system_version}) { + OpenBSD::PackingElement::Version->add($plist, + $state->{system_version}); + } } sub cant_read_fragment diff --git a/usr.sbin/pkg_add/OpenBSD/Signature.pm b/usr.sbin/pkg_add/OpenBSD/Signature.pm index dac7d687412..302298f18e0 100644 --- a/usr.sbin/pkg_add/OpenBSD/Signature.pm +++ b/usr.sbin/pkg_add/OpenBSD/Signature.pm @@ -1,5 +1,5 @@ # ex:ts=8 sw=4: -# $OpenBSD: Signature.pm,v 1.18 2015/03/26 22:07:58 kili Exp $ +# $OpenBSD: Signature.pm,v 1.19 2017/09/18 13:01:10 espie Exp $ # # Copyright (c) 2010 Marc Espie <espie@openbsd.org> # @@ -62,6 +62,26 @@ sub signature } } +package OpenBSD::PackingElement::Version; + +sub signature +{ + my ($self, $hash) = @_; + $hash->{VERSION} = $self; +} + +sub long_string +{ + my $self = shift; + return $self->{name}; +} + +sub compare +{ + my ($a, $b) = @_; + return $a->{name} <=> $b->{name}; +} + package OpenBSD::Signature; sub from_plist { @@ -70,6 +90,8 @@ sub from_plist my $k = {}; $plist->visit('signature', $k); + $k->{VERSION} //= OpenBSD::PackingElement::Version->new(0); + if ($plist->has('always-update')) { return $class->always->new($plist->pkgname, $k, $plist); } else { |