aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorArfrever Frehtes Taifersar Arahesis <Arfrever@Apache.Org>2018-03-04 03:25:34 +0100
committerZac Medico <zmedico@gentoo.org>2018-03-03 18:37:09 -0800
commitad72389ed8067d740dd0e3f975a33f0c1cbfd8b5 (patch)
treee1859c7cd010053dcbe03af96c8743a51cd5736d /pym/portage/util/movefile.py
parent_spawn_actionmap: simplify nosandbox logic (diff)
downloadportage-ad72389ed8067d740dd0e3f975a33f0c1cbfd8b5.tar.gz
portage-ad72389ed8067d740dd0e3f975a33f0c1cbfd8b5.tar.bz2
portage-ad72389ed8067d740dd0e3f975a33f0c1cbfd8b5.zip
movefile: Fix preservation of security.capability xattr
Call _apply_stat() before copying extended attributes, because _apply_stat() calls os.chown() which results in deleting security.capability extended attribute. Bug: https://bugs.gentoo.org/649418
Diffstat (limited to 'pym/portage/util/movefile.py')
-rw-r--r--pym/portage/util/movefile.py4
1 files changed, 2 insertions, 2 deletions
diff --git a/pym/portage/util/movefile.py b/pym/portage/util/movefile.py
index 37c809eb5..5477a669f 100644
--- a/pym/portage/util/movefile.py
+++ b/pym/portage/util/movefile.py
@@ -1,4 +1,4 @@
-# Copyright 2010-2013 Gentoo Foundation
+# Copyright 2010-2018 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
from __future__ import absolute_import, unicode_literals
@@ -272,6 +272,7 @@ def movefile(src, dest, newmtime=None, sstat=None, mysettings=None,
errors='strict')
try: # For safety copy then move it over.
_copyfile(src_bytes, dest_tmp_bytes)
+ _apply_stat(sstat, dest_tmp_bytes)
if xattr_enabled:
try:
_copyxattr(src_bytes, dest_tmp_bytes,
@@ -286,7 +287,6 @@ def movefile(src, dest, newmtime=None, sstat=None, mysettings=None,
for line in msg:
writemsg("!!! %s\n" % (line,), noiselevel=-1)
raise
- _apply_stat(sstat, dest_tmp_bytes)
_rename(dest_tmp_bytes, dest_bytes)
_os.unlink(src_bytes)
except SystemExit as e: