components/mailman/patches/02-var-share-start.patch
author John Beck <John.Beck@Oracle.COM>
Tue, 17 Feb 2015 16:34:10 -0800
changeset 3832 bed646d1991c
parent 2089 99dd558dda74
permissions -rw-r--r--
20258043 /var/mail/mailman fills up with cron output if mailman is unconfigured
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
2089
99dd558dda74 PSARC 2014/296 Mailman
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
     1
This patch is Solaris-specific and thus will not be contributed upstream.
99dd558dda74 PSARC 2014/296 Mailman
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
     2
99dd558dda74 PSARC 2014/296 Mailman
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
     3
--- mailman-2.1.18-1/misc/mailman.in.~1~	2014-05-06 09:43:56.000000000 -0700
3832
bed646d1991c 20258043 /var/mail/mailman fills up with cron output if mailman is unconfigured
John Beck <John.Beck@Oracle.COM>
parents: 2089
diff changeset
     4
+++ mailman-2.1.18-1/misc/mailman.in	2015-02-17 16:16:08.321600825 -0800
bed646d1991c 20258043 /var/mail/mailman fills up with cron output if mailman is unconfigured
John Beck <John.Beck@Oracle.COM>
parents: 2089
diff changeset
     5
@@ -33,13 +33,59 @@
2089
99dd558dda74 PSARC 2014/296 Mailman
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
     6
 # config: @prefix@/Mailman/mm_cfg.py
99dd558dda74 PSARC 2014/296 Mailman
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
     7
 # pidfile: @prefix@/data/master-qrunner.pid
99dd558dda74 PSARC 2014/296 Mailman
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
     8
 
99dd558dda74 PSARC 2014/296 Mailman
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
     9
+. /lib/svc/share/smf_include.sh
99dd558dda74 PSARC 2014/296 Mailman
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
    10
+
99dd558dda74 PSARC 2014/296 Mailman
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
    11
 PYTHON=@PYTHON@
99dd558dda74 PSARC 2014/296 Mailman
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
    12
 MAILMANHOME=@prefix@
99dd558dda74 PSARC 2014/296 Mailman
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
    13
 MAILMANCTL=$MAILMANHOME/bin/mailmanctl
99dd558dda74 PSARC 2014/296 Mailman
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
    14
+DATABASEDIR=/var/share/mailman
99dd558dda74 PSARC 2014/296 Mailman
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
    15
+
99dd558dda74 PSARC 2014/296 Mailman
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
    16
+# arguments:
99dd558dda74 PSARC 2014/296 Mailman
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
    17
+# $1 (required): directory to check for and create if needed
99dd558dda74 PSARC 2014/296 Mailman
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
    18
+# $2 (optional): mode
99dd558dda74 PSARC 2014/296 Mailman
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
    19
+create_if_needed()
99dd558dda74 PSARC 2014/296 Mailman
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
    20
