From 69681abfc804d4db34b6bdcfd87f6982924290e4 Mon Sep 17 00:00:00 2001 From: Arfrever Frehtes Taifersar Arahesis Date: Sun, 4 Mar 2018 03:25:34 +0100 Subject: [PATCH] portage.util.movefile.movefile(): Fix preservation of security.capability extended attribute between different filesystems. 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 --- pym/portage/util/movefile.py | 4 ++-- 1 file 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: -- 2.16.2