From 1d7c35a506b470e4d1fb2ca3e82ab1b824237384 Mon Sep 17 00:00:00 2001 From: Zac Medico Date: Sat, 12 Apr 2008 09:23:06 +0000 Subject: Make binarytree.prevent_collision() adjust permissions on directories and raise a PermissionDenied error if the required directories is not writable. (trunk r9850) svn path=/main/branches/2.1.2/; revision=9851 --- pym/portage.py | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'pym') diff --git a/pym/portage.py b/pym/portage.py index 5f829ac0d..aa5234ca7 100644 --- a/pym/portage.py +++ b/pym/portage.py @@ -7901,6 +7901,16 @@ class binarytree(object): use for a given cpv. If a collision will occur with an existing package from another category, the existing package will be bumped to ${PKGDIR}/${CATEGORY}/${PF}.tbz2 so that both can coexist.""" + + # Copy group permissions for new directories that + # may have been created. + for path in ("All", catsplit(cpv)[0]): + path = os.path.join(self.pkgdir, path) + self._ensure_dir(path) + if not os.access(path, os.W_OK): + raise portage_exception.PermissionDenied( + "access('%s', W_OK)" % path) + if not self.populated: # Try to avoid the population routine when possible, so that # FEATURES=buildpkg doesn't always force population. -- cgit v1.2.3-1-g7c22