pkgsrc/mail/majordomo/Makefile
spz ae1b4b4cc6 stop majordomo from chowning /var/tmp to user majordom due to a superannuated
default in mk/defaults/mk.conf

remove the non-shared defaults and put in the setting that actually gets
used by more than one package (namely, MAJORDOMO_HOMEDIR)

don't make the majordom user own more than it actually needs to

make resend, archive, request-answer and medit honor the MAJORDOMO_CF
environment variable over the command line option, so that someone calling
these via the wrapper (which sets the environment variable) can't make
the majordom user execute random perl code by specifying it as config file.
Thanks to salo for finding this issue.
2011-01-29 17:16:32 +00:00

156 lines
5.4 KiB
Makefile

# $NetBSD: Makefile,v 1.41 2011/01/29 17:16:33 spz Exp $
DISTNAME= majordomo-1.94.5
PKGREVISION= 11
CATEGORIES= mail
MASTER_SITES= ftp://ftp.sgi.com/other/majordomo/1.94.5/ \
ftp://ftp-europe.sgi.com/other/majordomo/1.94.5/
EXTRACT_SUFX= .tgz
MAINTAINER= spz@NetBSD.org
HOMEPAGE= http://www.greatcircle.com/majordomo/
COMMENT= The Majordomo mailing list manager
LICENSE= majordomo-license
PKG_DESTDIR_SUPPORT= destdir
MAKE_JOBS_SAFE= NO
RESTRICTED= No distribution of modified binary packages to the general public
NO_BIN_ON_FTP= ${RESTRICTED}
NO_BIN_ON_CDROM= ${RESTRICTED}
CONFLICTS+= bounce-[0-9]*
USE_TOOLS+= perl:run
BUILD_TARGET= wrapper
INSTALL_TARGET= install install-wrapper
MAKE_FILE= Makefile.netbsd
.include "../../mk/bsd.prefs.mk"
PKG_SYSCONFSUBDIR= majordomo
CONF_FILES+= ${EXAMPLEDIR}/aliases.majordomo ${PKG_SYSCONFDIR}/aliases
CONF_FILES+= ${EXAMPLEDIR}/majordomo.cf ${MAJORDOMO_CF}
MAJORDOMO_HOMEDIR?= ${VARBASE}/majordomo
MAJORDOMO_TMPDIR?= ${VARBASE}/majordomo/tmp
MAJORDOMO_CF?= ${PKG_SYSCONFDIR}/majordomo.cf
MAJORDOMO_USER?= majordom
MAJORDOMO_GROUP?= majordom
PKG_GECOS.${MAJORDOMO_USER}= Majordomo Mailinglist Manager
PKG_HOME.${MAJORDOMO_USER}= ${MAJORDOMO_HOMEDIR}
PKG_GROUPS_VARS+= MAJORDOMO_GROUP
PKG_USERS_VARS+= MAJORDOMO_USER
MESSAGE_SUBST+= HOME=${MAJORDOMO_HOMEDIR} \
MAJORDOMO_CF=${MAJORDOMO_CF} \
MAJORDOMO_USER=${MAJORDOMO_USER} \
MAJORDOMO_GROUP=${MAJORDOMO_GROUP}
DOCDIR= ${PREFIX}/share/doc/majordomo
DOCFILES= Changelog FUTURE INSTALL LICENSE NEWLIST README
DOCDOCFILES= FAQ README.sequencer list-owner-info \
majordomo-faq.html majordomo.lisa6.ps majordomo.ora
EXAMPLEDIR= ${PREFIX}/share/examples/majordomo
EXDIRS= archives archives/example-l digests \
digests/example-l-digest lists
EXFILES= example-l.passwd example-l.info
EXLISTS= example-l example-l-digest
BUILD_DEFS+= MAJORDOMO_TMPDIR
BUILD_DEFS+= MAJORDOMO_HOMEDIR
BUILD_DEFS+= MAJORDOMO_CF
BUILD_DEFS+= VARBASE
USERGROUP_PHASE= configure
PKG_GROUPS= ${MAJORDOMO_GROUP}
PKG_USERS= ${MAJORDOMO_USER}:${MAJORDOMO_GROUP}
OWN_DIRS_PERMS+= ${MAJORDOMO_HOMEDIR} \
${MAJORDOMO_USER} ${MAJORDOMO_GROUP} 0755
OWN_DIRS_PERMS+= ${MAJORDOMO_HOMEDIR}/archives \
${MAJORDOMO_USER} ${MAJORDOMO_GROUP} 0755
OWN_DIRS_PERMS+= ${MAJORDOMO_HOMEDIR}/digests \
${MAJORDOMO_USER} ${MAJORDOMO_GROUP} 0755
OWN_DIRS_PERMS+= ${MAJORDOMO_HOMEDIR}/lists \
${MAJORDOMO_USER} ${MAJORDOMO_GROUP} 0755
OWN_DIRS_PERMS+= ${MAJORDOMO_TMPDIR} \
${MAJORDOMO_USER} ${MAJORDOMO_GROUP} 0755
CONFIGURE_SED= -e "s|@PREFIX@|${PREFIX}|g" \
-e "s|@PERL@|${PERL5}|g" \
-e "s|@HOME@|${MAJORDOMO_HOMEDIR}|g" \
-e "s|@MAJORDOMO_CF@|${MAJORDOMO_CF}|g" \
-e "s|@MAJORDOMO_USER@|${MAJORDOMO_USER}|g" \
-e "s|@MAJORDOMO_GROUP@|${MAJORDOMO_GROUP}|g" \
-e "s|@TMPDIR@|${MAJORDOMO_TMPDIR}|g"
MESSAGE_SED= -e 's|$${PREFIX}|${PREFIX}|g' \
-e 's|$${HOME}|${HOME}|g' \
-e 's|$${MAJORDOMO_CF}|${MAJORDOMO_CF}|g' \
-e 's|$${MAJORDOMO_USER}|${MAJORDOMO_USER}|g' \
-e 's|$${MAJORDOMO_GROUP}|${MAJORDOMO_GROUP}|g'
MAKE_DIRS+= ${PKG_SYSCONFDIR}
INSTALLATION_DIRS+= ${PREFIX}/bin
INSTALLATION_DIRS+= ${PREFIX}/libexec/majordomo
INSTALLATION_DIRS+= ${PKGMANDIR}/man1
INSTALLATION_DIRS+= ${PKGMANDIR}/man8
do-configure:
${SED} ${CONFIGURE_SED} ${WRKSRC}/Makefile > ${WRKSRC}/Makefile.netbsd
post-build:
${SED} ${CONFIGURE_SED} ${WRKSRC}/sample.cf > ${WRKSRC}/majordomo.cf
${SED} ${CONFIGURE_SED} ${FILESDIR}/aliases.majordomo \
> ${WRKSRC}/aliases.majordomo
${SED} -e 's|$${PREFIX}|${PREFIX}|g' \
-e 's|$${HOME}|${HOME}|g' \
-e 's|$${MAJORDOMO_CF}|${MAJORDOMO_CF}|g' \
-e 's|$${MAJORDOMO_USER}|${MAJORDOMO_USER}|g' \
-e 's|$${MAJORDOMO_GROUP}|${MAJORDOMO_GROUP}|g' \
${PKGDIR}/MESSAGE > ${WRKSRC}/post-install-notes
post-install:
${LN} -sf archive2.pl ${DESTDIR}${PREFIX}/libexec/majordomo/archive
${INSTALL_DATA_DIR} ${DESTDIR}${DOCDIR}
.for file in ${DOCFILES}
${INSTALL_DATA} ${WRKSRC}/${file} ${DESTDIR}${DOCDIR}/${file}
.endfor
.for file in ${DOCDOCFILES}
${INSTALL_DATA} ${WRKSRC}/Doc/${file} ${DESTDIR}${DOCDIR}/${file}
.endfor
${INSTALL_DATA} ${WRKSRC}/post-install-notes ${DESTDIR}${DOCDIR}/post-install-notes
${INSTALL} -d -m 755 -o ${MAJORDOMO_USER} -g ${MAJORDOMO_GROUP} ${DESTDIR}${EXAMPLEDIR}
.for dir in ${EXDIRS}
${INSTALL} -d -m 755 -o ${MAJORDOMO_USER} -g ${MAJORDOMO_GROUP} ${DESTDIR}${EXAMPLEDIR}/${dir}
.endfor
${INSTALL_DATA} ${WRKSRC}/aliases.majordomo \
${DESTDIR}${EXAMPLEDIR}/aliases.majordomo
${INSTALL} -m 644 -o ${MAJORDOMO_USER} -g ${MAJORDOMO_GROUP} \
${FILESDIR}/keep_me ${DESTDIR}${EXAMPLEDIR}/archives/example-l/.keep_me
${INSTALL} -m 644 -o ${MAJORDOMO_USER} -g ${MAJORDOMO_GROUP} \
${FILESDIR}/keep_me ${DESTDIR}${EXAMPLEDIR}/digests/example-l-digest/.keep_me
.for file in ${EXFILES}
${INSTALL} -m 644 -o ${MAJORDOMO_USER} -g ${MAJORDOMO_GROUP} \
${FILESDIR}/${file} ${DESTDIR}${EXAMPLEDIR}/lists/${file}
.endfor
.for file in ${EXLISTS}
${INSTALL} -m 644 -o ${MAJORDOMO_USER} -g ${MAJORDOMO_GROUP} \
/dev/null ${DESTDIR}${EXAMPLEDIR}/lists/${file}
.endfor
${LN} -sf example-l.info ${DESTDIR}${EXAMPLEDIR}/lists/example-l-digest.info
${LN} -sf example-l.passwd ${DESTDIR}${EXAMPLEDIR}/lists/example-l-digest.passwd
${INSTALL_DATA} ${WRKSRC}/majordomo.cf \
${DESTDIR}${EXAMPLEDIR}/majordomo.cf
# verify installation; requires interaction
test: install
${DESTDIR}${PREFIX}/libexec/majordomo/wrapper config-test
.include "../../mk/bsd.pkg.mk"