commit: ad72389ed8067d740dd0e3f975a33f0c1cbfd8b5 Author: Arfrever Frehtes Taifersar Arahesis <Arfrever <AT> Apache <DOT> Org> AuthorDate: Sun Mar 4 02:25:34 2018 +0000 Commit: Zac Medico <zmedico <AT> gentoo <DOT> org> CommitDate: Sun Mar 4 02:37:09 2018 +0000 URL: https://gitweb.gentoo.org/proj/portage.git/commit/?id=ad72389e
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 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:
