components/mailman/patches/02-var-share-start.patch
author John Beck <John.Beck@Oracle.COM>
Tue, 17 Feb 2015 16:34:10 -0800
branchs11-update
changeset 3921 11f3a18e5d09
parent 3919 e9daafafef42
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:
3919
e9daafafef42 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.
e9daafafef42 PSARC 2014/296 Mailman
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
     2
e9daafafef42 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
3921
11f3a18e5d09 20258043 /var/mail/mailman fills up with cron output if mailman is unconfigured
John Beck <John.Beck@Oracle.COM>
parents: 3919
diff changeset
     4
+++ mailman-2.1.18-1/misc/mailman.in	2015-02-17 16:16:08.321600825 -0800
11f3a18e5d09 20258043 /var/mail/mailman fills up with cron output if mailman is unconfigured
John Beck <John.Beck@Oracle.COM>
parents: 3919
diff changeset
     5
@@ -33,13 +33,59 @@
3919
e9daafafef42 PSARC 2014/296 Mailman
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
     6
 # config: @prefix@/Mailman/mm_cfg.py
e9daafafef42 PSARC 2014/296 Mailman
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
     7
 # pidfile: @prefix@/data/master-qrunner.pid
e9daafafef42 PSARC 2014/296 Mailman
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
     8
 
e9daafafef42 PSARC 2014/296 Mailman
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
     9
+. /lib/svc/share/smf_include.sh
e9daafafef42 PSARC 2014/296 Mailman
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
    10
+
e9daafafef42 PSARC 2014/296 Mailman
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
    11
 PYTHON=@PYTHON@
e9daafafef42 PSARC 2014/296 Mailman
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
    12
 MAILMANHOME=@prefix@
e9daafafef42 PSARC 2014/296 Mailman
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
    13
 MAILMANCTL=$MAILMANHOME/bin/mailmanctl
e9daafafef42 PSARC 2014/296 Mailman
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
    14
+DATABASEDIR=/var/share/mailman
e9daafafef42 PSARC 2014/296 Mailman
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
    15
+
e9daafafef42 PSARC 2014/296 Mailman
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
    16
+# arguments:
e9daafafef42 PSARC 2014/296 Mailman
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
    17
+# $1 (required): directory to check for and create if needed
e9daafafef42 PSARC 2014/296 Mailman
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
    18
+# $2 (optional): mode
e9daafafef42 PSARC 2014/296 Mailman
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
    19
+create_if_needed()
e9daafafef42 PSARC 2014/296 Mailman
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
    20
+{
e9daafafef42 PSARC 2014/296 Mailman
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
    21
+    dir=$1
e9daafafef42 PSARC 2014/296 Mailman
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
    22
+    mode=02775
e9daafafef42 PSARC 2014/296 Mailman
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
    23
+    [[ $# -ge 2 ]] && mode=$2
e9daafafef42 PSARC 2014/296 Mailman
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
    24
+    if [[ ! -d $dir ]]; then
e9daafafef42 PSARC 2014/296 Mailman
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
    25
+	mkdir -m $mode $dir
e9daafafef42 PSARC 2014/296 Mailman
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
    26
+	chown mailman:mailman $dir
e9daafafef42 PSARC 2014/296 Mailman
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
    27
+    fi
e9daafafef42 PSARC 2014/296 Mailman
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
    28
+}
e9daafafef42 PSARC 2014/296 Mailman
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
    29
 
e9daafafef42 PSARC 2014/296 Mailman
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
    30
 case "$1" in
e9daafafef42 PSARC 2014/296 Mailman
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
    31
 'start')
e9daafafef42 PSARC 2014/296 Mailman
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
    32
     #rm -f $MAILMANHOME/locks/*
e9daafafef42 PSARC 2014/296 Mailman
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
    33
+
e9daafafef42 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
e9daafafef42 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
e9daafafef42 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,
e9daafafef42 PSARC 2014/296 Mailman
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
    37
+    # we manually create the required directories here if needed.
e9daafafef42 PSARC 2014/296 Mailman
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
    38
+    if [[ ! -d $DATABASEDIR ]]; then
e9daafafef42 PSARC 2014/296 Mailman
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
    39
+	mkdir $DATABASEDIR
e9daafafef42 PSARC 2014/296 Mailman
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
    40
+	create_if_needed $DATABASEDIR/archives
e9daafafef42 PSARC 2014/296 Mailman
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
    41
+	create_if_needed $DATABASEDIR/archives/private 02771
e9daafafef42 PSARC 2014/296 Mailman
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
    42
+	create_if_needed $DATABASEDIR/archives/public
e9daafafef42 PSARC 2014/296 Mailman
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
    43
+	create_if_needed $DATABASEDIR/lists
e9daafafef42 PSARC 2014/296 Mailman
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
    44
+	create_if_needed $DATABASEDIR/locks
e9daafafef42 PSARC 2014/296 Mailman
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
    45
+	create_if_needed $DATABASEDIR/logs
e9daafafef42 PSARC 2014/296 Mailman
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
    46
+	create_if_needed $DATABASEDIR/qfiles
e9daafafef42 PSARC 2014/296 Mailman
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
    47
+	create_if_needed $DATABASEDIR/spam
e9daafafef42 PSARC 2014/296 Mailman
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
    48
+    fi
e9daafafef42 PSARC 2014/296 Mailman
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
    49
+
e9daafafef42 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
e9daafafef42 PSARC 2014/296 Mailman
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
    51
+    # it and create it if needed.
e9daafafef42 PSARC 2014/296 Mailman
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
    52
+    $MAILMANHOME/bin/list_lists -b | grep -q "^mailman$"
e9daafafef42 PSARC 2014/296 Mailman
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
    53
+    if [[ $? -ne 0 ]]; then
e9daafafef42 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
e9daafafef42 PSARC 2014/296 Mailman
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
    55
+    fi
3921
11f3a18e5d09 20258043 /var/mail/mailman fills up with cron output if mailman is unconfigured
John Beck <John.Beck@Oracle.COM>
parents: 3919
diff changeset
    56
+    # Check to see if a crontab entry exists; if not, copy the input file
11f3a18e5d09 20258043 /var/mail/mailman fills up with cron output if mailman is unconfigured
John Beck <John.Beck@Oracle.COM>
parents: 3919
diff changeset
    57
+    # into place.
11f3a18e5d09 20258043 /var/mail/mailman fills up with cron output if mailman is unconfigured
John Beck <John.Beck@Oracle.COM>
parents: 3919
diff changeset
    58
+    crontab -l mailman > /dev/null 2>&1
11f3a18e5d09 20258043 /var/mail/mailman fills up with cron output if mailman is unconfigured
John Beck <John.Beck@Oracle.COM>
parents: 3919
diff changeset
    59
+    if [[ $? -ne 0 ]]; then
11f3a18e5d09 20258043 /var/mail/mailman fills up with cron output if mailman is unconfigured
John Beck <John.Beck@Oracle.COM>
parents: 3919
diff changeset
    60
+	VISUAL="/usr/bin/cp $MAILMANHOME/cron/crontab.in" crontab -e mailman
11f3a18e5d09 20258043 /var/mail/mailman fills up with cron output if mailman is unconfigured
John Beck <John.Beck@Oracle.COM>
parents: 3919
diff changeset
    61
+    fi
3919
e9daafafef42 PSARC 2014/296 Mailman
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
    62
     $PYTHON $MAILMANCTL -s -q start
e9daafafef42 PSARC 2014/296 Mailman
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
    63
     ;;
e9daafafef42 PSARC 2014/296 Mailman
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
    64