diff options
author | 2005-10-19 10:41:19 +0000 | |
---|---|---|
committer | 2005-10-19 10:41:19 +0000 | |
commit | ca9f073c06599b05a68530922f3a30304c29e845 (patch) | |
tree | 5968bf9636458e474e9f27fb2ab58c110c28e4fa | |
parent | on "bgpctl neighbor foo clear", we used to send a STOP event immediately (diff) | |
download | wireguard-openbsd-ca9f073c06599b05a68530922f3a30304c29e845.tar.xz wireguard-openbsd-ca9f073c06599b05a68530922f3a30304c29e845.zip |
mark links being extracted with `zap', so that they do not get recorded
into partial plists until they've gone through an actual install.
Prevents partial replacements from destroying genuine links in packages
when they get uninstalled.
-rw-r--r-- | usr.sbin/pkg_add/OpenBSD/Add.pm | 4 | ||||
-rw-r--r-- | usr.sbin/pkg_add/OpenBSD/PackingElement.pm | 3 | ||||
-rw-r--r-- | usr.sbin/pkg_add/OpenBSD/Update.pm | 3 |
3 files changed, 7 insertions, 3 deletions
diff --git a/usr.sbin/pkg_add/OpenBSD/Add.pm b/usr.sbin/pkg_add/OpenBSD/Add.pm index e3bf3bf536c..98f0b159fbc 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.42 2005/09/24 12:52:19 espie Exp $ +# $OpenBSD: Add.pm,v 1.43 2005/10/19 10:41:19 espie Exp $ # # Copyright (c) 2003-2004 Marc Espie <espie@openbsd.org> # @@ -332,8 +332,10 @@ sub install File::Path::mkpath(dirname($destdir.$fullname)); if (defined $self->{link}) { link($destdir.$self->{link}, $destdir.$fullname); + delete $self->{zap}; } elsif (defined $self->{symlink}) { symlink($self->{symlink}, $destdir.$fullname); + delete $self->{zap}; } else { rename($self->{tempname}, $destdir.$fullname) or Fatal "Can't move ", $self->{tempname}, " to $fullname: $!"; diff --git a/usr.sbin/pkg_add/OpenBSD/PackingElement.pm b/usr.sbin/pkg_add/OpenBSD/PackingElement.pm index 0ee0f853ac7..c8b0287e159 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.78 2005/09/04 22:47:56 espie Exp $ +# $OpenBSD: PackingElement.pm,v 1.79 2005/10/19 10:41:19 espie Exp $ # # Copyright (c) 2003-2004 Marc Espie <espie@openbsd.org> # @@ -261,6 +261,7 @@ use File::Basename; sub write { my ($self, $fh) = @_; + return if defined $self->{zap}; print $fh "\@ignore\n" if defined $self->{ignore}; print $fh "\@comment no checksum\n" if defined $self->{nochecksum}; $self->SUPER::write($fh); diff --git a/usr.sbin/pkg_add/OpenBSD/Update.pm b/usr.sbin/pkg_add/OpenBSD/Update.pm index 9db13adf5fe..4238434e4c3 100644 --- a/usr.sbin/pkg_add/OpenBSD/Update.pm +++ b/usr.sbin/pkg_add/OpenBSD/Update.pm @@ -1,5 +1,5 @@ # ex:ts=8 sw=4: -# $OpenBSD: Update.pm,v 1.57 2005/09/09 09:11:38 espie Exp $ +# $OpenBSD: Update.pm,v 1.58 2005/10/19 10:41:19 espie Exp $ # # Copyright (c) 2004 Marc Espie <espie@openbsd.org> # @@ -62,6 +62,7 @@ sub extract my $file = $self->prepare_to_extract($state); if (defined $self->{link} || defined $self->{symlink}) { + $self->{zap} = 1; return; } |