1 |
# $Id: qpsmtpd.spec,v 1.2 2016/02/09 21:17:36 stephdl Exp $ |
# $Id: qpsmtpd.spec,v 1.28 2018/03/11 05:43:50 jpp Exp $ |
2 |
|
|
3 |
Name: qpsmtpd |
Name: qpsmtpd |
4 |
Version: 0.84 |
Version: 0.96 |
5 |
Release: 20%{?dist} |
Release: 20%{?dist} |
6 |
Summary: qpsmtpd + qpsmtpd-apache + qpsmtpd-async |
Summary: qpsmtpd + qpsmtpd-apache |
7 |
License: MIT |
License: MIT |
8 |
Group: System Environment/Daemons |
Group: System Environment/Daemons |
9 |
URL: http://smtpd.develooper.com/ |
URL: http://smtpd.develooper.com/ |
13 |
BuildArch: noarch |
BuildArch: noarch |
14 |
Requires: perl(Mail::Header), perl(Net::DNS) perl(Net::IP) |
Requires: perl(Mail::Header), perl(Net::DNS) perl(Net::IP) |
15 |
Requires: perl(IO::Socket::SSL) >= 1.70 |
Requires: perl(IO::Socket::SSL) >= 1.70 |
16 |
|
Requires: perl(Data::Validate::Domain) |
17 |
Requires(pre): coreutils, shadow-utils, perl |
Requires(pre): coreutils, shadow-utils, perl |
18 |
|
|
19 |
Source0: %{name}-%{version}.tar.gz |
Source0: %{name}-%{version}.tar.gz |
20 |
Source1: qpsmtpd-forkserver.rc |
Source1: qpsmtpd-forkserver.rc |
21 |
Source2: qpsmtpd-forkserver.sysconfig |
Source2: qpsmtpd-forkserver.sysconfig |
22 |
Source3: qpsmtpd-plugin-file_connection |
Source3: qpsmtpd-xinetd |
23 |
Source4: qpsmtpd-xinetd |
Source4: in.qpsmtpd |
24 |
Source5: in.qpsmtpd |
Source5: qpsmtpd.conf |
25 |
Source6: qpsmtpd.conf |
Source6: README.selinux |
26 |
Source7: README.selinux |
|
27 |
|
Patch1: qpsmtpd-0.95-spamassassin_size_limit.patch |
28 |
Patch1: 0001-Misc-documentation-updates.patch |
Patch2: qpsmtpd-0.95-qpsmtpd_forserver_keepalive.patch |
29 |
Patch2: 0002-added-ClamAV-version-to-the-X-Virus-Checked-header.patch |
Patch3: qpsmtpd-0.95-notls_conf.patch |
30 |
Patch3: 0003-new-plugin-check_bogus_bounce.patch |
Patch4: qpsmtpd-0.95-allow_tls_proto_from_conf.patch |
31 |
Patch4: 0004-microoptimizations-replace-regex-with-lc-eq.patch |
Patch5: qpsmtpd-0.96-set_hooks.patch |
32 |
Patch5: 0005-remove-vestiges-of-a-bygone-RCS.patch |
Patch6: qpsmtpd-0.96-warn_implicit_split.patch |
33 |
Patch6: 0006-added-definedness-test-to-local_port-as-it-was-emitt.patch |
Patch7: qpsmtpd-0.96-dont_log_credentials_except_in_debug.patch |
34 |
Patch7: 0007-Add-guidelines-for-commit-messages.patch |
Patch8: qpsmtpd-0.96-uribl_data_post.patch |
35 |
Patch8: 0008-added-auth_checkpassword-plugin.patch |
Patch9: qpsmtpd-0.96-karma_strikes.patch |
36 |
Patch9: 0009-updates-to-auth_vpopmail_sql-module.patch |
Patch10: qpsmtpd-0.96-more_badrcptto.patch |
37 |
Patch10: 0010-new-plugin-auth_vpopmaild.patch |
Patch11: qpsmtpd-0.96-karma_tlds_conf.patch |
38 |
Patch11: 0011-start-working-on-Changes-file-for-0.84-next.patch |
Patch12: qpsmtpd-0.96-store_original_plugin_name.patch |
39 |
Patch12: 0012-fix-copy-paste-error-in-auth_flat_file.patch |
Patch13: qpsmtpd-0.96-fix_karma_tool_dir_path.patch |
40 |
Patch13: 0013-added-auth_vpopmail-plugin.patch |
Patch14: qpsmtpd-0.96-dkim_no_sign_for_others_on_symlinks.patch |
41 |
Patch14: 0014-rewrote-sender_permitted_from.patch |
Patch15: qpsmtpd-0.96-fix_dmarc_reject.patch |
42 |
Patch15: 0015-add-TCPLOCAL-variables-to-qp-connection.patch |
Patch16: qpsmtpd-0.96-add_dmarc_result_notes.patch |
43 |
Patch16: 0016-added-local_ip-option-to-p0f-plugin.patch |
Patch17: qpsmtpd-0.96-spf_on_no_dmarc_policy.patch |
44 |
Patch17: 0017-added-p0f-support-to-greylist-plugin.patch |
Patch18: qpsmtpd-0.96-check_negative_karma_strikes.patch |
45 |
Patch18: 0018-packaging-updates.patch |
Patch19: qpsmtpd-0.96-addr_defined_before_use.patch |
46 |
Patch19: 0019-Check-for-the-exact-string-resonses-from-vpopmaild-r.patch |
Patch20: qpsmtpd-0.96-check_rua_is_defined.patch |
47 |
Patch20: 0020-new-plugin-check_badmailfrom_patterns.patch |
Patch21: qpsmtpd-0.96-remove_karma_rcpt_handler.patch |
48 |
Patch21: 0021-ignore-search-path-in-DNS-lookups.patch |
Patch22: qpsmtpd-0.96-eval_dkim_policies.patch |
49 |
Patch22: 0022-don-t-create-homedir-in-RPM.patch |
Patch23: qpsmtpd-0.96-uribl_validate_domains.patch |
50 |
Patch23: 0023-corrected-email-address.patch |
Patch24: qpsmtpd-0.96-bz10112-whitelist.patch |
51 |
Patch24: 0024-increased-default-TLS-security-setting.patch |
Patch25: qpsmtpd-0.96-SME10139-Message-Id.patch |
52 |
Patch25: 0025-give-badrcptto-a-reasonable-name.patch |
Patch26: qpsmtpd-0.96-bz10290-spamassassin-fetchmail.patch |
53 |
Patch26: 0026-add-test-name-to-test-output.patch |
Patch27: qpsmtpd-0.96-bz10387-load_plugins-on-start.patch |
|
Patch27: 0027-renamed-test-from-foo-to-rcpt_ok.patch |
|
|
Patch28: 0028-Shorten-clarify-Connection-and-Transaction-notes.patch |
|
|
Patch29: 0029-Run-hook_reset_transaction-after-all-connections.patch |
|
|
Patch30: 0030-Add-support-for-multiple-postfix-cleanup-sockets.patch |
|
|
Patch31: 0031-Adds-the-ability-to-have-multiple-instances-each-wit.patch |
|
|
Patch32: 0032-I-forgot-to-sync-the-code-that-calls-the-original-co.patch |
|
|
Patch33: 0033-new-plugin-rcpt_map.patch |
|
|
Patch34: 0034-plugins-rcpt_map-cleanup.patch |
|
|
Patch35: 0035-Fix-for-plugins-returning-DONE-from-HELO-EHLO.patch |
|
|
Patch36: 0036-prefork-use-new-instance-instead-of-cloning.patch |
|
|
Patch37: 0037-Revert-Spool-body-when-transaction-body_fh-is-called.patch |
|
|
Patch38: 0038-Patch-FATAL-PLUGIN-ERROR-check_basicheaders.patch |
|
|
Patch39: 0039-qpsmtpd-0.84-spamassassin_size_limit.patch |
|
|
Patch40: 0040-qpsmtpd-forkserver_fix_Net_DNS_update_breaks_qpsmtpd.patch |
|
|
|
|
|
Patch100: qpsmtpd-0.40-badrcptto_allowrelay.patch |
|
|
Patch101: qpsmtpd-0.83-peer_hooks.patch |
|
|
Patch102: qpsmtpd-0.83-loginit.patch |
|
|
Patch103: qpsmtpd-forkserver-keepalive.patch |
|
|
Patch104: qpsmtpd-0.84-accept-empty-email.patch |
|
|
Patch105: qpsmtpd-0.84-fix_eq_operator.patch |
|
|
Patch106: qpsmtpd-0.84-remove_denysoft_on_spf_softfail.patch |
|
|
Patch107: qpsmtpd-0.84-notls_conf.patch |
|
|
Patch108: qpsmtpd-0.84-disable_sslv3.patch |
|
|
Patch109: qpsmtpd-0.84-make-dnsbl-more-whitelist_soft-aware.patch |
|
|
Patch110: qpsmtpd-0.84-disable_tlsv1.patch |
|
|
Patch111: qpsmtpd-0.84-deny_login_with_null.patch |
|
|
Patch112: qpsmtpd-0.84-allow_tls_proto_from_config.patch |
|
|
Patch113: qpsmtpd-0.84-Socket6.patch |
|
54 |
|
|
55 |
%description |
%description |
56 |
qpsmtpd is a flexible smtpd daemon written in Perl. Apart from the core |
qpsmtpd is a flexible smtpd daemon written in Perl. Apart from the core |
65 |
Summary: mod_perl-2 connection handler for qpsmtpd |
Summary: mod_perl-2 connection handler for qpsmtpd |
66 |
Group: System Environment/Daemons |
Group: System Environment/Daemons |
67 |
|
|
|
%package async |
|
|
Summary: qpsmtpd using async I/O in a single process |
|
|
Group: System Environment/Daemons |
|
|
|
|
68 |
%description apache |
%description apache |
69 |
|
|
70 |
This module implements a mod_perl/apache 2.0 connection handler |
This module implements a mod_perl/apache 2.0 connection handler |
71 |
that turns Apache into an SMTP server using Qpsmtpd. |
that turns Apache into an SMTP server using Qpsmtpd. |
72 |
|
|
|
%description async |
|
|
This package contains the Qpsmtpd::PollServer module, which allows |
|
|
qpsmtd to handle many connections in a single process and the |
|
|
qpsmpd-async which uses it. |
|
73 |
|
|
74 |
%prep |
%prep |
75 |
%setup -q |
%setup -q |
94 |
%patch19 -p1 |
%patch19 -p1 |
95 |
%patch20 -p1 |
%patch20 -p1 |
96 |
%patch21 -p1 |
%patch21 -p1 |
97 |
#%patch22 -p1 |
%patch22 -p1 |
98 |
%patch23 -p1 |
%patch23 -p1 |
99 |
%patch24 -p1 |
%patch24 -p1 |
100 |
%patch25 -p1 |
%patch25 -p1 |
101 |
%patch26 -p1 |
%patch26 -p1 |
102 |
%patch27 -p1 |
%patch27 -p1 |
|
%patch28 -p1 |
|
|
%patch29 -p1 |
|
|
%patch30 -p1 |
|
|
%patch31 -p1 |
|
|
%patch32 -p1 |
|
|
%patch33 -p1 |
|
|
%patch34 -p1 |
|
|
%patch35 -p1 |
|
|
%patch36 -p1 |
|
|
%patch37 -p1 |
|
|
%patch38 -p1 |
|
|
%patch39 -p1 |
|
|
%patch40 -p1 |
|
|
|
|
|
%patch100 -p1 |
|
|
%patch101 -p1 |
|
|
%patch102 -p1 |
|
|
%patch103 -p0 |
|
|
%patch104 -p1 |
|
|
%patch105 -p1 |
|
|
%patch106 -p1 |
|
|
%patch107 -p1 |
|
|
%patch108 -p1 |
|
|
%patch109 -p1 |
|
|
%patch110 -p1 |
|
|
%patch111 -p1 |
|
|
%patch112 -p1 |
|
|
%patch113 -p1 |
|
103 |
|
|
104 |
%build |
%build |
105 |
CFLAGS="$RPM_OPT_FLAGS" perl Makefile.PL INSTALLDIRS="vendor" PREFIX="%{buildroot}%{_prefix}" |
CFLAGS="$RPM_OPT_FLAGS" perl Makefile.PL INSTALLDIRS="vendor" PREFIX="%{buildroot}%{_prefix}" |
126 |
cp %{SOURCE1} %{buildroot}%{_initrddir}/qpsmtpd-forkserver |
cp %{SOURCE1} %{buildroot}%{_initrddir}/qpsmtpd-forkserver |
127 |
mkdir -p %{buildroot}%{_sysconfdir}/sysconfig |
mkdir -p %{buildroot}%{_sysconfdir}/sysconfig |
128 |
cp %{SOURCE2} %{buildroot}%{_sysconfdir}/sysconfig/qpsmtpd-forkserver |
cp %{SOURCE2} %{buildroot}%{_sysconfdir}/sysconfig/qpsmtpd-forkserver |
|
cp %{SOURCE3} %{buildroot}%{_datadir}/%{name}/plugins/logging/file_connection |
|
129 |
mkdir -p %{buildroot}%{_localstatedir}/spool/qpsmtpd |
mkdir -p %{buildroot}%{_localstatedir}/spool/qpsmtpd |
130 |
mkdir -p %{buildroot}%{_localstatedir}/log/qpsmtpd |
mkdir -p %{buildroot}%{_localstatedir}/log/qpsmtpd |
131 |
mkdir -p %{buildroot}%{_sysconfdir}/xinetd.d |
mkdir -p %{buildroot}%{_sysconfdir}/xinetd.d |
132 |
cp %{SOURCE4} %{buildroot}%{_sysconfdir}/xinetd.d/smtp |
cp %{SOURCE3} %{buildroot}%{_sysconfdir}/xinetd.d/smtp |
133 |
mkdir -p %{buildroot}%{_sbindir} |
mkdir -p %{buildroot}%{_sbindir} |
134 |
cp %{SOURCE5} %{buildroot}%{_sbindir}/in.smtp |
cp %{SOURCE4} %{buildroot}%{_sbindir}/in.smtp |
135 |
mkdir -p %{buildroot}%{_sysconfdir}/httpd/conf.d |
mkdir -p %{buildroot}%{_sysconfdir}/httpd/conf.d |
136 |
cp %{SOURCE6} %{buildroot}%{_sysconfdir}/httpd/conf.d |
cp %{SOURCE5} %{buildroot}%{_sysconfdir}/httpd/conf.d |
137 |
mkdir -p %{buildroot}%{_docdir}/%{name}-apache-%{version} |
mkdir -p %{buildroot}%{_docdir}/%{name}-apache-%{version} |
138 |
cp %{SOURCE7} %{buildroot}%{_docdir}/%{name}-apache-%{version} |
cp %{SOURCE6} %{buildroot}%{_docdir}/%{name}-apache-%{version} |
139 |
|
|
140 |
[ -x /usr/lib/rpm/brp-compress ] && /usr/lib/rpm/brp-compress |
[ -x /usr/lib/rpm/brp-compress ] && /usr/lib/rpm/brp-compress |
141 |
|
|
147 |
grep -v README.selinux | \ |
grep -v README.selinux | \ |
148 |
grep -v /Apache | \ |
grep -v /Apache | \ |
149 |
grep -v /Danga | \ |
grep -v /Danga | \ |
|
grep -v Qpsmtpd/ConfigServer.pm | \ |
|
150 |
grep -v Qpsmtpd/PollServer.pm > %{name}-%{version}-%{release}-filelist |
grep -v Qpsmtpd/PollServer.pm > %{name}-%{version}-%{release}-filelist |
151 |
if [ "$(cat %{name}-%{version}-%{release}-filelist)X" = "X" ] ; then |
if [ "$(cat %{name}-%{version}-%{release}-filelist)X" = "X" ] ; then |
152 |
echo "ERROR: EMPTY FILE LIST" |
echo "ERROR: EMPTY FILE LIST" |
155 |
|
|
156 |
%files -f %{name}-%{version}-%{release}-filelist |
%files -f %{name}-%{version}-%{release}-filelist |
157 |
%defattr(-,root,root) |
%defattr(-,root,root) |
158 |
%doc CREDITS Changes LICENSE README README.plugins STATUS |
%doc CREDITS Changes LICENSE README.md README.plugins.md STATUS |
159 |
%{_initrddir}/qpsmtpd-forkserver |
%{_initrddir}/qpsmtpd-forkserver |
160 |
%config(noreplace) %{_sysconfdir}/qpsmtpd/* |
%config(noreplace) %{_sysconfdir}/qpsmtpd/* |
161 |
%config(noreplace) %{_sysconfdir}/xinetd.d/smtp |
%config(noreplace) %{_sysconfdir}/xinetd.d/smtp |
168 |
%config(noreplace) %{_sysconfdir}/httpd/conf.d/* |
%config(noreplace) %{_sysconfdir}/httpd/conf.d/* |
169 |
%doc %{_docdir}/%{name}-apache-%{version}/README.selinux |
%doc %{_docdir}/%{name}-apache-%{version}/README.selinux |
170 |
|
|
|
%files async |
|
|
%defattr(-,root,root) |
|
|
%{_bindir}/qpsmtpd-async |
|
|
%{_prefix}/share/perl5/vendor_perl/Danga/Client.pm |
|
|
%{_prefix}/share/perl5/vendor_perl/Danga/TimeoutSocket.pm |
|
|
%{_prefix}/share/perl5/vendor_perl/Qpsmtpd/ConfigServer.pm |
|
|
%{_prefix}/share/perl5/vendor_perl/Qpsmtpd/Plugin/Async/DNSBLBase.pm |
|
|
%{_prefix}/share/perl5/vendor_perl/Qpsmtpd/PollServer.pm |
|
|
%{_mandir}/man1/qpsmtpd-async.1.gz |
|
|
%{_datadir}/%{name}/plugins/async/* |
|
|
|
|
171 |
%pre |
%pre |
172 |
|
|
173 |
|
|
174 |
%changelog |
%changelog |
175 |
|
* Mon Nov 15 2021 Jean-Philippe Pialasse <tests@pialasse.com> 0.96-20.sme |
176 |
|
- fix configuration not honoured on initial start [SME: 10387] |
177 |
|
commented out load_plugins see https://github.com/smtpd/qpsmtpd/issues/288. |
178 |
|
|
179 |
|
* Sun Mar 11 2018 Jean-Philipe Pialasse <tests@pialasse.com> 0.96-19.sme |
180 |
|
- add support to force spamcheck on specific IP for fetchmail [SME: 10290] |
181 |
|
|
182 |
|
* Tue Mar 07 2017 Jean-Philipe Pialasse <tests@pialasse.com> 0.96-18.sme |
183 |
|
- Removed Message-Id validation, as it rejects MS account validation email [SME: 10139] |
184 |
|
|
185 |
|
* Mon Feb 27 2017 Jean-Philipe Pialasse <tests@pialasse.com> 0.96-17.sme |
186 |
|
- fix whitelist plugin to support helo with naughty rejecting at mail stage [SME: 10112] |
187 |
|
|
188 |
|
* Mon Jul 11 2016 Daniel Berteaud <daniel@firewall-services.com> 0.96-16.sme |
189 |
|
- Validate domains found in uribl with Data::Validate::Domain [SME: 9467] |
190 |
|
|
191 |
|
* Tue Jul 5 2016 Daniel Berteaud <daniel@firewall-services.com> 0.96-15.sme |
192 |
|
- Use eval to fetch dkim policies, prevent fatal errors in case of DNS |
193 |
|
timeout [SME: 9480] |
194 |
|
|
195 |
|
* Wed Jun 15 2016 Daniel Berteaud <daniel@firewall-services.com> 0.96-14.sme |
196 |
|
- Remove karma rcpt handling (buggy and doesn't make a lot of sense) |
197 |
|
[SME: 9462] |
198 |
|
|
199 |
|
* Sat May 28 2016 Daniel Berteaud <daniel@firewall-services.com> 0.96-13.sme |
200 |
|
- Check rua is defined before trying to parse it to prevent an error |
201 |
|
if a domain has a DMARC entry published with no rua [SME: 9206] |
202 |
|
|
203 |
|
* Mon May 16 2016 Daniel Berteaud <daniel@firewall-services.com> 0.96-12.sme |
204 |
|
- Fix error when RCPT TO is not valid [SME: 9460] |
205 |
|
|
206 |
|
* Mon May 9 2016 Daniel Berteaud <daniel@firewall-services.com> 0.96-11.sme |
207 |
|
- Fix karma logic by checking negative strikes [SME: 9462] |
208 |
|
|
209 |
|
* Sun May 8 2016 Daniel Berteaud <daniel@firewall-services.com> 0.96-10.sme |
210 |
|
- Remove previous patch, it was already applied [SME: 9462] |
211 |
|
|
212 |
|
* Sun May 8 2016 Daniel Berteaud <daniel@firewall-services.com> 0.96-9.sme |
213 |
|
- Backport a fix for karma_tool so it can find its database [SME: 9462] |
214 |
|
|
215 |
|
* Fri May 6 2016 Daniel Berteaud <daniel@firewall-services.com> 0.96-8.sme |
216 |
|
- Support dkim signing with symlinks [SME: 9496] |
217 |
|
- Fix DMARC rejects not working [SME: 9202] |
218 |
|
- Add DMARC results notes so further plugin can check it [SME: 9202] |
219 |
|
- Add possibility to reject solely on SPF result if no DMARC policy is published |
220 |
|
[SME: 9479] |
221 |
|
|
222 |
|
* Fri May 6 2016 Daniel Berteaud <daniel@firewall-services.com> 0.96-7.sme |
223 |
|
- Backport some minor patches from git head [SME: 9460] |
224 |
|
|
225 |
|
* Fri Apr 22 2016 Daniel Berteaud <daniel@firewall-services.com> 0.96-6.sme |
226 |
|
- badrcptto can now read another file container bad addresses [SME: 9460] |
227 |
|
[SME: 4597] |
228 |
|
|
229 |
|
* Thu Apr 21 2016 Daniel Berteaud <daniel@firewall-services.com> 0.96-5.sme |
230 |
|
- Fix a typo in previous patch [SME: 9462] |
231 |
|
|
232 |
|
* Thu Apr 21 2016 Daniel Berteaud <daniel@firewall-services.com> 0.96-4.sme |
233 |
|
- Backport the karma strikes param patch [SME: 9462] |
234 |
|
|
235 |
|
* Mon Apr 18 2016 Daniel Berteaud <daniel@firewall-services.com> 0.96-3.sme |
236 |
|
- hook uribl in data_post so it has access to the body [SME: 9467] |
237 |
|
|
238 |
|
* Sun Apr 17 2016 Daniel Berteaud <daniel@firewall-services.com> 0.96-2.sme |
239 |
|
- Don't log user credentials except when using the higher log level |
240 |
|
[SME: 9466] |
241 |
|
|
242 |
|
* Sat Apr 16 2016 Daniel Berteaud <daniel@firewall-services.com> 0.96-1.sme |
243 |
|
- Update to 0.96 [SME: 9460] |
244 |
|
|
245 |
* Fri Mar 25 2016 Charlie Brady <charlieb@charliebrady.org> 0.84-20.sme |
* Fri Mar 25 2016 Charlie Brady <charlieb@charliebrady.org> 0.84-20.sme |
246 |
- Fix startup warnings due to Socket6 symbol import. [SME: 9386] |
- Fix startup warnings due to Socket6 symbol import. [SME: 9386] |
247 |
|
|