+{
99dd558dda74 PSARC 2014/296 Mailman
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
    21
+    dir=$1
99dd558dda74 PSARC 2014/296 Mailman
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
    22
+    mode=02775
99dd558dda74 PSARC 2014/296 Mailman
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
    23
+    [[ $# -ge 2 ]] && mode=$2
99dd558dda74 PSARC 2014/296 Mailman
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
    24
+    if [[ ! -d $dir ]]; then
99dd558dda74 PSARC 2014/296 Mailman
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
    25
+	mkdir -m $mode $dir
99dd558dda74 PSARC 2014/296 Mailman
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
    26
+	chown mailman:mailman $dir
99dd558dda74 PSARC 2014/296 Mailman
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
    27
+    fi
99dd558dda74 PSARC 2014/296 Mailman
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
    28
+}
99dd558dda74 PSARC 2014/296 Mailman
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
    29
 
99dd558dda74 PSARC 2014/296 Mailman
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
    30
 case "$1" in
99dd558dda74 PSARC 2014/296 Mailman
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
    31
 'start')
99dd558dda74 PSARC 2014/296 Mailman
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
    32
     #rm -f $MAILMANHOME/locks/*
99dd558dda74 PSARC 2014/296 Mailman
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
    33
+
99dd558dda74 PSARC 2014/296 Mailman
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
    34
+    # Directories under /var/share are only created after a reboot, when
99dd558dda74 PSARC 2014/296 Mailman
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
    35
+    # an early-in-boot service migrates them from /var/.migrate .  To allow
99dd558dda74 PSARC 2014/296 Mailman
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
    36
+    # Mailman to be used after initial 'pkg install' before such a reboot,
99dd558dda74 PSARC 2014/296 Mailman
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
    37
+    # we manually create the required directories here if needed.
99dd558dda74 PSARC 2014/296 Mailman
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
    38
+    if [[ ! -d $DATABASEDIR ]]; then
99dd558dda74 PSARC 2014/296 Mailman
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
    39
+	mkdir $DATABASEDIR
99dd558dda74 PSARC 2014/296 Mailman
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
    40
+	create_if_needed $DATABASEDIR/archives
99dd558dda74 PSARC 2014/296 Mailman
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
    41
+	create_if_needed $DATABASEDIR/archives/private 02771
99dd558dda74 PSARC 2014/296 Mailman
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
    42
+	create_if_needed $DATABASEDIR/archives/public
99dd558dda74 PSARC 2014/296 Mailman
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
    43
+	create_if_needed $DATABASEDIR/lists
99dd558dda74 PSARC 2014/296 Mailman
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
    44
+	create_if_needed $DATABASEDIR/locks
99dd558dda74 PSARC 2014/296 Mailman
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
    45
+	create_if_needed $DATABASEDIR/logs
99dd558dda74 PSARC 2014/296 Mailman
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
    46
+	create_if_needed $DATABASEDIR/qfiles
99dd558dda74 PSARC 2014/296 Mailman
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
    47
+	create_if_needed $DATABASEDIR/spam
99dd558dda74 PSARC 2014/296 Mailman
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
    48
+    fi
99dd558dda74 PSARC 2014/296 Mailman
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
    49
+
99dd558dda74 PSARC 2014/296 Mailman
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
    50
+    # A single "site" list called mailman needs to exist first.  Check for
99dd558dda74 PSARC 2014/296 Mailman
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
    51
+    # it and create it if needed.
99dd558dda74 PSARC 2014/296 Mailman
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
    52
+    $MAILMANHOME/bin/list_lists -b | grep -q "^mailman$"
99dd558dda74 PSARC 2014/296 Mailman
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
    53
+    if [[ $? -ne 0 ]]; then
99dd558dda74 PSARC 2014/296 Mailman
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
    54
+	$MAILMANHOME/bin/newlist -q -e 127.0.0.1 mailman [email protected] mailman
99dd558dda74 PSARC 2014/296 Mailman
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
    55
+    fi
3832
bed646d1991c 20258043 /var/mail/mailman fills up with cron output if mailman is unconfigured
John Beck <John.Beck@Oracle.COM>
parents: 2089
diff changeset
    56
+    # Check to see if a crontab entry exists; if not, copy the input file
bed646d1991c 20258043 /var/mail/mailman fills up with cron output if mailman is unconfigured
John Beck <John.Beck@Oracle.COM>
parents: 2089
diff changeset
    57
+    # into place.
bed646d1991c 20258043 /var/mail/mailman fills up with cron output if mailman is unconfigured
John Beck <John.Beck@Oracle.COM>
parents: 2089
diff changeset
    58
+    crontab -l mailman > /dev/null 2>&1
bed646d1991c 20258043 /var/mail/mailman fills up with cron output if mailman is unconfigured
John Beck <John.Beck@Oracle.COM>
parents: 2089
diff changeset
    59
+    if [[ $? -ne 0 ]]; then
bed646d1991c 20258043 /var/mail/mailman fills up with cron output if mailman is unconfigured
John Beck <John.Beck@Oracle.COM>
parents: 2089
diff changeset
    60
+	VISUAL="/usr/bin/cp $MAILMANHOME/cron/crontab.in" crontab -e mailman
bed646d1991c 20258043 /var/mail/mailman fills up with cron output if mailman is unconfigured
John Beck <John.Beck@Oracle.COM>
parents: 2089
diff changeset
    61
+    fi
2089
99dd558dda74 PSARC 2014/296 Mailman
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
    62
     $PYTHON $MAILMANCTL -s -q start
99dd558dda74 PSARC 2014/296 Mailman
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
    63
     ;;
99dd558dda74 PSARC 2014/296 Mailman
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
    64