- Make the port PREFIX-clean

- Install examples and docs into standard directories
- Do not depend on apache13 - it should run with other Web servers, too
- Move all other dependencies to RUN_DEPENDS
- Look for dependendcies (including ezmlm-idx) in LOCALBASE
- Remove obsoleted patches
- fix typo in the config file
- Bump PORTREVISION

PR:		ports/42218
Submitted by:	Sergei Kolobov <sergei@kolobov.com>
Approved by:	maintainer
This commit is contained in:
Oliver Lehmann 2003-07-26 10:32:57 +00:00
parent c306aae65e
commit 3a16317b30
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=85619
4 changed files with 39 additions and 109 deletions

View file

@ -7,41 +7,53 @@
PORTNAME= ezmlm-web
PORTVERSION= 2.1
PORTREVISION= 2
PORTREVISION= 3
CATEGORIES= mail www
MASTER_SITES= ftp://rucus.ru.ac.za/pub/mail/ezmlm/
MAINTAINER= guy-ezmlm@rucus.ru.ac.za
COMMENT= CGI script that lets you manage ezmlm-idx mailing lists through the web
BUILD_DEPENDS= ${LOCALBASE}/${EZMLM_DIR}/bin/ezmlm-idx:${PORTSDIR}/mail/ezmlm-idx \
${LOCALBASE}/lib/perl5/site_perl/${PERL_VER}/Mail/Ezmlm.pm:${PORTSDIR}/mail/p5-Mail-Ezmlm
RUN_DEPENDS= ${LOCALBASE}/sbin/apachectl:${PORTSDIR}/www/apache13 \
${LOCALBASE}/lib/perl5/site_perl/${PERL_VER}/Mail/Address.pm:${PORTSDIR}/mail/p5-Mail-Tools
RUN_DEPENDS= ezmlm-idx:${PORTSDIR}/mail/ezmlm-idx \
${SITE_PERL}/Mail/Ezmlm.pm:${PORTSDIR}/mail/p5-Mail-Ezmlm \
${SITE_PERL}/Mail/Address.pm:${PORTSDIR}/mail/p5-Mail-Tools
# Change these to suit your setup. You can do this via the environment
# CGI_BIN is the location relative to ${PREFIX} of your webservers' cgi-bin
# EZMLM_DIR is the base relative to ${PREFIX} in which ezmlm was installed
#
CGI_BIN?= www/cgi-bin.default
EZMLM_DIR?=
USE_PERL5= YES
PLIST_SUB= CGI_BIN=${CGI_BIN:S/$/\//:S/^\///} EZMLM_DIR=${EZMLM_DIR:S/$/\//:S/^\///}
USE_REINPLACE= YES
PLIST_SUB= CGI_BIN=${CGI_BIN}
EXAMPLES= htaccess.sample webusers.sample index.c
DOCS= CHANGES README TODO UPGRADING
do-build:
@cd ${WRKSRC}; ${MAKE} index; ${MV} index ezmlm-web
cd ${WRKSRC} && ${CC} ${CFLAGS} -o ezmlm-web index.c
post-patch:
${REINPLACE_CMD} -e 's|/etc/ezmlm|${PREFIX}/etc/ezmlm|' \
-e 's|/usr/local|${PREFIX}|g' -e 's|prefex|prefix|g' \
${WRKSRC}/ezmlm-web.cgi ${WRKSRC}/ezmlmwebrc ${WRKSRC}/index.c
do-install:
${MKDIR} ${PREFIX}/${CGI_BIN} ${PREFIX}/${EZMLM_DIR}
${INSTALL_SCRIPT} ${WRKSRC}/ezmlm-web.cgi ${PREFIX}/${EZMLM_DIR}/bin
${INSTALL_DATA} ${WRKSRC}/ezmlmwebrc ${PREFIX}/${EZMLM_DIR}/etc/ezmlm/ezmlmwebrc.sample
${MKDIR} ${PREFIX}/${CGI_BIN} ${PREFIX}/etc/ezmlm
${INSTALL_SCRIPT} ${WRKSRC}/ezmlm-web.cgi ${PREFIX}/bin
${INSTALL_DATA} ${WRKSRC}/ezmlmwebrc ${PREFIX}/etc/ezmlm/ezmlmwebrc.sample
${INSTALL_PROGRAM} -o alias -g qmail -m 4755 ${WRKSRC}/ezmlm-web ${PREFIX}/${CGI_BIN}
${MKDIR} ${PREFIX}/share/ezmlm-web
.for file in CHANGES README index.c htaccess.sample webusers.sample
${INSTALL_MAN} ${WRKSRC}/${file} ${PREFIX}/share/ezmlm-web
${MKDIR} ${EXAMPLESDIR}
.for file in ${EXAMPLES}
${INSTALL_MAN} ${WRKSRC}/${file} ${EXAMPLESDIR}
.endfor
.if !defined(NOPORTDOCS)
${MKDIR} ${DOCSDIR}
.for file in ${DOCS}
${INSTALL_DATA} ${WRKSRC}/${file} ${DOCSDIR}
.endfor
.endif
post-install:
@${SED} 's!%%PREFIX%%!${PREFIX}!g; s!%%EZMLM_DIR%%!${PREFIX}${EZMLM_DIR:S/^\///}!g' ${PKGMESSAGE}
@${ECHO}

View file

@ -1,66 +0,0 @@
--- ezmlm-web.cgi.orig Mon Sep 25 21:58:08 2000
+++ ezmlm-web.cgi Wed Sep 19 09:19:05 2001
@@ -76,6 +76,10 @@
require "$opt_C"; # Command Line
} elsif(-e "$HOME_DIR/.ezmlmwebrc") {
require "$HOME_DIR/.ezmlmwebrc"; # User
+} elsif(-e "/usr/local/etc/ezmlm/ezmlmwebrc") {
+ require "/usr/local/etc/ezmlm/ezmlmwebrc"; # FreeBSD
+} elsif(-e "/usr/local/etc/ezmlmwebrc") {
+ require "/usr/local/etc/ezmlmwebrc"; # FreeBSD alt
} elsif(-e "/etc/ezmlm/ezmlmwebrc") {
require "/etc/ezmlm/ezmlmwebrc"; # System
} elsif(-e "./ezmlmwebrc") {
@@ -281,13 +285,13 @@
print $q->startform;
print $q->hidden(-name=>'state', -default=>'select');
print '<CENTER><TABLE BORDER="0" CELLPADDING="10"><TR><TD ALIGN="center" VALIGN="top" ROWSPAN="2">';
- print $q->scrolling_list(-name=>'list', -size=>$scrollsize, -values=>\@lists) if defined(@lists);
+ print $q->scrolling_list(-name=>'list', -size=>$scrollsize, -values=>\@lists) if (@lists);
print '</TD><TD ALIGN="left" VALIGN="top">', $LANGUAGE{'chooselistinfo'};
- print $q->submit(-name=>'action', -value=>"[$BUTTON{'create'}]"), ' ' if (!defined($opt_c));
- print $q->submit(-name=>'action', -value=>"[$BUTTON{'edit'}]"), ' ' if(defined(@lists));
- print $q->submit(-name=>'action', -value=>"[$BUTTON{'delete'}]") if(defined(@lists));
+ print $q->submit(-name=>'action', -value=>"[$BUTTON{'create'}]"), ' ' if ($opt_c);
+ print $q->submit(-name=>'action', -value=>"[$BUTTON{'edit'}]"), ' ' if(@lists);
+ print $q->submit(-name=>'action', -value=>"[$BUTTON{'delete'}]") if(@lists);
print '</TD></TR><TR><TD> </TD></TR></TABLE></CENTER>';
print $q->endform;
}
@@ -332,10 +336,10 @@
print '<CENTER><TABLE ALIGN="center" CELLPADDING="10"><TR><TD ROWSPAN="2" VALIGN="top" ALIGN="center">';
print $q->hidden(-name=>'state', -default=>'edit');
print $q->hidden(-name=>'list', -default=>$Q::list);
- print $q->scrolling_list(-name=>'delsubscriber', -size=>$scrollsize, -values=>\@subscribers, -labels=>&pretty_names, -multiple=>'true') if defined(@subscribers);
+ print $q->scrolling_list(-name=>'delsubscriber', -size=>$scrollsize, -values=>\@subscribers, -labels=>&pretty_names, -multiple=>'true') if (@subscribers);
print '</TD><TD VALIGN="top" ALIGN="left">';
- print ' ', ($#subscribers + 1), ' ', $LANGUAGE{'subscribers'}, '<BR>' if defined(@subscribers);
- print $q->submit(-name=>'action', -value=>"[$BUTTON{'deleteaddress'}]"), '<P>' if defined(@subscribers);
+ print ' ', ($#subscribers + 1), ' ', $LANGUAGE{'subscribers'}, '<BR>' if (@subscribers);
+ print $q->submit(-name=>'action', -value=>"[$BUTTON{'deleteaddress'}]"), '<P>' if (@subscribers);
print $q->textfield(-name=>'addsubscriber', -size=>'40'), ' <IMG SRC="', $HELP_ICON_URL, '" ALT="', $HELPER{'addaddress'}, '"><BR>';
print $q->filefield(-name=>'addfile', -size=>20, -maxlength=>100), ' <IMG SRC="', $HELP_ICON_URL, '" ALT="', $HELPER{'addaddressfile'}, '"><br>' if ($FILE_UPLOAD);
print $q->submit(-name=>'action', -value=>"[$BUTTON{'addaddress'}]"), '<P>';
@@ -447,7 +451,7 @@
die "File upload must be of type text/*" unless($q->uploadInfo($q->param('addfile'))->{'Content-Type'} =~ m{^text/});
# Handle file uploads of addresses
- my($fh) = $q->upload('addfile');
+ my($fh) = $q->param('addfile');
return unless (defined($fh));
while (<$fh>) {
next if (/^\s*$/ or /^#/); # blank, comments
@@ -563,9 +567,9 @@
print '<CENTER><TABLE ALIGN="center" CELLPADDING="10"><TR><TD ROWSPAN="2" VALIGN="top" ALIGN="center">';
print $q->hidden(-name=>'state', -default=>$part);
print $q->hidden(-name=>'list', -default=>$Q::list), "\n";
- print $q->scrolling_list(-name=>'delsubscriber', -size=>$scrollsize, -values=>\@subscribers, -multiple=>'true', -labels=>&pretty_names) if defined(@subscribers);
+ print $q->scrolling_list(-name=>'delsubscriber', -size=>$scrollsize, -values=>\@subscribers, -multiple=>'true', -labels=>&pretty_names) if (@subscribers);
print '</TD></TR><TR><TD VALIGN="top" ALIGN="left">';
- print $q->submit(-name=>'action', -value=>"[$BUTTON{'deleteaddress'}]"), '<P>' if defined(@subscribers);
+ print $q->submit(-name=>'action', -value=>"[$BUTTON{'deleteaddress'}]"), '<P>' if (@subscribers);
print $q->textfield(-name=>'addsubscriber', -size=>'40'), ' <IMG SRC="', $HELP_ICON_URL, '" ALT="', $HELPER{'addaddress'}, '"><BR>';
print $q->filefield(-name=>'addfile', -size=>20, -maxlength=>100), ' <IMG SRC="', $HELP_ICON_URL, '" ALT="', $HELPER{'addaddressfile'}, '"><br>' if ($FILE_UPLOAD);
print $q->submit(-name=>'action', -value=>"[$BUTTON{'addaddress'}]"), '<P>';

View file

@ -1,19 +0,0 @@
NB!! By default no security is enabled on ezmlm-web.
The effectively means that at the moment, anyone can go to
http://<your host>/cgi-bin/ezmlm-web
and alter any of your primary mailing lists.
If this is not what you want (and it probably isn't :), you need to
either create a <File> directive in you apache configuration, or
use a .htaccess file, or provide some other means of security.
Have a look at the README file in %%PREFIX%%/share/ezmlm-web for
more information. There are also some sample files there.
In order to make ezmlm-web work properly, you will have to create
a configuration file for it in %%EZMLM_DIR%%/etc/ezmlm.
A sample ezmlmwebrc (ezmlmwebrc.sample) file is provided in that
directory. This sample will work `as is', but allows you to customise
ezmlm-web to your liking. At a minimum just cp ezmlmwebrc.sample ezmlmwebrc

View file

@ -1,9 +1,12 @@
share/ezmlm-web/CHANGES
share/ezmlm-web/README
share/ezmlm-web/index.c
share/ezmlm-web/htaccess.sample
share/ezmlm-web/webusers.sample
@dirrm share/ezmlm-web
%%EZMLM_DIR%%bin/ezmlm-web.cgi
%%EZMLM_DIR%%etc/ezmlm/ezmlmwebrc.sample
%%CGI_BIN%%ezmlm-web
bin/ezmlm-web.cgi
%%CGI_BIN%%/ezmlm-web
etc/ezmlm/ezmlmwebrc.sample
%%PORTDOCS%%%%DOCSDIR%%/CHANGES
%%PORTDOCS%%%%DOCSDIR%%/README
%%PORTDOCS%%%%DOCSDIR%%/TODO
%%PORTDOCS%%%%DOCSDIR%%/UPGRADING
share/examples/ezmlm-web/htaccess.sample
share/examples/ezmlm-web/index.c
share/examples/ezmlm-web/webusers.sample
%%PORTDOCS%%@dirrm %%DOCSDIR%%
@dirrm share/examples/ezmlm-web