File mailman-2.1.4-dirmode.patch of Package mailman.13240

--- mailman-2.1.6/Makefile.in
+++ mailman-2.1.6/Makefile.in
@@ -103,7 +103,7 @@
 	    if test ! -d $$dir; then \
 		echo "Creating directory hierarchy $$dir"; \
 		$(srcdir)/mkinstalldirs $$dir; \
-		chmod $(DIRMODE) $$dir; \
+		chmod $(EXEMODE) $$dir; \
 		$(DIRSETGID) $$dir; \
 	    else true; \
 	    fi; \
@@ -115,7 +115,7 @@
 	    if test ! -d $$dir; then \
 		echo "Creating directory hierarchy $$dir"; \
 		$(srcdir)/mkinstalldirs $$dir; \
-		chmod $(DIRMODE) $$dir; \
+		chmod $(EXEMODE) $$dir; \
 		$(DIRSETGID) $$dir; \
 	    else true; \
 	    fi; \
--- mailman-2.1.6/bin/check_perms
+++ mailman-2.1.6/bin/check_perms
@@ -70,6 +70,7 @@
 STATE = State()
 
 DIRPERMS = S_ISGID | S_IRWXU | S_IRWXG | S_IROTH | S_IXOTH
+DIRPERMS_VAR = S_ISGID | S_IRWXU | S_IROTH | S_IXOTH
 QFILEPERMS = S_ISGID | S_IRWXU | S_IRWXG
 PYFILEPERMS = S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH
 ARTICLEFILEPERMS = S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP
@@ -174,8 +175,7 @@
         prefix = mm_cfg.PREFIX
         print _('checking mode for %(prefix)s')
     dirs = {}
-    for d in (mm_cfg.PREFIX, mm_cfg.EXEC_PREFIX, mm_cfg.VAR_PREFIX,
-              mm_cfg.LOG_DIR):
+    for d in (mm_cfg.VAR_PREFIX, mm_cfg.LOG_DIR):
         dirs[d] = True
     for d in dirs.keys():
         try:
@@ -184,14 +184,24 @@
             if e.errno <> errno.ENOENT: raise
             print _('WARNING: directory does not exist: %(d)s')
             continue
-        if (mode & DIRPERMS) <> DIRPERMS:
-            STATE.ERRORS += 1
-            print _('directory must be at least 02775: %(d)s'),
-            if STATE.FIX:
-                print _('(fixing)')
-                os.chmod(d, mode | DIRPERMS)
-            else:
-                print
+        if (d == mm_cfg.VAR_PREFIX):
+            if (mode & DIRPERMS_VAR) <> DIRPERMS_VAR:
+                STATE.ERRORS += 1
+                print _('directory must be 02755: %(d)s'),
+                if STATE.FIX:
+                    print _('(fixing)')
+                    os.chmod(d, mode | DIRPERMS_VAR)
+                else:
+                    print
+        else:
+            if (mode & DIRPERMS) <> DIRPERMS:
+                STATE.ERRORS += 1
+                print _('directory must be at least 02775: %(d)s'),
+                if STATE.FIX:
+                    print _('(fixing)')
+                    os.chmod(d, mode | DIRPERMS)
+                else:
+                    print
         # check all subdirs
         os.path.walk(d, checkwalk, STATE)
 
openSUSE Build Service is sponsored by