--- rpms/qpsmtpd/sme8/qpsmtpd.spec 2009/03/28 08:05:49 1.16 +++ rpms/qpsmtpd/sme8/qpsmtpd.spec 2009/11/03 21:53:04 1.21 @@ -1,46 +1,34 @@ -# $Id: qpsmtpd.spec,v 1.15 2008/08/11 20:32:47 charliebrady Exp $ +# $Id: qpsmtpd.spec,v 1.20 2009/10/31 16:50:52 slords Exp $ Name: qpsmtpd -Version: 0.40 -Release: 1.11%{?dist} -%define orig_version 0.40 -Summary: qpsmtpd +Version: 0.83 +Release: 0.5%{?dist} +Summary: qpsmtpd + qpsmtpd-apache + qpsmtpd-async License: distributable Group: System Environment/Daemons URL: http://smtpd.develooper.com/ -BuildRoot: %{_tmppath}/%{name}-root +BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root BuildRequires: perl >= 0:5.00503 BuildArchitectures: noarch Requires: perl(Mail::Header), perl(Net::DNS) perl(Net::IP) +Requires(pre): coreutils, shadow-utils, perl -Source0: qpsmtpd-%{orig_version}.tar.gz +Source0: %{name}-%{version}.tar.gz Source1: qpsmtpd-forkserver.rc Source2: qpsmtpd-forkserver.sysconfig Source3: qpsmtpd-plugin-file_connection Source4: qpsmtpd-xinetd Source5: in.qpsmtpd +Source6: qpsmtpd.conf +Source7: README.selinux + +Patch10: qpsmtpd-0.83-loginit.patch + +Patch100: qpsmtpd-0.40-badrcptto_allowrelay.patch +Patch101: qpsmtpd-0.83-peer_hooks.patch +Patch102: qpsmtpd-0.83-clamd_conf.patch +Patch103: qpsmtpd-0.83-clamav-headers.patch -Patch1: qpsmtpd-0.31-config.patch -Patch2: qpsmtpd-0.33-xinetd.patch -Patch3: qpsmtpd-0.33-af_inet6.patch -Patch4: qpsmtpd-0.31.1-queue.patch -Patch5: qpsmtpd-0.33-smtp-loginfo.patch -Patch6: qpsmtpd-0.33-hook-logdebug.patch -Patch7: qpsmtpd-0.32-dnsbl-checkanswer.patch -Patch8: qpsmtpd-0.32-dns-random-id.patch -Patch100: qpsmtpd-0.40-badhelo_disconnect.patch -Patch101: qpsmtpd-0.40-badrcptto_allowrelay.patch -Patch102: qpsmtpd-0.40-clamav_fix.patch -Patch103: qpsmtpd-0.40-peer_hooks.patch -Patch104: qpsmtpd-0.40-clamd_conf.patch -Patch105: qpsmtpd-0.40-denysoft.patch -Patch106: qpsmtpd-0.40-clamav-headers.patch -Patch107: qpsmtpd-0.40-rhsbl_disconnect.patch -Patch108: qpsmtpd-0.40-badrcpttoPlugin.patch -Patch109: qpsmtpd-0.40-spamassassin.patch -Patch110: qpsmtpd-0.40-resolvable_fromhost.patch -Patch111: qpsmtpd-0.40-fixClamscanParameterChange.patch - %description qpsmtpd is a flexible smtpd daemon written in Perl. Apart from the core SMTP features, all functionality is implemented in small "extension @@ -50,6 +38,7 @@ qpsmtpd was originally written as a drop now it also includes a smtp forward and a postfix "backend". %package apache +Requires: perl(mod_perl2) Summary: mod_perl-2 connection handler for qpsmtpd Group: System Environment/Daemons @@ -68,36 +57,18 @@ qpsmtd to handle many connections in a s qpsmpd-async which uses it. %prep -%setup -q -n qpsmtpd-%{orig_version} -# XXX - doesn't apply cleanly any more but may still be needed for empty -# configs. -#%patch1 -p0 -b .config -# Merged into upstream: -#%patch2 -p0 -b .xinetd -#%patch3 -p0 -b .af_inet6 -%patch4 -p0 -b .queue -#%patch5 -p0 -b .smtp-loginfo -#%patch6 -p0 -b .hook-logdebug -#%patch7 -p0 -b .dnsbl-checkanswer -#%patch8 -p0 -b .dns-random-id +%setup -q +%patch10 -p1 %patch100 -p1 %patch101 -p1 -#%patch102 -p1 +%patch102 -p1 %patch103 -p1 -%patch104 -p1 -%patch105 -p1 -%patch106 -p1 -%patch107 -p1 -%patch108 -p1 -%patch109 -p1 -%patch110 -p1 -%patch111 -p1 + %build -CFLAGS="$RPM_OPT_FLAGS" perl Makefile.PL INSTALLSITELIB=/usr/lib/perl5/site_perl +CFLAGS="$RPM_OPT_FLAGS" perl Makefile.PL INSTALLSITELIB=%{_prefix}/lib/perl5/site_perl make - %clean rm -rf $RPM_BUILD_ROOT %install @@ -116,191 +87,144 @@ else find blib/lib -name '*.pm.*' -exec rm -f {} \; make PREFIX=$RPM_BUILD_ROOT/usr install fi -mkdir -p $RPM_BUILD_ROOT/usr/sbin -cp qpsmtpd-async $RPM_BUILD_ROOT/usr/sbin -mkdir -p $RPM_BUILD_ROOT/usr/share/qpsmtpd -cp -r plugins $RPM_BUILD_ROOT/usr/share/qpsmtpd/plugins -rm -f $RPM_BUILD_ROOT/usr/share/qpsmtpd/plugins/*.* -mkdir -p $RPM_BUILD_ROOT/etc -cp -r config.sample $RPM_BUILD_ROOT/etc/qpsmtpd -rm -f $RPM_BUILD_ROOT/etc/qpsmtpd/*.* -echo /usr/share/qpsmtpd/plugins > $RPM_BUILD_ROOT/etc/qpsmtpd/plugin_dirs -echo /var/spool/qpsmtpd > $RPM_BUILD_ROOT/etc/qpsmtpd/spool_dir -echo logging/file_connection loglevel LOGINFO /var/log/qpsmtpd/%Y-%m-%d > $RPM_BUILD_ROOT/etc/qpsmtpd/logging -mkdir -p $RPM_BUILD_ROOT/etc/init.d/ -cp %{SOURCE1} $RPM_BUILD_ROOT/etc/init.d/qpsmtpd-forkserver -mkdir -p $RPM_BUILD_ROOT/etc/sysconfig/ -cp %{SOURCE2} $RPM_BUILD_ROOT/etc/sysconfig/qpsmtpd-forkserver -cp %{SOURCE3} $RPM_BUILD_ROOT/usr/share/qpsmtpd/plugins/logging/file_connection -mkdir -p $RPM_BUILD_ROOT/var/spool/qpsmtpd -mkdir -p $RPM_BUILD_ROOT/var/log/qpsmtpd -mkdir -p $RPM_BUILD_ROOT/etc/xinetd.d -cp %{SOURCE4} $RPM_BUILD_ROOT/etc/xinetd.d/smtp -mkdir -p $RPM_BUILD_ROOT/usr/sbin -cp %{SOURCE5} $RPM_BUILD_ROOT/usr/sbin/in.smtp - +mkdir -p ${RPM_BUILD_ROOT}%{_datadir}/%{name} +rm -f ${RPM_BUILD_ROOT}%{_datadir}/%{name}/plugins/*.* +cp -r plugins ${RPM_BUILD_ROOT}%{_datadir}/%{name}/plugins +mkdir -p ${RPM_BUILD_ROOT}%{_sysconfdir}/%{name} +rm -f ${RPM_BUILD_ROOT}%{_sysconfdir}/%{name}/*.* +cp -r config.sample/* ${RPM_BUILD_ROOT}%{_sysconfdir}/%{name}/ +echo %{_datadir}/%{name}/plugins > ${RPM_BUILD_ROOT}%{_sysconfdir}/%{name}/plugin_dirs +echo %{_localstatedir}/spool/qpsmtpd > ${RPM_BUILD_ROOT}%{_sysconfdir}/%{name}/spool_dir +echo logging/file_connection loglevel LOGINFO %{_localstatedir}/log/qpsmtpd/%Y-%m-%d > ${RPM_BUILD_ROOT}%{_sysconfdir}/%{name}/logging +mkdir -p ${RPM_BUILD_ROOT}%{_initrddir} +cp %{SOURCE1} ${RPM_BUILD_ROOT}%{_initrddir}/qpsmtpd-forkserver +mkdir -p ${RPM_BUILD_ROOT}%{_sysconfdir}/sysconfig +cp %{SOURCE2} ${RPM_BUILD_ROOT}%{_sysconfdir}/sysconfig/qpsmtpd-forkserver +cp %{SOURCE3} ${RPM_BUILD_ROOT}%{_datadir}/%{name}/plugins/logging/file_connection +mkdir -p ${RPM_BUILD_ROOT}%{_localstatedir}/spool/qpsmtpd +mkdir -p ${RPM_BUILD_ROOT}%{_localstatedir}/log/qpsmtpd +mkdir -p ${RPM_BUILD_ROOT}%{_sysconfdir}/xinetd.d +cp %{SOURCE4} ${RPM_BUILD_ROOT}%{_sysconfdir}/xinetd.d/smtp +mkdir -p ${RPM_BUILD_ROOT}%{_sbindir} +cp %{SOURCE5} ${RPM_BUILD_ROOT}%{_sbindir}/in.smtp +mkdir -p ${RPM_BUILD_ROOT}%{_sysconfdir}/httpd/conf.d +cp %{SOURCE6} ${RPM_BUILD_ROOT}%{_sysconfdir}/httpd/conf.d +mkdir -p $RPM_BUILD_ROOT%{_docdir}/%{name}-apache-%{version} +cp %{SOURCE7} $RPM_BUILD_ROOT%{_docdir}/%{name}-apache-%{version} +rm -f ${RPM_BUILD_ROOT}%{_bindir}/%{name}-prefork [ -x /usr/lib/rpm/brp-compress ] && /usr/lib/rpm/brp-compress -find $RPM_BUILD_ROOT/usr \( -name perllocal.pod -o -name .packlist \) -exec rm {} \; -find $RPM_BUILD_ROOT/usr -type f -print | \ +find ${RPM_BUILD_ROOT}%{_prefix} \( -name perllocal.pod -o -name .packlist \) -exec rm {} \; +find ${RPM_BUILD_ROOT}%{_prefix} -type f -print | \ sed "s@^$RPM_BUILD_ROOT@@g" | \ - grep -v /Apache | - grep -v /Danga | - grep -v Qpsmtpd/ConfigServer.pm | - grep -v Qpsmtpd/PollServer.pm > qpsmtpd-%{version}-filelist -if [ "$(cat qpsmtpd-%{version}-filelist)X" = "X" ] ; then + grep -v [Aa]sync | \ + grep -v packaging | \ + grep -v README.selinux | \ + grep -v /Apache | \ + grep -v /Danga | \ + grep -v Qpsmtpd/ConfigServer.pm | \ + grep -v Qpsmtpd/PollServer.pm > %{name}-%{version}-%{release}-filelist +if [ "$(cat %{name}-%{version}-%{release}-filelist)X" = "X" ] ; then echo "ERROR: EMPTY FILE LIST" exit -1 fi -find $RPM_BUILD_ROOT/usr -type f -path '*/Apache*' -print | \ - sed "s@^$RPM_BUILD_ROOT@@g" > qpsmtpd-apache-%{version}-filelist -%files +%files -f %{name}-%{version}-%{release}-filelist %defattr(-,root,root) -/usr/sbin/in.smtp -/usr/bin/qpsmtpd -/usr/bin/qpsmtpd-forkserver -/usr/lib/perl5/site_perl/Qpsmtpd.pm -/usr/lib/perl5/site_perl/Qpsmtpd/Plugin.pm -/usr/lib/perl5/site_perl/Qpsmtpd/Constants.pm -/usr/lib/perl5/site_perl/Qpsmtpd/Command.pm -/usr/lib/perl5/site_perl/Qpsmtpd/TcpServer.pm -/usr/lib/perl5/site_perl/Qpsmtpd/Connection.pm -/usr/lib/perl5/site_perl/Qpsmtpd/Transaction.pm -/usr/lib/perl5/site_perl/Qpsmtpd/Postfix/Constants.pm -/usr/lib/perl5/site_perl/Qpsmtpd/Postfix/pf2qp.pl -/usr/lib/perl5/site_perl/Qpsmtpd/TcpServer/Prefork.pm -/usr/lib/perl5/site_perl/Qpsmtpd/Auth.pm -/usr/lib/perl5/site_perl/Qpsmtpd/Utils.pm -/usr/lib/perl5/site_perl/Qpsmtpd/SelectServer.pm -/usr/lib/perl5/site_perl/Qpsmtpd/DSN.pm -/usr/lib/perl5/site_perl/Qpsmtpd/SMTP/Prefork.pm -/usr/lib/perl5/site_perl/Qpsmtpd/SMTP.pm -/usr/lib/perl5/site_perl/Qpsmtpd/Address.pm -/usr/lib/perl5/site_perl/Qpsmtpd/Postfix.pm -/usr/share/man/man3/Qpsmtpd::Command.3pm.gz -/usr/share/man/man3/Qpsmtpd.3pm.gz -/usr/share/man/man3/Qpsmtpd::Transaction.3pm.gz -/usr/share/man/man3/Qpsmtpd::Constants.3pm.gz -/usr/share/man/man3/Qpsmtpd::ConfigServer.3pm.gz -/usr/share/man/man3/Qpsmtpd::DSN.3pm.gz -/usr/share/man/man3/Qpsmtpd::Postfix.3pm.gz -/usr/share/man/man3/Qpsmtpd::Address.3pm.gz -/usr/share/man/man3/Qpsmtpd::Connection.3pm.gz -/usr/share/qpsmtpd/plugins/check_loop -/usr/share/qpsmtpd/plugins/check_relay -/usr/share/qpsmtpd/plugins/sender_permitted_from -/usr/share/qpsmtpd/plugins/count_unrecognized_commands -/usr/share/qpsmtpd/plugins/spamassassin -/usr/share/qpsmtpd/plugins/check_badrcptto -/usr/share/qpsmtpd/plugins/rcpt_ok -/usr/share/qpsmtpd/plugins/domainkeys -/usr/share/qpsmtpd/plugins/virus/klez_filter -/usr/share/qpsmtpd/plugins/virus/check_for_hi_virus -/usr/share/qpsmtpd/plugins/virus/uvscan -/usr/share/qpsmtpd/plugins/virus/kavscanner -/usr/share/qpsmtpd/plugins/virus/hbedv -/usr/share/qpsmtpd/plugins/virus/clamav -/usr/share/qpsmtpd/plugins/virus/clamdscan -/usr/share/qpsmtpd/plugins/virus/aveclient -/usr/share/qpsmtpd/plugins/virus/sophie -/usr/share/qpsmtpd/plugins/virus/bitdefender -/usr/share/qpsmtpd/plugins/queue/smtp-forward -/usr/share/qpsmtpd/plugins/queue/qmail-queue -/usr/share/qpsmtpd/plugins/queue/maildir -/usr/share/qpsmtpd/plugins/queue/exim-bsmtp -/usr/share/qpsmtpd/plugins/queue/postfix-queue -/usr/share/qpsmtpd/plugins/http_config -/usr/share/qpsmtpd/plugins/quit_fortune -/usr/share/qpsmtpd/plugins/milter -/usr/share/qpsmtpd/plugins/auth/authnull -/usr/share/qpsmtpd/plugins/auth/authdeny -/usr/share/qpsmtpd/plugins/auth/auth_flat_file -/usr/share/qpsmtpd/plugins/auth/auth_cvm_unix_local -/usr/share/qpsmtpd/plugins/auth/auth_vpopmail_sql -/usr/share/qpsmtpd/plugins/auth/auth_ldap_bind -/usr/share/qpsmtpd/plugins/tls_cert -/usr/share/qpsmtpd/plugins/logging/warn -/usr/share/qpsmtpd/plugins/logging/syslog -/usr/share/qpsmtpd/plugins/logging/adaptive -/usr/share/qpsmtpd/plugins/logging/file -/usr/share/qpsmtpd/plugins/logging/devnull -/usr/share/qpsmtpd/plugins/logging/file_connection -/usr/share/qpsmtpd/plugins/content_log -/usr/share/qpsmtpd/plugins/tls -/usr/share/qpsmtpd/plugins/check_spamhelo -/usr/share/qpsmtpd/plugins/check_norelay -/usr/share/qpsmtpd/plugins/check_earlytalker -/usr/share/qpsmtpd/plugins/hosts_allow -/usr/share/qpsmtpd/plugins/check_badmailfrom -/usr/share/qpsmtpd/plugins/dns_whitelist_soft -/usr/share/qpsmtpd/plugins/dnsbl -/usr/share/qpsmtpd/plugins/ident/geoip -/usr/share/qpsmtpd/plugins/ident/p0f -/usr/share/qpsmtpd/plugins/relay_only -/usr/share/qpsmtpd/plugins/parse_addr_withhelo -/usr/share/qpsmtpd/plugins/require_resolvable_fromhost -/usr/share/qpsmtpd/plugins/rhsbl -/usr/share/qpsmtpd/plugins/dont_require_anglebrackets -/usr/share/qpsmtpd/plugins/check_badrcptto_patterns -/usr/share/qpsmtpd/plugins/greylisting -/usr/share/qpsmtpd/plugins/check_basicheaders -/usr/share/qpsmtpd/plugins/check_badmailfromto %doc CREDITS Changes LICENSE README README.plugins STATUS -/etc/init.d/qpsmtpd-forkserver -%config(noreplace) /etc/qpsmtpd/* -%config(noreplace) /etc/xinetd.d/smtp -%config(noreplace) /etc/sysconfig/qpsmtpd-forkserver +%{_initrddir}/qpsmtpd-forkserver +%config(noreplace) %{_sysconfdir}/qpsmtpd/* +%config(noreplace) %{_sysconfdir}/xinetd.d/smtp +%config(noreplace) %{_sysconfdir}/sysconfig/qpsmtpd-forkserver +%attr(2750,qpsmtpd,clamav) %dir %{_localstatedir}/spool/qpsmtpd +%attr(2750,smelog,smelog) %dir %{_localstatedir}/log/qpsmtpd -%files apache -f qpsmtpd-apache-%{version}-filelist +%files apache %defattr(-,root,root) +%{_prefix}/lib/perl5/site_perl/Apache/Qpsmtpd.pm +%{_mandir}/man3/Apache::Qpsmtpd.3pm.gz +%config(noreplace) %{_sysconfdir}/httpd/conf.d/* +%doc %{_docdir}/%{name}-apache-%{version}/README.selinux %files async %defattr(-,root,root) -/usr/sbin/qpsmtpd-async -/usr/lib/perl5/site_perl/Danga/Client.pm -/usr/lib/perl5/site_perl/Danga/TimeoutSocket.pm -/usr/lib/perl5/site_perl/Qpsmtpd/ConfigServer.pm -/usr/lib/perl5/site_perl/Qpsmtpd/PollServer.pm -/usr/share/qpsmtpd/plugins/async/check_earlytalker -/usr/share/qpsmtpd/plugins/async/dnsbl -/usr/share/qpsmtpd/plugins/async/require_resolvable_fromhost - -%changelog -* Sat Mar 28 2009 Jonathan Martens 0.40-1.11.sme -- Adapt to Clamscan parameter change, fixing a log noice issue [SME: 5108] - -* Mon Aug 11 2008 Charlie Brady 0.40-1.10.sme -- Fix resolvable_fromhost bug where one or more MX records points - to unreachable hosts. [SME: 4403] +%{_bindir}/qpsmtpd-async +%{_prefix}/lib/perl5/site_perl/Danga/Client.pm +%{_prefix}/lib/perl5/site_perl/Danga/TimeoutSocket.pm +%{_prefix}/lib/perl5/site_perl/Qpsmtpd/ConfigServer.pm +%{_prefix}/lib/perl5/site_perl/Qpsmtpd/Plugin/Async/DNSBLBase.pm +%{_prefix}/lib/perl5/site_perl/Qpsmtpd/PollServer.pm +%{_mandir}/man1/qpsmtpd-async.1.gz +%{_datadir}/%{name}/plugins/async/* -* Mon Jan 7 2008 Stephen Noble 0.40-1.9.sme -- fix uninitialized value in spamassassin plugin [SME: 3340] - -* Mon Jan 7 2008 Stephen Noble 0.40-1.8.sme -- change to badrcptto plugin [SME: 3476] - -* Tue Oct 16 2007 Charlie Brady 0.40-1.7.sme -- Add support for disconnect option in rhsbl plugin [SME: 3390] - -* Sat Jun 30 2007 Shad L. Lords 0.40-1.6.sme -- Move clamav headers to top to not mess up message signing. - -* Thu Jun 28 2007 Gavin Weight 0.40-1.5.sme -- Remove the scriptlets within the .spec file. [SME: 3112] +%pre +if ! id smtpd >/dev/null 2>&1 +then + # need to create smtpd user. + if perl -e 'exit ! defined(getgrnam("postdrop"))' + then + # if postfix is installed, we will probably use + # queue/postfix, which will need this: + supp="-G postdrop" + fi + useradd -r -m $supp smtpd +fi -* Mon Jun 25 2007 Shad L. Lords 0.40-1.4.sme -- Deny soft if clamscan fails [SME: 3098] +%changelog +* Tue Nov 3 2009 0.83-0.5.sme +- Update pre requires so scripts don't fail on install [SME: 5558] -* Fri Jun 15 2007 Shad L. Lords 0.40-1.3.sme -- Fix clamd.conf path for clamav plugin [SME: 3067] +* Sat Oct 31 2009 0.83-0.4.sme +- Rebase bad_rcptto patch to remove orig file [SME: 5548] +- Change logging in tls init to prevent warnings [SME: 5551] + +* Thu Oct 29 2009 0.83-0.3.sme +- Only run/initialize plugins once [SME: 5533] + +* Mon Oct 26 2009 0.83-0.2.sme +- Change spool dir permissions and owner to qpsmtpd:clamav +- Change log dir permissions and owner to smelog:smelog + +* Fri Sep 18 2009 0.83-0.1.sme +- Update to 0.83 +- add sme specific patches + +* Sun Jul 12 2009 0.82-0.1 +- Update to latest release +- don't add qpsmtpd to start-up by default +- add apache config file to qpsmtpd-apache package +- remove all patches +- use rpm macros for dirs +- use a filelist for main package instead of a long list of files + +* Tue Jul 15 2008 0.43-0.7 +- Removed SelectServer.pm from .spec file + +* Tue Mar 18 2008 0.43-0.6 +- moved config files back to /etc/qpsmtpd following some changes + to the qpsmtpd src + +* Tue Mar 18 2008 0.43-0.5 +- moved config files to /etc/qpsmtpd/config + +* Tue Mar 18 2008 0.43-0.4 +- Moved qpsmtpd-async to /usr/bin +- Added qpsmtpd-async man page to async package +- Added async smtproute plugin to async package + +* Wed Mar 12 2008 0.43-0.3 +- Makefile.PL now updated in svn, so remove hack + +* Wed Mar 12 2008 0.43-0.2 +- Added qpsmtpd-prefork to qpsmtpd RPM, inc. hack to work round + deficiency in Makefile.PL -* Thu Jun 14 2007 Shad L. Lords 0.40-1.2.sme -- Fix clamav patch so service starts [SME: 3065] +* Mon Mar 10 2008 0.43-0.1 +- Updated to work with Makefile to build from svn -* Thu Jun 14 2007 Shad L. Lords 0.40-1.1.sme -- Update for smeserver [SME: 3065] +* Wed Sep 12 2007 0.40-2.0 +- Updated to build trunk-r790 * Tue Jun 12 2007 0.40-1.0 - updated to 0.40 - no code change.