ソースを参照

Add an SMTPfeed daemon similar to the stuff we did for TaylorUUCP's uucico. This allows MTAs like Postfix (which only can speak LMTP over TCP) to use SMTPfeed (which only speaks LMTP over STDIN/STDOUT).

Ralf S. Engelschall 24 年 前
コミット
8be98a3814
3 ファイル変更72 行追加5 行削除
  1. 52 0
      smtpfeed/rc.smtpfeed
  2. 20 5
      smtpfeed/smtpfeed.spec
  3. BIN
      smtpfeed/smtpfeedd.tar.gz

+ 52 - 0
smtpfeed/rc.smtpfeed

@@ -0,0 +1,52 @@
+#!@l_prefix@/lib/rpm/bash @l_prefix@/etc/rc
+##
+##  rc.smtpfeed -- Run-Commands for SMTPfeed Daemon
+##
+
+%config
+    smtpfeed_enable="no"
+    smtpfeed_bind_local="127.0.0.1:2525"
+    smtpfeed_bind_remote="0.0.0.0"
+    smtpfeed_hostname="localhost"
+    smtpfeed_timeout_connect="1m"
+    smtpfeed_timeout_greet="2m"
+    smtpfeed_timeout_rset="2m"
+    smtpfeed_maxrcpt="100"
+    smtpfeed_maxsize="4194304"
+
+
+%common
+    smtpfeed_pidfile="@l_prefix@/var/smtpfeed/smtpfeed.pid"
+    smtpfeed_args="-u -V -E -l mail"
+    smtpfeed_args="$smtpfeed_args -t connect=${smtpfeed_timeout_connect:-1m}"
+    smtpfeed_args="$smtpfeed_args -t greet=${smtpfeed_timeout_greet:-2m}"
+    smtpfeed_args="$smtpfeed_args -t rset=${smtpfeed_timeout_rset:-2m}"
+    smtpfeed_args="$smtpfeed_args -o ${smtpfeed_bind_remote:-0.0.0.0}"
+    smtpfeed_args="$smtpfeed_args -c ${smtpfeed_hostname:-localhost}"
+    smtpfeed_args="$smtpfeed_args -r 1 -R ${smtpfeed_maxrcpt:-100}"
+    smtpfeed_args="$smtpfeed_args -s ${smtpfeed_maxsize:-4194304}"
+    smtpfeed_start () {
+        ( @l_prefix@/sbin/smtpfeedd ${smtpfeed_bind_local:-127.0.0.1:2525} \
+          @l_prefix@/sbin/smtpfeed ${smtpfeed_args} \
+          </dev/null >/dev/null 2>&1 &
+          echo "$!" >${smtpfeed_pidfile}
+        ) </dev/null >/dev/null 2>&1
+    }
+    smtpfeed_stop () {
+        if [ -f ${smtpfeed_pidfile} ]; then
+            kill -TERM `cat ${smtpfeed_pidfile}`
+            sleep 1
+        fi
+    }
+
+%start -p 200 -u root
+    smtpfeed_start
+
+%stop -p 200 -u root
+    smtpfeed_stop
+
+%restart -u root
+    smtpfeed_stop
+    sleep 1
+    smtpfeed_start
+

+ 20 - 5
smtpfeed/smtpfeed.spec

@@ -25,8 +25,8 @@
 #   package information
 Name:         smtpfeed
 Summary:      LMTP Mailer for Mass Delivery via SMTP
-URL:          http://www.gnu.org/software/recode/
-Vendor:       Francois Pinard
+URL:          ftp://ftp.kyoto.wide.ad.jp/pub/mail/smtpfeed/
+Vendor:       Motonori Nakamura
 Packager:     The OpenPKG Project
 Distribution: OpenPKG [EXP]
 Group:        Mail
@@ -36,7 +36,8 @@ Release:      %{l_branch}.0
 
 #   list of sources
 Source0:      ftp://ftp.kyoto.wide.ad.jp/pub/mail/smtpfeed/smtpfeed-%{version}.tar.gz
-Source1:      fakesyslog.tar.gz
+Source1:      smtpfeedd.tar.gz
+Source2:      fakesyslog.tar.gz
 
 #   build information
 Prefix:       %{l_prefix}
@@ -55,6 +56,7 @@ AutoReqProv:  no
 %prep
     %setup0 -q -c
     %setup1 -q -T -D -a 1
+    %setup2 -q -T -D -a 2
 
 %build
     #   build faked syslog(3) library
@@ -81,20 +83,33 @@ AutoReqProv:  no
       %{l_make} %{l_mflags -O} 
     )
 
+    #   build smtpfeed daemon
+    ( cd smtpfeedd
+      CC="%{l_cc}" \
+      CFLAGS="%{l_cflags -O}" \
+      ./configure
+      %{l_make} %{l_mflags} 
+    )
+
 %install
     rm -rf $RPM_BUILD_ROOT
     %{l_shtool} mkdir -f -p -m 755 \
-        $RPM_BUILD_ROOT%{l_prefix}/bin \
+        $RPM_BUILD_ROOT%{l_prefix}/etc/rc.d \
+        $RPM_BUILD_ROOT%{l_prefix}/sbin \
         $RPM_BUILD_ROOT%{l_prefix}/man/man8 \
         $RPM_BUILD_ROOT%{l_prefix}/var/smtpfeed
     ( cd smtpfeed-%{version}
       %{l_shtool} install -c -s -m 755 \
-          smtpfeed $RPM_BUILD_ROOT%{l_prefix}/bin/
+          smtpfeed $RPM_BUILD_ROOT%{l_prefix}/sbin/
       %{l_shtool} install -c -m 644 \
           smtpfeed.8 $RPM_BUILD_ROOT%{l_prefix}/man/man8/
       %{l_shtool} install -c -m 644 \
           /dev/null $RPM_BUILD_ROOT%{l_prefix}/var/smtpfeed/smtpfeed.log
     )
+    %{l_shtool} install -c -s -m 755 \
+        smtpfeedd/smtpfeedd $RPM_BUILD_ROOT%{l_prefix}/sbin/
+    %{l_shtool} install -c -m 644 -e 's;@l_prefix@;%{l_prefix};g' \
+        %{SOURCE rc.smtpfeed} $RPM_BUILD_ROOT%{l_prefix}/etc/rc.d/
     %{l_rpmtool} files -v -ofiles -r$RPM_BUILD_ROOT %{l_files_std}
 
 %files -f files

BIN
smtpfeed/smtpfeedd.tar.gz