From 731017bbd6019c02c8a44d68eea0e9d8a76186ee Mon Sep 17 00:00:00 2001 From: Fabian Groffen Date: Tue, 18 Sep 2007 19:55:53 +0000 Subject: [PATCH] Merged from trunk 7788:7790 | 7789 | Use ensure_dirs() and apply_permissions() to avoid redundant | | zmedico | chown/chmod calls. This helps avoid 'Permission denied' | | | errors during elog_process() when the ebuild command is run | | | by normal user (issue reported by graaff). | | 7790 | Bug #190781 - Don't include --oneshot in the options that | | zmedico | --update implies. | svn path=/main/branches/prefix/; revision=7791 --- pym/emerge/__init__.py | 3 +-- pym/portage/elog/mod_save.py | 6 ++---- pym/portage/elog/mod_save_summary.py | 7 +++---- 3 files changed, 6 insertions(+), 10 deletions(-) diff --git a/pym/emerge/__init__.py b/pym/emerge/__init__.py index ff96a0bf6..3cd0e212f 100644 --- a/pym/emerge/__init__.py +++ b/pym/emerge/__init__.py @@ -1566,8 +1566,7 @@ class depgraph(object): arg_atoms = greedy_atoms oneshot = "--oneshot" in self.myopts or \ - "--onlydeps" in self.myopts or \ - "--update" in self.myopts + "--onlydeps" in self.myopts """ These are used inside self.create() in order to ensure packages that happen to match arguments are not incorrectly marked as nomerge.""" args_set = self._sets["args"] diff --git a/pym/portage/elog/mod_save.py b/pym/portage/elog/mod_save.py index 31c410fac..35c433828 100644 --- a/pym/portage/elog/mod_save.py +++ b/pym/portage/elog/mod_save.py @@ -5,6 +5,7 @@ import os, time from portage.data import portage_uid, portage_gid +from portage.util import ensure_dirs def process(mysettings, key, logentries, fulltext): path = key.replace("/", ":") @@ -13,10 +14,7 @@ def process(mysettings, key, logentries, fulltext): elogdir = os.path.join(mysettings["PORT_LOGDIR"], "elog") else: elogdir = os.path.join(os.sep, "var", "log", "portage", "elog") - if not os.path.exists(elogdir): - os.makedirs(elogdir) - os.chown(elogdir, portage_uid, portage_gid) - os.chmod(elogdir, 02770) + ensure_dirs(elogdir, uid=portage_uid, gid=portage_gid, mode=02770) elogfilename = elogdir+"/"+path+":"+time.strftime("%Y%m%d-%H%M%S", time.gmtime(time.time()))+".log" elogfile = open(elogfilename, "w") diff --git a/pym/portage/elog/mod_save_summary.py b/pym/portage/elog/mod_save_summary.py index 3c1325dbb..f5623cea9 100644 --- a/pym/portage/elog/mod_save_summary.py +++ b/pym/portage/elog/mod_save_summary.py @@ -5,6 +5,7 @@ import os, time from portage.data import portage_uid, portage_gid +from portage.util import ensure_dirs, apply_permissions from portage.const import EPREFIX def process(mysettings, key, logentries, fulltext): @@ -12,14 +13,12 @@ def process(mysettings, key, logentries, fulltext): elogdir = os.path.join(mysettings["PORT_LOGDIR"], "elog") else: elogdir = os.path.join(EPREFIX, "var", "log", "portage", "elog") - if not os.path.exists(elogdir): - os.makedirs(elogdir) - os.chown(elogdir, portage_uid, portage_gid) - os.chmod(elogdir, 02770) + ensure_dirs(elogdir, uid=portage_uid, gid=portage_gid, mode=02770) # TODO: Locking elogfilename = elogdir+"/summary.log" elogfile = open(elogfilename, "a") + apply_permissions(elogfilename, mode=060, mask=0) elogfile.write(">>> Messages generated by process %d on %s for package %s:\n\n" % \ (os.getpid(), time.strftime("%Y-%m-%d %H:%M:%S", time.gmtime(time.time())), key)) elogfile.write(fulltext) -- 2.26.2