elog/mod_save: ensure parent logdir exists
authorZac Medico <zmedico@gentoo.org>
Mon, 11 Jul 2011 18:00:33 +0000 (11:00 -0700)
committerZac Medico <zmedico@gentoo.org>
Mon, 11 Jul 2011 18:00:33 +0000 (11:00 -0700)
pym/portage/elog/mod_save.py
pym/portage/elog/mod_save_summary.py

index 40ba267658e0ebcdb738aecd1091c92c6234bdb7..36654b3f227dee85ffb7b226bfe379b8063dedf7 100644 (file)
@@ -8,8 +8,9 @@ from portage import os
 from portage import _encodings
 from portage import _unicode_decode
 from portage import _unicode_encode
+from portage.data import portage_gid
 from portage.package.ebuild.prepare_build_dirs import _ensure_log_subdirs
-from portage.util import normalize_path
+from portage.util import ensure_dirs, normalize_path
 
 def process(mysettings, key, logentries, fulltext):
 
@@ -18,6 +19,12 @@ def process(mysettings, key, logentries, fulltext):
        else:
                logdir = os.path.join(os.sep, "var", "log", "portage")
 
+       if not os.path.isdir(logdir):
+               # Only initialize group/mode if the directory doesn't
+               # exist, so that we don't override permissions if they
+               # were previously set by the administrator.
+               ensure_dirs(logdir, gid=portage_gid, mode=0o2770)
+
        cat = mysettings['CATEGORY']
        pf = mysettings['PF']
 
index 67bd76e55d98ba885dfc6f1111536fd8b71160b9..f090deaf0fd8e649cf01d65a66dede78473f8230 100644 (file)
@@ -8,9 +8,10 @@ from portage import os
 from portage import _encodings
 from portage import _unicode_decode
 from portage import _unicode_encode
+from portage.data import portage_gid
 from portage.localization import _
 from portage.package.ebuild.prepare_build_dirs import _ensure_log_subdirs
-from portage.util import apply_permissions, normalize_path
+from portage.util import apply_permissions, ensure_dirs, normalize_path
 
 def process(mysettings, key, logentries, fulltext):
        if mysettings.get("PORT_LOGDIR"):
@@ -18,6 +19,12 @@ def process(mysettings, key, logentries, fulltext):
        else:
                logdir = os.path.join(os.sep, "var", "log", "portage")
 
+       if not os.path.isdir(logdir):
+               # Only initialize group/mode if the directory doesn't
+               # exist, so that we don't override permissions if they
+               # were previously set by the administrator.
+               ensure_dirs(logdir, gid=portage_gid, mode=0o2770)
+
        elogdir = os.path.join(logdir, "elog")
        _ensure_log_subdirs(logdir, elogdir)