summaryrefslogtreecommitdiffstats
path: root/pym/portage/util/movefile.py
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2011-12-09 16:47:52 -0800
committerZac Medico <zmedico@gentoo.org>2011-12-09 16:47:52 -0800
commit9f090f6397574e83198d6929b24561949aff8802 (patch)
tree18026dcfef746354306fd531196c500f7ec2dd57 /pym/portage/util/movefile.py
parent4df21a13440d36a94e34ba421d1fb8bc77d35be0 (diff)
downloadportage-9f090f6397574e83198d6929b24561949aff8802.tar.gz
portage-9f090f6397574e83198d6929b24561949aff8802.tar.bz2
portage-9f090f6397574e83198d6929b24561949aff8802.zip
Support FEATURES=xattr.
Diffstat (limited to 'pym/portage/util/movefile.py')
-rw-r--r--pym/portage/util/movefile.py7
1 files changed, 5 insertions, 2 deletions
diff --git a/pym/portage/util/movefile.py b/pym/portage/util/movefile.py
index c777b24ba..e1dfa429f 100644
--- a/pym/portage/util/movefile.py
+++ b/pym/portage/util/movefile.py
@@ -70,6 +70,7 @@ def movefile(src, dest, newmtime=None, sstat=None, mysettings=None,
mysettings = portage.settings
src_bytes = _unicode_encode(src, encoding=encoding, errors='strict')
+ xattr_enabled = "xattr" in mysettings.features
selinux_enabled = mysettings.selinux_enabled()
if selinux_enabled:
selinux = _unicode_module_wrapper(_selinux, encoding=encoding)
@@ -208,12 +209,14 @@ def movefile(src, dest, newmtime=None, sstat=None, mysettings=None,
try: # For safety copy then move it over.
if selinux_enabled:
selinux.copyfile(src, dest_tmp)
- _copyxattr(src_bytes, dest_tmp_bytes)
+ if xattr_enabled:
+ _copyxattr(src_bytes, dest_tmp_bytes)
_apply_stat(sstat, dest_tmp_bytes)
selinux.rename(dest_tmp, dest)
else:
shutil.copyfile(src, dest_tmp)
- _copyxattr(src_bytes, dest_tmp_bytes)
+ if xattr_enabled:
+ _copyxattr(src_bytes, dest_tmp_bytes)
_apply_stat(sstat, dest_tmp_bytes)
os.rename(dest_tmp, dest)
os.unlink(src)