Browse Source

flush my work on DCC

Ralf S. Engelschall 18 years ago
parent
commit
d14e5741de
2 changed files with 192 additions and 0 deletions
  1. 71 0
      dcc/dcc.patch
  2. 121 0
      dcc/dcc.spec

+ 71 - 0
dcc/dcc.patch

@@ -0,0 +1,71 @@
+Index: cdcc/Makefile.in
+--- cdcc/Makefile.in.orig	2005-10-12 23:04:19 +0200
++++ cdcc/Makefile.in	2007-09-07 12:48:57 +0200
+@@ -43,7 +43,7 @@
+ 
+ @MAKE_DOT@ifndef NO_SYS_INSTALL
+ # cdcc needs to be SUID to read the server passwords
+-BINMODE	=4$(DCC_MODE)
++BINMODE	=$(DCC_MODE)
+ @MAKE_DOT@endif
+ BINOWN	=$(DCC_SUID)
+ @MAKE_INC2@
+Index: configure
+--- configure.orig	2007-08-25 15:03:47 +0200
++++ configure	2007-09-07 12:48:57 +0200
+@@ -1009,7 +1009,7 @@
+ 	;;
+     FreeBSD)
+ 	PTHREAD_LDFLAGS="$PTHREAD_LDFLAGS -pthread"
+-	PTHREAD_LIBS="$PTHREAD_LIBS -lc_r"
++	PTHREAD_LIBS="$PTHREAD_LIBS"
+ 	;;
+     DragonFly)
+ 	PTHREAD_LDFLAGS="$PTHREAD_LDFLAGS -pthread"
+@@ -2929,6 +2929,13 @@
+     SENDMAIL_EVAL="$SENDMAIL"
+     with_sendmail=yes
+ fi
++if test -n "$SENDMAIL" -a "$SENDMAIL" != "no"; then
++    if test -f $SENDMAIL/include/milter/mfapi.h -a -f $SENDMAIL/lib/libmilter.a; then
++        SENDMAIL_OBJ=$SENDMAIL/lib
++        SENDMAIL_OBJ_EVAL=$SENDMAIL_OBJ
++        SENDMAIL_LIB=$SENDMAIL_OBJ/libmilter.a
++    fi
++fi
+ if test -z "$SENDMAIL"; then
+     # prefer a parallel ../sendmail directory
+     DEPTH=.
+@@ -3468,7 +3475,7 @@
+ 	mancat=man
+ 	MAN8='dcc.8 $(SUBDIR_MAN8)'
+ 	MAN8INST=''
+-	USE_DCCMANINSTALL='# do not use dccmaninstall'
++	USE_DCCMANINSTALL='maninstall:dccmaninstall'
+ 	;;
+     DragonFly)
+ 	# default to /usr/local/man/man8 and use nroff files, possibly
+Index: dccm/dccm.c
+--- dccm/dccm.c.orig	2007-05-12 06:17:26 +0200
++++ dccm/dccm.c	2007-09-07 12:49:38 +0200
+@@ -37,7 +37,7 @@
+  * Rhyolite Software DCC 1.3.59-1.215 $Revision: 1.1 $
+  */
+ 
+-#include "libmilter/mfapi.h"
++#include "milter/mfapi.h"
+ #include "cmn_defs.h"
+ 
+ #undef NEW_MFAPI
+Index: thrlib/cmn.c
+--- thrlib/cmn.c.orig	2007-05-09 01:21:24 +0200
++++ thrlib/cmn.c	2007-09-07 12:48:57 +0200
+@@ -660,7 +660,7 @@
+ 	LOG_CMN_CAPTION(cwp, DCC_LOG_TRN_MSG_CR);
+ 	cwp->log_size = MAX_LOG_SIZE+1;
+ #else
+-	log_write(&wp->cw, buf, buflen);
++	log_write(cwp, buf, buflen);
+ #endif
+ }
+ 

+ 121 - 0
dcc/dcc.spec

