diff options
author | Zac Medico <zmedico@gentoo.org> | 2010-12-20 05:48:39 -0800 |
---|---|---|
committer | Zac Medico <zmedico@gentoo.org> | 2010-12-20 05:48:39 -0800 |
commit | f991bb526d50c363dd0743955cb463f7ecb135cb (patch) | |
tree | 03fd3683404bc2803d2bf394c6df490726e2c51b | |
parent | 24e928472a1e9def98378c1ad3c06b9232b599cd (diff) | |
download | portage-f991bb526d50c363dd0743955cb463f7ecb135cb.tar.gz portage-f991bb526d50c363dd0743955cb463f7ecb135cb.tar.bz2 portage-f991bb526d50c363dd0743955cb463f7ecb135cb.zip |
Use write_atomic to rewrite lafiles.
This should succeed even in some cases in which a normal write might
fail due to file permission settings on some operating systems such as
HP-UX.
-rw-r--r-- | pym/portage/package/ebuild/doebuild.py | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/pym/portage/package/ebuild/doebuild.py b/pym/portage/package/ebuild/doebuild.py index 5bba19ff8..3071cf8d4 100644 --- a/pym/portage/package/ebuild/doebuild.py +++ b/pym/portage/package/ebuild/doebuild.py @@ -1453,11 +1453,12 @@ def _post_src_install_uid_fix(mysettings, out): fixlafiles_announced = True writemsg("Fixing .la files\n", fd=out) writemsg(" %s\n" % fpath[len(destdir):], fd=out) - f = open(_unicode_encode(fpath, + # write_atomic succeeds even in some cases in which + # a normal write might fail due to file permission + # settings on some operating systems such as HP-UX + write_atomic(_unicode_encode(fpath, encoding=_encodings['merge'], errors='strict'), - mode='wb') - f.write(new_contents) - f.close() + new_contents, mode='wb') mystat = os.lstat(fpath) if stat.S_ISREG(mystat.st_mode) and \ |