summaryrefslogtreecommitdiff
path: root/mail/mailman/Makefile
blob: 2ee80d3ad0ef98353fe5dc47f92b71652ebdd840 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
# $NetBSD: Makefile,v 1.37 2006/04/23 00:12:38 jlam Exp $

DISTNAME=	mailman-2.1.8rc1
CATEGORIES=	mail www
MASTER_SITES=	${MASTER_SITE_SOURCEFORGE:=mailman/}
EXTRACT_SUFX=	.tgz

MAINTAINER=	bouyer@NetBSD.org
HOMEPAGE=	http://www.list.org/
COMMENT=	The GNU Mailing List Manager

.include "../../mk/bsd.prefs.mk"

PKG_SYSCONFSUBDIR?=	httpd
MESSAGE_SUBST+=		PKG_SYSCONFDIR=${PKG_SYSCONFDIR}
MESSAGE_SUBST+=		DOCDIR=${DOCDIR}

GNU_CONFIGURE=		yes
GNU_CONFIGURE_PREFIX=	${EXECDIR}

MAKE_FLAGS+=		DIRSETGID=${TRUE:Q}
EXECDIR=		${PREFIX}/lib/mailman
MAILMAN_DATADIR?=	${VARBASE}/db/mailman
EGDIR=                  ${PREFIX}/share/examples/mailman
DOCDIR=                 ${PREFIX}/share/doc/mailman
MAILMAN_USER?= 		mailman
MAILMAN_GROUP?= 	mailman
MAILMAN_CGIGROUP?= 	${APACHE_GROUP}
MAILMAN_MAILGROUP?= 	guest # group of user 'daemon'
MAILMAN_CGIEXT?=	.cgi

