Summary: Dovecot Secure imap server Name: dovecot Version: 1.0.rc24 Release: 1.EL4.mysql Epoch: 1 License: LGPL Group: System Environment/Daemons Source: %{name}-%{version}.tar.gz Source1: dovecot.init Source2: dovecot.pam Source3: maildir-migration.txt Source4: migrate-folders Source5: migrate-users Source6: perfect_maildir.pl Source7: dovecot-REDHAT-FAQ.txt URL: http://dovecot.org/ Buildroot: %{_tmppath}/%{name}-%{version}-%{release}-root BuildRequires: mysql-devel BuildRequires: postgresql-devel BuildRequires: openssl-devel BuildRequires: openldap-devel BuildRequires: pam-devel BuildRequires: pkgconfig BuildRequires: zlib-devel BuildRequires: autoconf BuildRequires: automake BuildRequires: libtool BuildRequires: gcc-c++ # gettext-devel is needed for running autoconf because of the # presence of AM_ICONV BuildRequires: gettext-devel Prereq: openssl, /sbin/chkconfig, /usr/sbin/useradd %define docdir %{_docdir}/%{name}-%{version} %define ssldir /usr/share/ssl %define restart_flag /tmp/%{name}-restart-after-rpm-install %define dovecot_uid 97 %define dovecot_gid 97 %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} %build rm -f ./configure aclocal autoconf %configure \ --with-pgsql \ --with-mysql \ --with-ssl=openssl \ --with-ssldir=/usr/share/ssl \ --with-ldap \ --with-sql-drivers=mysql,pgsql \ --with-storages=maildir,mbox exit 0 #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 # Install some of our own documentation mkdir -p $RPM_BUILD_ROOT%{docdir} install -m644 $RPM_SOURCE_DIR/dovecot-REDHAT-FAQ.txt $RPM_BUILD_ROOT%{docdir}/REDHAT-FAQ.txt install -m755 -d $RPM_BUILD_ROOT%{docdir}/UW-to-Dovecot-Migration for f in maildir-migration.txt migrate-folders migrate-users perfect_maildir.pl do install -m644 $RPM_SOURCE_DIR/$f $RPM_BUILD_ROOT%{docdir}/UW-to-Dovecot-Migration done cp -a doc/*.txt doc/dovecot-openssl.cnf doc/mkcert.sh INSTALL AUTHORS \ ChangeLog COPYING TODO README NEWS COPYING.LGPL $RPM_BUILD_ROOT/%{docdir} mv $RPM_BUILD_ROOT/%{_docdir}/%{name}/* $RPM_BUILD_ROOT/%{docdir} rm -rf $RPM_BUILD_ROOT/%{_docdir}/%{name} rm -f $RPM_BUILD_ROOT/etc/dovecot-example.conf %pre /usr/sbin/useradd -c "dovecot" -u %{dovecot_uid} -s /sbin/nologin -r -d /usr/libexec/dovecot dovecot 2>/dev/null || : # stop service during installation, keep flag if it was running to restart later rm -f %{restart_flag} /sbin/service %{name} status >/dev/null 2>&1 if [ $? -eq 0 ]; then touch %{restart_flag} /sbin/service %{name} stop >/dev/null 2>&1 fi %post /sbin/chkconfig --add %{name} # 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 if [ -e %{restart_flag} ]; then rm %{restart_flag} /sbin/service %{name} start >/dev/null 2>&1 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 %doc %{docdir} %config(noreplace) %{_sysconfdir}/dovecot.conf %config %{_sysconfdir}/rc.d/init.d/dovecot %config %{_sysconfdir}/pam.d/dovecot #%config(noreplace) %{ssldir}/dovecot-openssl.cnf %attr(0600,root,root) %ghost %config(missingok,noreplace) %verify(not md5 size mtime) %{ssldir}/certs/dovecot.pem %attr(0600,root,root) %ghost %config(missingok,noreplace) %verify(not md5 size mtime) %{ssldir}/private/dovecot.pem #%attr(0750,root,dovecot) %{docdir}/examples/mkcert.sh %dir %{_libexecdir}/%{name} %{_libexecdir}/%{name}/* %{_sbindir}/dovecot %dir /var/run/dovecot %attr(0750,root,dovecot) %dir /var/run/dovecot-login %changelog * Mon Feb 26 2007 Ivan Sokolov - 1.0.rc24-1.EL4.mysql - first build (based on original RHEL 4 spec) - added mysql driver support