340 lines
12 KiB
RPMSpec
340 lines
12 KiB
RPMSpec
%{!?_package:%define _package @PACKAGE@}
|
|
%{!?_version:%define _version @VERSION@}
|
|
%{!?_release:%define _release @RELEASE@}
|
|
|
|
Name: %{_package}
|
|
Version: %{_version}
|
|
Release: %{_release}
|
|
|
|
Summary: qpsmtpd + qpsmtpd-apache + qpsmtpd-async
|
|
License: MIT
|
|
Group: System Environment/Daemons
|
|
URL: http://smtpd.develooper.com/
|
|
BuildRoot: %{_builddir}/%{name}-%{version}-%{release}-root
|
|
BuildRequires: perl >= 0:5.00503
|
|
BuildArchitectures: noarch
|
|
Requires: perl(Mail::Header), perl(Net::DNS) perl(Net::IP) perl(IPC::Shareable)
|
|
Requires(pre): coreutils, shadow-utils, perl
|
|
|
|
Source0: %{name}-%{version}-%{release}.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
|
|
|
|
%description
|
|
qpsmtpd is a flexible smtpd daemon written in Perl. Apart from the core
|
|
SMTP features, all functionality is implemented in small "extension
|
|
plugins" using the easy to use object oriented plugin API.
|
|
|
|
qpsmtpd was originally written as a drop-in qmail-smtpd replacement, but
|
|
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
|
|
|
|
%package async
|
|
Summary: qpsmtpd using async I/O in a single process
|
|
Group: System Environment/Daemons
|
|
|
|
%description apache
|
|
|
|
This module implements a mod_perl/apache 2.0 connection handler
|
|
that turns Apache into an SMTP server using Qpsmtpd.
|
|
|
|
%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.
|
|
|
|
%prep
|
|
%setup -q -n %{name}-%{version}-%{release}
|
|
|
|
%build
|
|
CFLAGS="$RPM_OPT_FLAGS" perl Makefile.PL INSTALLSITELIB=%{_prefix}/lib/perl5/site_perl
|
|
make
|
|
|
|
%clean
|
|
rm -rf $RPM_BUILD_ROOT
|
|
%install
|
|
|
|
rm -rf $RPM_BUILD_ROOT
|
|
eval `perl '-V:installarchlib'`
|
|
mkdir -p $RPM_BUILD_ROOT/$installarchlib
|
|
if grep -q DESTDIR Makefile
|
|
then
|
|
make DESTDIR=$RPM_BUILD_ROOT
|
|
find blib/lib -name '*.pm.*' -exec rm -f {} \;
|
|
make DESTDIR=$RPM_BUILD_ROOT install
|
|
|
|
else
|
|
make PREFIX=$RPM_BUILD_ROOT/usr
|
|
find blib/lib -name '*.pm.*' -exec rm -f {} \;
|
|
make PREFIX=$RPM_BUILD_ROOT/usr install
|
|
fi
|
|
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}
|
|
|
|
[ -x /usr/lib/rpm/brp-compress ] && /usr/lib/rpm/brp-compress
|
|
|
|
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 [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
|
|
|
|
%files -f %{name}-%{version}-%{release}-filelist
|
|
%defattr(-,root,root)
|
|
%doc CREDITS Changes LICENSE README README.plugins STATUS
|
|
%{_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(0750,smtpd,smtpd) %dir %{_localstatedir}/log/qpsmtpd
|
|
|
|
%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)
|
|
%{_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/*
|
|
|
|
%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 -s /bin/false $supp smtpd
|
|
fi
|
|
|
|
%changelog
|
|
* Sun Jul 12 2009 <rpmbuild@robinbowes.com> 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 <rpmbuild@robinbowes.com> 0.43-0.7
|
|
- Removed SelectServer.pm from .spec file
|
|
|
|
* Tue Mar 18 2008 <rpmbuild@robinbowes.com> 0.43-0.6
|
|
- moved config files back to /etc/qpsmtpd following some changes
|
|
to the qpsmtpd src
|
|
|
|
* Tue Mar 18 2008 <rpmbuild@robinbowes.com> 0.43-0.5
|
|
- moved config files to /etc/qpsmtpd/config
|
|
|
|
* Tue Mar 18 2008 <rpmbuild@robinbowes.com> 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 <rpmbuild@robinbowes.com> 0.43-0.3
|
|
- Makefile.PL now updated in svn, so remove hack
|
|
|
|
* Wed Mar 12 2008 <rpmbuild@robinbowes.com> 0.43-0.2
|
|
- Added qpsmtpd-prefork to qpsmtpd RPM, inc. hack to work round
|
|
deficiency in Makefile.PL
|
|
|
|
* Mon Mar 10 2008 <rpmbuild@robinbowes.com> 0.43-0.1
|
|
- Updated to work with Makefile to build from svn
|
|
|
|
* Wed Sep 12 2007 <rpmbuild@robinbowes.com> 0.40-2.0
|
|
- Updated to build trunk-r790
|
|
|
|
* Tue Jun 12 2007 <hjp@hjp.at> 0.40-1.0
|
|
- updated to 0.40 - no code change.
|
|
|
|
* Thu Jun 07 2007 <hjp@hjp.at> 0.40-0.2
|
|
- unset environment variables which are normally tainted in perl.
|
|
- updated to 0.40rc1
|
|
- added dependency on Net::IP (needed by some plugins)
|
|
|
|
* Sat May 05 2007 <hjp@hjp.at> 0.33-0.5
|
|
- moved environment cleanup into start() function, otherwise
|
|
LANG just gets reinitialized.
|
|
|
|
* Sat May 05 2007 <hjp@hjp.at> 0.33-0.4
|
|
- split qpsmtpd-async into a separate package to avoid dependency
|
|
on ParaDNS.
|
|
|
|
* Sat May 05 2007 <hjp@hjp.at> 0.33-0.3
|
|
- also unset LANG, LC_ALL and LC_TIME in startup script to prevent
|
|
locale specific Received headers (bug reported by Dominik Meyer)
|
|
|
|
* Sun Feb 25 2007 <hjp@hjp.at> 0.33-0.2
|
|
- 0.3x branch has been merged back to trunk.
|
|
Got current snapshot (r715) from trunk.
|
|
|
|
* Sun Feb 25 2007 <hjp@hjp.at> 0.33-0.1
|
|
- Start forkserver via "daemon" (Gavin Carr)
|
|
- Fixed 'service qpsmtpd-forkserver status' (Gavin Carr)
|
|
- Changed policy for config files to noreplace (Gavin Carr)
|
|
|
|
* Sun Nov 05 2006 <hjp@hjp.at> 0.33-0.0
|
|
- Upgraded to current snapshot from 0.3x branch (which should become
|
|
0.33 soon-ish)
|
|
- included xinetd-support again.
|
|
|
|
* Sat Mar 18 2006 <hjp@hjp.at> 0.32-2
|
|
- fix dnsbl to check whether answer fits query.
|
|
- randomize Net::DNS ids for qpsmtpd-forkserver child processes.
|
|
|
|
* Wed Mar 08 2006 <hjp@hjp.at> 0.32-1
|
|
- New upstream 0.32
|
|
- rc-file unsets PERL_UNICODE (bug #38397)
|
|
|
|
* Sat Jan 28 2006 <hjp@hjp.at> 0.31.1-3
|
|
- Use ${SOURCE*} macros to refer to source files
|
|
- Avoid invoking rpm and other cleanup in pre section
|
|
- Invoke chkconfig in post.
|
|
- (Thanks to Josko Plazonic for the reporting these problems and
|
|
suggesting fixes)
|
|
|
|
* Tue Nov 30 2005 <hjp@hjp.at> 0.31.1-2
|
|
- Revision 170 of plugins/loggin/file_connection:
|
|
Return DECLINED from open_log.
|
|
Open log in write_log if it isn't already open.
|
|
|
|
* Tue Nov 29 2005 <hjp@hjp.at> 0.31.1-1
|
|
- Commented out queue plugins from sample config
|
|
- Added dependencies
|
|
- Create smtpd user if it doesn't exist
|
|
- Added /var/log/qpsmtpd and /var/spool/qpsmtpd
|
|
|
|
* Sat Nov 26 2005 <hjp@hjp.at>
|
|
- Added file_connection plugin
|
|
- Startup file for qpsmtpd-forkserver now uses --detach and assumes that
|
|
a suitable logging module is configured (file_connection by default)
|
|
|
|
* Wed Nov 23 2005 <hjp@hjp.at>
|
|
- Forkserver drops privileges before loading plugins now.
|
|
|
|
* Sun Nov 20 2005 <hjp@hjp.at>
|
|
- New upstream 0.31.1
|
|
|
|
* Mon Nov 14 2005 <hjp@hjp.at> 0.31-8
|
|
- New upstream 0.31rc3.
|
|
- pre-connection patch slightly simplified since upstream fixed one of
|
|
the bugs.
|
|
|
|
* Tue Aug 23 2005 <hjp@hjp.at>
|
|
- forced INSTALLSITELIB=/usr/lib/perl5/site_perl as suggested by
|
|
Charlie Brady.
|
|
|
|
* Sat Aug 20 2005 <hjp@hjp.at> 0.31-7
|
|
- RC2 from upstream.
|
|
- Removed patches which aren't applied from spec file.
|
|
|
|
* Fri Jul 22 2005 <hjp@hjp.at> 0.31-6
|
|
- New upstream snapshot from 0.31 branch: svn revision 509.
|
|
|
|
* Sun Jul 17 2005 <hjp@hjp.at> 0.31-5
|
|
- include only /etc/init.d/qpsmtpd-forkserver, not /etc/init.d
|
|
it conflicts with old initscripts packages.
|
|
|
|
* Sun Jul 17 2005 <hjp@hjp.at> 0.31-4
|
|
- removed tabs from forkserver
|
|
|
|
* Sun Jul 17 2005 <hjp@hjp.at> 0.31-3
|
|
- added startup script for forkserver
|
|
- changed BuildArchitectures to noarch.
|
|
|
|
* Sat Jul 16 2005 <hjp@hjp.at> 0.31-2
|
|
- pre-connection hook is now actually called, not just defined.
|
|
|
|
* Fri Jul 15 2005 <hjp@hjp.at> 0.31-1
|
|
- merged with 0.31. Most of my patches are now in the official release.
|
|
- merged Gavin's per-user-config patch with my dirs patch, since the
|
|
latter needs a way to turn off logging.
|
|
- added /etc/qpsmtpd/plugin_dir to package.
|
|
|
|
* Mon Jun 13 2005 <hjp@hjp.at> 0.29-6
|
|
- fixed removal of patch backup files
|
|
- fixed option --pid-file
|
|
|
|
* Sun Jun 12 2005 <hjp@hjp.at>
|
|
- avoid installing patch backup files
|
|
- split Apache::Qpsmtpd into separate package to avoid dependency hell.
|
|
- fixed URL
|
|
- changed group to Daemons.
|
|
- Fixed installation for newer versions of ExtUtils::MakeMaker
|
|
|
|
* Wed Jun 1 2005 <hjp@hjp.at> 0.29-5
|
|
- Really don't reap children in signal handler.
|
|
|
|
* Tue May 31 2005 <hjp@hjp.at> 0.29-4
|
|
- Return 421 for DENYSOFT_DISCONNECT
|
|
- Don't reap children in signal handler.
|
|
|
|
* Thu May 19 2005 <hjp@hjp.at> 0.29-3
|
|
- removed code to accept paths without <>.
|
|
|
|
* Thu May 19 2005 <hjp@hjp.at> 0.29-2
|
|
- added QPSMTPD_CONFIG env variable and plugin_dir config.
|
|
- added supplemental groups and support for pid file
|
|
- added shared_connect hook
|
|
- changed log level for SMTP dialog from DEBUG to INFO
|
|
|
|
* Thu Apr 21 2005 hjp@hjp.at
|
|
- added plugins, /etc and docs.
|
|
|
|
* Mon Apr 18 2005 hjp@hjp.at
|
|
- Specfile autogenerated
|
|
|