DCC dla spamassassina
Artur Pażuś
pazur w rulez.pl
Czw, 13 Paź 2005, 12:01:43 CEST
Przemysław Backiel wrote:
> Witam,
> pobrałem dcc-dccd.spec chciałem strzelić builda, ale widze ze w specu są
> jakieś błędy, stąd mam pytanie co trzeba poprawić abym mógł zbudować
> dcc, gdyż chce dodać go do spamassassina.
>
>
oto poprawiony spec
--
Artur 'Pazur' Pażuś
-------------- następna część ---------
# $Revision: 1.27 $, $Date: 2005/05/02 18:23:51 $
Summary: Distributed Checksum Clearinghouse, anti-spam tool
Summary(pl): Narzędzie anty-spamowe bazujące na sumach kontrolnych (DCC)
Name: dcc-dccd
Version: 1.2.50
Release: 1
License: BSD-like
Group: Networking
Source0: http://www.dcc-servers.net/dcc/source/%{name}-%{version}.tar.Z
# Source0-md5: 676b17dca43a3dabe22c057a6cfdde77
URL: http://www.dcc-servers.net/
BuildRequires: FHS
#BuildRequires: using-special-registered-not-regular-user
BuildRequires: rpmbuild(macros) >= 1.202
Requires(pre): /usr/sbin/useradd
Requires(postun): /usr/sbin/userdel
Requires(post,preun): /sbin/chkconfig
Provides: user(dcc)
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
%define dccdir /var/lib/dcc
%define cgidir /home/services/httpd/cgi-bin
%description
Distributed Checksum Clearinghouse or DCC is a cooperative,
distributed system intended to detect "bulk" mail or mail sent to many
people. It allows individuals receiving a single mail message to
determine that many other people have been sent essentially identical
copies of the message and so reject the message. It can identify some
unsolicited bulk mail using "spam traps" and other detectors, but that
is not its focus.
The DCC can be viewed as a tool for end users to enforce their right
to "opt-in" to streams of bulk mail by refusing all bulk mail except
from sources in a "white list." White lists are generally the
responsibility of DCC clients, since only they know which bulk mail
they solicited.
%description -l pl
DCC (Distributed Checksum Clearinghouse) jest kooperatywnym,
rozproszonym systemem mającym na celu wykrywanie masowej poczty lub
poczty wysłanej do wielu ludzi. Pozwala jednostkom otrzymującym
pojedynczy list określić, jak wielu innych otrzymało dokładnie
identyczne kopie tej wiadomości i na tej podstawie odrzucić ją. Może
zidentyfikować niechcianą masową pocztę przy użyciu "pułapek
antyspamowych" i innych wykrywaczy, ale to nie jest podstawowym celem.
DCC można odbierać jako narzędzie dla użytkowników końcowych,
zapewniające im prawo do przeciwstawienia się zalewowi masowej poczty
przez odrzucenie wszystkich śmieci oprócz źródeł z "białej listy". Za
białe listy odpowiadają klienci DCC, jako że tylko oni wiedzą, jaką
masową pocztę zamawiali.
%package client
Summary: Tools to access a DCC server
Summary(pl): Narzędzia dostępowe dla serwera DCC
Group: Networking
Requires: %{name} = %{version}-%{release}
%description client
Distributed Checksum Clearinghouse or DCC is a cooperative,
distributed system intended to detect "bulk" mail or mail sent to many
people. It allows individuals receiving a single mail message to
determine that many other people have been sent essentially identical
copies of the message and so reject the message. It can identify some
unsolicited bulk mail using "spam traps" and other detectors, but that
is not its focus.
The DCC can be viewed as a tool for end users to enforce their right
to "opt-in" to streams of bulk mail by refusing all bulk mail except
from sources in a "white list." White lists are generally the
responsibility of DCC clients, since only they know which bulk mail
they solicited.
%description client -l pl
DCC (Distributed Checksum Clearinghouse) jest kooperatywnym,
rozproszonym systemem mającym na celu wykrywanie masowej poczty lub
poczty wysłanej do wielu ludzi. Pozwala jednostkom otrzymującym
pojedynczy list określić, jak wielu innych otrzymało dokładnie
identyczne kopie tej wiadomości i na tej podstawie odrzucić ją. Może
zidentyfikować niechcianą masową pocztę przy użyciu "pułapek
antyspamowych" i innych wykrywaczy, ale to nie jest podstawowym celem.
DCC można odbierać jako narzędzie dla użytkowników końcowych,
zapewniające im prawo do przeciwstawienia się zalewowi masowej poczty
przez odrzucenie wszystkich śmieci oprócz źródeł z "białej listy". Za
białe listy odpowiadają klienci DCC, jako że tylko oni wiedzą, jaką
masową pocztę zamawiali.
%package server
Summary: DCC Server
Summary(pl): Serwer DCC
Group: Networking
Requires: %{name} = %{version}-%{release}
%description server
Distributed Checksum Clearinghouse or DCC is a cooperative,
distributed system intended to detect "bulk" mail or mail sent to many
people. It allows individuals receiving a single mail message to
determine that many other people have been sent essentially identical
copies of the message and so reject the message. It can identify some
unsolicited bulk mail using "spam traps" and other detectors, but that
is not its focus.
The DCC can be viewed as a tool for end users to enforce their right
to "opt-in" to streams of bulk mail by refusing all bulk mail except
from sources in a "white list." White lists are generally the
responsibility of DCC clients, since only they know which bulk mail
they solicited.
%description server -l pl
DCC (Distributed Checksum Clearinghouse) jest kooperatywnym,
rozproszonym systemem mającym na celu wykrywanie masowej poczty lub
poczty wysłanej do wielu ludzi. Pozwala jednostkom otrzymującym
pojedynczy list określić, jak wielu innych otrzymało dokładnie
identyczne kopie tej wiadomości i na tej podstawie odrzucić ją. Może
zidentyfikować niechcianą masową pocztę przy użyciu "pułapek
antyspamowych" i innych wykrywaczy, ale to nie jest podstawowym celem.
DCC można odbierać jako narzędzie dla użytkowników końcowych,
zapewniające im prawo do przeciwstawienia się zalewowi masowej poczty
przez odrzucenie wszystkich śmieci oprócz źródeł z "białej listy". Za
białe listy odpowiadają klienci DCC, jako że tylko oni wiedzą, jaką
masową pocztę zamawiali.
%package cgi
Summary: CGI scripts for managing mail delivery on a DCC enabled server
Summary(pl): Skrypty CGI do obsługi dostarczania poczty na serwerze DCC
Group: Networking
Requires: %{name} = %{version}-%{release}
%description cgi
Example set of CGI scripts to allow users to point-and-click manage
their own DCC whitelists and thus what is delivered to them. Allows
overriding of site level lists. The scripts give controlled access to
the whitelists which are otherwise in protected directory space (owned
by dcc).
NB these scripts need configured after installation.
%description cgi -l pl
Przykładowy zestaw skryptów CGI pozwalających użytkownikom na klikane
zarządzenie ich białymi listami DCC, a więc i tym, co dostają. Pozwala
przykrywać listy dotyczące serwera. Skrypty dają dostęp do białych
list, które normalnie są w zabezpieczonym katalogu (którego
właścicielem jest DCC).
Te skrypty wymagają konfiguracji po zainstalowaniu.
%package devel
Summary: Devel files for dcc
Group: Networking
Requires: %{name} = %{version}-%{release}
%description devel -l pl
Pliki nagłówkowe
%prep
%setup -q
%build
CFLAGS="%{rpmcflags}"; export CFLAGS
LDFLAGS="%{rpmldflags}"; export LDFLAGS
./configure \
--bindir=%{_bindir} \
--libexecdir=%{_libexecdir} \
--mandir=%{_mandir} \
--homedir=%{dccdir} \
--with-uid=99 \
--with-cgibin=%{cgidir} \
--with-rundir=%{_var}/run \
--with-db-memory=32
%{__make}
%{__make} -C dccifd/dccif-test
%install
rm -rf $RPM_BUILD_ROOT
install -d $RPM_BUILD_ROOT%{_initrddir}
install -d $RPM_BUILD_ROOT%{_sysconfdir}/{cron.daily,httpd}
install -d $RPM_BUILD_ROOT/var/run/dcc
install -d $RPM_BUILD_ROOT%{dccdir}/{log,userdirs/{local,esmtp,cyrus,procmail}}
install -d $RPM_BUILD_ROOT{%{_bindir},%{_sbindir},%{_mandir},%{_libdir}}
install -d $RPM_BUILD_ROOT%{_includedir}/dcc
INST_UID="$( id -u )" INST_GID="$( id -g )"; export INST_UID INST_GID
%{makeinstall} \
MANOWN=$INST_UID \
MANGRP=$INST_GID \
DCC_SUID=$INST_UID \
DCC_OWN=$INST_UID \
DCC_GRP=$INST_GID \
BINOWN=$INST_UID \
GRP=$INST_GID \
INSTALL="install -C" \
INST_BINDIR=$RPM_BUILD_ROOT%{cgidir} \
DCC_HOMEDIR=$RPM_BUILD_ROOT%{dccdir} \
DCC_CGIBINDIR=$RPM_BUILD_ROOT%{cgidir} \
DCC_LIBEXECDIR=$RPM_BUILD_ROOT%{_sbindir} \
DCC_BINDIR=$RPM_BUILD_ROOT%{_sbindir} \
BINDIR=$RPM_BUILD_ROOT%{_bindir} \
MANDIR=$RPM_BUILD_ROOT%{_mandir}/man
install misc/cron-dccd $RPM_BUILD_ROOT%{_sysconfdir}/cron.daily/dccd
install misc/rcDCC $RPM_BUILD_ROOT%{_initrddir}/dccd
install homedir/flod $RPM_BUILD_ROOT%{dccdir}/flod
# move some binaries in place, wierd stuff...
for i in dbclean dblist dccd dccifd dccsight wlist; do
mv -f $RPM_BUILD_ROOT%{_bindir}/$i $RPM_BUILD_ROOT%{_sbindir}
done
# install extras
install dccifd/dccif-test/dccif-test $RPM_BUILD_ROOT%{_sbindir}
install dccifd/dccif-test/dccif-test.pl $RPM_BUILD_ROOT%{_sbindir}
install dccifd/dccif.pl $RPM_BUILD_ROOT%{_sbindir}
# Set some initial logging, but no rejections
perl -p -i -e "s/BRAND=\$/BRAND=%{version}-%{release}/ ; s/DCCM_LOG_AT=\$/\$&10/ ; " \
$RPM_BUILD_ROOT%{dccdir}/dcc_conf
# prepare for docs inclusion
cp misc/README README.misc
cp homedir/README README.homedir
cp cgi-bin/README README.cgi-bin
# install devel files
install dccd/*.h $RPM_BUILD_ROOT%{_includedir}/dcc
install dcclib/*.h $RPM_BUILD_ROOT%{_includedir}/dcc
install include/*.h $RPM_BUILD_ROOT%{_includedir}/dcc
install srvrlib/*.h $RPM_BUILD_ROOT%{_includedir}/dcc
install dcclib/libdcc.a $RPM_BUILD_ROOT%{_libdir}
install srvrlib/libsrvr.a $RPM_BUILD_ROOT%{_libdir}
install thrlib/libthr.a $RPM_BUILD_ROOT%{_libdir}
# house cleaning
rm -f $RPM_BUILD_ROOT/var/www/dcc-bin/README
rm -f $RPM_BUILD_ROOT%{_sbindir}/rcDCC
rm -f $RPM_BUILD_ROOT%{_sbindir}/cron-dccd
rm -f $RPM_BUILD_ROOT%{_sbindir}/logger
rm -f $RPM_BUILD_ROOT%{_sbindir}/updatedcc
%clean
rm -rf $RPM_BUILD_ROOT
%pre
# TODO register userid in uid_gid.db.txt
%useradd -u dcc -d %{dccdir} -r dcc
%postun
if [ $1 = 0 ]; then
%userremove dcc
fi
%post
/sbin/chkconfig --add dccd
umask 022
/usr/bin/cdcc info > %{dccdir}/map.txt
%post cgi
echo The scripts need configured and added into your web configuration.
echo see %{dccdir}/cgi-bin/README
%preun
if [ $1 = 0 ]; then
/sbin/chkconfig --del dccd || :
/etc/rc.d/init.d/dccd stop || :
fi
%files
%defattr(644,root,root,755)
%doc CHANGES FAQ.html FAQ.txt INSTALL.html INSTALL.txt LICENSE cdcc.html
%doc dbclean.html dblist.html dccd.html dcc.html dccproc.html
%doc dccsight.html homedir/flod homedir/ids homedir/map.txt homedir/README
%doc misc/dcc.m4 misc/dccdnsbl.m4 misc/hackmc
#%doc dccm.html
%dir %{dccdir}
%dir %{dccdir}/log
%dir %{dccdir}/userdirs/local
%dir %{dccdir}/userdirs/cyrus
%dir %{dccdir}/userdirs/procmail
%dir %{dccdir}/userdirs/esmtp
%dir /var/run/dcc
%config(noreplace) %verify(not md5 mtime size) %{dccdir}/dcc_conf
%config(noreplace) %verify(not md5 mtime size) %{dccdir}/whiteclnt
%config(noreplace) %verify(not md5 mtime size) %{dccdir}/whitecommon
%config(noreplace) %verify(not md5 mtime size) %{dccdir}/whitelist
%config(noreplace) %verify(not md5 mtime size) %{dccdir}/ids
%config(noreplace) %verify(not md5 mtime size) %{dccdir}/flod
%attr(600,root,root) %config(noreplace) %verify(not md5 mtime size) %{dccdir}/map
#%config(noreplace) %verify(not size mtime md5) %{dccdir}/dcc_db
#%config(noreplace) %verify(not size mtime md5) %{dccdir}/dcc_db.hash
%{dccdir}/map.txt
%{dccdir}/grey_flod
%{dccdir}/grey_whitelist
%files client
%defattr(644,root,root,755)
%attr(4755,root,root) %{_bindir}/cdcc
%attr(4755,root,root) %{_bindir}/dccproc
%{_mandir}/man8/cdcc.8*
%{_mandir}/man8/dccproc.8*
%files server
%defattr(644,root,root,755)
%attr(754,root,root) /etc/rc.d/init.d/dccd
%attr(750,root,root) /etc/cron.daily/dccd
%attr(4755,root,root) %{_sbindir}/dccsight
%attr(755,root,root) %{_sbindir}/dbclean
%attr(755,root,root) %{_sbindir}/dblist
%attr(755,root,root) %{_sbindir}/dcc-stats-collect
%attr(755,root,root) %{_sbindir}/dcc-stats-graph
%attr(755,root,root) %{_sbindir}/dcc-stats-init
%attr(755,root,root) %{_sbindir}/dccd
%attr(755,root,root) %{_sbindir}/dccif-test
%attr(755,root,root) %{_sbindir}/dccif-test.pl
%attr(755,root,root) %{_sbindir}/dccif.pl
%attr(755,root,root) %{_sbindir}/dccifd
%attr(755,root,root) %{_sbindir}/fetch-testmsg-whitelist
%attr(755,root,root) %{_sbindir}/hackmc
%attr(755,root,root) %{_sbindir}/newwebuser
%attr(755,root,root) %{_sbindir}/wlist
# sendmail stuff
#%attr(755,root,root) %{_sbindir}/dccm
#%{_datadir}/sendmail-cf/feature/dcc.m4
#%{_datadir}/sendmail-cf/feature/dccdnsbl.m4
%attr(755,root,root) %{_sbindir}/start-dccd
%attr(755,root,root) %{_sbindir}/start-dccifd
%attr(755,root,root) %{_sbindir}/start-dccm
%attr(755,root,root) %{_sbindir}/start-grey
%attr(755,root,root) %{_sbindir}/stats-get
%attr(755,root,root) %{_sbindir}/stop-dccd
%{_mandir}/man8/dbclean.8*
%{_mandir}/man8/dblist.8*
%{_mandir}/man8/dcc.8*
%{_mandir}/man8/dccd.8*
%{_mandir}/man8/dccifd.8*
%{_mandir}/man8/dccm.8*
%{_mandir}/man8/dccsight.8*
%files cgi
%defattr(644,root,root,755)
%{cgidir}/chgpasswd
%{cgidir}/common
%{cgidir}/edit-whiteclnt
%{cgidir}/http2https
%{cgidir}/list-log
%{cgidir}/list-msg
%{cgidir}/README
%{cgidir}/webuser-notify
%files devel
%defattr(644,root,root,755)
%{_includedir}/dcc/*.h
%{_libdir}/*.a
%{_bindir}/dccm
%define date %(echo `LC_ALL="C" date +"%a %b %d %Y"`)
%changelog
* %{date} PLD Team <feedback w pld-linux.org>
All persons listed below can be reached at <cvs_login>@pld-linux.org
$Log: dcc-dccd.spec,v $
Revision 1.27 2005/05/02 18:23:51 glen
- adapterized
Revision 1.26 2005/05/01 17:31:30 glen
- use %useradd/%groupadd macros
Revision 1.25 2004/12/17 22:50:10 saq
- %description unification
Revision 1.24 2004/11/30 23:30:15 ankry
- one more blocker: fix user
Revision 1.23 2004/10/16 21:43:25 saq
- /srv shouldn't be used, adding a blocker
Revision 1.22 2004/08/08 15:49:10 ankry
- spaces -> tabs
Revision 1.21 2004/08/05 17:45:08 qboosh
- strict deps, fixed dcc user homedir, don't ignore some pre/post errors
Revision 1.20 2004/08/05 08:47:59 kosmo
- updated to 1.2.50
Revision 1.19 2004/02/14 18:18:33 misi3k
- updated to 1.2.32
Revision 1.18 2004/02/04 16:07:18 eothane
- updated to 1.2.30
Revision 1.17 2004/02/04 15:48:04 averne
- /home/services -> /srv
- rel 2
Revision 1.16 2004/01/15 13:58:25 qboosh
- some cleanups/fixes
Revision 1.15 2004/01/14 23:30:59 undefine
- fix build(?)
Revision 1.14 2004/01/14 09:08:59 zagrodzki
- fixed installation, builds now
- TODO: initscript, -devel package
Revision 1.13 2003/11/11 01:33:21 ankry
- caps unification, other cosmetics
Revision 1.12 2003/08/11 20:44:53 ankry
- cosmetics
Revision 1.11 2003/06/17 11:28:06 ankry
- 1.1.36
Revision 1.10 2003/06/17 11:23:29 ankry
- md5
Revision 1.9 2003/05/26 16:24:52 malekith
- massive attack: adding Source-md5
Revision 1.8 2003/05/25 05:46:38 misi3k
- massive attack s/pld.org.pl/pld-linux.org/
Revision 1.7 2003/05/17 06:54:44 pascalek
- revert user changes
Revision 1.6 2003/05/10 09:40:38 pascalek
- Req user-dcc
Revision 1.5 2002/12/29 18:00:55 qboosh
- umask in scripts, other fixes/cosmetics where needed
Revision 1.4 2002/12/07 19:09:42 orzech
- /home -> /home/services
Revision 1.3 2002/11/14 23:35:26 qboosh
- pl description, some cleanups (problably requires more FHS fixes)
Revision 1.2 2002/09/29 19:25:38 ankry
- version 1.1.14; 1.1.3 no longer available
Revision 1.1 2002/09/28 23:28:35 misiek
- almost raw
* Wed Jul 3 2002 Andrew Macpherson <andrew w oa5.com>
- Version 1.1.4
- Checkpoint against changes and patches
- Add sub-package for the cgi-management tools
- Delete hooks to pre-build databases, this is now done in makeinstall.
* Sat May 25 2002 Andrew Macpherson <andrew w oa5.com>
- Version 1.1.2.a
- Patch free version that assumes Vernon will make
- changes to Man page autoconf, and homedir/Makefile.in
* Sat May 25 2002 Andrew Macpherson <andrew w oa5.com>
- Version 1.1.2
- Big changes to the sources by Vernon Schryver mean that
- patches can be largely eliminated. Still need to
- replace the man page installation code in the original
- tar, but the reworked FreBSD autoconf code works for me, and
- the homedir/Makefile patch is a preview of code proposed
- by Vernon for the next release
- Moving installation location of 3 scripts into the doc
- directory, as they are not really common-use.
- Setup as client-only using the publicly-listed anonymous
- servers, and include the OA5 servers as well, though they
- are not for public listing
- Do not start dccd/dccm on install
- Moved messing with dcc_conf settings to pre-packaging vs install script
- Created skeleton userdirs for per recipient logging
- rpm -e , droped deleting databases in favour of removing
- Home directory on complete remove vs upgrade
* Mon May 15 2002 Andrew Macpherson <andrew w oa5.com>
- Version 1.0.47
- Basic setup, fighting the appalling autoconf (I hate that package)
- to try to get things to install in sensible places
- gave up and overwrote makefiles
- Make an initial setup that will let people run
- stand alone. Considered and rejected configuring to use
- anonymous clients against publicly available servers
- Patch the rc script so that chkconfig will operate
Więcej informacji o liście pld-users-pl