Hello community, here is the log from the commit of package spamassassin.3490 for openSUSE:13.1:Update checked in at 2015-02-12 12:01:45 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:13.1:Update/spamassassin.3490 (Old) and /work/SRC/openSUSE:13.1:Update/.spamassassin.3490.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "spamassassin.3490" Changes: -------- New Changes file: --- /dev/null 2014-12-25 22:38:16.200041506 +0100 +++ /work/SRC/openSUSE:13.1:Update/.spamassassin.3490.new/spamassassin.changes 2015-02-12 12:01:47.000000000 +0100 @@ -0,0 +1,1068 @@ +------------------------------------------------------------------- +Mon Feb 2 08:28:05 UTC 2015 - [email protected] + +- Enable reload in unit files (boo#915736) + +------------------------------------------------------------------- +Wed Jan 14 11:54:33 UTC 2015 - [email protected] + +- Run sa-update before starting service (bnc#911355) + +------------------------------------------------------------------- +Fri May 23 14:18:08 UTC 2014 - [email protected] + +- Added upstream fixes for upstream bug#6937 + Closing bnc#862963 + patch-upstream-bug#6937.diff + Use of each() on hash after insertion without resetting hash + iterator results in undefined behavior, Perl 5.4.18 + +------------------------------------------------------------------- +Thu May 30 00:36:59 UTC 2013 - [email protected] + +- Do not use syslog.target or Requires in systemd units. + +------------------------------------------------------------------- +Sat May 25 08:48:04 UTC 2013 - [email protected] + +- increase maximum message size from 250 to 512 KB for spampd, as SPAM message size increased a lot + +------------------------------------------------------------------- +Wed Mar 27 14:24:38 UTC 2013 - [email protected] + +- remove 'BuildRequires: perl-macros' from spec file, because perl + included in openSUSE > 1210 deprecates perl-macros which causes a + build failure. + +------------------------------------------------------------------- +Mon Feb 25 07:00:52 UTC 2013 - [email protected] + +- Install spamd.service and spampd.service accordingly (/usr/lib/systemd + for 12.3 and up or /lib/systemd for older versions). + +------------------------------------------------------------------- +Wed Sep 26 13:37:00 UTC 2012 - [email protected] + +- replace iXhash with the inofficial, but recommended, version iXhash2 + +------------------------------------------------------------------- +Wed Jul 11 07:47:47 UTC 2012 - [email protected] + +- 768582 - suse.cron-sa-update should allow to restart spamd after a successful run of sa-update + +------------------------------------------------------------------- +Tue Jul 3 09:57:18 UTC 2012 - [email protected] + +- killproc can not stop spamd + +------------------------------------------------------------------- +Tue Jun 26 08:54:29 UTC 2012 - [email protected] + +- Add systemd service files for spamd and spampd + bnc#768581 - rcspamd stop doesn't terminate spamd + +------------------------------------------------------------------- +Tue Dec 20 09:03:09 UTC 2011 - [email protected] + +- bnc#737637 - IPv6 support in spamassassin not functional + +------------------------------------------------------------------- +Thu Oct 6 14:27:12 UTC 2011 - [email protected] + +- bnc#720220 - spampd, installed by pkg:spamassassin, FAILs to launch, + uses non-existent/un-installed 'user' + +------------------------------------------------------------------- +Fri Sep 16 17:41:59 UTC 2011 - [email protected] + +- fix perl requires + +------------------------------------------------------------------- +Fri Jun 24 18:00:29 CEST 2011 - [email protected] + +- update to 3.3.2: + * various fixes, fix support with perl 5.12 +- remove upstreamed patches + +------------------------------------------------------------------- +Wed Apr 20 09:38:34 UTC 2011 - [email protected] + +- Fix the sa-update cronjob + +------------------------------------------------------------------- +Sun Apr 10 09:40:55 UTC 2011 - [email protected] + +- bnc#676667 - sa-update cronjob should allow amavisd restart + +------------------------------------------------------------------- +Wed Dec 1 13:36:28 UTC 2010 - [email protected] + +- switch to perl_requires macro + +------------------------------------------------------------------- +Fri Nov 12 06:09:15 UTC 2010 - [email protected] + +- bnc#650645 - Spamassassin Bug 6392 + +------------------------------------------------------------------- +Wed Oct 13 22:37:42 UTC 2010 - [email protected] + +- fix build + o mkdir /etc/cron.daily -> + {__install} -d $RPM_BUILD_ROOT/etc/cron.daily/ + o removed from filelist + dir /etc/cron.daily/ (provided by filesystem) + +------------------------------------------------------------------- +Fri Oct 8 17:48:15 UTC 2010 - [email protected] + +- Add script to call sa-update + +------------------------------------------------------------------- +Wed Oct 6 07:55:27 UTC 2010 - [email protected] + +- add missing requires for spampd + +------------------------------------------------------------------- +Thu Jun 24 09:24:04 UTC 2010 - [email protected] + +- Update the rules +- Fix the spec file +- bnc#582111 - Spamassassin. spamd doesn't start. + +------------------------------------------------------------------- +Thu Apr 1 19:10:01 UTC 2010 - [email protected] + +- update sa to 3.3.1 +- update rules to 3.3.1.r923257 +- cleanup spec + o removed comments +- added deprecated patch for suse_version > 1120 (perl 5.12) + o used stuff from combo patch + https://issues.apache.org/SpamAssassin/show_bug.cgi?id=6392 +- added MIMEEval patch + o https://issues.apache.org/SpamAssassin/show_bug.cgi?id=6396 + +------------------------------------------------------------------- +Sun Mar 21 01:10:29 UTC 2010 - [email protected] + +- added perl-Net-Ident for Build/Recommends +- fix build for SLE_10 + +------------------------------------------------------------------- +Sat Mar 20 19:10:43 UTC 2010 - [email protected] + +- bzipped Source Mail-SpamAssassin-rules... +- removed patch4 + o Mail-SpamAssassin-3.2.5.diff +- build with ssl support + o ENABLE_SSL="yes" +- renamed subpackages + o perl-spamassassin > perl-Mail-SpamAssassin + o new sub package perl-Mail-SpamAssassin-Plugin-iXhash +- fixed deps + o moved most deps over to perl-Mail-SpamAssassin +- some rpmlint fixes + o wrong-file-end-of-line-encoding {IXHASH}/CHANGELOG + o fix build without RPM_OPT_FLAGS + +------------------------------------------------------------------- +Fri Mar 19 17:46:07 UTC 2010 - [email protected] + +- cleanup spec + o sort TAGS + o redefine SOURCES + - added iXhash-1.5.5.tgz + - added spampd-2.20.tar.gz + - removed iXhash.pm + - removed spampd + o macros + - added perl-macros + o cleanup install section + +------------------------------------------------------------------- +Fri Mar 19 12:00:00 CET 2010 - [email protected] + +- updated iXhash module to 1.5.5 + - iXhash is now a sourceforge project (http://ixhash.sourceforge.net/) + +------------------------------------------------------------------- +Thu Mar 18 20:11:20 UTC 2010 - [email protected] + +- added original SOURCES + o spampd-2.20.tar.gz +- renewed Mail-SpamAssassin-3.3.0.tar.bz2 + o wget Mail-SpamAssassin-3.3.0.tar.gz + bznew +- some spec mods + o macros {__make}, {__install} ... ++++ 871 more lines (skipped) ++++ between /dev/null ++++ and /work/SRC/openSUSE:13.1:Update/.spamassassin.3490.new/spamassassin.changes New: ---- Mail-SpamAssassin-3.3.2.tar.gz Mail-SpamAssassin-rules-3.3.2.tar.bz2 bnc#582111.diff iXhash2-2.05.tar.gz iXhash2-meta-rules.patch init.spamd init.spampd local.cf patch-PgSQL patch-SQL_ASCII_SORT patch-URIDNSBL patch-upstream-bug#6937.diff patch-utf8 spamassassin.changes spamassassin.spec spamd.service spampd-2.20.tar.gz spampd.service suse.cron-sa-update sysconfig.spamd sysconfig.spampd ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ spamassassin.spec ++++++ # # spec file for package spamassassin # # Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed # upon. The license for this file, and modifications and additions to the # file, is the same license as for the pristine package itself (unless the # license for the pristine package is not an Open Source License, in which # case the license is the MIT License). An "Open Source License" is a # license that conforms to the Open Source Definition (Version 1.9) # published by the Open Source Initiative. # Please submit bugfixes or comments via http://bugs.opensuse.org/ # %define ix_version 2.05 %define spd_version 2.20 %define IXHASH iXhash2-%{ix_version} %define SPAMPD spampd-%{spd_version} Name: spamassassin Summary: Extensible email filter which is used to identify spam License: Apache-2.0 Group: Productivity/Networking/Email/Utilities Version: 3.3.2 Release: 0 %define sa_version 3.3.2 Url: http://spamassassin.org/ Source: http://search.cpan.org/CPAN/authors/id/K/KM/KMCGRAIL/Mail-SpamAssassin-%{version}.tar.gz Source1: Mail-SpamAssassin-rules-%{version}.tar.bz2 Source2: %{IXHASH}.tar.gz Source3: %{SPAMPD}.tar.gz Source10: local.cf Source11: init.spamd Source12: sysconfig.spamd Source13: init.spampd Source14: sysconfig.spampd Source15: suse.cron-sa-update Source16: spamd.service Source17: spampd.service Patch0: patch-utf8 Patch1: patch-PgSQL Patch2: patch-URIDNSBL Patch3: patch-SQL_ASCII_SORT Patch6: bnc#582111.diff Patch7: patch-upstream-bug#6937.diff Patch10: iXhash2-meta-rules.patch BuildRoot: %{_tmppath}/%{name}-%{version}-build %{perl_requires} PreReq: %insserv_prereq %fillup_prereq BuildRequires: dos2unix BuildRequires: openssl-devel # Requires: perl-IO-Socket-INET6 Requires: perl-Mail-DKIM Requires: perl-Mail-SpamAssassin = %version Requires: re2c Requires: perl(Net::Server::PreForkSimple) %if 0%{?suse_version} > 1140 BuildRequires: systemd %{?systemd_requires} %endif %if %suse_version > 1220 %define _unitdir /usr/lib/systemd %else %define _unitdir /lib/systemd %endif %description spamassassin adds a header line that shows if the mail has been determined spam or not. This way, you can decide what to do with the mail within the scope of your own filtering rules in your MUA (Mail User Agent, your mail program) or your LDA (Local Delivery Agent). See the files in the documentation directory /usr/share/doc/packages/spamassassin/ for more information on how to use the filter. %package -n perl-Mail-SpamAssassin Summary: Perl Modules For Using Spamassassin Within An Own Perl Script Group: Development/Libraries/Perl BuildRequires: perl BuildRequires: perl-Error %if 0%{?suse_version} && 0%{?suse_version} <= 1210 BuildRequires: perl-macros %endif BuildRequires: perl(Archive::Tar) >= 1.23 BuildRequires: perl(Digest::SHA1) BuildRequires: perl(Errno) BuildRequires: perl(File::Copy) >= 2.02 BuildRequires: perl(File::Spec) >= 0.8 BuildRequires: perl(HTML::Parser) >= 3.43 BuildRequires: perl(IO::Zlib) >= 1.04 BuildRequires: perl(Mail::DKIM) >= 0.37 BuildRequires: perl(Net::DNS) >= 0.34 BuildRequires: perl(NetAddr::IP) >= 4.000 BuildRequires: perl(Pod::Usage) >= 1.10 BuildRequires: perl(Sys::Hostname) BuildRequires: perl(Time::HiRes) BuildRequires: perl(Time::Local) # optional, but want them for build (test) %if 0%{?suse_version} >= 1100 BuildRequires: perl(Mail::SPF) %endif BuildRequires: perl(DBI) BuildRequires: perl(Encode::Detect) BuildRequires: perl(IO::Socket::INET6) BuildRequires: perl(IO::Socket::SSL) BuildRequires: perl(IP::Country) BuildRequires: perl(Net::Ident) BuildRequires: perl(Razor2::Client::Agent) >= 2.61 # Requires: perl-libwww-perl Requires: perl(Archive::Tar) >= 1.23 Requires: perl(Digest::SHA1) Requires: perl(Errno) Requires: perl(File::Copy) >= 2.02 Requires: perl(File::Spec) >= 0.8 Requires: perl(HTML::Parser) >= 3.43 Requires: perl(IO::Zlib) >= 1.04 Requires: perl(Mail::DKIM) >= 0.37 Requires: perl(Net::DNS) >= 0.34 Requires: perl(NetAddr::IP) >= 4.000 Requires: perl(Pod::Usage) >= 1.10 Requires: perl(Sys::Hostname) Requires: perl(Time::HiRes) Requires: perl(Time::Local) # optional %if 0%{?suse_version} >= 1100 Recommends: perl(Mail::SPF) %endif Recommends: perl(IP::Country) Recommends: perl(Razor2::Client::Agent) >= 2.61 Recommends: perl(Net::Ident) Recommends: perl(IO::Socket::INET6) Recommends: perl(IO::Socket::SSL) Recommends: perl(DBI) Recommends: perl(Encode::Detect) Recommends: cron Provides: perl-spamassassin = %version Obsoletes: perl-spamassassin < %version %description -n perl-Mail-SpamAssassin This package contains the perl modules for the spamassassin, including the filter rules. This package is required for the package "spamassassin", the commandline tool. %package -n perl-Mail-SpamAssassin-Plugin-iXhash2 Summary: The iXhash plugin for SpamAssassin Group: Development/Libraries/Perl Requires: perl-Mail-SpamAssassin = %version Version: %{ix_version} Release: 0 Provides: perl-Mail-SpamAssassin-Plugin-iXhash = %{ix_version} Obsoletes: perl-Mail-SpamAssassin-Plugin-iXhash < 2 %{perl_requires} %description -n perl-Mail-SpamAssassin-Plugin-iXhash2 This archive contains the iXhash2 plugin for the SpamAssassin spam filtering software, along with an example config file. Basically the plugin provides a network-based test just as razor2, pyzor and DCC do. Working solely on the body of an email, it removes parts of it and computes a hash value from the rest. These values will then be looked up via DNS using the domains given in the config file(s). You need Net::DNS and Digest::MD5 installed %prep %setup -q -n Mail-SpamAssassin-%{sa_version} -a 2 -a 3 %patch0 -p0 %patch1 -p0 %patch2 -p0 %patch3 -p0 %patch6 -p0 %patch7 -p0 %patch10 -p0 %build if [ -e t/data/whitelists/winxpnews.com ]; then echo "t/data/whitelists/winxpnews.com is not allowed to be distributed." echo "see #102221" #exit -1 # hidden bug description, so I can't see there - ignored fi; if [ -e build/cf_to_html ]; then echo "build/cf_to_html is not allowed to be distributed." echo "see #102221" #exit -1 # hidden bug description, so I can't see there - ignored fi; export CFLAGS="$RPM_OPT_FLAGS" perl Makefile.PL INSTALLDIRS=vendor OPTIMIZE="$RPM_OPT_FLAGS" \ CONTACT_ADDRESS="postmaster" ENABLE_SSL="yes" %{__make} %check # fails now... FIGURE out why #%{__make} test %install ## perl-Mail-SpamAssassin stuff %perl_make_install %perl_process_packlist %perl_gen_filelist # remove %%{_bindir} from filelist %{__sed} -i -e "/\/usr\/bin/d" %{name}.files # package only %%{_mandir}/man3 %{__sed} -i -e "s,%{_mandir}/man?,%{_mandir}/man3," %{name}.files # ## perl-Mail-SpamAssassin-Plugin-iXhash2 stuff %{__install} -d $RPM_BUILD_ROOT/etc/mail/spamassassin cp %{IXHASH}/iXhash2.pm $RPM_BUILD_ROOT%{perl_vendorlib}/Mail/SpamAssassin/Plugin cp %{IXHASH}/iXhash2.cf $RPM_BUILD_ROOT/etc/mail/spamassassin/iXhash2.cf # ## spamassassin stuff %{__install} -d $RPM_BUILD_ROOT/etc/cron.daily/ %{__install} -m 0755 %{S:15} $RPM_BUILD_ROOT/etc/cron.daily/ %{__install} -D -m0755 %{SPAMPD}/spampd $RPM_BUILD_ROOT%{_sbindir}/spampd mv $RPM_BUILD_ROOT%{_bindir}/spamd $RPM_BUILD_ROOT%{_sbindir}/ %{__install} -m 0644 %{S:10} $RPM_BUILD_ROOT/etc/mail/spamassassin/local.cf %{__install} -D -m 0644 %{S:11} $RPM_BUILD_ROOT/etc/init.d/spamd %{__install} -m 0644 %{S:13} $RPM_BUILD_ROOT/etc/init.d/spampd %{__ln_s} ../../etc/init.d/spamd $RPM_BUILD_ROOT/usr/sbin/rcspamd %{__ln_s} ../../etc/init.d/spampd $RPM_BUILD_ROOT/usr/sbin/rcspampd echo "Most of the documentation is at ../perl-Mail-SpamAssassin/." > README.SuSE %{__install} -D -m 0640 %{S:12} $RPM_BUILD_ROOT/var/adm/fillup-templates/sysconfig.spamd %{__install} -m 0640 %{S:14} $RPM_BUILD_ROOT/var/adm/fillup-templates/ test -f $RPM_BUILD_ROOT/usr/share/spamassassin/user_prefs.template || { echo "MakeMaker is broken again..." exit 1 } %{__install} -d $RPM_BUILD_ROOT/usr/share/spamassassin pushd $RPM_BUILD_ROOT/usr/share/spamassassin && tar -xjf %{S:1} && popd %if 0%{?suse_version} > 1140 ## systemd stuff mkdir -p $RPM_BUILD_ROOT%{_unitdir}/system %{__install} -m 644 %{S:16} $RPM_BUILD_ROOT%{_unitdir}/system/ %{__install} -m 644 %{S:17} $RPM_BUILD_ROOT%{_unitdir}/system/ %endif %post %{fillup_and_insserv -n spamd} %{fillup_and_insserv -n spampd} %if %suse_version > 1140 %service_add_post spamd.service %service_add_post spampd.service %endif %pre %if %suse_version > 1140 %service_add_pre spamd.service %service_add_pre spampd.service %endif %preun %stop_on_removal spamd %if %suse_version > 1140 %service_del_preun spamd.service %service_del_preun spampd.service %endif %postun %restart_on_update spamd %insserv_cleanup %if %suse_version > 1140 %service_del_postun spamd.service %service_del_postun spampd.service %endif exit 0 %clean %{__rm} -rf $RPM_BUILD_ROOT %files %defattr(-,root,root) %doc spamd/README* spamd/PROTOCOL %doc %{_mandir}/man1/* %attr(755,root,root) %{_bindir}/* %attr(755,root,root) %{_sbindir}/* %config %attr(744,root,root) /etc/init.d/spamd %config %attr(744,root,root) /etc/init.d/spampd /var/adm/fillup-templates/sysconfig.spamd /var/adm/fillup-templates/sysconfig.spampd %if 0%{?suse_version} > 1140 %config %{_unitdir}/system/spamd.service %config %{_unitdir}/system/spampd.service %endif %files -n perl-Mail-SpamAssassin -f %{name}.files %defattr(-,root,root) %doc CREDITS Changes LICENSE MANIFEST* NOTICE PACKAGING README %doc TRADEMARK UPGRADE USAGE sample-nonspam.txt sample-spam.txt %doc ldap sql %dir /etc/mail %config(noreplace) /etc/mail/spamassassin %config(noreplace) /etc/cron.daily/suse.cron-sa-update %exclude /etc/mail/spamassassin/iXhash2.cf %dir /usr/share/spamassassin /usr/share/spamassassin/* %files -n perl-Mail-SpamAssassin-Plugin-iXhash2 %defattr(-,root,root) %doc %{IXHASH}/CHANGELOG %{IXHASH}/LICENSE %{IXHASH}/README %config(noreplace) /etc/mail/spamassassin/iXhash2.cf %{perl_vendorlib}/Mail/SpamAssassin/Plugin/iXhash2.pm %changelog ++++++ bnc#582111.diff ++++++ --- spamd/spamd.raw.orig 2010-06-24 11:28:10.047109188 +0200 +++ spamd/spamd.raw 2010-06-24 11:28:57.942234270 +0200 @@ -174,6 +174,7 @@ # defaults my %opt = ( + 'syslog-socket' => 'unix', 'user-config' => 1, 'ident-timeout' => 5.0, # scaling settings; some of these aren't actually settable via cmdline ++++++ iXhash2-meta-rules.patch ++++++ diff -ur iXhash2-2.05.orig/iXhash2.cf iXhash2-2.05/iXhash2.cf --- iXhash2-2.05.orig/iXhash2.cf 2012-07-08 13:29:31.000000000 +0200 +++ iXhash2-2.05/iXhash2.cf 2012-09-26 13:41:11.874466944 +0200 @@ -1,20 +1,40 @@ # Note: loadplugin should really go into local.pre or so -loadplugin Mail::SpamAssassin::Plugin::iXhash2 iXhash2.pm +loadplugin Mail::SpamAssassin::Plugin::iXhash2 ifplugin Mail::SpamAssassin::Plugin::iXhash2 -ixhashdnsbl GENERIC_IXHASH generic.ixhash.net. -body GENERIC_IXHASH eval:check_ixhash('GENERIC_IXHASH') -tflags GENERIC_IXHASH net - -ixhashdnsbl NIXSPAM_IXHASH ix.dnsbl.manitu.net. -body NIXSPAM_IXHASH eval:check_ixhash('NIXSPAM_IXHASH') -tflags NIXSPAM_IXHASH net - -ixhashdnsbl SEM_IXHASH ixhash.spameatingmonkey.net. -body SEM_IXHASH eval:check_ixhash('SEM_IXHASH') -tflags SEM_IXHASH net +ixhashdnsbl __GENERIC_IXHASH generic.ixhash.net. +body __GENERIC_IXHASH eval:check_ixhash('GENERIC_IXHASH') +tflags __GENERIC_IXHASH net + +ixhashdnsbl __NIXSPAM_IXHASH ix.dnsbl.manitu.net. +body __NIXSPAM_IXHASH eval:check_ixhash('NIXSPAM_IXHASH') +tflags __NIXSPAM_IXHASH net + +ixhashdnsbl __SEM_IXHASH ixhash.spameatingmonkey.net. +body __SEM_IXHASH eval:check_ixhash('SEM_IXHASH') +tflags __SEM_IXHASH net + +ixhashdnsbl __HOSTEUROPE_IXHASH hosteurope.ixhash.net. +body __HOSTEUROPE_IXHASH eval:check_ixhash('HOSTEUROPE_IXHASH') +tflags __HOSTEUROPE_IXHASH net + +ixhashdnsbl __JUNKMAIL_IXHASH ixhash.junkemailfilter.com. +body __JUNKMAIL_IXHASH eval:check_ixhash('JUNKMAIL_IXHASH') +tflags __JUNKMAIL_IXHASH net + +meta IXHASH_X1 (__GENERIC_IXHASH + __NIXSPAM_IXHASH + __SEM_IXHASH + __HOSTEUROPE_IXHASH + __JUNKMAIL_IXHASH) == 1 +describe IXHASH_X1 iXhash listed on one server +score IXHASH_X1 1.5 + +meta IXHASH_X2 (__GENERIC_IXHASH + __NIXSPAM_IXHASH + __SEM_IXHASH + __HOSTEUROPE_IXHASH + __JUNKMAIL_IXHASH) == 2 +describe IXHASH_X2 iXhash listed on two servers +score IXHASH_X2 2.5 + +meta IXHASH_X3 (__GENERIC_IXHASH + __NIXSPAM_IXHASH + __SEM_IXHASH + __HOSTEUROPE_IXHASH + __JUNKMAIL_IXHASH) > 2 +describe IXHASH_X3 iXhash listed on more than two servers +score IXHASH_X3 3.5 endif ++++++ init.spamd ++++++ #!/bin/bash # Copyright (c) 1995-2002 SuSE GmbH Nuernberg, Germany. # # Author: Kurt Garloff, Carsten Hoeger # Please send feedback to http://www.suse.de/feedback/ # # /etc/init.d/spamd # # and symbolic its link # # /usr/sbin/rcspamd # # LSB compliant service control script; see http://www.linuxbase.org/spec/ # # System startup script for daemon spamd # ### BEGIN INIT INFO # Provides: spamd # Required-Start: $remote_fs $syslog # Required-Stop: $remote_fs $syslog # Default-Start: 3 5 # Default-Stop: 0 1 2 6 # Description: Start spamd to allow efficient filtering of mail # through spamassassin. Note: Read README.spamd about security implications # Short-Description: Start the spamassassin daemon ### END INIT INFO # # Note on Required-Start: It does specify the init script ordering, # not real dependencies. Depencies have to be handled by admin # resp. the configuration tools (s)he uses. # Source SuSE config (if still necessary, most info has been moved) test -r /etc/rc.config && . /etc/rc.config # Check for missing binaries (stale symlinks should not happen) SPAMD_BIN=/usr/sbin/spamd PIDFILE=/var/run/spamd.pid test -x $SPAMD_BIN || exit 5 # Check for existence of needed config file and read it # # Later, we may want to make startup behaviour (user ID, firewalling, ...) # configurable, as there are security implications (read README.spamd). SPAMD_CONFIG=/etc/sysconfig/spamd test -r $SPAMD_CONFIG || exit 6 . $SPAMD_CONFIG # Shell functions sourced from /etc/rc.status: # rc_check check and set local and overall rc status # rc_status check and set local and overall rc status # rc_status -v ditto but be verbose in local rc status # rc_status -v -r ditto and clear the local rc status # rc_failed set local and overall rc status to failed # rc_failed <num> set local and overall rc status to <num><num> # rc_reset clear local rc status (overall remains) # rc_exit exit appropriate to overall rc status # rc_active checks whether a service is activated by symlinks . /etc/rc.status # First reset status of this service rc_reset # Return values acc. to LSB for all commands but status: # 0 - success # 1 - generic or unspecified error # 2 - invalid or excess argument(s) # 3 - unimplemented feature (e.g. "reload") # 4 - insufficient privilege # 5 - program is not installed # 6 - program is not configured # 7 - program is not running # # Note that starting an already running service, stopping # or restarting a not-running service as well as the restart # with force-reload (in case signalling is not supported) are # considered a success. case "$1" in start) echo -n "Starting spamd " ## Start daemon with startproc(8). If this fails ## the echo return value is set appropriate. # NOTE: startproc returns 0, even if service is # already running to match LSB spec. startproc -p $PIDFILE $SPAMD_BIN $SPAMD_ARGS -r $PIDFILE # Remember status and be verbose rc_status -v ;; stop) echo -n "Shutting down spamd " ## Stop daemon with killproc(8) and if this fails ## set echo the echo return value. PID=$( cat $PIDFILE ) grep -q $SPAMD_BIN /proc/$PID/cmdline && kill -TERM $PID # Remember status and be verbose rc_status -v ;; try-restart) ## Stop the service and if this succeeds (i.e. the ## service was running before), start it again. ## Note: try-restart is not (yet) part of LSB (as of 0.7.5) $0 status >/dev/null && $0 restart # Remember status and be quiet rc_status ;; restart) ## Stop the service and regardless of whether it was ## running or not, start it again. $0 stop sleep 1 $0 start sleep 1 # Remember status and be quiet rc_status ;; force-reload) ## Signal the daemon to reload its config. Most daemons ## do this on signal 1 (SIGHUP). ## If it does not support it, restart. echo -n "Reload service spamd " ## if it supports it: #killproc -HUP $SPAMD_BIN #touch /var/run/spamd.pid #rc_status -v ## Otherwise: $0 stop && $0 start rc_status ;; reload) ## Like force-reload, but if daemon does not support ## signalling, do nothing (!) # If it supports signalling: echo -n "Reload service spamd " PID=$( cat $PIDFILE ) grep -q $SPAMD_BIN /proc/$PID/cmdline && kill -HUP $PID touch /var/run/spamd.pid rc_status -v ;; status) echo -n "Checking for service spamd " ## Check status with checkproc(8), if process is running ## checkproc will return with exit status 0. # Return value is slightly different for the status command: # 0 - service running # 1 - service dead, but /var/run/ pid file exists # 2 - service dead, but /var/lock/ lock file exists # 3 - service not running # NOTE: checkproc returns LSB compliant status values. checkproc -p $PIDFILE $SPAMD_BIN rc_status -v ;; probe) ## Optional: Probe for the necessity of a reload, ## print out the argument which is required for a reload. test /etc/mail/spamassassin/local.cf -nt /var/run/spamd.pid && echo reload ;; *) echo "Usage: $0 {start|stop|status|try-restart|restart|force-reload|reload|probe}" exit 1 ;; esac rc_exit ++++++ init.spampd ++++++ #!/bin/bash ### BEGIN INIT INFO # Provides: spampd # Required-Start: $remote_fs $syslog # Required-Stop: $remote_fs $syslog # Default-Start: 3 5 # Default-Stop: 0 1 2 6 # Description: SpamAssassin Proxy Daemon # Short-Description: SpamAssassin Proxy Daemo ### END INIT INFO # # Note on Required-Start: It does specify the init script ordering, # not real dependencies. Depencies have to be handled by admin # resp. the configuration tools (s)he uses. # Source SuSE config (if still necessary, most info has been moved) test -r /etc/rc.config && . /etc/rc.config # Check for missing binaries (stale symlinks should not happen) SPAMPD_BIN=/usr/sbin/spampd PIDFILE=/var/run/spampd.pid test -x $SPAMPD_BIN || exit 5 SPAMPD_CONFIG=/etc/sysconfig/spampd test -r $SPAMPD_CONFIG || exit 6 . $SPAMPD_CONFIG # Shell functions sourced from /etc/rc.status: # rc_check check and set local and overall rc status # rc_status check and set local and overall rc status # rc_status -v ditto but be verbose in local rc status # rc_status -v -r ditto and clear the local rc status # rc_failed set local and overall rc status to failed # rc_failed <num> set local and overall rc status to <num><num> # rc_reset clear local rc status (overall remains) # rc_exit exit appropriate to overall rc status # rc_active checks whether a service is activated by symlinks . /etc/rc.status # First reset status of this service rc_reset # Return values acc. to LSB for all commands but status: # 0 - success # 1 - generic or unspecified error # 2 - invalid or excess argument(s) # 3 - unimplemented feature (e.g. "reload") # 4 - insufficient privilege # 5 - program is not installed # 6 - program is not configured # 7 - program is not running # # Note that starting an already running service, stopping # or restarting a not-running service as well as the restart # with force-reload (in case signalling is not supported) are # considered a success. case "$1" in start) echo -n "Starting spampd " ## Start daemon with startproc(8). If this fails ## the echo return value is set appropriate. # NOTE: startproc returns 0, even if service is # already running to match LSB spec. startproc -p $PIDFILE $SPAMPD_BIN $SPAMPD_OPTIONS # Remember status and be verbose rc_status -v ;; stop) echo -n "Shutting down spampd " ## Stop daemon with killproc(8) and if this fails ## set echo the echo return value. killproc -TERM $SPAMPD_BIN # Remember status and be verbose rc_status -v ;; try-restart) ## Stop the service and if this succeeds (i.e. the ## service was running before), start it again. ## Note: try-restart is not (yet) part of LSB (as of 0.7.5) $0 status >/dev/null && $0 restart # Remember status and be quiet rc_status ;; restart) ## Stop the service and regardless of whether it was ## running or not, start it again. $0 stop $0 start # Remember status and be quiet rc_status ;; force-reload) ## Signal the daemon to reload its config. Most daemons ## do this on signal 1 (SIGHUP). ## If it does not support it, restart. echo -n "Reload service spamd " ## if it supports it: #killproc -HUP $SPAMPD_BIN #touch /var/run/spampd.pid #rc_status -v ## Otherwise: $0 stop && $0 start rc_status ;; reload) ## Like force-reload, but if daemon does not support ## signalling, do nothing (!) # If it supports signalling: #echo -n "Reload service spamd " #killproc -HUP $SPAMPD_BIN #touch /var/run/spampd.pid #rc_status -v ## Otherwise if it does not support reload: rc_failed 3 rc_status -v ;; status) echo -n "Checking for service spamd " ## Check status with checkproc(8), if process is running ## checkproc will return with exit status 0. # Return value is slightly different for the status command: # 0 - service running # 1 - service dead, but /var/run/ pid file exists # 2 - service dead, but /var/lock/ lock file exists # 3 - service not running # NOTE: checkproc returns LSB compliant status values. checkproc -p $PIDFILE $SPAMPD_BIN rc_status -v ;; probe) ## Optional: Probe for the necessity of a reload, ## print out the argument which is required for a reload. test -nt /var/run/spampd.pid && echo reload ;; *) echo "Usage: $0 {start|stop|status|try-restart|restart|force-reload|reload|probe}" exit 1 ;; esac rc_exit ++++++ local.cf ++++++ # Add your own customisations to this file. See 'man Mail::SpamAssassin::Conf' # for details of what can be tweaked. # # do not change the subject # to change the subject, e.g. use # rewrite_header Subject ****SPAM(_SCORE_)**** rewrite_header Subject ****SPAM(_SCORE_)**** # Set the score required before a mail is considered spam. # required_score 5.00 # uncomment, if you do not want spamassassin to create a new message # in case of detecting spam # report_safe 0 # Enhance the uridnsbl_skip_domain list with some usefull entries # Do not block the web-sites of Novell and SUSE ifplugin Mail::SpamAssassin::Plugin::URIDNSBL uridnsbl_skip_domain suse.de opensuse.org suse.com suse.org uridnsbl_skip_domain novell.com novell.org novell.ru novell.de novell.hu novell.co.uk endif # Mail::SpamAssassin::Plugin::URIDNSBL #The combination of SpamAssassin + The Bat! as mail client can cause false positives. #The reason for the high spam rating is the Reply-To header inserted by mailman, #which seems to have more quoting than The Bat! can do. #If you have such problem activate the next two lines #header IS_MAILMAN exists:X-Mailman-Version #score IS_MAILMAN -2 ++++++ patch-PgSQL ++++++ --- lib/Mail/SpamAssassin/BayesStore/PgSQL.pm 2010-01-21 13:14:34.000000000 +0100 +++ lib/Mail/SpamAssassin/BayesStore/PgSQL.pm 2010-03-17 08:44:19.000000000 +0100 @@ -941,7 +941,7 @@ } my $escaped_token = _quote_bytea($token); - my $sth = $self->{_dbh}->prepare("select put_tokens($self->{_userid}, $self->{_esc_prefix}'{$escaped_token}', $spam_count,$ham_count,$atime)"); + my $sth = $self->{_dbh}->prepare("select put_tokens($self->{_userid}, $self->{_esc_prefix}'{$escaped_token}'::bytea[], $spam_count,$ham_count,$atime)"); unless (defined($sth)) { dbg("bayes: _put_token: SQL error: ".$self->{_dbh}->errstr()); @@ -1004,7 +1004,7 @@ my $tokenarray = join(",", map { '"' . _quote_bytea($_) . '"' } sort keys %{$tokens}); - my $sth = $self->{_dbh}->prepare("select put_tokens($self->{_userid}, $self->{_esc_prefix}'{$tokenarray}', $spam_count, $ham_count, $atime)"); + my $sth = $self->{_dbh}->prepare("select put_tokens($self->{_userid}, $self->{_esc_prefix}'{$tokenarray}'::bytea[], $spam_count, $ham_count, $atime)"); unless (defined($sth)) { dbg("bayes: _put_tokens: SQL error: ".$self->{_dbh}->errstr()); ++++++ patch-SQL_ASCII_SORT ++++++ --- lib/Mail/SpamAssassin/Conf/SQL.pm 2006-09-29 15:06:39.000000000 +0200 +++ lib/Mail/SpamAssassin/Conf/SQL.pm 2007-02-09 16:48:42.000000000 +0100 @@ -139,9 +139,14 @@ $sql =~ s/_DOMAIN_/$quoted_domain/g; } else { - $sql = "select $f_preference, $f_value from $f_table where ". - "$f_username = ".$dbh->quote($username). - " or $f_username = '\@GLOBAL' order by $f_username asc"; + $sql = "select $f_preference, $f_value, ascii(username) as user_asci from $f_table where ". + "$f_username = ".$dbh->quote($username). + " or $f_username = '\@GLOBAL' order by user_asci asc"; + # changed by [email protected] on 09.02.2007 suggested by + # Charles Camello <[email protected]> + #$sql = "select $f_preference, $f_value from $f_table where ". + #"$f_username = ".$dbh->quote($username). + #" or $f_username = '\@GLOBAL' order by $f_username asc"; } dbg("config: Conf::SQL: executing SQL: $sql"); my $sth = $dbh->prepare($sql); ++++++ patch-URIDNSBL ++++++ --- lib/Mail/SpamAssassin/Plugin/URIDNSBL.pm 2006-09-29 15:06:39.000000000 +0200 +++ lib/Mail/SpamAssassin/Plugin/URIDNSBL.pm 2007-01-08 11:53:57.000000000 +0100 @@ -207,6 +207,8 @@ while (my($uri, $info) = each %{$uris}) { # we want to skip mailto: uris next if ($uri =~ /^mailto:/); + # we want to skip so-files, they are not url's + next if ($uri =~ /\.so$/); # no domains were found via this uri, so skip next unless ($info->{domains}); ++++++ patch-upstream-bug#6937.diff ++++++ --- lib/Mail/SpamAssassin/AsyncLoop.pm~ 2011-06-07 01:59:17.000000000 +0200 +++ lib/Mail/SpamAssassin/AsyncLoop.pm 2013-05-29 01:37:58.000000000 +0200 @@ -361,5 +361,12 @@ $now = time; # capture new timestamp, after possible sleep in 'select' - while (my($key,$ent) = each %$pending) { + # A callback routine may generate another DNS query, which may insert + # an entry into the %$pending hash thus invalidating the each() context. + # So, make sure that callbacks are not called while the each() context + # is open, or avoid using each(). [Bug 6937] + # + # while (my($key,$ent) = each %$pending) { + foreach my $key (keys %$pending) { + my $ent = $pending->{$key}; my $id = $ent->{id}; if (defined $ent->{poll_callback}) { # call a "poll_callback" if exists @@ -449,5 +456,6 @@ my $foundcnt = 0; my $now = time; - while (my($key,$ent) = each %$pending) { + foreach my $key (keys %$pending) { + my $ent = $pending->{$key}; dbg("async: aborting after %.3f s, %s: %s", $now - $ent->{start_time}, --- lib/Mail/SpamAssassin/Conf/Parser.pm~ 2011-06-07 01:59:17.000000000 +0200 +++ lib/Mail/SpamAssassin/Conf/Parser.pm 2013-05-29 01:32:06.000000000 +0200 @@ -1249,5 +1249,5 @@ my $mods = ''; local ($1,$2); - if ($re =~ s/^m{//) { + if ($re =~ s/^m\{//) { $re =~ s/}([a-z]*)$//; $mods = $1; } --- lib/Mail/SpamAssassin/DnsResolver.pm~ 2011-06-07 01:59:17.000000000 +0200 +++ lib/Mail/SpamAssassin/DnsResolver.pm 2013-05-29 01:32:06.000000000 +0200 @@ -441,8 +441,14 @@ if (!defined($timeout) || $timeout > 0) { $timer = $self->{main}->time_method("poll_dns_idle") } + $! = 0; ($nfound, $timeleft) = select($rout=$rin, undef, undef, $timeout); } if (!defined $nfound || $nfound < 0) { - warn "dns: select failed: $!"; + if ($!) { warn "dns: select failed: $!\n" } + else { info("dns: select interrupted") } + return; + } elsif (!$nfound) { + if (!defined $timeout) { warn("dns: select returned empty-handed\n") } + elsif ($timeout > 0) { dbg("dns: select timed out %.3f s", $timeout) } return; } --- lib/Mail/SpamAssassin/Message.pm~ 2011-06-07 01:59:17.000000000 +0200 +++ lib/Mail/SpamAssassin/Message.pm 2013-05-29 01:32:06.000000000 +0200 @@ -567,5 +567,5 @@ # bug 5557: windows requires tmp file be closed before it can be rm'd if (ref $part->{'raw'} eq 'GLOB') { - close($part->{'raw'}) or die "error closing input file: $!"; + close($part->{'raw'}) or warn "error closing input file: $!"; } --- lib/Mail/SpamAssassin/PerMsgStatus.pm~ 2011-06-07 01:59:17.000000000 +0200 +++ lib/Mail/SpamAssassin/PerMsgStatus.pm 2013-05-29 01:32:06.000000000 +0200 @@ -421,6 +421,6 @@ } - # ignore tests with 0 score in this scoreset - next if ($scores->{$test} == 0); + # ignore tests with 0 score (or undefined) in this scoreset + next if !$scores->{$test}; # Go ahead and add points to the proper locations @@ -1253,11 +1253,10 @@ my $line = ''; foreach my $test (sort @{$self->{test_names_hit}}) { - if (!$line) { - $line .= $test . "=" . $self->{conf}->{scores}->{$test}; - } else { - $line .= $arg . $test . "=" . $self->{conf}->{scores}->{$test}; - } + my $score = $self->{conf}->{scores}->{$test}; + $score = '0' if !defined $score; + $line .= $arg if $line ne ''; + $line .= $test . "=" . $score; } - $line ? $line : 'none'; + $line ne '' ? $line : 'none'; }, --- lib/Mail/SpamAssassin/Util.pm~ 2013-05-29 01:29:59.000000000 +0200 +++ lib/Mail/SpamAssassin/Util.pm 2013-05-29 01:33:16.000000000 +0200 @@ -1588,5 +1588,5 @@ return undef; # invalid } - elsif ($re =~ s/^m{//) { # m{foo/bar} + elsif ($re =~ s/^m\{//) { # m{foo/bar} $delim = '}'; } ++++++ patch-utf8 ++++++ Index: lib/Mail/SpamAssassin/HTML.pm =================================================================== --- lib/Mail/SpamAssassin/HTML.pm (revision 178588) +++ lib/Mail/SpamAssassin/HTML.pm (working copy) @@ -107,6 +107,15 @@ ], marked_sections => 1); + # enable UTF-8 mode, + # http://search.cpan.org/~gaas/HTML-Parser-3.45/Parser.pm#$p-%3Eutf8_mode , + # if we're running perl 5.8 and HTML::Parser supports it. bug 4046. + if ($] >= 5.008 && $self->can("utf8_mode")) { + if (!eval { $self->utf8_mode(); 1; }) { + dbg ("html: failed to enable UTF-8 mode (perl ver $] h:p ver $HTML::Parser::VERSION)"); + } + } + $self; } ++++++ spamd.service ++++++ # This file is part of package amavisd. # # Copyright (c) 2011 SuSE LINUX Products GmbH, Germany. # Author: Werner Fink # Please send feedback to http://www.suse.de/feedback # # Description: # # Used to start the spamd the daemonized version of spamassassin # spamassassin adds a header line that shows if the mail has been # determined spam or not. This way, you can decide what to do with the # mail within the scope of your own filtering rules in your MUA (Mail # User Agent, your mail program) or your LDA (Local Delivery Agent). # [Unit] Description=Daemonized version of spamassassin Wants=remote-fs.target After=remote-fs.target Before=mail-transfer-agent.target [Service] Type=forking PIDFile=/var/run/spamd.pid ExecStartPre=/bin/bash -c "sa-update || true" EnvironmentFile=-/etc/sysconfig/spamd ExecStart=/usr/sbin/spamd $SPAMD_ARGS -r /var/run/spamd.pid ExecReload=/usr/bin/kill -HUP $MAINPID [Install] WantedBy=multi-user.target ++++++ spampd.service ++++++ # This file is part of package amavisd. # # Copyright (c) 2011 SuSE LINUX Products GmbH, Germany. # Author: Werner Fink # Please send feedback to http://www.suse.de/feedback # # Description: # # Used to start the spampd the SpamAssassin Proxy Daemon # spamassassin adds a header line that shows if the mail has been # determined spam or not. This way, you can decide what to do with the # mail within the scope of your own filtering rules in your MUA (Mail # User Agent, your mail program) or your LDA (Local Delivery Agent). # [Unit] Description=SpamAssassin Proxy Daemon Wants=remote-fs.target After=remote-fs.target Before=mail-transfer-agent.target [Service] Type=forking PIDFile=/var/run/spampd.pid ExecStartPre=/bin/bash -c "sa-update || true" EnvironmentFile=-/etc/sysconfig/spampd ExecStart=/usr/sbin/spampd $SPAMPD_OPTIONS ExecReload=/usr/bin/kill -HUP $MAINPID [Install] WantedBy=multi-user.target ++++++ suse.cron-sa-update ++++++ #!/bin/bash if [ -e /etc/sysconfig/spamd ] then . /etc/sysconfig/spamd fi if [ "$SPAM_SA_UPDATE" = "yes" ] then /usr/bin/sa-update &> /dev/null result=$? if [ "$SPAM_SA_COMPILE" = "yes" -a $result = 0 ] ; then /usr/bin/sa-compile &> /dev/null fi if [ "$SPAM_SPAMD_RESTART" = "yes" -a $result = 0 ] ; then /etc/init.d/spamd restart &> /dev/null fi if [ "$SPAM_AMAVISD_RESTART" = "yes" -a $result = 0 ] ; then /etc/init.d/amavis restart &> /dev/null fi if [ $result = 2 ] ; then echo "sa-update lint check failed" | \ logger -t suse.cron-sa-update fi if [ $result -ge 3 ] ; then echo "sa-update failed, exitcode $result" | \ logger -t suse.cron-sa-update fi fi exit 0 ++++++ sysconfig.spamd ++++++ ## Path: Network/Mail/Spamassassin ## Description: Arguments for the spam daemon ## Type: string ## Default: "-d -c -L" ## ServiceRestart: spamd # # The arguments passed to spamd. # See spamd(1) man page. # Default is "-d -c -L" SPAMD_ARGS="-d -c -L" ## Path: Network/Mail/Spamassassin ## Description: Call sa-update periodicaly ## Type: yesno ## Default: "no" # # Set this varible to yes if you want the daily cron job # to call sa-update. SPAM_SA_UPDATE="no" ## Path: Network/Mail/Spamassassin ## Description: Compile SpamAssassin ruleset into native code ## Type: yesno ## Default: "no" # # Set this varible to yes if you want the daily cron job # compile SpamAssassin ruleset into native code after # calling sa-update. SPAM_SA_COMPILE="no" ## Path: Network/Mail/Spamassassin ## Description: Restart spamd after recompiling spamassassin ruleset ## Type: yesno ## Default: "yes" # # Set this varible to yes if you want the daily cron job # restart spamd after recompiling spamassassin ruleset. SPAM_SPAMD_RESTART="yes" ## Path: Network/Mail/Spamassassin ## Description: Restart amavisd after recompiling spamassassin ruleset ## Type: yesno ## Default: "yes" # # Set this varible to yes if you want the daily cron job # restart amavisd after recompiling spamassassin ruleset. SPAM_AMAVISD_RESTART="yes" ++++++ sysconfig.spampd ++++++ SPAMPD_OPTIONS="--port=10025 --relayhost=127.0.0.1:10026 --user=vscan --tagall --children=5 --maxsize=512" -- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
