Marcus Rueckert
f739a90376
- update to 2.3.21 and pigeonhole 0.5.21 Dovecot 2.3.21 * lib-oauth2: Allow JWT tokens to be validated with missing typ field. The typ field is left out by some key issuers to conserve space, notably kubernetes. Now missing typ is tolerated, but if present, it still must be "jwt". + auth: Auth passdb and userdb reply can contain "event_<name>=value" which will be added to login event and mail user event respectively. + lib-master: Set process title during various initialization stages to clearly describe what the process is waiting on. + lib-storage: The mail_temp_scan_interval is now fuzzed incrementing it by 0..30% based on username's hash to reduce the chance of load spikes. + lib-storage: The temp file scan has been moved from the open of the mailbox to the close, to reduce the latency perceived by users. + stats: If metric has fields specified, all these fields are exported as counters to prometheus exposition. See https://doc.dovecot.org/configuration_manual/stats/openmetrics/. OBS-URL: https://build.opensuse.org/request/show/1111575 OBS-URL: https://build.opensuse.org/package/show/server:mail/dovecot23?expand=0&rev=117
778 lines
27 KiB
RPMSpec
778 lines
27 KiB
RPMSpec
#
|
|
# spec file for package dovecot23
|
|
#
|
|
# Copyright (c) 2023 SUSE LLC
|
|
#
|
|
# 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 https://bugs.opensuse.org/
|
|
#
|
|
|
|
|
|
Name: dovecot23
|
|
Version: 2.3.21
|
|
Release: 0
|
|
%define pkg_name dovecot
|
|
%define dovecot_version 2.3.21
|
|
%define dovecot_pigeonhole_version 0.5.21
|
|
%define dovecot_branch 2.3
|
|
%define dovecot_pigeonhole_source_dir %{pkg_name}-%{dovecot_branch}-pigeonhole-%{dovecot_pigeonhole_version}
|
|
%define dovecot_pigeonhole_docdir %{_docdir}/%{pkg_name}/dovecot-pigeonhole
|
|
%define restart_flag /var/run/%{pkg_name}/%{pkg_name}-restart-after-rpm-install
|
|
%if 0%{?suse_version} > 1230
|
|
%bcond_without systemd
|
|
%bcond_with textcat
|
|
%else
|
|
%bcond_with systemd
|
|
%bcond_with textcat
|
|
%endif
|
|
%bcond_without solr
|
|
%if 0%{?suse_version} > 1110
|
|
%bcond_without clucene
|
|
%bcond_without dcrypt_openssl
|
|
%bcond_without icu
|
|
%else
|
|
%bcond_with clucene
|
|
%bcond_with dcrypt_openssl
|
|
%bcond_with icu
|
|
%endif
|
|
%bcond_without sqlite
|
|
%if 0%{?suse_version} >= 1110
|
|
%bcond_without lzma
|
|
%else
|
|
%bcond_with lzma
|
|
%endif
|
|
%if 0%{?suse_version} >= 1320
|
|
%bcond_without argon
|
|
%bcond_without lz4
|
|
%else
|
|
%bcond_with argon
|
|
%bcond_with lz4
|
|
%endif
|
|
%if 0%{?suse_version} >= 1110
|
|
%bcond_without zstd
|
|
%else
|
|
%bcond_with zstd
|
|
%endif
|
|
BuildRoot: %{_tmppath}/%{name}-%{version}-build
|
|
BuildRequires: bison
|
|
BuildRequires: cyrus-sasl-devel
|
|
BuildRequires: flex
|
|
BuildRequires: libapparmor-devel
|
|
%if %{with icu}
|
|
BuildRequires: libicu-devel
|
|
%endif
|
|
BuildRequires: libtool
|
|
%if %{with lzma}
|
|
BuildRequires: xz-devel
|
|
%endif
|
|
%if %{with lz4}
|
|
BuildRequires: liblz4-devel
|
|
%endif
|
|
%if %{with zstd}
|
|
BuildRequires: libzstd-devel
|
|
%endif
|
|
%if %{with argon}
|
|
BuildRequires: libsodium-devel
|
|
%endif
|
|
%if 0%{?suse_version} >= 1520
|
|
BuildRequires: libmysqlclient-devel
|
|
%else
|
|
BuildRequires: mysql-devel
|
|
%endif
|
|
BuildRequires: openldap2-devel
|
|
BuildRequires: openssl-devel >= 1.0.1
|
|
BuildRequires: pam-devel
|
|
BuildRequires: pkgconfig
|
|
BuildRequires: postgresql-devel
|
|
BuildRequires: tcpd-devel
|
|
BuildRequires: zlib-devel
|
|
%if %{with sqlite}
|
|
BuildRequires: sqlite-devel > 3
|
|
%endif
|
|
%if %{with clucene}
|
|
BuildRequires: clucene-core-devel
|
|
BuildRequires: gcc-c++
|
|
%endif
|
|
%if 0%{?sles_version} == 9
|
|
BuildRequires: heimdal-devel
|
|
BuildRequires: libcap
|
|
%else
|
|
BuildRequires: krb5-devel
|
|
BuildRequires: libcap-devel
|
|
%endif
|
|
%if 0%{?suse_version} > 1020
|
|
BuildRequires: libbz2-devel
|
|
%endif
|
|
%if 0%{?suse_version} >= 1500
|
|
BuildRequires: lua53-devel
|
|
%else
|
|
BuildRequires: lua51-devel
|
|
%endif
|
|
%if %{with solr}
|
|
BuildRequires: curl-devel
|
|
BuildRequires: libexpat-devel
|
|
%endif
|
|
%if %{with textcat}
|
|
BuildRequires: libexttextcat-devel
|
|
%endif
|
|
%if %{with systemd}
|
|
BuildRequires: pkgconfig(systemd)
|
|
%{?systemd_ordering}
|
|
%define has_systemd 1
|
|
%endif
|
|
PreReq: %fillup_prereq
|
|
# bump requires on noarch package to the version which copies the files from /usr/share/dovecot/
|
|
Requires: dovecot >= 2.3
|
|
Conflicts: otherproviders(dovecot-implementation)
|
|
Provides: dovecot-implementation = %{version}-%{release}
|
|
%if 0%{?suse_version} >= 1010
|
|
Recommends: %{name}-backend-mysql = %{version}
|
|
Recommends: %{name}-backend-pgsql = %{version}
|
|
%if %{with sqlite}
|
|
Recommends: %{name}-backend-sqlite = %{version}
|
|
%endif
|
|
%endif
|
|
Recommends: %{name}-fts = %{version}
|
|
Recommends: %{name}-fts-squat = %{version}
|
|
URL: https://www.dovecot.org
|
|
Source: https://www.dovecot.org/releases/%{dovecot_branch}/%{pkg_name}-%{dovecot_version}.tar.gz
|
|
Source1: https://pigeonhole.dovecot.org/releases/%{dovecot_branch}/%{dovecot_pigeonhole_source_dir}.tar.gz
|
|
Source2: dovecot-rpmlintrc
|
|
Source3: dovecot-2.0.configfiles
|
|
Source4: dovecot-2.1.configfiles
|
|
Source5: dovecot-2.2.configfiles
|
|
Source6: dovecot-2.3.configfiles
|
|
Source7: dovecot-2.1-pigeonhole.configfiles
|
|
Source8: dovecot-2.2-pigeonhole.configfiles
|
|
Source9: dovecot-2.3-pigeonhole.configfiles
|
|
Source10: https://www.dovecot.org/releases/%{dovecot_branch}/%{pkg_name}-%{dovecot_version}.tar.gz.sig
|
|
Source11: https://pigeonhole.dovecot.org/releases/%{dovecot_branch}/%{dovecot_pigeonhole_source_dir}.tar.gz.sig
|
|
Source12: dovecot23.keyring
|
|
# PATCH-FIX-OPENSUSE - boo#932386
|
|
Patch: dovecot-2.3.0-dont_use_etc_ssl_certs.patch
|
|
# PATCH-FIX-SLE - boo#854512
|
|
Patch1: dovecot-2.3.0-better_ssl_defaults.patch
|
|
# PATCH-FIX-OPENSUSE - boo#1207958
|
|
Patch2: fix-build-with-openssl-3.patch
|
|
# PATCH-FIX-UPSTREAM - https://github.com/dovecot/core/commit/f0c1cf42ea78d22e2674b03fe65f0ee6545c5b99
|
|
Patch3: fix-strict-aliasing.patch
|
|
Summary: IMAP and POP3 Server Written Primarily with Security in Mind
|
|
License: BSD-3-Clause AND LGPL-2.1-or-later AND MIT
|
|
Group: Productivity/Networking/Email/Servers
|
|
|
|
%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.
|
|
|
|
%package backend-mysql
|
|
Requires: %{name} = %{version}
|
|
Provides: dovecot-backend-mysql = %{version}-%{release}
|
|
Provides: dovecot_sql_backend = %{version}-%{release}
|
|
Conflicts: otherproviders(dovecot-backend-mysql)
|
|
Summary: MySQL support for Dovecot
|
|
Group: Productivity/Networking/Email/Servers
|
|
|
|
%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.
|
|
|
|
%package backend-pgsql
|
|
Requires: %{name} = %{version}
|
|
Provides: dovecot-backend-pgsql = %{version}-%{release}
|
|
Provides: dovecot_sql_backend = %{version}-%{release}
|
|
Conflicts: otherproviders(dovecot-backend-pgsql)
|
|
Summary: PostgreSQL support for Dovecot
|
|
Group: Productivity/Networking/Email/Servers
|
|
|
|
%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.
|
|
|
|
%if %{with sqlite}
|
|
|
|
%package backend-sqlite
|
|
Requires: %{name} = %{version}
|
|
Provides: dovecot-backend-sqlite = %{version}-%{release}
|
|
Provides: dovecot_sql_backend = %{version}-%{release}
|
|
Conflicts: otherproviders(dovecot-backend-sqlite)
|
|
Summary: SQLite support for Dovecot
|
|
Group: Productivity/Networking/Email/Servers
|
|
|
|
%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.
|
|
|
|
%endif
|
|
|
|
%package fts
|
|
Requires: %{name} = %{version}
|
|
Summary: Fulltext search support base plugin
|
|
Group: Productivity/Networking/Email/Servers
|
|
|
|
%description fts
|
|
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 base plugin needed for fulltext search support
|
|
|
|
%package fts-squat
|
|
Requires: %{name} = %{version}
|
|
Requires: %{name}-fts = %{version}
|
|
Summary: Fulltext search support squat plugin
|
|
Group: Productivity/Networking/Email/Servers
|
|
|
|
%description fts-squat
|
|
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 squat plugin.
|
|
|
|
|
|
%if %{with clucene}
|
|
|
|
%package fts-lucene
|
|
Requires: %{name} = %{version}
|
|
Requires: %{name}-fts = %{version}
|
|
Provides: dovecot-fts-clucene = %{version}-%{release}
|
|
Provides: dovecot_fts_backend = %{version}-%{release}
|
|
Conflicts: otherproviders(dovecot-fts-clucene)
|
|
Summary: Fulltext search support via CLucene
|
|
Group: Productivity/Networking/Email/Servers
|
|
|
|
%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.
|
|
|
|
%endif
|
|
|
|
%if %{with solr}
|
|
|
|
%package fts-solr
|
|
Requires: %{name} = %{version}
|
|
Requires: %{name}-fts = %{version}
|
|
Provides: dovecot-fts-solr = %{version}-%{release}
|
|
Provides: dovecot_fts_backend = %{version}-%{release}
|
|
Conflicts: otherproviders(dovecot-fts-solr)
|
|
Summary: Fulltext search support via solr
|
|
Group: Productivity/Networking/Email/Servers
|
|
|
|
%description fts-solr
|
|
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 solr.
|
|
|
|
%endif
|
|
|
|
%package devel
|
|
Requires: %{name} = %{version}
|
|
Provides: dovecot-devel = %{version}-%{release}
|
|
Conflicts: otherproviders(dovecot-devel)
|
|
Summary: Development files for Dovecot plugins
|
|
Group: Development/Libraries/C and C++
|
|
|
|
%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.
|
|
|
|
%prep
|
|
%autosetup -p1 -n %{pkg_name}-%{dovecot_version} -a 1
|
|
|
|
gzip -9v ChangeLog
|
|
# Fix plugins dir.
|
|
sed -i 's|#mail_plugin_dir = /usr/lib/dovecot|mail_plugin_dir = %{_libdir}/dovecot/modules|' doc/example-config/conf.d/10-mail.conf
|
|
|
|
%build
|
|
export CFLAGS="%{optflags}"
|
|
%if %{with clucene}
|
|
export CFLAGS="$CFLAGS -I%{_libdir}"
|
|
export CXXFLAGS="$CFLAGS -I%{_libdir}"
|
|
%endif
|
|
export CFLAGS="$CFLAGS -fpic -DPIC"
|
|
export LIBS="-pie"
|
|
%configure \
|
|
--docdir=%{_docdir}/%{pkg_name} \
|
|
--with-moduledir=%{_libdir}/%{pkg_name}/modules \
|
|
--libexecdir=%{_prefix}/lib/ \
|
|
--with-ioloop=best \
|
|
--with-ldap=plugin \
|
|
--with-sql=plugin \
|
|
--with-gssapi=plugin \
|
|
--with-pgsql \
|
|
--with-mysql \
|
|
--with-lua=plugin \
|
|
--with-apparmor \
|
|
%if %{with sqlite}
|
|
--with-sqlite \
|
|
%endif
|
|
%if %{with clucene}
|
|
--with-lucene \
|
|
%endif
|
|
%if %{with textcat}
|
|
--with-textcat \
|
|
%endif
|
|
%if %{with icu}
|
|
--with-icu \
|
|
%endif
|
|
%if %{with solr}
|
|
--with-solr \
|
|
%endif
|
|
--with-ssl=openssl \
|
|
--with-zlib \
|
|
--with-bzlib \
|
|
%if %{with lzma}
|
|
--with-lzma \
|
|
%endif
|
|
%if %{with lz4}
|
|
--with-lz4 \
|
|
%endif
|
|
%if %{with zstd}
|
|
--with-zstd \
|
|
%endif
|
|
--with-libcap \
|
|
--with-libwrap \
|
|
--with-docs \
|
|
%if %{with systemd}
|
|
--with-systemdsystemunitdir=%{_unitdir} \
|
|
%endif
|
|
--disable-static
|
|
make %{?_smp_mflags}
|
|
|
|
pushd %{dovecot_pigeonhole_source_dir}
|
|
%configure --with-dovecot=../ \
|
|
--with-ldap=plugin \
|
|
--docdir="%{dovecot_pigeonhole_docdir}"
|
|
make %{?_smp_mflags}
|
|
popd
|
|
|
|
%check
|
|
make check
|
|
make -C %{dovecot_pigeonhole_source_dir} test
|
|
|
|
%install
|
|
%makeinstall
|
|
%makeinstall -C %{dovecot_pigeonhole_source_dir} sieve_docdir=%{dovecot_pigeonhole_docdir}
|
|
|
|
# clean up unused files, as much as I would like to use -delete ... the old find on sles9 doesnt support it
|
|
find %{buildroot}%{_libdir}/%{pkg_name}/ -type f \
|
|
'(' -name \*.la -o -name \*.a ')' -print -delete
|
|
|
|
# create /var directories
|
|
install -m 0755 -Dd \
|
|
%{buildroot}%{_var}/run/%{pkg_name}/login/ \
|
|
%{buildroot}%{_var}/lib/%{pkg_name}/
|
|
|
|
# install the script to create dummy selfsigned certs
|
|
pushd %{buildroot}%{_docdir}/%{pkg_name}/
|
|
mv -v {*.cnf,mkcert.sh,example-config} ../../../%{pkg_name}/
|
|
install -m 755 -d example-config/conf.d/
|
|
ln -sv ../../../%{pkg_name}/{*.cnf,mkcert.sh} .
|
|
cd example-config/
|
|
ln -sv \
|
|
../../../../%{pkg_name}/example-config/*conf \
|
|
../../../../%{pkg_name}/example-config/*ext \
|
|
.
|
|
cd conf.d/
|
|
ln -sv \
|
|
../../../../../%{pkg_name}/example-config/conf.d/* \
|
|
.
|
|
popd
|
|
|
|
# additional docs for the main package
|
|
install -m 0644 \
|
|
AUTHORS ChangeLog* COPYING* NEWS TODO README* \
|
|
%if %{with solr}
|
|
doc/*.xml \
|
|
%endif
|
|
%{buildroot}%{_docdir}/%{pkg_name}/
|
|
|
|
# install sieve docs
|
|
install -m 0755 -Dd %{buildroot}%{dovecot_pigeonhole_docdir}
|
|
pushd %{dovecot_pigeonhole_source_dir}
|
|
sed -i 's/\r$//' doc/rfc/*
|
|
cp -av AUTHORS COPYING* INSTALL NEWS README TODO \
|
|
examples/ doc/rfc/ doc/devel \
|
|
%{buildroot}%{dovecot_pigeonhole_docdir}/
|
|
rm %{buildroot}%{dovecot_pigeonhole_docdir}/rfc/Makefile*
|
|
popd
|
|
|
|
for i in $RPM_SOURCE_DIR/*.configfiles ; do
|
|
echo "Creating ghost files for '$i'"
|
|
for j in $(<$i) ; do
|
|
install -D -m 0644 /dev/null %{buildroot}$j
|
|
done
|
|
done
|
|
|
|
# clean up of things that are now in the unversioned package.
|
|
%if %{with systemd}
|
|
rm %{buildroot}%{_unitdir}/dovecot.{service,socket}
|
|
%endif
|
|
rm %{buildroot}%{_sysconfdir}/%{pkg_name}/README
|
|
|
|
%pre
|
|
# do not let dovecot run during upgrade rhbz#134325
|
|
if [ "$1" -ge "1" ]; then
|
|
rm -f %restart_flag
|
|
%if %{with systemd}
|
|
# we get installed before the unversioned dovecot package is installed
|
|
# in that case we dont need to restart as there was no file to start us before
|
|
if [ -x /bin/systemctl -a -e %{_unitdir}/%{pkg_name}.service ] ; then
|
|
/bin/systemctl is-active %{pkg_name}.service >/dev/null 2>&1 && touch %restart_flag ||:
|
|
/bin/systemctl stop %{pkg_name}.service >/dev/null 2>&1
|
|
fi
|
|
%else
|
|
# we get installed before the unversioned dovecot package is installed
|
|
# in that case we dont need to restart as there was no file to start us before
|
|
if [ -x /etc/init.d/%{pkg_name} ] ; then
|
|
/etc/init.d/%{pkg_name} status >/dev/null 2>&1 && touch %restart_flag ||:
|
|
/etc/init.d/%{pkg_name} stop >/dev/null 2>&1
|
|
fi
|
|
%endif
|
|
fi
|
|
# remove !SSLv2 from ssl_protocols (no longer supported in openssl-1.1.0)
|
|
if grep -s -q "ssl_protocols .*!SSLv2" /etc/dovecot/conf.d/10-ssl.conf; then
|
|
sed -i 's/^\(ssl_protocols.*\)[[:blank:]]!SSLv2\(.*\)$/\1\2/g' /etc/dovecot/conf.d/10-ssl.conf
|
|
fi
|
|
|
|
%post -p /sbin/ldconfig
|
|
|
|
%postun
|
|
/sbin/ldconfig
|
|
# do not let dovecot run during upgrade rhbz#134325
|
|
if [ "$1" -ge "1" -a -e %restart_flag ]; then
|
|
%if %{with systemd}
|
|
# we get installed before the unversioned dovecot package is installed
|
|
# in that case we dont need to restart as there was no file to start us before
|
|
if [ -x /bin/systemctl -a -e %{_unitdir}/%{pkg_name}.service ] ; then
|
|
/bin/systemctl start %{pkg_name}.service >/dev/null 2>&1 || :
|
|
fi
|
|
%else
|
|
# we get installed before the unversioned dovecot package is installed
|
|
# in that case we dont need to restart as there was no file to start us before
|
|
if [ -x /etc/init.d/%{pkg_name} ] ; then
|
|
/etc/init.d/%{pkg_name} start >/dev/null 2>&1 || :
|
|
fi
|
|
%endif
|
|
rm -f %restart_flag
|
|
fi
|
|
|
|
# do not let dovecot run during upgrade rhbz#134325
|
|
# dovecot should be started again in %%postun, but it's not executed on reinstall
|
|
# if it was already started, restart_flag won't be here, so it's ok to test it again
|
|
%posttrans
|
|
if [ -e %restart_flag ]; then
|
|
%if %{with systemd}
|
|
# we get installed before the unversioned dovecot package is installed
|
|
# in that case we dont need to restart as there was no file to start us before
|
|
if [ -x /bin/systemctl -a -e %{_unitdir}/%{pkg_name}.service ] ; then
|
|
/bin/systemctl start %{pkg_name}.service >/dev/null 2>&1 || :
|
|
fi
|
|
%else
|
|
# we get installed before the unversioned dovecot package is installed
|
|
# in that case we dont need to restart as there was no file to start us before
|
|
if [ -x /etc/init.d/%{pkg_name} ] ; then
|
|
/etc/init.d/%{pkg_name} start >/dev/null 2>&1 || :
|
|
fi
|
|
%endif
|
|
rm -f %restart_flag
|
|
fi
|
|
|
|
%files
|
|
%defattr(-,root,root)
|
|
%dir %{_sysconfdir}/%{pkg_name}/
|
|
%ghost %config(noreplace) /etc/dovecot/*
|
|
%{_sbindir}/%{pkg_name}
|
|
%{_bindir}/doveadm
|
|
%{_bindir}/doveconf
|
|
%{_bindir}/dovecot-sysreport
|
|
%{_bindir}/dsync
|
|
%{_bindir}/sieve-test
|
|
%{_bindir}/sievec
|
|
%{_bindir}/sieve-dump
|
|
%{_bindir}/sieve-filter
|
|
# subprocesses
|
|
%dir %{_prefix}/lib/%{pkg_name}
|
|
%{_prefix}/lib/%{pkg_name}/aggregator
|
|
%{_prefix}/lib/%{pkg_name}/anvil
|
|
%{_prefix}/lib/%{pkg_name}/auth
|
|
%{_prefix}/lib/%{pkg_name}/checkpassword-reply
|
|
%{_prefix}/lib/%{pkg_name}/config
|
|
%{_prefix}/lib/%{pkg_name}/decode2text.sh
|
|
%{_prefix}/lib/%{pkg_name}/deliver
|
|
%{_prefix}/lib/%{pkg_name}/dict
|
|
%{_prefix}/lib/%{pkg_name}/director
|
|
%{_prefix}/lib/%{pkg_name}/dns-client
|
|
%{_prefix}/lib/%{pkg_name}/doveadm-server
|
|
%{_prefix}/lib/%{pkg_name}/dovecot-lda
|
|
%{_prefix}/lib/%{pkg_name}/gdbhelper
|
|
%{_prefix}/lib/%{pkg_name}/health-check.sh
|
|
%{_prefix}/lib/%{pkg_name}/imap
|
|
%{_prefix}/lib/%{pkg_name}/imap-hibernate
|
|
%{_prefix}/lib/%{pkg_name}/imap-login
|
|
%{_prefix}/lib/%{pkg_name}/imap-urlauth
|
|
%{_prefix}/lib/%{pkg_name}/imap-urlauth-login
|
|
%{_prefix}/lib/%{pkg_name}/imap-urlauth-worker
|
|
%{_prefix}/lib/%{pkg_name}/indexer
|
|
%{_prefix}/lib/%{pkg_name}/indexer-worker
|
|
%{_prefix}/lib/%{pkg_name}/ipc
|
|
%{_prefix}/lib/%{pkg_name}/lmtp
|
|
%{_prefix}/lib/%{pkg_name}/log
|
|
%{_prefix}/lib/%{pkg_name}/maildirlock
|
|
%{_prefix}/lib/%{pkg_name}/managesieve
|
|
%{_prefix}/lib/%{pkg_name}/managesieve-login
|
|
%{_prefix}/lib/%{pkg_name}/old-stats
|
|
%{_prefix}/lib/%{pkg_name}/pop3
|
|
%{_prefix}/lib/%{pkg_name}/pop3-login
|
|
%{_prefix}/lib/%{pkg_name}/quota-status
|
|
%{_prefix}/lib/%{pkg_name}/rawlog
|
|
%{_prefix}/lib/%{pkg_name}/replicator
|
|
%{_prefix}/lib/%{pkg_name}/script
|
|
%{_prefix}/lib/%{pkg_name}/script-login
|
|
%{_prefix}/lib/%{pkg_name}/stats
|
|
%{_prefix}/lib/%{pkg_name}/submission
|
|
%{_prefix}/lib/%{pkg_name}/submission-login
|
|
%{_prefix}/lib/%{pkg_name}/tcpwrap
|
|
%{_prefix}/lib/%{pkg_name}/xml2text
|
|
%{_libdir}/%{pkg_name}/libdovecot.so.*
|
|
%{_libdir}/%{pkg_name}/libdovecot-compression.so.*
|
|
%{_libdir}/%{pkg_name}/libdovecot-dsync.so.*
|
|
%{_libdir}/%{pkg_name}/libdovecot-fts.so.*
|
|
%{_libdir}/%{pkg_name}/libdovecot-lda.so.*
|
|
%{_libdir}/%{pkg_name}/libdovecot-ldap.so.*
|
|
%{_libdir}/%{pkg_name}/libdovecot-login.so.*
|
|
%{_libdir}/%{pkg_name}/libdovecot-lua.so.*
|
|
%{_libdir}/%{pkg_name}/libdovecot-sieve.so.*
|
|
%{_libdir}/%{pkg_name}/libdovecot-sql.so.*
|
|
%{_libdir}/%{pkg_name}/libdovecot-storage.so.*
|
|
%{_libdir}/%{pkg_name}/libdovecot-storage-lua.so.*
|
|
%if %{with dcrypt_openssl}
|
|
%{_libdir}/%{pkg_name}/libdcrypt_openssl.so
|
|
%endif
|
|
# plugins
|
|
%dir %{_libdir}/%{pkg_name}
|
|
%dir %{_libdir}/%{pkg_name}/modules/
|
|
%{_libdir}/%{pkg_name}/modules/lib01_acl_plugin.so
|
|
%{_libdir}/%{pkg_name}/modules/lib01_apparmor_plugin.so
|
|
%{_libdir}/%{pkg_name}/modules/lib02_lazy_expunge_plugin.so
|
|
%{_libdir}/%{pkg_name}/modules/lib05_mail_crypt_acl_plugin.so
|
|
%{_libdir}/%{pkg_name}/modules/lib05_pop3_migration_plugin.so
|
|
%{_libdir}/%{pkg_name}/modules/lib10_last_login_plugin.so
|
|
%{_libdir}/%{pkg_name}/modules/lib01_mail_lua_plugin.so
|
|
%{_libdir}/%{pkg_name}/modules/lib10_mail_crypt_plugin.so
|
|
%{_libdir}/%{pkg_name}/modules/lib10_quota_plugin.so
|
|
%{_libdir}/%{pkg_name}/modules/lib11_trash_plugin.so
|
|
%{_libdir}/%{pkg_name}/modules/lib15_notify_plugin.so
|
|
%{_libdir}/%{pkg_name}/modules/lib20_mail_log_plugin.so
|
|
%{_libdir}/%{pkg_name}/modules/lib20_mailbox_alias_plugin.so
|
|
%{_libdir}/%{pkg_name}/modules/lib20_notify_status_plugin.so
|
|
%{_libdir}/%{pkg_name}/modules/lib20_charset_alias_plugin.so
|
|
%{_libdir}/%{pkg_name}/modules/lib20_var_expand_crypt.so
|
|
%{_libdir}/%{pkg_name}/modules/lib20_zlib_plugin.so
|
|
%{_libdir}/%{pkg_name}/modules/lib20_push_notification_plugin.so
|
|
%{_libdir}/%{pkg_name}/modules/lib20_listescape_plugin.so
|
|
%{_libdir}/%{pkg_name}/modules/lib20_quota_clone_plugin.so
|
|
%{_libdir}/%{pkg_name}/modules/lib20_replication_plugin.so
|
|
%{_libdir}/%{pkg_name}/modules/lib20_virtual_plugin.so
|
|
%{_libdir}/%{pkg_name}/modules/lib22_push_notification_lua_plugin.so
|
|
%{_libdir}/%{pkg_name}/modules/lib30_imap_zlib_plugin.so
|
|
%{_libdir}/%{pkg_name}/modules/lib02_imap_acl_plugin.so
|
|
%{_libdir}/%{pkg_name}/modules/lib11_imap_quota_plugin.so
|
|
%{_libdir}/%{pkg_name}/modules/lib90_sieve_plugin.so
|
|
%{_libdir}/%{pkg_name}/modules/lib90_old_stats_plugin.so
|
|
%{_libdir}/%{pkg_name}/modules/lib95_imap_sieve_plugin.so
|
|
%{_libdir}/%{pkg_name}/modules/lib95_imap_filter_sieve_plugin.so
|
|
%{_libdir}/%{pkg_name}/modules/lib95_imap_old_stats_plugin.so
|
|
%{_libdir}/%{pkg_name}/modules/lib99_welcome_plugin.so
|
|
%{_libdir}/%{pkg_name}/modules/libfs_compress.so
|
|
%{_libdir}/%{pkg_name}/modules/libfs_crypt.so
|
|
%{_libdir}/%{pkg_name}/modules/libfs_mail_crypt.so
|
|
%{_libdir}/%{pkg_name}/modules/libssl_iostream_openssl.so
|
|
|
|
#
|
|
%dir %{_libdir}/%{pkg_name}/modules/auth/
|
|
%{_libdir}/%{pkg_name}/modules/auth/libauthdb_imap.so
|
|
%{_libdir}/%{pkg_name}/modules/auth/libauthdb_ldap.so
|
|
%{_libdir}/%{pkg_name}/modules/auth/libauthdb_lua.so
|
|
%{_libdir}/%{pkg_name}/modules/auth/libmech_gssapi.so
|
|
%{_libdir}/%{pkg_name}/modules/auth/lib20_auth_var_expand_crypt.so
|
|
%dir %{_libdir}/%{pkg_name}/modules/dict/
|
|
%{_libdir}/%{pkg_name}/modules/dict/libdict_ldap.so
|
|
# more dict modules are in the sql packages
|
|
#
|
|
%dir %{_libdir}/%{pkg_name}/modules/doveadm
|
|
%{_libdir}/%{pkg_name}/modules/doveadm/libdoveadm_mail_crypt_plugin.so
|
|
%{_libdir}/%{pkg_name}/modules/doveadm/lib10_doveadm_acl_plugin.so
|
|
%{_libdir}/%{pkg_name}/modules/doveadm/lib10_doveadm_quota_plugin.so*
|
|
%{_libdir}/%{pkg_name}/modules/doveadm/lib10_doveadm_sieve_plugin.so
|
|
#
|
|
%dir %{_libdir}/%{pkg_name}/modules/settings/
|
|
%{_libdir}/%{pkg_name}/modules/settings/libpigeonhole_settings.so
|
|
%{_libdir}/%{pkg_name}/modules/settings/libmanagesieve_login_settings.so
|
|
%{_libdir}/%{pkg_name}/modules/settings/libmanagesieve_settings.so
|
|
#
|
|
%dir %{_libdir}/%{pkg_name}/modules/sieve
|
|
%{_libdir}/%{pkg_name}/modules/sieve/lib10_sieve_storage_ldap_plugin.so
|
|
%{_libdir}/%{pkg_name}/modules/sieve/lib90_sieve_extprograms_plugin.so
|
|
%{_libdir}/%{pkg_name}/modules/sieve/lib90_sieve_imapsieve_plugin.so
|
|
#
|
|
%dir %{_libdir}/%{pkg_name}/modules/old-stats/
|
|
%{_libdir}/%{pkg_name}/modules/old-stats/libstats_auth.so
|
|
%{_libdir}/%{pkg_name}/modules/old-stats/libold_stats_mail.so
|
|
#
|
|
%dir %{_datadir}/%{pkg_name}/
|
|
%{_datadir}/%{pkg_name}/*.cnf
|
|
%{_datadir}/%{pkg_name}/mkcert.sh
|
|
%{_datadir}/%{pkg_name}/example-config
|
|
# doc
|
|
%{_mandir}/man1/deliver.1*
|
|
%{_mandir}/man1/doveadm*.1*
|
|
%{_mandir}/man1/doveconf.1*
|
|
%{_mandir}/man1/dovecot*.1*
|
|
%{_mandir}/man1/dsync.1*
|
|
%{_mandir}/man1/sieve-dump.1*
|
|
%{_mandir}/man1/sieve-filter.1*
|
|
%{_mandir}/man1/sieve-test.1*
|
|
%{_mandir}/man1/sievec.1*
|
|
%{_mandir}/man1/sieved.1*
|
|
%{_mandir}/man7/doveadm*.7*
|
|
%{_mandir}/man7/pigeonhole.7*
|
|
%doc %{_docdir}/%{pkg_name}
|
|
%if %{with solr}
|
|
%exclude %{_docdir}/%{pkg_name}/solr-schema.xml
|
|
%endif
|
|
# setting up permissions
|
|
%if ! %{with systemd}
|
|
%dir %attr(0755,root,root) %ghost %{_var}/run/%{pkg_name}/
|
|
%dir %attr(0750,root,%{pkg_name}) %ghost %{_var}/run/%{pkg_name}/login/
|
|
%endif
|
|
%dir %attr(0750,root,root) %{_var}/lib/%{pkg_name}/
|
|
|
|
%files fts
|
|
%defattr(-,root,root,-)
|
|
%{_libdir}/%{pkg_name}/modules/doveadm/lib20_doveadm_fts_plugin.so
|
|
%{_libdir}/%{pkg_name}/modules/lib20_fts_plugin.so
|
|
%{_datadir}/%{pkg_name}/stopwords/
|
|
|
|
%files fts-squat
|
|
%defattr(-,root,root,-)
|
|
%{_libdir}/%{pkg_name}/modules/lib21_fts_squat_plugin.so
|
|
|
|
%files backend-mysql
|
|
%defattr(-,root,root,-)
|
|
%{_libdir}/%{pkg_name}/modules/libdriver_mysql.so
|
|
%{_libdir}/%{pkg_name}/modules/auth/libdriver_mysql.so
|
|
%{_libdir}/%{pkg_name}/modules/dict/libdriver_mysql.so
|
|
|
|
%files backend-pgsql
|
|
%defattr(-,root,root,-)
|
|
%{_libdir}/%{pkg_name}/modules/libdriver_pgsql.so
|
|
%{_libdir}/%{pkg_name}/modules/auth/libdriver_pgsql.so
|
|
%{_libdir}/%{pkg_name}/modules/dict/libdriver_pgsql.so
|
|
|
|
%if %{with sqlite}
|
|
%files backend-sqlite
|
|
%defattr(-,root,root,-)
|
|
%{_libdir}/%{pkg_name}/modules/libdriver_sqlite.so
|
|
%{_libdir}/%{pkg_name}/modules/auth/libdriver_sqlite.so
|
|
%{_libdir}/%{pkg_name}/modules/dict/libdriver_sqlite.so
|
|
%endif
|
|
|
|
%if %{with clucene}
|
|
%files fts-lucene
|
|
%defattr(-,root,root,-)
|
|
%{_libdir}/%{pkg_name}/modules/lib21_fts_lucene_plugin.so
|
|
%{_libdir}/%{pkg_name}/modules/doveadm/lib20_doveadm_fts_lucene_plugin.so
|
|
%endif
|
|
|
|
%if %{with solr}
|
|
%files fts-solr
|
|
%defattr(-,root,root,-)
|
|
%{_libdir}/%{pkg_name}/modules/lib21_fts_solr_plugin.so
|
|
%{_docdir}/%{pkg_name}/solr-schema.xml
|
|
%endif
|
|
|
|
%files devel
|
|
%defattr(-,root,root,-)
|
|
%{_datadir}/aclocal/%{pkg_name}.m4
|
|
%{_datadir}/aclocal/dovecot-pigeonhole.m4
|
|
%{_includedir}/%{pkg_name}/
|
|
%{_libdir}/%{pkg_name}/dovecot-config
|
|
%{_libdir}/%{pkg_name}/libdovecot.so
|
|
%{_libdir}/%{pkg_name}/libdovecot-compression.so
|
|
%{_libdir}/%{pkg_name}/libdovecot-dsync.so
|
|
%{_libdir}/%{pkg_name}/libdovecot-fts.so
|
|
%{_libdir}/%{pkg_name}/libdovecot-lda.so
|
|
%{_libdir}/%{pkg_name}/libdovecot-ldap.so
|
|
%{_libdir}/%{pkg_name}/libdovecot-login.so
|
|
%{_libdir}/%{pkg_name}/libdovecot-lua.so
|
|
%{_libdir}/%{pkg_name}/libdovecot-sieve.so
|
|
%{_libdir}/%{pkg_name}/libdovecot-sql.so
|
|
%{_libdir}/%{pkg_name}/libdovecot-storage.so
|
|
%{_libdir}/%{pkg_name}/libdovecot-storage-lua.so
|
|
|
|
%changelog
|