MESSAGE_SUBST+=		EXECDIR=${EXECDIR}
MESSAGE_SUBST+=		MAILMAN_USER=${MAILMAN_USER}
PLIST_SUBST+=		PYVERSSUFFIX=${PYVERSSUFFIX:Q}
PLIST_SUBST+=		MAILMAN_CGIEXT=${MAILMAN_CGIEXT:S/none//}

PKG_GROUPS=		${MAILMAN_GROUP}
PKG_USERS=		${MAILMAN_USER}:${MAILMAN_GROUP}

PKG_GECOS.${MAILMAN_USER}=	Mailman user
PKG_SHELL.${MAILMAN_USER}=	${SH}

REQD_DIRS_PERMS+=	${EXECDIR} root ${MAILMAN_GROUP} 775
OWN_DIRS_PERMS+=	${MAILMAN_DATADIR} ${MAILMAN_USER} ${MAILMAN_GROUP} 775
MAKE_DIRS_PERMS+=	${MAILMAN_DATADIR}/archives ${MAILMAN_USER} ${MAILMAN_GROUP} 775
MAKE_DIRS_PERMS+=	${MAILMAN_DATADIR}/archives/public ${MAILMAN_USER} ${MAILMAN_GROUP} 775
MAKE_DIRS_PERMS+=	${MAILMAN_DATADIR}/archives/private ${MAILMAN_USER} ${MAILMAN_GROUP} 771
MAKE_DIRS_PERMS+=	${MAILMAN_DATADIR}/data ${MAILMAN_USER} ${MAILMAN_GROUP} 775
MAKE_DIRS_PERMS+=	${MAILMAN_DATADIR}/lists ${MAILMAN_USER} ${MAILMAN_GROUP} 775
MAKE_DIRS_PERMS+=	${MAILMAN_DATADIR}/locks ${MAILMAN_USER} ${MAILMAN_GROUP} 775
MAKE_DIRS_PERMS+=	${MAILMAN_DATADIR}/logs ${MAILMAN_USER} ${MAILMAN_GROUP} 775
MAKE_DIRS_PERMS+=	${MAILMAN_DATADIR}/qfiles ${MAILMAN_USER} ${MAILMAN_GROUP} 775
MAKE_DIRS_PERMS+=	${MAILMAN_DATADIR}/spam ${MAILMAN_USER} ${MAILMAN_GROUP} 775

CONF_FILES+=		${EGDIR}/mailman.conf ${PKG_SYSCONFDIR}/mailman.conf
CONF_FILES+=		${EXECDIR}/Mailman/mm_cfg.py.dist ${EXECDIR}/Mailman/mm_cfg.py

RCD_SCRIPTS=		mailman

INSTALL_TEMPLATE+=	${FILESDIR}/INSTALL
DEINSTALL_TEMPLATE+=	${FILESDIR}/DEINSTALL

PYTHON_VERSIONS_ACCEPTED= 24 23 22 21
PYTHON_PATCH_SCRIPTS+=	Mailman/Archiver/pipermail.py
PYTHON_PATCH_SCRIPTS+=	Mailman/Post.py
PYTHON_PATCH_SCRIPTS+=	admin/bin/Release.py
PYTHON_PATCH_SCRIPTS+=	admin/bin/faq2ht.py
PYTHON_PATCH_SCRIPTS+=	admin/bin/mm2do
PYTHON_PATCH_SCRIPTS+=	bin/msgfmt.py

CONFIGURE_ARGS+=	--with-cgi-gid=${MAILMAN_CGIGROUP:Q}
.if ${MAILMAN_CGIEXT} != "none"
CONFIGURE_ARGS+=	--with-cgi-ext=${MAILMAN_CGIEXT:Q}
.endif
CONFIGURE_ARGS+=	--with-groupname=${MAILMAN_GROUP:Q}
CONFIGURE_ARGS+=	--with-mail-gid=${MAILMAN_MAILGROUP:Q}
CONFIGURE_ARGS+=	--with-python=${PYTHONBIN:Q}
CONFIGURE_ARGS+=	--with-username=${MAILMAN_USER:Q}
CONFIGURE_ARGS+=	--with-var-prefix=${MAILMAN_DATADIR:Q}
CONFIGURE_ARGS+=	--without-permcheck

# Put in externally invalid defaults (MESSAGE directs how to fix it)
CONFIGURE_ARGS+=	--with-mailhost=localhost
CONFIGURE_ARGS+=	--with-urlhost=localhost

BUILD_DEFS+=		MAILMAN_DATADIR
BUILD_DEFS+=		MAILMAN_USER
BUILD_DEFS+=		MAILMAN_GROUP
BUILD_DEFS+=		MAILMAN_CGIGROUP
BUILD_DEFS+=		MAILMAN_MAILGROUP
BUILD_DEFS+=		MAILMAN_CGIEXT

SUBST_CLASSES+=		paths
SUBST_FILES.paths=	${WRKDIR}/mailman.conf.dist
SUBST_SED.paths+=	-e 's,@EXECDIR@,${EXECDIR},g'
SUBST_SED.paths+=	-e 's,@MAILMAN_DATADIR@,${MAILMAN_DATADIR},g'
SUBST_STAGE.paths=	post-patch

post-extract:
	${CP} ${FILESDIR}/mailman.conf.dist ${WRKDIR}/mailman.conf.dist

post-patch:
	${RM} -f ${WRKSRC}/[A-Z]*.orig

pre-install:
	${INSTALL} -d -o ${MAILMAN_USER} -g ${MAILMAN_GROUP} -m 775 ${EXECDIR}
	${INSTALL_DATA_DIR} ${DOCDIR}
	${INSTALL_DATA_DIR} ${EXECDIR}/support

post-install:
	cd ${WRKSRC} && for i in [A-IN-U]*; do \
		${INSTALL_DATA} $$i ${DOCDIR}/; \
	done
	cd ${WRKSRC}/admin/www && for i in \
	    mailman-*.ps mailman-*.pdf mailman-*.txt; do \
		${INSTALL_DATA} $$i ${DOCDIR}/; \
	done
	${INSTALL_DATA_DIR} ${EGDIR}
	${INSTALL_DATA} ${WRKDIR}/mailman.conf.dist ${EGDIR}/mailman.conf
	${CHOWN} -R root:${MAILMAN_GROUP} ${EXECDIR}
	${CHMOD} -R g+w ${EXECDIR}
	${CHMOD} g+s ${EXECDIR}/cgi-bin/*
	${RM} -f ${EXECDIR}/Mailman/mm_cfg.pyc

.include "../../lang/python/application.mk"
.include "../../mk/bsd.pkg.mk"