diff --git a/Mail-SpamAssassin-3.4.2.tar.bz2 b/Mail-SpamAssassin-3.4.2.tar.bz2 new file mode 100644 index 0000000..68fb850 Binary files /dev/null and b/Mail-SpamAssassin-3.4.2.tar.bz2 differ diff --git a/Mail-SpamAssassin-rules-3.4.2.r1840640.tgz b/Mail-SpamAssassin-rules-3.4.2.r1840640.tgz new file mode 100644 index 0000000..4e359eb Binary files /dev/null and b/Mail-SpamAssassin-rules-3.4.2.r1840640.tgz differ diff --git a/openeuler_local.cf b/openeuler_local.cf new file mode 100644 index 0000000..7e91945 --- /dev/null +++ b/openeuler_local.cf @@ -0,0 +1,9 @@ +# These values can be overridden by editing ~/.spamassassin/user_prefs.cf +# (see spamassassin(1) for details) + +# These should be safe assumptions and allow for simple visual sifting +# without risking lost emails. + +required_hits 6 +report_safe 1 +rewrite_header Subject **SPAM** diff --git a/sa-update.cronscript b/sa-update.cronscript new file mode 100644 index 0000000..24386a4 --- /dev/null +++ b/sa-update.cronscript @@ -0,0 +1,102 @@ +#!/bin/bash +# *** DO NOT MODIFY THIS FILE *** +# +# /etc/mail/spamassassin/channel.d/*.conf +# Place files here to add custom channels. +# + +# Proceed with sa-update if spam daemon is running or forced in /etc/sysconfig/sa-update +unset SAUPDATE OPTIONS DEBUG NOTIFY_UPD +[ -f /etc/sysconfig/sa-update ] && . /etc/sysconfig/sa-update +[ "$SAUPDATE" = "no" ] && exit 0 +for daemon in mimedefang spamd amavisd spampd; do + /usr/bin/pgrep -f $daemon >& /dev/null + [ $? -eq 0 ] && SAUPDATE=yes +done + +# Skip sa-update if daemon not detected +[ -z "$SAUPDATE" ] && exit 0 + +# sa-update must create keyring +if [ ! -d /etc/mail/spamassassin/sa-update-keys ]; then + sa-update +fi + +# Initialize Channels and Keys +CHANNELLIST="" +KEYLIST="" +# Process each channel defined in /etc/mail/spamassassin/channel.d/ +for file in /etc/mail/spamassassin/channel.d/*.conf; do + [ ! -f "$file" ] && continue + # Validate config file + PREFIXES="CHANNELURL KEYID BEGIN" + for prefix in $PREFIXES; do + if ! grep -q "$prefix" $file; then + echo "ERROR: $file missing $prefix" + exit 255 + fi + done + . "$file" + #echo "CHANNELURL=$CHANNELURL" + #echo "KEYID=$KEYID" + CHANNELLIST="$CHANNELLIST $CHANNELURL" + KEYLIST="$KEYLIST $KEYID" + sa-update --import "$file" +done + +# Sleep random amount of time before proceeding to avoid overwhelming the servers +sleep $(expr $RANDOM % 7200) + +unset arglist +# Run sa-update on each channel, restart spam daemon if success +for channel in $CHANNELLIST; do + arglist="$arglist --channel $channel" +done +for keyid in $KEYLIST; do + arglist="$arglist --gpgkey $keyid" +done +/usr/bin/sa-update $OPTIONS $arglist +status=$? +now=`date +"%d-%b-%Y %T"` +# cron runs this script tee /var/log/sa-update.log +# We want to always write to the log, but only send mail +# as configured. +if [ $status -eq 0 ]; then + if [ -n "$DEBUG" -o -n "$NOTIFY_UPD" ]; then + echo "$now: SpamAssassin: Update processed successfully" + else + echo "$now: SpamAssassin: Update processed successfully" >>/var/log/sa-update.log + fi + if [ -f /usr/bin/systemctl ]; then + systemctl condrestart spamassassin.service >& /dev/null + [ -f /usr/lib/systemd/system/amavisd.service ] && systemctl condrestart amavisd.service >& /dev/null + systemctl --quiet is-active mimedefang.service; [ $? -eq 0 ] && systemctl reload mimedefang.service >& /dev/null + [ -f /usr/lib/systemd/system/spampd.service ] && systemctl condrestart spampd.service >& /dev/null + else + service spamassassin condrestart >& /dev/null + [ -f /etc/rc.d/init.d/amavisd ] && service amavisd-new condrestart >& /dev/null + [ -f /etc/rc.d/init.d/mimedefang ] && service mimedefang condrestart >& /dev/null + [ -f /etc/rc.d/init.d/spampd ] && service spampd condrestart >& /dev/null + fi + + exit $status +fi +if [ $status -eq 1 ]; then + if [ -n "$DEBUG" ]; then + echo "$now: SpamAssassin: No update available" + else + echo "$now: SpamAssassin: No update available" >>/var/log/sa-update.log + fi + exit $status +fi +if [ $status -eq 2 ]; then + echo "$now: SpamAssassin: Problem applying update - pre files failed lint check" + exit $status +fi +if [ $status -eq 4 ]; then + echo "$now: SpamAssassin: Update available, but download or extract failed" + exit $status +fi + +echo "$now: SpamAssassin: Unknown error code $status from sa-update" +exit $status diff --git a/sa-update.crontab b/sa-update.crontab new file mode 100644 index 0000000..ca08444 --- /dev/null +++ b/sa-update.crontab @@ -0,0 +1,12 @@ +# *** DO NOT MODIFY THIS FILE *** +### Spamassassin Rules Updates ### +# +# http://wiki.apache.org/spamassassin/RuleUpdates +# +# sa-update automatically updates your rules once per day if a spam daemon like +# spamd or amavisd are running. You can force sa-update to run in +# /etc/sysconfig/sa-update +# +# /var/log/sa-update.log contains a history log of sa-update runs + +10 4 * * * root /usr/share/spamassassin/sa-update.cron 2>&1 | tee -a /var/log/sa-update.log diff --git a/sa-update.force-sysconfig b/sa-update.force-sysconfig new file mode 100644 index 0000000..0730be7 --- /dev/null +++ b/sa-update.force-sysconfig @@ -0,0 +1,23 @@ +# sa-update configuration +# +# Note that the opposite of "yes" is the empty string, NOT "no" + +# Don't run sa-update even if it's in /etc/cron.d/ - as installed +#SAUPDATE=no + +# Run sa-update even if no daemon is detected +#SAUPDATE=yes + +# Default: Run only if a daemon is detected + +# Options for the actual sa-update command +# These are added to the channel configuration from +# /etc/mail/spamassassin/channel.d/*.conf +# OPTIONS=-v + +# Debug script - send mail even if no update available +# DEBUG=yes + +# Send mail when updates successfully processed +# Default: send mail only on error +#NOTIFY_UPD=yes diff --git a/sa-update.logrotate b/sa-update.logrotate new file mode 100644 index 0000000..b74133c --- /dev/null +++ b/sa-update.logrotate @@ -0,0 +1,5 @@ +/var/log/sa-update.log { + monthly + notifempty + missingok +} diff --git a/sa-update.service b/sa-update.service new file mode 100644 index 0000000..4bb016f --- /dev/null +++ b/sa-update.service @@ -0,0 +1,15 @@ +### Spamassassin Rules Updates ### +# +# http://wiki.apache.org/spamassassin/RuleUpdates +# +# sa-update automatically updates your rules once per day if a spam daemon like +# spamd or amavisd are running. + +[Unit] +Description=Spamassassin Rules Update +Documentation=man:sa-update(1) + +[Service] +Environment=OPTIONS=-v +ExecStart=/usr/share/spamassassin/sa-update.cron +SuccessExitStatus=1 diff --git a/sa-update.timer b/sa-update.timer new file mode 100644 index 0000000..6e5cba0 --- /dev/null +++ b/sa-update.timer @@ -0,0 +1,16 @@ +### Spamassassin Rules Updates ### +# +# http://wiki.apache.org/spamassassin/RuleUpdates +# +# sa-update automatically updates your rules once per day if a spam daemon like +# spamd or amavisd are running. + +[Unit] +Description=Spamassassin Rules Update timer +Documentation=man:sa-update(1) + +[Timer] +OnCalendar=daily + +[Install] +WantedBy=spamassassin.service diff --git a/spamassassin-3.3.2-gnupg2.patch b/spamassassin-3.3.2-gnupg2.patch new file mode 100644 index 0000000..da9acab --- /dev/null +++ b/spamassassin-3.3.2-gnupg2.patch @@ -0,0 +1,12 @@ +diff -Nur Mail-SpamAssassin-3.3.2.orig/sa-update.raw Mail-SpamAssassin-3.3.2/sa-update.raw +--- Mail-SpamAssassin-3.3.2.orig/sa-update.raw 2011-06-06 17:59:19.000000000 -0600 ++++ Mail-SpamAssassin-3.3.2/sa-update.raw 2014-01-28 13:29:33.933526585 -0700 +@@ -281,7 +281,7 @@ + if ($GPG_ENABLED || $opt{'import'}) { + # find GPG in the PATH + # bug 4958: for *NIX it's "gpg", in Windows it's "gpg.exe" +- $GPGPath = 'gpg' . $Config{_exe}; ++ $GPGPath = 'gpg2' . $Config{_exe}; + dbg("gpg: Searching for '$GPGPath'"); + + if ($GPGPath = Mail::SpamAssassin::Util::find_executable_in_env_path($GPGPath)) { diff --git a/spamassassin-3.4.1-add-logfile-homedir-options.patch b/spamassassin-3.4.1-add-logfile-homedir-options.patch new file mode 100644 index 0000000..1aedc44 --- /dev/null +++ b/spamassassin-3.4.1-add-logfile-homedir-options.patch @@ -0,0 +1,43 @@ +commit bb177c93c8852417fc5a522cbcc45abbab4b3c3d +Author: Tomas Korbar +Date: Thu Jun 7 20:57:07 2018 +0200 + + Add razor log path and home directory option + +diff --git a/lib/Mail/SpamAssassin/Plugin/Razor2.pm b/lib/Mail/SpamAssassin/Plugin/Razor2.pm +index e24252c..935b3ac 100644 +--- a/lib/Mail/SpamAssassin/Plugin/Razor2.pm ++++ b/lib/Mail/SpamAssassin/Plugin/Razor2.pm +@@ -165,7 +165,9 @@ sub razor2_access { + $rc->{opt} = { + debug => (would_log('dbg', $debug) > 1), + foreground => 1, +- config => $self->{main}->{conf}->{razor_config} ++ config => $self->{main}->{conf}->{razor_config}, ++ logfile => $self->{main}->{razor_log_file}, ++ razorhome => $self->{main}->{razor_home_dir} + }; + # no facility prefix on this die + $rc->do_conf() or die "$debug: " . $rc->errstr; +diff --git a/spamd/spamd.raw b/spamd/spamd.raw +index 821f658..2afd6bb 100755 +--- a/spamd/spamd.raw ++++ b/spamd/spamd.raw +@@ -361,6 +361,8 @@ prepare_for_sighup_restart(); + # Parse the command line + Getopt::Long::Configure("bundling"); + GetOptions( ++ 'razor-home-dir=s' => \$opt{'razor_home_dir'}, ++ 'razor-log-file=s' => \$opt{'razor_log_file'}, + 'allow-tell' => \$opt{'tell'}, + 'allowed-ips|A=s' => \@{ $opt{'allowed-ip'} }, + 'auth-ident' => \$opt{'auth-ident'}, +@@ -1149,6 +1151,8 @@ if ( defined $opt{'pidfile'} ) { + + my $spamtest = Mail::SpamAssassin->new( + { ++ razor_home_dir => $opt{'razor_home_dir'}, ++ razor_log_file => $opt{'razor_log_file'}, + dont_copy_prefs => $dontcopy, + rules_filename => ( $opt{'configpath'} || 0 ), + site_rules_filename => ( $opt{'siteconfigpath'} || 0 ), diff --git a/spamassassin-default.rc b/spamassassin-default.rc new file mode 100644 index 0000000..1d8365c --- /dev/null +++ b/spamassassin-default.rc @@ -0,0 +1,3 @@ +# send mail through spamassassin +:0fw +| /usr/bin/spamassassin diff --git a/spamassassin-helper.sh b/spamassassin-helper.sh new file mode 100755 index 0000000..3cd4848 --- /dev/null +++ b/spamassassin-helper.sh @@ -0,0 +1,2 @@ +#!/bin/sh +/usr/bin/spamassassin -e diff --git a/spamassassin-official.conf b/spamassassin-official.conf new file mode 100644 index 0000000..2f35a9c --- /dev/null +++ b/spamassassin-official.conf @@ -0,0 +1,86 @@ +# http://wiki.apache.org/spamassassin/RuleUpdates +CHANNELURL=updates.spamassassin.org +KEYID=5244EC45 +# Ignore everything below. +return 0 + +This is the GPG key that updates are signed with (currently, +as of Wed Dec 21 19:31:38 PST 2005. Please contact with any questions. + + +-----BEGIN PGP PUBLIC KEY BLOCK----- +Version: GnuPG v1.4.2 (SunOS) + +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 +aB8EKy5bg4U6 +=IbYW +-----END PGP PUBLIC KEY BLOCK----- diff --git a/spamassassin-spamc.rc b/spamassassin-spamc.rc new file mode 100644 index 0000000..911dcd4 --- /dev/null +++ b/spamassassin-spamc.rc @@ -0,0 +1,3 @@ +# send mail through spamassassin +:0fw +| /usr/bin/spamc diff --git a/spamassassin.service b/spamassassin.service new file mode 100644 index 0000000..530f8f8 --- /dev/null +++ b/spamassassin.service @@ -0,0 +1,14 @@ +[Unit] +Description=Spamassassin daemon +After=syslog.target network.target +Wants=sa-update.timer + +[Service] +EnvironmentFile=-/etc/sysconfig/spamassassin +ExecStart=/usr/bin/spamd $SPAMDOPTIONS +StandardOutput=null +StandardError=null +Restart=always + +[Install] +WantedBy=multi-user.target diff --git a/spamassassin.spec b/spamassassin.spec new file mode 100644 index 0000000..3d904eb --- /dev/null +++ b/spamassassin.spec @@ -0,0 +1,159 @@ +Name: spamassassin +Version: 3.4.2 +Release: 4 +Summary: A program used for e-mail spam filtering +License: ASL 2.0 +URL: https://spamassassin.apache.org/ +Source0: http://mirror.bit.edu.cn/apache//%{name}/source/Mail-SpamAssassin-%{version}.tar.bz2 +Source1: http://mirror.bit.edu.cn/apache//%{name}/source/Mail-SpamAssassin-rules-%{version}.r1840640.tgz +Source2: openeuler_local.cf +Source3: spamassassin-default.rc +Source4: spamassassin-spamc.rc +Source5: spamassassin.sysconfig +Source6: sa-update.logrotate +Source7: sa-update.crontab +Source8: sa-update.cronscript +Source9: sa-update.force-sysconfig +Source10: spamassassin-helper.sh +Source11: spamassassin-official.conf +Source12: spamassassin.service +Source13: sa-update.service +Source14: sa-update.timer + +Patch0001: spamassassin-3.3.2-gnupg2.patch +Patch0002: spamassassin-3.4.1-add-logfile-homedir-options.patch + +BuildRequires: gcc openssl-devel perl-devel perl-generators perl-HTML-Parser >= 3.43 +BuildRequires: perl-interpreter >= 2:5.8.0 perl(Archive::Tar) perl(DB_File) +BuildRequires: perl(Digest::SHA1) perl(HTML::Parser) perl(IO::Socket::INET6) +BuildRequires: perl(IO::Socket::SSL) perl(LWP::UserAgent) perl(Mail::DKIM) +BuildRequires: perl(Mail::SPF) perl(Net::CIDR::Lite) perl(Net::DNS) perl(NetAddr::IP) +BuildRequires: perl(Test::More) perl(Time::HiRes) systemd-units + +Requires: gnupg2 procmail perl-HTML-Parser >= 3.43 +Requires: perl(:MODULE_COMPAT_%(eval "`%{__perl} -V:version`"; echo $version)) +Requires: perl(Archive::Tar) perl(BSD::Resource) perl(DB_File) perl(Data::Dumper) +Requires: perl(Digest::MD5) perl(Digest::SHA) perl(Encode::Detect) perl(Errno) +Requires: perl(Exporter) perl(HTTP::Date) perl(IO::Socket::INET6) perl(IO::Socket::SSL) +Requires: perl(LWP::UserAgent) perl(List::Util) perl(Mail::DKIM) perl(Mail::SPF) +Requires: perl(Net::CIDR::Lite) perl(Net::DNS) perl(Socket) perl(Time::HiRes) + +Requires(preun): systemd-units +Requires(post): diffutils systemd-units systemd-sysv +Requires(postun): systemd-units + +%description +Apache SpamAssassin is the Open Source anti-spam platform giving system administrators +a filter to classify email and block spam (unsolicited bulk email). + +It uses a robust scoring framework and plug-ins to integrate a wide range of advanced +heuristic and statistical analysis tests on email headers and body text including text +analysis, Bayesian filtering, DNS blocklists, and collaborative filtering databases. + +%package help +Summary: Help documents for %{name} +Buildarch: noarch + +%description help +Man pages and other help documents for %{name}. + +%prep +%autosetup -n Mail-SpamAssassin-%{version} -p1 + +%build +export CFLAGS="$RPM_OPT_FLAGS" +export LDFLAGS="%{build_ldflags}" +perl Makefile.PL DESTDIR=%buildroot SYSCONFDIR=%{_sysconfdir} INSTALLDIRS=vendor ENABLE_SSL="yes" < /dev/null +%make_build OPTIMIZE="$RPM_OPT_FLAGS" + +%install +%makeinstall PREFIX=%buildroot/%{prefix} INSTALLMAN1DIR=%buildroot%{_mandir}/man1 \ + INSTALLMAN3DIR=%buildroot%{_mandir}/man3 LOCAL_RULES_DIR=%{buildroot}/etc/mail/spamassassin +chmod 755 %buildroot%{_bindir}/* + +install -d %buildroot%{_sysconfdir}/mail/spamassassin +install -d %buildroot%{_sysconfdir}/sysconfig +install -d %buildroot%{_sysconfdir}/logrotate.d +install -d %buildroot%{_unitdir} +install -m 0644 %{SOURCE2} %buildroot%{_sysconfdir}/mail/spamassassin/local.cf +install -m 0644 %{SOURCE5} %buildroot%{_sysconfdir}/sysconfig/spamassassin +install -m 0644 %{SOURCE3} %{SOURCE4} %buildroot/etc/mail/spamassassin +install -m 0755 %{SOURCE10} %buildroot/etc/mail/spamassassin +install -m 0644 %{SOURCE6} %buildroot/etc/logrotate.d/sa-update +install -m 0644 %{SOURCE9} %buildroot%{_sysconfdir}/sysconfig/sa-update +install -m 0744 %{SOURCE8} %buildroot%{_datadir}/spamassassin/sa-update.cron +install -m 0644 %{SOURCE12} %buildroot%{_unitdir}/spamassassin.service +install -m 0644 %{SOURCE13} %buildroot%{_unitdir}/sa-update.service +install -m 0644 %{SOURCE14} %buildroot%{_unitdir}/sa-update.timer + +[ -x /usr/lib/rpm/brp-compress ] && /usr/lib/rpm/brp-compress + +find %buildroot \( -name perllocal.pod -o -name .packlist \) -exec rm -v {} \; +find %buildroot -type d -depth -exec rmdir {} 2>/dev/null ';' + +pushd %buildroot%{_datadir}/spamassassin/ +tar xfvz %{SOURCE1} +sed -i -e 's|\@\@VERSION\@\@|3.004002|' *.cf +popd + +install -d %buildroot%{_localstatedir}/lib/spamassassin +install -d -m 0700 %buildroot%{_sysconfdir}/mail/spamassassin/sa-update-keys/ +install -d -m 0755 %buildroot%{_sysconfdir}/mail/spamassassin/channel.d/ +install -m 0644 %{SOURCE11} %buildroot%{_sysconfdir}/mail/spamassassin/channel.d/ + +%post +%systemd_post spamassassin.service +%systemd_post sa-update.timer + +TMPFILE=$(/bin/mktemp /etc/sysconfig/spamassassin.XXXXXX) || exit 1 +cp /etc/sysconfig/spamassassin $TMPFILE +perl -p -i -e 's/(["\s]-\w+)a/$1/ ; s/(["\s]-)a(\w+)/$1$2/ ; s/(["\s])-a\b/$1/' $TMPFILE +perl -p -i -e 's/ --auto-whitelist//' $TMPFILE +cmp /etc/sysconfig/spamassassin $TMPFILE || cp $TMPFILE /etc/sysconfig/spamassassin +rm $TMPFILE + +if [ -f /etc/spamassassin.cf ]; then + mv /etc/spamassassin.cf /etc/mail/spamassassin/migrated.cf +fi +if [ -f /etc/mail/spamassassin.cf ]; then + mv /etc/mail/spamassassin.cf /etc/mail/spamassassin/migrated.cf +fi + +%postun +%systemd_postun spamassassin.service +%systemd_postun sa-update.timer + +%preun +%systemd_preun spamassassin.service +%systemd_preun sa-update.timer +%triggerun -- spamassassin < 3.3.2-2 +%{_bindir}/systemd-sysv-convert --save spamassassin >/dev/null 2>&1 ||: + +%files +%doc LICENSE +%{_bindir}/* +%dir %{_sysconfdir}/mail +%config(noreplace) %{_sysconfdir}/mail/spamassassin +%config(noreplace) %{_sysconfdir}/logrotate.d/sa-update +%config(noreplace) %{_sysconfdir}/sysconfig/* +%dir %{_datadir}/spamassassin +%{_datadir}/spamassassin/* +%dir %{_localstatedir}/lib/spamassassin +%{perl_vendorlib}/spamassassin-run.pod +%dir %{perl_vendorlib}/Mail +%dir %{perl_vendorlib}/Mail/SpamAssassin +%dir %{perl_vendorlib}/Mail/SpamAssassin/* +%dir %{perl_vendorlib}/Mail/SpamAssassin/Message/Metadata +%{perl_vendorlib}/Mail/*.pm +%{perl_vendorlib}/Mail/SpamAssassin/*.pm +%{perl_vendorlib}/Mail/SpamAssassin/*/*.pm +%{perl_vendorlib}/Mail/SpamAssassin/Message/Metadata/*.pm +%{_unitdir}/* + +%files help +%doc Changes CREDITS NOTICE README TRADEMARK UPGRADE USAGE sample-nonspam.txt sample-spam.txt +%{_mandir}/man[13]/* + +%changelog +* Mon Dec 09 2019 zhouyihang - 3.4.2-4 +- Package init diff --git a/spamassassin.sysconfig b/spamassassin.sysconfig new file mode 100644 index 0000000..f3e30b5 --- /dev/null +++ b/spamassassin.sysconfig @@ -0,0 +1,2 @@ +# Options to spamd +SPAMDOPTIONS="-c -m5 -H --razor-home-dir='/var/lib/razor/' --razor-log-file='sys-syslog'"