summaryrefslogtreecommitdiff
path: root/usr.sbin/pkg_add/OpenBSD/Ustar.pm
diff options
context:
space:
mode:
authorMarc Espie <espie@cvs.openbsd.org>2010-09-14 10:02:38 +0000
committerMarc Espie <espie@cvs.openbsd.org>2010-09-14 10:02:38 +0000
commiteeae1fd99b999e95874fd4f582d88d7894a60270 (patch)
tree1da450e8d0cdd7291980acde4f283b2fe50f14a0 /usr.sbin/pkg_add/OpenBSD/Ustar.pm
parent37800f62e7cbfe07a9447e53d37702c705c15d7b (diff)
set separate fields for atime/mtime in file entry, use them while creating.
allows user to undef them, and thus not to set utimes. Use that to not set utimes for pkginfo. fixes kili@'s bug in a nicer way wrt Ustar interface...
Diffstat (limited to 'usr.sbin/pkg_add/OpenBSD/Ustar.pm')
-rw-r--r--usr.sbin/pkg_add/OpenBSD/Ustar.pm10
1 files changed, 7 insertions, 3 deletions
diff --git a/usr.sbin/pkg_add/OpenBSD/Ustar.pm b/usr.sbin/pkg_add/OpenBSD/Ustar.pm
index b930daa2cba..6260600d9e4 100644
--- a/usr.sbin/pkg_add/OpenBSD/Ustar.pm
+++ b/usr.sbin/pkg_add/OpenBSD/Ustar.pm
@@ -1,5 +1,5 @@
# ex:ts=8 sw=4:
-# $OpenBSD: Ustar.pm,v 1.63 2010/08/23 05:36:20 kili Exp $
+# $OpenBSD: Ustar.pm,v 1.64 2010/09/14 10:02:37 espie Exp $
#
# Copyright (c) 2002-2007 Marc Espie <espie@openbsd.org>
#
@@ -161,7 +161,8 @@ sub next
my $result= $self->new_object({
name => $name,
mode => $mode,
- mtime=> $mtime,
+ atime => $mtime,
+ mtime => $mtime,
linkname=> $linkname,
uname => $uname,
uid => $uid,
@@ -401,7 +402,10 @@ sub set_modes
my $self = shift;
chown $self->{uid}, $self->{gid}, $self->{destdir}.$self->name;
chmod $self->{mode}, $self->{destdir}.$self->name;
- utime time, $self->{mtime}, $self->{destdir}.$self->name;
+ if (defined $self->{mtime} || defined $self->{atime}) {
+ utime $self->{atime} // time, $self->{mtime} // time,
+ $self->{destdir}.$self->name;
+ }
}
sub make_basedir