@@ -0,0 +1,121 @@
+##
+##  dcc.spec -- OpenPKG RPM Package Specification
+##  Copyright (c) 2000-2007 OpenPKG Foundation e.V. <http://openpkg.net/>
+##  Copyright (c) 2000-2007 Ralf S. Engelschall <http://engelschall.com/>
+##
+##  Permission to use, copy, modify, and distribute this software for
+##  any purpose with or without fee is hereby granted, provided that
+##  the above copyright notice and this permission notice appear in all
+##  copies.
+##
+##  THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
+##  WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+##  MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+##  IN NO EVENT SHALL THE AUTHORS AND COPYRIGHT HOLDERS AND THEIR
+##  CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+##  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+##  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
+##  USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+##  ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+##  OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+##  OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+##  SUCH DAMAGE.
+##
+
+#   FIXME: rse: TODO: builds fine, but config, rc scripts, etc is missing for daemons
+
+#   package information
+Name:         dcc
+Summary:      Distributed Checksum Clearinghouse (DCC)
+URL:          http://www.rhyolite.com/anti-spam/dcc/
+Vendor:       Rhyolite Software, LLC
+Packager:     OpenPKG Foundation e.V.
+Distribution: OpenPKG Community
+Class:        EVAL
+Group:        Mail
+License:      Open Source
+Version:      1.3.59
+Release:      20070907
+
+#   list of sources
+Source0:      http://www.rhyolite.com/anti-spam/dcc/source/dcc-%{version}.tar.Z
+Patch0:       dcc.patch
+
+#   build information
+Prefix:       %{l_prefix}
+BuildRoot:    %{l_buildroot}
+BuildPreReq:  OpenPKG, openpkg >= 20060823, gcc
+PreReq:       OpenPKG, openpkg >= 20060823
+BuildPreReq:  milter
+PreReq:       milter
+AutoReq:      no
+AutoReqProv:  no
+
+%description
+    The Distributed Checksum Clearinghouse (DCC) is an anti-spam
+    content filter that runs on a variety of operating systems The
+    DCC can be used by SMTP servers and mail user agents to detect
+    and reject or filter spam or unsolicited bulk mail. DCC servers
+    exchange or "flood" common checksums. The checksums include values
+    that are constant across common variations in bulk messages,
+    including "personalizations." The idea of the DCC is that if mail
+    recipients could compare the mail they receive, they could recognize
+    unsolicited bulk mail. A DCC server totals reports of checksums of
+    messages from clients and answers queries about the total counts for
+    checksums of mail messages. A DCC client reports the checksums for a
+    mail message to a server and is told the total number of recipients
+    of mail with each checksum. If one of the totals is higher than a
+    threshold set by the client and according to local whitelists the
+    message is unsolicited, the DCC client can log, discard, or reject
+    the message.
+
+%track
+    prog dcc = {
+        version   = %{version}
+        url       = http://www.rhyolite.com/anti-spam/dcc/source/
+        regex     = dcc-(__VER__)\.tar\.Z
+    }
+
+%prep
+    %setup -q
+    %patch -p0
+
+%build
+    CC="%{l_cc}" \
+    CFLAGS="%{l_cflags -O}" \
+    CPPFLAGS="%{l_cppflags}" \
+    LDFLAGS="%{l_ldflags}" \
+    ./configure \
+        --homedir=%{l_prefix}/var/dcc/db \
+        --bindir=%{l_prefix}/bin \
+        --libexecdir=%{l_prefix}/libexec/dcc \
+        --mandir=%{l_prefix}/man \
+        --with-updatedcc_pfile=%{l_prefix}/var/dcc/updatecc.pfile \
+        --with-installroot=$RPM_BUILD_ROOT \
+        --with-DCC-MD5 \
+        --with-uid=%{l_rusr} \
+        --enable-server \
+        --enable-dccifd \
+        --enable-dccm \
+        --with-sendmail=%{l_prefix} \
+        --with-cgibin=%{l_prefix}/cgi/dcc \
+        --with-rundir=%{l_prefix}/var/dcc/run \
+        --with-db-memory=64 \
+        --with-max-db-mem=128 \
+        --with-max-log-size=0
+    %{l_make} %{l_mflags}
+
+%install
+    rm -rf $RPM_BUILD_ROOT
+    %{l_make} %{l_mflags} install \
+        DCC_SUID=`%{l_shtool} echo -e '%u'` \
+        DCC_OWN=`%{l_shtool} echo -e '%u'` \
+        DCC_GRP=`%{l_shtool} echo -e '%g'`
+    strip $RPM_BUILD_ROOT%{l_prefix}/bin/* >/dev/null 2>&1 || true
+    %{l_rpmtool} files -v -ofiles -r$RPM_BUILD_ROOT %{l_files_std}
+
+%files -f files
+
+%clean
+    rm -rf $RPM_BUILD_ROOT
+