aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAvatar Ciaran McCreesh <ciaran.mccreesh@googlemail.com> 2008-04-30 22:03:27 +0000
committerAvatar Ciaran McCreesh <ciaran.mccreesh@googlemail.com> 2008-04-30 22:03:27 +0000
commit0d743c4d8ec5233688a2299b6ca2329f59503cc8 (patch)
tree9c9edeaed32e6d94e61069bb59db60343dee1f8f
parent0e344bca718c18657b4ffa75497a626abe605ca5 (diff)
downloadpaludis-0d743c4d8ec5233688a2299b6ca2329f59503cc8.tar.gz
paludis-0d743c4d8ec5233688a2299b6ca2329f59503cc8.tar.xz
Bug fix: if we install a directory via rename(), call utime() on all file children.
-rw-r--r--paludis/merger.cc2
1 files changed, 2 insertions, 0 deletions
diff --git a/paludis/merger.cc b/paludis/merger.cc
index 7279992..f36ff02 100644
--- a/paludis/merger.cc
+++ b/paludis/merger.cc
@@ -840,6 +840,8 @@ Merger::record_renamed_dir_recursive(const FSEntry & dst)
continue;
case et_file:
+ if (! FSEntry(*d).utime())
+ throw MergerError("utime(" + stringify(*d) + ", 0) failed: " + stringify(::strerror(errno)));
record_install_file(*d, dst, stringify(d->basename()), MergeStatusFlags() + msi_parent_rename);
_imp->merged_ids.insert(make_pair(d->lowlevel_id(), stringify(*d)));
continue;