diff --git a/.cvsignore b/.cvsignore index e69de29..58203ba 100644 --- a/.cvsignore +++ b/.cvsignore @@ -0,0 +1 @@ +dovecot-0.99.10.tar.gz diff --git a/dovecot.init b/dovecot.init new file mode 100755 index 0000000..2ee281a --- /dev/null +++ b/dovecot.init @@ -0,0 +1,67 @@ +#!/bin/bash +# +# /etc/rc.d/init.d/dovecot +# +# Starts the dovecot daemon +# +# chkconfig: - 54 54 +# description: Dovecot Imap Server +# processname: dovecot +# Source function library. +. /etc/init.d/functions + +test -x /usr/sbin/dovecot || exit 0 + +RETVAL=0 +prog="Dovecot Imap" + +start() { + # Check if dovecot is already running + if [ ! -f /var/lock/subsys/dovecot ]; then + echo -n $"Starting $prog: " + daemon /usr/sbin/dovecot + RETVAL=$? + [ $RETVAL -eq 0 ] && touch /var/lock/subsys/dovecot + echo + fi +} + +stop() { + echo -n $"Stopping $prog: " + killproc /usr/sbin/dovecot + RETVAL=$? + [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/dovecot + echo +} + +# +# See how we were called. +# +case "$1" in + start) + start + ;; + stop) + stop + ;; + reload|restart) + stop + start + RETVAL=$? + ;; + condrestart) + if [ -f /var/lock/subsys/dovecot ]; then + stop + start + fi + ;; + status) + status /usr/sbin/dovecot + RETVAL=$? + ;; + *) + echo $"Usage: $0 {condrestart|start|stop|restart|reload|status}" + exit 1 +esac + +exit $RETVAL diff --git a/dovecot.pam b/dovecot.pam new file mode 100644 index 0000000..20dff02 --- /dev/null +++ b/dovecot.pam @@ -0,0 +1,5 @@ +#%PAM-1.0 +auth required pam_nologin.so +auth required pam_stack.so service=system-auth +account required pam_stack.so service=system-auth +session required pam_stack.so service=system-auth diff --git a/dovecot.spec b/dovecot.spec new file mode 100644 index 0000000..ac96d31 --- /dev/null +++ b/dovecot.spec @@ -0,0 +1,186 @@ +Summary: Dovecot Secure imap server +Name: dovecot +Version: 0.99.10 +Release: 6 +License: GPL +Group: System Environment/Daemons +Source: %{name}-%{version}.tar.gz +Source1: dovecot.init +Source2: dovecot.pam +Patch0: dovecot-0.99.10-fix-search-assert.patch +Patch1: dovecot-0.99.10-drop-privs-2.6.patch +Patch2: dovecot-0.99.10-auth-home.patch +Patch3: dovecot-0.99.10-bodystructure.patch +Patch100: dovecot-0.99.9.1-conf.patch +URL: http://dovecot.procontrol.fi/ +Buildroot: %{_tmppath}/%{name}-%{version}-%{release}-root +BuildRequires: openssl-devel +BuildRequires: openldap-devel +BuildRequires: pam-devel +BuildRequires: pkgconfig +BuildRequires: zlib-devel +Prereq: openssl, /sbin/chkconfig, /usr/sbin/useradd + +%description +Dovecot is an IMAP server for Linux/UNIX-like systems, written with security +primarily in mind. It also contains a small POP3 server. It supports mail +in either of maildir or mbox formats. + +%prep + +%setup -q -n %{name}-%{version} + +%patch0 -p0 -b .search +%patch1 -p1 -b .26 +%patch2 -p1 -b .authhome +%patch3 -p1 -b .bodystructure +%patch100 -p1 -b .config + +%build +%configure --with-ssl=openssl --with-ssldir=/usr/share/ssl --with-ldap + +make + +%install +rm -rf $RPM_BUILD_ROOT +%makeinstall +rm -rf $RPM_BUILD_ROOT/%{_datadir}/%{name} +install -m 644 dovecot-example.conf $RPM_BUILD_ROOT/%{_sysconfdir}/dovecot.conf +mkdir -p $RPM_BUILD_ROOT/%{_sysconfdir}/rc.d/init.d +install -m 755 %{SOURCE1} $RPM_BUILD_ROOT/%{_sysconfdir}/rc.d/init.d/dovecot + +mkdir -p $RPM_BUILD_ROOT/%{_sysconfdir}/pam.d +install -m 644 %{SOURCE2} $RPM_BUILD_ROOT/%{_sysconfdir}/pam.d/dovecot + +# generate ghost .pem file +mkdir -p $RPM_BUILD_ROOT/%{_datadir}/ssl/{certs,private} +touch $RPM_BUILD_ROOT/%{_datadir}/ssl/{certs,private}/dovecot.pem +chmod 600 $RPM_BUILD_ROOT/%{_datadir}/ssl/{certs,private}/dovecot.pem + +mkdir -p $RPM_BUILD_ROOT/var/run/dovecot +chmod 700 $RPM_BUILD_ROOT/var/run/dovecot +mkdir -p $RPM_BUILD_ROOT/var/run/dovecot-login + +# the dovecot make install installs docs. blah. +rm -rf $RPM_BUILD_ROOT/%{_docdir}/%{name} +rm -f $RPM_BUILD_ROOT/etc/dovecot-example.conf + +%pre +/usr/sbin/useradd -c "dovecot" -u 97 -s /sbin/nologin -r -d /usr/libexec/dovecot dovecot 2>/dev/null || : + +%post +/sbin/chkconfig --add dovecot +# create a ssl cert +if [ ! -f %{_datadir}/ssl/certs/dovecot.pem ]; then +pushd %{_datadir}/ssl &>/dev/null +umask 077 +cat << EOF | openssl req -new -x509 -days 365 -nodes -out certs/dovecot.pem -keyout private/dovecot.pem &>/dev/null +-- +SomeState +SomeCity +SomeOrganization +SomeOrganizationalUnit +localhost.localdomain +root@localhost.localdomain +EOF +chown root.root private/dovecot.pem certs/dovecot.pem +chmod 600 private/dovecot.pem certs/dovecot.pem +popd &>/dev/null +fi +exit 0 + + +%preun +if [ $1 = 0 ]; then + /usr/sbin/userdel dovecot 2>/dev/null || : + /usr/sbin/groupdel dovecot 2>/dev/null || : + [ -f /var/lock/subsys/dovecot ] && /sbin/service dovecot stop > /dev/null 2>&1 + /sbin/chkconfig --del dovecot +fi + +%clean +rm -rf $RPM_BUILD_ROOT + +%files +%defattr(-,root,root) +%doc doc/*.txt doc/dovecot-openssl.cnf doc/mkcert.sh INSTALL AUTHORS ChangeLog COPYING TODO README NEWS COPYING.LGPL +%config(noreplace) %{_sysconfdir}/dovecot.conf +%config %{_sysconfdir}/rc.d/init.d/dovecot +%config %{_sysconfdir}/pam.d/dovecot +%attr(0600,root,root) %ghost %config(missingok,noreplace) %verify(not md5 size mtime) %{_datadir}/ssl/certs/dovecot.pem +%attr(0600,root,root) %ghost %config(missingok,noreplace) %verify(not md5 size mtime) %{_datadir}/ssl/private/dovecot.pem +%dir %{_libexecdir}/%{name} +%{_libexecdir}/%{name}/* +%{_sbindir}/dovecot +%dir /var/run/dovecot +%attr(0750,root,dovecot) %dir /var/run/dovecot-login + + +%changelog +* Tue Sep 23 2003 Jeremy Katz 0.99.10-6 +- add some patches from upstream (#104288) + +* Thu Sep 4 2003 Jeremy Katz 0.99.10-5 +- fix startup with 2.6 with patch from upstream (#103801) + +* Tue Sep 2 2003 Jeremy Katz 0.99.10-4 +- fix assert in search code (#103383) + +* Tue Jul 22 2003 Nalin Dahyabhai 0.99.10-3 +- rebuild + +* Thu Jul 17 2003 Bill Nottingham 0.99.10-2 +- don't run by default + +* Thu Jun 26 2003 Jeremy Katz 0.99.10-1 +- 0.99.10 + +* Mon Jun 23 2003 Jeremy Katz 0.99.10-0.2 +- 0.99.10-rc2 (includes ssl detection fix) +- a few tweaks from fedora + - noreplace the config file + - configure --with-ldap to get LDAP enabled + +* Mon Jun 23 2003 Jeremy Katz 0.99.10-0.1 +- 0.99.10-rc1 +- add fix for ssl detection +- add zlib-devel to BuildRequires +- change pam service name to dovecot +- include pam config + +* Thu May 8 2003 Jeremy Katz 0.99.9.1-1 +- update to 0.99.9.1 +- add patch from upstream to fix potential bug when fetching with + CR+LF linefeeds +- tweak some things in the initscript and config file noticed by the + fedora folks + +* Sun Mar 16 2003 Jeremy Katz 0.99.8.1-2 +- fix ssl dir +- own /var/run/dovecot/login with the correct perms +- fix chmod/chown in post + +* Fri Mar 14 2003 Jeremy Katz 0.99.8.1-1 +- update to 0.99.8.1 + +* Tue Mar 11 2003 Jeremy Katz 0.99.8-2 +- add a patch to fix quoting problem from CVS + +* Mon Mar 10 2003 Jeremy Katz 0.99.8-1 +- 0.99.8 +- add some buildrequires +- fixup to build with openssl 0.9.7 +- now includes a pop3 daemon (off by default) +- clean up description and %%preun +- add dovecot user (uid/gid of 97) +- add some buildrequires +- move the ssl cert to %{_datadir}/ssl/certs +- create a dummy ssl cert in %post +- own /var/run/dovecot +- make the config file a source so we get default mbox locks of fcntl + +* Sun Dec 1 2002 Seth Vidal +- 0.99.4 and fix startup so it starts imap-master not vsftpd :) + +* Tue Nov 26 2002 Seth Vidal +- first build diff --git a/sources b/sources index e69de29..5e68fd1 100644 --- a/sources +++ b/sources @@ -0,0 +1 @@ +26d8452366a28418cc8a114781a721b6 dovecot-0.99.10.tar.gz