All pastes #374196 Raw Edit

deadbeef

public text v1 · immutable
#374196 ·published 2007-02-27 10:59 UTC
rendered paste body
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 <sokolov.ivan@gmail.com> - 1.0.rc24-1.EL4.mysql
    - first build (based on original RHEL 4 spec)
    - added mysql driver support