components/mailman/patches/02-var-share-start.patch
author John Beck <John.Beck@Oracle.COM>
Fri, 12 Sep 2014 13:40:49 -0700
changeset 2089 99dd558dda74
child 3832 bed646d1991c
permissions -rw-r--r--
PSARC 2014/296 Mailman 15564143 SUNBT6843076 ship Mailman mailing list manager with Solaris
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
99dd558dda74 PSARC 2014/296 Mailman
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
     4
+++ mailman-2.1.18-1/misc/mailman.in	2014-09-12 11:27:53.659779385 -0700
99dd558dda74 PSARC 2014/296 Mailman
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
     5
@@ -33,13 +33,53 @@
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
99dd558dda74 PSARC 2014/296 Mailman
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
    56
     $PYTHON $MAILMANCTL -s -q start
99dd558dda74 PSARC 2014/296 Mailman
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
    57
     ;;
99dd558dda74 PSARC 2014/296 Mailman
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
    58