File dovecot11.spec of Package dovecot11
#
# spec file for package dovecot11 (Version 1.1.7)
#
# Copyright (c) 2009 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via http://bugs.opensuse.org/
#
# norootforbuild
Name: dovecot11
Version: 1.1.7
Release: 1.<RELEASE4>
%define dovecot_sieve_version 1.1.5
%define dovecot_managesieve_version 0.10.4
%define dovecot_managesieve_docdir %{_docdir}/%{pkg_name}/dovecot-managesieve/
%define dovecot_sieve_docdir %{_docdir}/%{pkg_name}/dovecot-sieve
#
Group: Productivity/Networking/Email/Servers
License: BSD 3-Clause; LGPL v2.1 or later; X11/MIT
#
%define makeinstall make install DESTDIR=%{buildroot}
%define pkg_name dovecot
%if 0%{?suse_version} > 1020
%define with_clucene 1
%endif
%if 0%{?sles_version} == 9
%define with_sqlite 0
%else
%define with_sqlite 1
%endif
BuildRoot: %{_tmppath}/%{name}-%{version}-build
BuildRequires: bison db-devel flex mysql-devel openldap2-devel pam-devel pkgconfig postgresql-devel
%if 0%{with_sqlite}
BuildRequires: sqlite-devel > 3
%endif
%if 0%{?with_clucene}
BuildRequires: clucene-core-devel gcc-c++
%endif
%if 0%{?sles_version} == 9
BuildRequires: heimdal-devel
%else
BuildRequires: krb5-devel
%endif
%if 0%{?suse_version} > 1020
BuildRequires: libbz2-devel
%endif
PreReq: pwdutils %insserv_prereq %fillup_prereq
Conflicts: dovecot10 dovecot-snapshot dovecot11-snapshot dovecot12-snapshot
Provides: dovecot = %{version}-%{release}
Obsoletes: dovecot <= %{version}
%if 0%{?suse_version} >= 1010
Recommends: %{name}-backend-mysql = %{version} %{name}-backend-pgsql = %{version}
%if 0%{with_sqlite}
Recommends: %{name}-backend-sqlite = %{version}
%endif
%endif
#
Url: http://www.dovecot.org
# taken from http://www.dovecot.org/releases/1.0/%{pkg_name}-%{version}.tar.gz
Source: %{pkg_name}-%{version}.tar.bz2
# taken from http://www.dovecot.org/releases/sieve/dovecot-sieve-%{dovecot_sieve_version}.tar.gz
Source1: dovecot-sieve-%{dovecot_sieve_version}.tar.bz2
Source2: %{pkg_name}.init
Source3: %{pkg_name}.pam
Source4: %{pkg_name}.README.SuSE
Source5: dovecot-rpmlintrc
Source6: http://www.rename-it.nl/dovecot/1.1/dovecot-1.1-managesieve-%{dovecot_managesieve_version}.tar.bz2
Patch: dovecot-1.1.7_pie.patch
Patch1: dovecot-sieve-1.1.5_pie.patch
Patch2: dovecot-pkgconfig.patch
Patch3: http://www.rename-it.nl/dovecot/1.1/dovecot-1.1.7-managesieve-%{dovecot_managesieve_version}.diff.bz2
Patch4: dovecot-1.1.7-managesieve-0.10.4_pie.patch
Patch5: dovecot-1.1.x_sieve_buffer_overflows.patch
#
Summary: IMAP and POP3 Server Written Primarily with Security in Mind
%description
Dovecot is an IMAP and POP3 server for Linux and UNIX-like systems,
written primarily with security in mind. Although it is written in C,
it uses several coding techniques to avoid most of the common pitfalls.
Dovecot can work with standard mbox and maildir formats and is fully
compatible with UW-IMAP and Courier IMAP servers as well as mail
clients accessing the mailboxes directly.
Authors:
--------
Timo Sirainen <tss@iki.fi>
%package backend-mysql
License: BSD 3-Clause; LGPL v2.1 or later; X11/MIT
Group: Productivity/Networking/Email/Servers
Requires: %{name} = %{version}
Provides: dovecot_sql_backend = %{version}-%{release}
Summary: MySQL support for Dovecot
%description backend-mysql
Dovecot is an IMAP and POP3 server for Linux and UNIX-like systems,
written primarily with security in mind. Although it is written in C,
it uses several coding techniques to avoid most of the common pitfalls.
Dovecot can work with standard mbox and maildir formats and is fully
compatible with UW-IMAP and Courier IMAP servers as well as mail
clients accessing the mailboxes directly.
This package holds the files needed for MySQL support.
Authors:
--------
Timo Sirainen <tss@iki.fi>
%package backend-pgsql
License: BSD 3-Clause; LGPL v2.1 or later; X11/MIT
Group: Productivity/Networking/Email/Servers
Requires: %{name} = %{version}
Provides: dovecot_sql_backend = %{version}-%{release}
Summary: PostgreSQL support for Dovecot
%description backend-pgsql
Dovecot is an IMAP and POP3 server for Linux and UNIX-like systems,
written primarily with security in mind. Although it is written in C,
it uses several coding techniques to avoid most of the common pitfalls.
Dovecot can work with standard mbox and maildir formats and is fully
compatible with UW-IMAP and Courier IMAP servers as well as mail
clients accessing the mailboxes directly.
This package holds the files needed for PostgreSQL support.
Authors:
--------
Timo Sirainen <tss@iki.fi>
%if 0%{?with_sqlite}
%package backend-sqlite
License: BSD 3-Clause; LGPL v2.1 or later; X11/MIT
Group: Productivity/Networking/Email/Servers
Requires: %{name} = %{version}
Provides: dovecot_sql_backend = %{version}-%{release}
Summary: SQLite support for Dovecot
%description backend-sqlite
Dovecot is an IMAP and POP3 server for Linux and UNIX-like systems,
written primarily with security in mind. Although it is written in C,
it uses several coding techniques to avoid most of the common pitfalls.
Dovecot can work with standard mbox and maildir formats and is fully
compatible with UW-IMAP and Courier IMAP servers as well as mail
clients accessing the mailboxes directly.
This package holds the files needed for SQLite support.
Authors:
--------
Timo Sirainen <tss@iki.fi>
%endif
%if 0%{?with_clucene}
%package fts-lucene
License: BSD 3-Clause; LGPL v2.1 or later; X11/MIT
Group: Productivity/Networking/Email/Servers
Requires: %{name} = %{version}
Provides: dovecot_fts_backend = %{version}-%{release}
Summary: Fulltext search support via CLucene
%description fts-lucene
Dovecot is an IMAP and POP3 server for Linux and UNIX-like systems,
written primarily with security in mind. Although it is written in C,
it uses several coding techniques to avoid most of the common pitfalls.
Dovecot can work with standard mbox and maildir formats and is fully
compatible with UW-IMAP and Courier IMAP servers as well as mail
clients accessing the mailboxes directly.
This package holds the files needed for fulltext search support via
CLucene.
Authors:
--------
Timo Sirainen <tss@iki.fi>
%endif
%package devel
License: BSD 3-Clause; LGPL v2.1 or later; X11/MIT
Group: Development/Libraries/C and C++
Requires: %{name} = %{version}
Provides: dovecot-devel = %{version}-%{release}
Obsoletes: dovecot-devel <= %{version}
Conflicts: dovecot10-devel dovecot-snapshot-devel dovecot11-snapshot-devel dovecot12-snapshot-devel
#
Summary: Development files for Dovecot plugins
%description devel
Dovecot is an IMAP and POP3 server for Linux and UNIX-like systems,
written primarily with security in mind. Although it is written in C,
it uses several coding techniques to avoid most of the common pitfalls.
Dovecot can work with standard mbox and maildir formats and is fully
compatible with UW-IMAP and Courier IMAP servers as well as mail
clients accessing the mailboxes directly.
This package holds the file needed to compile plugins outside of the
dovecot tree.
Authors:
--------
Timo Sirainen <tss@iki.fi>
%prep
%setup -q -n %{pkg_name}-%{version} -a 1 -a 6
%patch
%patch1
%patch3 -p1
%patch4
%patch5
%{__sed} -i -e 's|#ssl_disable = no|ssl_disable = yes|' %{pkg_name}-example.conf
%{__sed} -i -e 's|/usr/libexec|%{_prefix}/lib|g' %{pkg_name}-example.conf
%{__perl} -p -i -e 's|#(mail_plugin_dir =) /usr/lib/dovecot/(.*)$|$1 %{_libdir}/dovecot/modules/$2|g' %{pkg_name}-example.conf
%build
export CFLAGS="%{optflags}"
%if 0%{?suse_version} > 1000
export CFLAGS="$CFLAGS -fstack-protector"
%endif
if [ -f /usr/share/gettext/config.rpath -a ! -f config.rpath ] ; then
%{__cp} -v /usr/share/gettext/config.rpath .
fi
#./autogen.sh
aclocal
autoheader
libtoolize --force
automake --add-missing
autoconf
%if 0%{?with_clucene}
export CFLAGS="$CFLAGS -I%{_libdir}"
export CXXFLAGS="$CFLAGS -I%{_libdir}"
%endif
%configure \
--sysconfdir=%{_sysconfdir}/%{pkg_name} \
--libexecdir=%{_prefix}/lib \
--with-moduledir=%{_libdir}/%{pkg_name}/modules \
--with-ioloop=best \
--with-static-userdb \
--with-prefetch-userdb \
%if 0%{?with_clucene}
--with-lucene \
%endif
--with-ldap=plugin \
--with-sql=plugin \
--with-gssapi=plugin \
--with-pgsql \
--with-mysql \
%if 0%{?with_sqlite}
--with-sqlite \
%endif
--with-db \
--with-ssl=openssl \
--with-deliver \
--with-docs \
--with-zlib \
--with-bzlib \
--disable-static \
--enable-header-install \
--enable-ipv6 \
--enable-pie
%{__make}
pushd dovecot-sieve-%{dovecot_sieve_version}
if [ -f /usr/share/gettext/config.rpath -a ! -f config.rpath ] ; then
%{__cp} -v /usr/share/gettext/config.rpath .
fi
aclocal
autoheader
libtoolize --force
automake --add-missing
autoconf
%configure \
--sysconfdir=%{_sysconfdir}/%{pkg_name} \
--libexecdir=%{_prefix}/lib/ \
--with-moduledir=%{_libdir}/%{pkg_name}/modules \
--with-dovecot=../ \
--disable-static \
--enable-pie
make
popd
pushd dovecot-1.1-managesieve-%{dovecot_managesieve_version}
if [ -f /usr/share/gettext/config.rpath -a ! -f config.rpath ] ; then
%{__cp} -v /usr/share/gettext/config.rpath .
fi
aclocal
autoheader
libtoolize --force
automake --add-missing
autoconf
%configure \
--sysconfdir=%{_sysconfdir}/%{pkg_name} \
--libexecdir=%{_prefix}/lib/ \
--with-moduledir=%{_libdir}/%{pkg_name}/modules \
--with-dovecot=../ \
--with-dovecot-sieve=../dovecot-sieve-%{dovecot_sieve_version} \
--disable-static \
--enable-pie
make
popd
%install
%makeinstall docdir=%{_docdir}/%{pkg_name} wikidir=%{_docdir}/%{pkg_name}/wiki
%makeinstall -C dovecot-sieve-%{dovecot_sieve_version} docdir=%{dovecot_sieve_docdir}
%makeinstall -C dovecot-1.1-managesieve-%{dovecot_managesieve_version} docdir=%{dovecot_managesieve_docdir}
find %{buildroot}%{_libdir}/%{pkg_name}/modules/ -type f -name \*.la -print0 | xargs -r0 rm -v
find %{buildroot}%{_libdir}/%{pkg_name}/modules/ -type f -name \*.a -print0 | xargs -r0 rm -v
%{__install} -m 0755 -Dd %{buildroot}%{_var}/run/%{pkg_name}/login/ %{buildroot}%{_var}/lib/%{pkg_name}/
#
# fix config filename and install additional config
%{__mv} %{buildroot}%{_sysconfdir}/%{pkg_name}/%{pkg_name}{-example,}.conf
%{__install} -m 0640 doc/*conf %{buildroot}%{_sysconfdir}/%{pkg_name}
%{__install} -D -m 0644 %{S:3} %{buildroot}%{_sysconfdir}/pam.d/%{pkg_name}
#
# install the init script
%{__install} -D -m 0755 %{S:2} %{buildroot}%{_sysconfdir}/init.d/%{pkg_name}
%{__ln_s} -f %{_sysconfdir}/init.d/%{pkg_name} %{buildroot}%{_sbindir}/rc%{pkg_name}
#
# install the script to create dummy selfsigned certs
%{__install} -m 0755 doc/mkcert.sh %{buildroot}%{_docdir}/%{pkg_name}
%{__install} -m 0644 doc/*.cnf %{buildroot}%{_docdir}/%{pkg_name}
%{__install} -m 0644 %{S:4} %{buildroot}%{_docdir}/%{pkg_name}/README.SuSE
#
# additional docs for the main package
%{__install} -m 0644 \
AUTHORS ChangeLog COPYING* NEWS TODO README* \
%{buildroot}%{_docdir}/%{pkg_name}/
%{__gzip} -9v %{buildroot}%{_docdir}/%{pkg_name}/ChangeLog
#
# documentation for the cmu sieve module
for i in dovecot-sieve-%{dovecot_sieve_version}/src/libsieve/{AUTHORS,COPYING,NEWS,README} ; do
%{__install} -m 0644 $i %{buildroot}%{_docdir}/%{pkg_name}/${i##dovecot-sieve-%{dovecot_sieve_version}/src/libsieve/}.libsieve
done
for i in dovecot-sieve-%{dovecot_sieve_version}/{AUTHORS,ChangeLog,COPYING,NEWS,README} ; do
%{__install} -m 0644 $i %{buildroot}%{_docdir}/%{pkg_name}/${i##dovecot-sieve-%{dovecot_sieve_version}/}.dovecot-sieve
done
for i in dovecot-1.1-managesieve-%{dovecot_managesieve_version}/{AUTHORS,ChangeLog,COPYING,DESIGN,NEWS,README,TODO} ; do
%{__install} -m 0644 $i %{buildroot}%{_docdir}/%{pkg_name}/${i##dovecot-1.1-managesieve-%{dovecot_managesieve_version}/}.managesieve
done
#
# useless atm
%{__rm} -v %{buildroot}%{_libdir}/%{pkg_name}/dovecot-config
%clean
%{__rm} -rf "%{buildroot}"
%pre
/usr/sbin/groupadd -r %{pkg_name} &>/dev/null || :
/usr/sbin/useradd -o -g %{pkg_name} -s /bin/false -r -c "User for Dovecot imapd" -d %{_var}/run/%{pkg_name} %{pkg_name} &>/dev/null || :
%preun
%stop_on_removal %{pkg_name}
%post
%fillup_and_insserv -f %{pkg_name}
%postun
%insserv_cleanup
%restart_on_update %{pkg_name}
%files
%defattr(-,root,root)
%{_sysconfdir}/init.d/%{pkg_name}
%{_sbindir}/%{pkg_name}*
%{_sbindir}/rc%{pkg_name}
%dir %{_sysconfdir}/%{pkg_name}
%config(noreplace) %attr(0644,root,root) %{_sysconfdir}/%{pkg_name}/*
%config(noreplace) %{_sysconfdir}/pam.d/%{pkg_name}
%dir %{_prefix}/lib/%{pkg_name}
%{_prefix}/lib/%{pkg_name}/checkpassword-reply
%{_prefix}/lib/%{pkg_name}/dovecot-auth
%{_prefix}/lib/%{pkg_name}/rawlog
%{_prefix}/lib/%{pkg_name}/imap*
%{_prefix}/lib/%{pkg_name}/pop3*
%{_prefix}/lib/%{pkg_name}/deliver
%{_prefix}/lib/%{pkg_name}/dict
%{_prefix}/lib/%{pkg_name}/gdbhelper
%{_prefix}/lib/%{pkg_name}/ssl-build-param
%{_prefix}/lib/%{pkg_name}/sievec
%{_prefix}/lib/%{pkg_name}/sieved
%{_prefix}/lib/%{pkg_name}/idxview
%{_prefix}/lib/%{pkg_name}/logview
%{_prefix}/lib/%{pkg_name}/convert-tool
%{_prefix}/lib/%{pkg_name}/expire-tool
%{_prefix}/lib/%{pkg_name}/listview
%{_prefix}/lib/%{pkg_name}/maildirlock
%{_prefix}/lib/%{pkg_name}/managesieve
%{_prefix}/lib/%{pkg_name}/managesieve-login
#
# plugins
#
%dir %{_libdir}/%{pkg_name}
%dir %{_libdir}/%{pkg_name}/modules/
%{_libdir}/%{pkg_name}/modules/lib01_acl_plugin.so
%{_libdir}/%{pkg_name}/modules/lib02_lazy_expunge_plugin.so
%{_libdir}/%{pkg_name}/modules/lib10_quota_plugin.so
%{_libdir}/%{pkg_name}/modules/lib11_trash_plugin.so
%{_libdir}/%{pkg_name}/modules/lib20_convert_plugin.so
%{_libdir}/%{pkg_name}/modules/lib20_mail_log_plugin.so
%{_libdir}/%{pkg_name}/modules/lib20_expire_plugin.so
%{_libdir}/%{pkg_name}/modules/lib20_fts_plugin.so
%{_libdir}/%{pkg_name}/modules/lib20_mbox_snarf_plugin.so
%{_libdir}/%{pkg_name}/modules/lib20_zlib_plugin.so
%{_libdir}/%{pkg_name}/modules/lib21_fts_squat_plugin.so
%dir %{_libdir}/%{pkg_name}/modules/imap
%{_libdir}/%{pkg_name}/modules/imap/lib01_acl_plugin.so
%{_libdir}/%{pkg_name}/modules/imap/lib02_lazy_expunge_plugin.so
%{_libdir}/%{pkg_name}/modules/imap/lib10_quota_plugin.so
%{_libdir}/%{pkg_name}/modules/imap/lib11_imap_quota_plugin.so
%{_libdir}/%{pkg_name}/modules/imap/lib11_trash_plugin.so
%{_libdir}/%{pkg_name}/modules/imap/lib20_convert_plugin.so
%{_libdir}/%{pkg_name}/modules/imap/lib20_mail_log_plugin.so
%{_libdir}/%{pkg_name}/modules/imap/lib20_zlib_plugin.so
%{_libdir}/%{pkg_name}/modules/imap/lib20_expire_plugin.so
%{_libdir}/%{pkg_name}/modules/imap/lib20_fts_plugin.so
%{_libdir}/%{pkg_name}/modules/imap/lib20_mbox_snarf_plugin.so
%{_libdir}/%{pkg_name}/modules/imap/lib21_fts_squat_plugin.so
%dir %{_libdir}/%{pkg_name}/modules/lda
%{_libdir}/%{pkg_name}/modules/lda/lib01_acl_plugin.so
%{_libdir}/%{pkg_name}/modules/lda/lib10_quota_plugin.so
%{_libdir}/%{pkg_name}/modules/lda/lib11_trash_plugin.so
%{_libdir}/%{pkg_name}/modules/lda/lib20_convert_plugin.so
%{_libdir}/%{pkg_name}/modules/lda/lib20_mail_log_plugin.so
%{_libdir}/%{pkg_name}/modules/lda/lib90_cmusieve_plugin.so
%{_libdir}/%{pkg_name}/modules/lda/lib20_expire_plugin.so
%{_libdir}/%{pkg_name}/modules/lda/lib20_fts_plugin.so
%{_libdir}/%{pkg_name}/modules/lda/lib21_fts_squat_plugin.so
%dir %{_libdir}/%{pkg_name}/modules/pop3
%{_libdir}/%{pkg_name}/modules/pop3/lib02_lazy_expunge_plugin.so
%{_libdir}/%{pkg_name}/modules/pop3/lib10_quota_plugin.so
%{_libdir}/%{pkg_name}/modules/pop3/lib20_convert_plugin.so
%{_libdir}/%{pkg_name}/modules/pop3/lib20_mail_log_plugin.so
%{_libdir}/%{pkg_name}/modules/pop3/lib20_expire_plugin.so
%{_libdir}/%{pkg_name}/modules/pop3/lib20_fts_plugin.so
%{_libdir}/%{pkg_name}/modules/pop3/lib20_mbox_snarf_plugin.so
%{_libdir}/%{pkg_name}/modules/pop3/lib20_zlib_plugin.so
%{_libdir}/%{pkg_name}/modules/pop3/lib21_fts_squat_plugin.so
# auth modules
%dir %{_libdir}/%{pkg_name}/modules/auth/
%dir %{_libdir}/%{pkg_name}/modules/dict/
%dir %{_libdir}/%{pkg_name}/modules/sql/
%{_libdir}/%{pkg_name}/modules/auth/libauthdb_ldap.so
%{_libdir}/%{pkg_name}/modules/auth/libmech_gssapi.so
#
# documentation
#
%doc %{_docdir}/%{pkg_name}
#
# setting up permissions
#
%dir %attr(0755, root, root) %{_var}/run/%{pkg_name}/
%dir %attr(0750, root, %{pkg_name}) %{_var}/run/%{pkg_name}/login/
%dir %attr(0750, root, root) %{_var}/lib/%{pkg_name}/
%files backend-mysql
%defattr(-,root,root,-)
%{_libdir}/%{pkg_name}/modules/auth/libdriver_mysql.so
%{_libdir}/%{pkg_name}/modules/dict/libdriver_mysql.so
%{_libdir}/%{pkg_name}/modules/sql/libdriver_mysql.so
%files backend-pgsql
%defattr(-,root,root,-)
%{_libdir}/%{pkg_name}/modules/auth/libdriver_pgsql.so
%{_libdir}/%{pkg_name}/modules/dict/libdriver_pgsql.so
%{_libdir}/%{pkg_name}/modules/sql/libdriver_pgsql.so
%if 0%{?with_sqlite}
%files backend-sqlite
%defattr(-,root,root,-)
%{_libdir}/%{pkg_name}/modules/auth/libdriver_sqlite.so
%{_libdir}/%{pkg_name}/modules/dict/libdriver_sqlite.so
%{_libdir}/%{pkg_name}/modules/sql/libdriver_sqlite.so
%endif
%if 0%{?with_clucene}
%files fts-lucene
%defattr(-,root,root,-)
%{_libdir}/%{pkg_name}/modules/lib21_fts_lucene_plugin.so
%{_libdir}/%{pkg_name}/modules/imap/lib21_fts_lucene_plugin.so
%{_libdir}/%{pkg_name}/modules/lda/lib21_fts_lucene_plugin.so
%{_libdir}/%{pkg_name}/modules/pop3/lib21_fts_lucene_plugin.so
%endif
%files devel
%defattr(-,root,root,-)
%{_includedir}/%{pkg_name}/
#%{_libdir}/pkgconfig/dovecot.pc
# useless atm
# %{_libdir}/%{pkg_name}/dovecot-config
%changelog