From c830f062b69919639eaa6b814eca8b52e3a3436b Mon Sep 17 00:00:00 2001 From: Zac Medico Date: Thu, 10 Dec 2009 00:50:04 +0000 Subject: Handle permission problems when trying to cache the remote Packages file from a binhost. Thanks to Jeremy Olexa for reporting. svn path=/main/trunk/; revision=14997 --- pym/portage/dbapi/bintree.py | 15 +++++++++++---- 1 file 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: -- cgit v1.2.3-1-g7c22