diff options
author | Zac Medico <zmedico@gentoo.org> | 2009-12-10 01:05:49 +0000 |
---|---|---|
committer | Zac Medico <zmedico@gentoo.org> | 2009-12-10 01:05:49 +0000 |
commit | 110bcc9df3f9ad2373dec2023b7532683880373b (patch) | |
tree | 7356853d3ddbf9c077c734f274051ae08a42ab8f /pym | |
parent | 1342d0942648f1408f4924955818cd3b9c1f869a (diff) | |
download | portage-110bcc9df3f9ad2373dec2023b7532683880373b.tar.gz portage-110bcc9df3f9ad2373dec2023b7532683880373b.tar.bz2 portage-110bcc9df3f9ad2373dec2023b7532683880373b.zip |
Handle permission problems when trying to cache the remote Packages file
from a binhost. Thanks to Jeremy Olexa <darkside@g.o> for reporting.
(trunk r14997)
svn path=/main/branches/2.1.7/; revision=15013
Diffstat (limited to 'pym')
-rw-r--r-- | pym/portage/dbapi/bintree.py | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/pym/portage/dbapi/bintree.py b/pym/portage/dbapi/bintree.py index cd5d0b6eb..d4039e396 100644 --- a/pym/portage/dbapi/bintree.py +++ b/pym/portage/dbapi/bintree.py @@ -739,10 +739,17 @@ class binarytree(object): if pkgindex is rmt_idx: pkgindex.modified = False # don't update the header from portage.util import atomic_ofstream, ensure_dirs - ensure_dirs(os.path.dirname(pkgindex_file)) - f = atomic_ofstream(pkgindex_file) - pkgindex.write(f) - f.close() + try: + ensure_dirs(os.path.dirname(pkgindex_file)) + f = atomic_ofstream(pkgindex_file) + pkgindex.write(f) + f.close() + except PortageException: + if os.access(os.path.join( + self.settings["ROOT"], CACHE_PATH), os.W_OK): + raise + # The current user doesn't have permission to cache the + # file, but that's alright. if pkgindex: self._remotepkgs = {} for d in pkgindex.packages: |