Linux サーバに distribute をインストール。
デーモンプロセスの動く mailman をいれてサーバリソースを浪費する
必要もないので、distribute に戻す。
自分一人でリストを管理すればいい場合、majordomo や fml に比べて
distribute はやはり管理コストが低くてすむ。
% ncftpget ftp://ftp.foretune.co.jp/pub/network/mail/distribute/distribute-2.1-pl19.tar.gz
% ncftpget ftp://ftp.foretune.co.jp/pub/network/mail/distribute/BETA/patch.20.gz
% gtar zxvf distribute-2.1-pl19.tar.gz
% mv distribute-pl19 distribute-pl20
% cd distribute-pl20
% zcat ../patch.20.gz | patch -p1
% cp Makefile Makefile.dist
% vi Makefile
% diff -c Makefile.dist Makefile
diff -c Makefile.dist Makefile
*** Makefile.dist Mon Jan 12 02:03:23 2004
--- Makefile Mon Jan 12 02:08:45 2004
***************
*** 22,28 ****
# -DMSC MSC Style Subject
#
OPTIONS= -DSYSLOG -DISSUE -DSUBJALIAS -DADDVERSION \
! -DSYSLOG_FACILITY=LOG_LOCAL4 -DCCMAIL
#
#
--- 22,29 ----
# -DMSC MSC Style Subject
#
OPTIONS= -DSYSLOG -DISSUE -DSUBJALIAS -DADDVERSION \
! -DSYSLOG_FACILITY=LOG_MAIL -DCCMAIL \
! -D_PATH_SENDMAIL=\"/usr/sbin/sendmail\"
#
#
***************
*** 62,67 ****
--- 63,74 ----
##DEFAULTCONFIG=\
## -DDEF_DOMAINNAME=\"foretune.co.jp\" \
## -DDEF_ALIAS_CHAR_OPTION=\"b\"
+ DEFAULTCONFIG=\
+ -DDEF_DOMAINNAME=\"grid5.net\" \
+ -DDEF_SEQ_PATH=\"/var/lib/distribute/\" \
+ -DDEF_RECIPIENT_PATH=\"/var/lib/distribute/\" \
+ -DDEF_ALIAS_CHAR_OPTION=\"b\"
+
#
DESTDIR=
***************
*** 73,80 ****
PERL= perl
CC= gcc
! WHERE= /usr/lib
! MANDIR= /usr/man
MANSEC= 1
# Install as
--- 80,87 ----
PERL= perl
CC= gcc
! WHERE= /usr/local/libexec
! MANDIR= /usr/local/man
MANSEC= 1
# Install as
% make
perl tmpl2c.pl
gcc -g -DSYSLOG -DISSUE -DSUBJALIAS -DADDVERSION -DSYSLOG_FACILITY=LOG_MAIL -DCCMAIL -D_PATH_SENDMAIL=\"/usr/sbin/sendmail\" -DDEF_DOMAINNAME=\"grid5.net\" -DDEF_SEQ_PATH=\"/var/lib/distribute/\" -DDEF_RECIPIENT_PATH=\"/var/lib/distribute/\" -DDEF_ALIAS_CHAR_OPTION=\"b\" -DRELEASESTATE=\"Alpha\" -c -o distribute.o distribute.c
gcc -g -DSYSLOG -DISSUE -DSUBJALIAS -DADDVERSION -DSYSLOG_FACILITY=LOG_MAIL -DCCMAIL -D_PATH_SENDMAIL=\"/usr/sbin/sendmail\" -DDEF_DOMAINNAME=\"grid5.net\" -DDEF_SEQ_PATH=\"/var/lib/distribute/\" -DDEF_RECIPIENT_PATH=\"/var/lib/distribute/\" -DDEF_ALIAS_CHAR_OPTION=\"b\" -DRELEASESTATE=\"Alpha\" -c -o recipfile.o recipfile.c
recipfile.c: In function `normalizeaddr':
recipfile.c:56: warning: assignment makes integer from pointer without a cast
gcc -g -DSYSLOG -DISSUE -DSUBJALIAS -DADDVERSION -DSYSLOG_FACILITY=LOG_MAIL -DCCMAIL -D_PATH_SENDMAIL=\"/usr/sbin/sendmail\" -DDEF_DOMAINNAME=\"grid5.net\" -DDEF_SEQ_PATH=\"/var/lib/distribute/\" -DDEF_RECIPIENT_PATH=\"/var/lib/distribute/\" -DDEF_ALIAS_CHAR_OPTION=\"b\" -DRELEASESTATE=\"Alpha\" -c -o message.o message.c
gcc -g -DSYSLOG -DISSUE -DSUBJALIAS -DADDVERSION -DSYSLOG_FACILITY=LOG_MAIL -DCCMAIL -D_PATH_SENDMAIL=\"/usr/sbin/sendmail\" -DDEF_DOMAINNAME=\"grid5.net\" -DDEF_SEQ_PATH=\"/var/lib/distribute/\" -DDEF_RECIPIENT_PATH=\"/var/lib/distribute/\" -DDEF_ALIAS_CHAR_OPTION=\"b\" -DRELEASESTATE=\"Alpha\" -c -o memory.o memory.c
gcc -g -DSYSLOG -DISSUE -DSUBJALIAS -DADDVERSION -DSYSLOG_FACILITY=LOG_MAIL -DCCMAIL -D_PATH_SENDMAIL=\"/usr/sbin/sendmail\" -DDEF_DOMAINNAME=\"grid5.net\" -DDEF_SEQ_PATH=\"/var/lib/distribute/\" -DDEF_RECIPIENT_PATH=\"/var/lib/distribute/\" -DDEF_ALIAS_CHAR_OPTION=\"b\" -DRELEASESTATE=\"Alpha\" -c -o history.o history.c
gcc -g -DSYSLOG -DISSUE -DSUBJALIAS -DADDVERSION -DSYSLOG_FACILITY=LOG_MAIL -DCCMAIL -D_PATH_SENDMAIL=\"/usr/sbin/sendmail\" -DDEF_DOMAINNAME=\"grid5.net\" -DDEF_SEQ_PATH=\"/var/lib/distribute/\" -DDEF_RECIPIENT_PATH=\"/var/lib/distribute/\" -DDEF_ALIAS_CHAR_OPTION=\"b\" -DRELEASESTATE=\"Alpha\" -c -o pathutil.o pathutil.c
gcc -g -DSYSLOG -DISSUE -DSUBJALIAS -DADDVERSION -DSYSLOG_FACILITY=LOG_MAIL -DCCMAIL -D_PATH_SENDMAIL=\"/usr/sbin/sendmail\" -DDEF_DOMAINNAME=\"grid5.net\" -DDEF_SEQ_PATH=\"/var/lib/distribute/\" -DDEF_RECIPIENT_PATH=\"/var/lib/distribute/\" -DDEF_ALIAS_CHAR_OPTION=\"b\" -DRELEASESTATE=\"Alpha\" -c -o strutil.o strutil.c
gcc -g -DSYSLOG -DISSUE -DSUBJALIAS -DADDVERSION -DSYSLOG_FACILITY=LOG_MAIL -DCCMAIL -D_PATH_SENDMAIL=\"/usr/sbin/sendmail\" -DDEF_DOMAINNAME=\"grid5.net\" -DDEF_SEQ_PATH=\"/var/lib/distribute/\" -DDEF_RECIPIENT_PATH=\"/var/lib/distribute/\" -DDEF_ALIAS_CHAR_OPTION=\"b\" -DRELEASESTATE=\"Alpha\" -c -o header.o header.c
gcc -g -DSYSLOG -DISSUE -DSUBJALIAS -DADDVERSION -DSYSLOG_FACILITY=LOG_MAIL -DCCMAIL -D_PATH_SENDMAIL=\"/usr/sbin/sendmail\" -DDEF_DOMAINNAME=\"grid5.net\" -DDEF_SEQ_PATH=\"/var/lib/distribute/\" -DDEF_RECIPIENT_PATH=\"/var/lib/distribute/\" -DDEF_ALIAS_CHAR_OPTION=\"b\" -DRELEASESTATE=\"Alpha\" -c -o logging.o logging.c
gcc -g -DSYSLOG -DISSUE -DSUBJALIAS -DADDVERSION -DSYSLOG_FACILITY=LOG_MAIL -DCCMAIL -D_PATH_SENDMAIL=\"/usr/sbin/sendmail\" -DDEF_DOMAINNAME=\"grid5.net\" -DDEF_SEQ_PATH=\"/var/lib/distribute/\" -DDEF_RECIPIENT_PATH=\"/var/lib/distribute/\" -DDEF_ALIAS_CHAR_OPTION=\"b\" -DRELEASESTATE=\"Alpha\" -c -o longstr.o longstr.c
gcc -g -DSYSLOG -DISSUE -DSUBJALIAS -DADDVERSION -DSYSLOG_FACILITY=LOG_MAIL -DCCMAIL -D_PATH_SENDMAIL=\"/usr/sbin/sendmail\" -DDEF_DOMAINNAME=\"grid5.net\" -DDEF_SEQ_PATH=\"/var/lib/distribute/\" -DDEF_RECIPIENT_PATH=\"/var/lib/distribute/\" -DDEF_ALIAS_CHAR_OPTION=\"b\" -DRELEASESTATE=\"Alpha\" -o xdistribute distribute.o recipfile.o message.o memory.o history.o pathutil.o strutil.o header.o logging.o longstr.o
distribute.o: In function `checkadmin':
/home/dxy/src/distribute-pl20/distribute.c:198: the use of `tmpnam' is dangerous, better use `mkstemp'
text data bss dec hex filename
23965 4848 15044 43857 ab51 xdistribute
gcc -g -DSYSLOG -DISSUE -DSUBJALIAS -DADDVERSION -DSYSLOG_FACILITY=LOG_MAIL -DCCMAIL -D_PATH_SENDMAIL=\"/usr/sbin/sendmail\" -DDEF_DOMAINNAME=\"grid5.net\" -DDEF_SEQ_PATH=\"/var/lib/distribute/\" -DDEF_RECIPIENT_PATH=\"/var/lib/distribute/\" -DDEF_ALIAS_CHAR_OPTION=\"b\" -DRELEASESTATE=\"Alpha\" -c -o archive.o archive.c
gcc -g -DSYSLOG -DISSUE -DSUBJALIAS -DADDVERSION -DSYSLOG_FACILITY=LOG_MAIL -DCCMAIL -D_PATH_SENDMAIL=\"/usr/sbin/sendmail\" -DDEF_DOMAINNAME=\"grid5.net\" -DDEF_SEQ_PATH=\"/var/lib/distribute/\" -DDEF_RECIPIENT_PATH=\"/var/lib/distribute/\" -DDEF_ALIAS_CHAR_OPTION=\"b\" -DRELEASESTATE=\"Alpha\" -o xarchive archive.o memory.o history.o pathutil.o strutil.o header.o logging.o longstr.o
archive.o: In function `doarchive':
/home/dxy/src/distribute-pl20/archive.c:240: the use of `mktemp' is dangerous, better use `mkstemp'
text data bss dec hex filename
10865 468 4656 15989 3e75 xarchive
% su
# make install
続いて設定。
# mkdir /var/lib/distribute
# cd /var/lib/distribute
# echo 0 > test.seq
# chown nobody.root test.seq
# vi test.rec
foo@bar.com
foo@baz.net
# vi test.run
# cat test.run
"| /usr/local/libexec/distribute -h optix.org -M test"
# chmod a+x *.run
# vi /etc/postfix/aliases
test: :include:/var/lib/distribute/test.run
owner-test: dxy
test-request: owner-test
# vi /etc/postfix/main.cf
// add the following in /etc/postfix/main.cf
allow_mail_to_commands = alias, forward, include
# sh /etc/init.d/postfix reload
# postalias /etc/postfix/aliases
#
