%global __provides_exclude_from %{_docdir} %global __requires_exclude_from %{_docdir} %global debug_package %{nil} %define _build_id_links none %if 0%{?rhel} && 0%{?rhel} < 10 %global gcc_toolset_enable source /opt/rh/gcc-toolset-15/enable %else %global gcc_toolset_enable source /usr/lib/gcc-toolset/15-env.source %endif %define major_version 2.4 %define minor_version 3 Summary: Secure IMAP and POP3 server Name: dovecot Version: 2.4.3 Release: 1%{?dist} License: MIT AND LGPL-2.1-only URL: https://www.dovecot.org Source: %{url}/releases/%{major_version}/%{name}-%{version}.tar.gz Source1: dovecot.sysusers # Official patches Patch16: dovecot-2.4.1-opensslhmac3.patch Patch23: dovecot-2.4.1-nolibotp.patch Patch24: dovecot-2.4.2-fixbuild.patch Patch30: dovecot-2.4.3-disablepasswd.patch Patch31: dovecot-2.4.2-ereject.patch BuildRequires: gcc-toolset-15 BuildRequires: gcc-toolset-15-gcc BuildRequires: gcc-toolset-15-gcc-c++ BuildRequires: gcc-toolset-15-gcc-plugin-annobin BuildRequires: openssl-devel BuildRequires: mariadb-connector-c-devel BuildRequires: libpq-devel BuildRequires: sqlite-devel BuildRequires: openldap-devel BuildRequires: libtool, autoconf, automake, pkgconfig, gettext-devel BuildRequires: libcap-devel BuildRequires: libzstd-devel BuildRequires: lua-devel BuildRequires: libstemmer-devel BuildRequires: xapian-core-devel BuildRequires: pcre2-devel BuildRequires: libicu-devel BuildRequires: systemd-devel %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. The SQL drivers and authentication plug-ins are in their subpackages. %package sql Requires: %{name} = %{version}-%{release} Summary: Common SQL library %description sql Common SQL library to MySQL/PostgreSQL/SQLite back ends %package mysql Requires: %{name}-sql = %{version}-%{release} Summary: MySQL back end for dovecot %description mysql This package provides the MySQL back end for dovecot-auth etc. %package pgsql Requires: %{name}-sql = %{version}-%{release} Summary: PostgreSQL back end for dovecot %description pgsql This package provides the PostgreSQL back end for dovecot-auth etc. %package sqlite Requires: %{name}-sql = %{version}-%{release} Summary: SQLite ostgres SQL back end for dovecot %description sqlite This package provides the SQLite back end for dovecot-auth etc. %package lua Requires: %{name} = %{version}-%{release} Summary: Lua back end for dovecot %description lua This package provides the Lua back end for dovecot-auth %package ldap Requires: %{name} = %{version}-%{release} Summary: LDAP back end for dovecot %description ldap This package provides the LDAP back end for dovecot-auth %package submission Requires: %{name} = %{version}-%{release} Summary: Mail submission agent %description submission Mail submission agent %package pop3 Requires: %{name} = %{version}-%{release} Summary: POP3 daemon %description pop3 POP3 daemon %package imap Requires: %{name} = %{version}-%{release} Summary: IMAP daemon %description imap IMAP daemon %package lda Requires: %{name} = %{version}-%{release} Summary: LDA and LMTP daemon %description lda LDA and LMTP daemon %package plugin-lazy_expunge Requires: %{name} = %{version}-%{release} Summary: lazy-expunge plugin %description plugin-lazy_expunge %package plugin-pop3_migration Requires: %{name} = %{version}-%{release} Summary: pop3-migration plugin %description plugin-pop3_migration %package plugin-last_login Requires: %{name} = %{version}-%{release} Summary: last-login plugin %description plugin-last_login %package plugin-trash Requires: %{name} = %{version}-%{release} Summary: trash plugin %description plugin-trash %package plugin-notify Requires: %{name} = %{version}-%{release} Summary: notify plugin %description plugin-notify %package plugin-mail_log Requires: %{name}-plugin-notify = %{version}-%{release} Summary: mail-log plugin %description plugin-mail_log %package plugin-notify_status Requires: %{name}-plugin-notify = %{version}-%{release} Summary: notify-status plugin %description plugin-notify_status %package plugin-virtual Requires: %{name} = %{version}-%{release} Summary: virtual plugin %description plugin-virtual %package plugin-welcome Requires: %{name} = %{version}-%{release} Summary: welcome plugin %description plugin-welcome %package plugin-push_notification Requires: %{name} = %{version}-%{release} Summary: push-notification plugin %description plugin-push_notification %package plugin-push_notification_lua Requires: %{name}-plugin-push_notification = %{version}-%{release} Requires: %{name}-lua = %{version}-%{release} Summary: push-notification Lua plugin %description plugin-push_notification_lua %package plugin-quota Requires: %{name} = %{version}-%{release} Summary: quota plugin %description plugin-quota %package plugin-quota_clone Requires: %{name}-plugin-quota = %{version}-%{release} Summary: quota-clone plugin %description plugin-quota_clone %package plugin-imap_quota Requires: %{name}-plugin-quota = %{version}-%{release} Summary: imap-quota plugin %description plugin-imap_quota %package plugin-mail_crypt Requires: %{name} = %{version}-%{release} Summary: mail-crypt plugin %description plugin-mail_crypt %package plugin-acl Requires: %{name} = %{version}-%{release} Summary: acl plugin %description plugin-acl %package plugin-imap_acl Requires: %{name}-plugin-acl = %{version}-%{release} Summary: imap-acl plugin %description plugin-imap_acl %package plugin-fts Requires: %{name} = %{version}-%{release} Summary: fts plugin %description plugin-fts %package plugin-mail_compress Requires: %{name} = %{version}-%{release} Summary: mail-compress plugin %description plugin-mail_compress %package plugin-charset_alias Requires: %{name} = %{version}-%{release} Summary: charset-alias plugin %description plugin-charset_alias %package plugin-mail_lua Requires: %{name}-lua = %{version}-%{release} Summary: mail-lua plugin %description plugin-mail_lua %package plugin-fts-flatcurve Requires: %{name}-plugin-fts = %{version}-%{release} Summary: fts-flatcurve plugin %description plugin-fts-flatcurve %package plugin-fs_compress Requires: %{name} = %{version}-%{release} Summary: fs-compress plugin %description plugin-fs_compress %package devel Requires: %{name} = %{version}-%{release} Summary: Development files for dovecot %description devel %prep %{gcc_toolset_enable} %setup -q -n %{name}-%{version} %patch -P 30 -p1 -b .disablepasswd %patch -P 31 -p1 -b .ereject %build %{gcc_toolset_enable} %global _hardened_build 1 export CFLAGS="%{__global_cflags} -fno-strict-aliasing -fstack-reuse=none" export LDFLAGS="-Wl,-z,now -Wl,-z,relro %{?__global_ldflags}" mkdir -p m4 autoreconf -I . -fiv %configure \ INSTALL_DATA="install -c -p -m644" \ --enable-maintainer-mode \ --disable-static \ --without-pam \ --with-gssapi=no \ --with-lua=plugin \ --with-sql=plugin \ --with-mysql \ --with-pgsql \ --with-sqlite \ --with-ldap=plugin \ --without-cassandra \ --without-bzlib \ --without-lz4 \ --with-zstd \ --with-pcre2 \ --with-icu \ --with-libcap \ --without-solr \ --with-stemmer \ --with-flatcurve \ --with-systemd \ systemdsystemunitdir=%{_unitdir} %make_build %install %{gcc_toolset_enable} gcc -dumpfullversion | grep -q '^15\.' || \ (echo "ERROR: system GCC detected" >&2; exit 1) rm -rf $RPM_BUILD_ROOT %make_install #remove the libtool archives find $RPM_BUILD_ROOT%{_libdir}/%{name}/ -name '*.la' | xargs rm -f #remove what we don't want rm -f $RPM_BUILD_ROOT%{_sysconfdir}/dovecot/README install -p -D -m 0644 %{S:1} $RPM_BUILD_ROOT%{_sysusersdir}/dovecot.sysusers %pre %sysusers_create_compat %{S:1} %files %{_sbindir}/dovecot %{_bindir}/doveadm %{_bindir}/doveconf %exclude %{_sysconfdir}/%{name} %exclude %{_docdir}/%{name}/* %exclude %{_mandir} %exclude %{_unitdir} %exclude %{_bindir}/dovecot-sysreport %exclude %{_libexecdir}/%{name}/gdbhelper %exclude %{_libexecdir}/%{name}/quota-status %exclude %{_libexecdir}/%{name}/submission %exclude %{_libexecdir}/%{name}/submission-login %exclude %{_libexecdir}/%{name}/pop3 %exclude %{_libexecdir}/%{name}/pop3-login %exclude %{_libdir}/%{name}/auth/libauthdb_imap.so %exclude %{_libexecdir}/%{name}/imap %exclude %{_libexecdir}/%{name}/imap-hibernate %exclude %{_libexecdir}/%{name}/imap-login %exclude %{_libexecdir}/%{name}/imap-urlauth %exclude %{_libexecdir}/%{name}/imap-urlauth-login %exclude %{_libexecdir}/%{name}/imap-urlauth-worker %exclude %{_libexecdir}/%{name}/dovecot-lda %exclude %{_libexecdir}/%{name}/deliver %exclude %{_libexecdir}/%{name}/lmtp %exclude %{_libdir}/%{name}/libdovecot-sql.so* %{_sysusersdir}/dovecot.sysusers %dir %{_libdir}/%{name} %dir %{_libdir}/%{name}/auth %dir %{_libdir}/%{name}/doveadm %{_libdir}/%{name}/libdovecot.so* %{_libdir}/%{name}/libdovecot-dsync.so* %{_libdir}/%{name}/libdovecot-login.so* %{_libdir}/%{name}/libdovecot-storage.so* %{_libdir}/%{name}/libssl_iostream_openssl.so %{_libdir}/%{name}/libdcrypt_openssl.so %{_libdir}/%{name}/var_expand_crypt.so %{_libexecdir}/%{name} %exclude %{_libexecdir}/%{name}/xml2text %files devel %{_includedir}/dovecot %{_datadir}/aclocal/dovecot*.m4 %{_libdir}/%{name}/dovecot-config %files sql %{_libdir}/%{name}/libdovecot-sql.so* %files mysql %{_libdir}/%{name}/libdriver_mysql.so %{_libdir}/%{name}/auth/libdriver_mysql.so %{_libdir}/%{name}/dict/libdriver_mysql.so %files pgsql %{_libdir}/%{name}/libdriver_pgsql.so %{_libdir}/%{name}/auth/libdriver_pgsql.so %{_libdir}/%{name}/dict/libdriver_pgsql.so %files sqlite %{_libdir}/%{name}/auth/libdriver_sqlite.so %{_libdir}/%{name}/dict/libdriver_sqlite.so %{_libdir}/%{name}/libdriver_sqlite.so %files lua %{_libdir}/%{name}/auth/libauthdb_lua.so %{_libdir}/%{name}/libdovecot-lua.so* %files ldap %{_libdir}/%{name}/libdovecot-ldap.so* %{_libdir}/%{name}/auth/libauthdb_ldap.so %{_libdir}/%{name}/dict/libdict_ldap.so %files submission %{_libexecdir}/%{name}/submission %{_libexecdir}/%{name}/submission-login %files pop3 %{_libexecdir}/%{name}/pop3 %{_libexecdir}/%{name}/pop3-login %files imap %{_libdir}/%{name}/auth/libauthdb_imap.so %{_libexecdir}/%{name}/imap %{_libexecdir}/%{name}/imap-hibernate %{_libexecdir}/%{name}/imap-login %{_libexecdir}/%{name}/imap-urlauth %{_libexecdir}/%{name}/imap-urlauth-login %{_libexecdir}/%{name}/imap-urlauth-worker %files lda %{_libdir}/%{name}/libdovecot-lda.so* %{_libexecdir}/%{name}/dovecot-lda %{_libexecdir}/%{name}/deliver %{_libexecdir}/%{name}/lmtp %files plugin-lazy_expunge %{_libdir}/%{name}/lib02_lazy_expunge_plugin.so %files plugin-pop3_migration %{_libdir}/%{name}/lib05_pop3_migration_plugin.so %files plugin-last_login %{_libdir}/%{name}/lib10_last_login_plugin.so %files plugin-trash %{_libdir}/%{name}/lib11_trash_plugin.so %files plugin-notify %{_libdir}/%{name}/lib15_notify_plugin.so %files plugin-mail_log %{_libdir}/%{name}/lib20_mail_log_plugin.so %files plugin-notify_status %{_libdir}/%{name}/lib20_notify_status_plugin.so %files plugin-quota_clone %{_libdir}/%{name}/lib20_quota_clone_plugin.so %files plugin-virtual %{_libdir}/%{name}/lib20_virtual_plugin.so %files plugin-welcome %{_libdir}/%{name}/lib99_welcome_plugin.so %files plugin-push_notification %{_libdir}/%{name}/lib20_push_notification_plugin.so %files plugin-push_notification_lua %{_libdir}/%{name}/lib22_push_notification_lua_plugin.so %files plugin-quota %{_libdir}/%{name}/doveadm/lib10_doveadm_quota_plugin.so %{_libdir}/%{name}/lib10_quota_plugin.so %files plugin-imap_quota %{_libdir}/%{name}/lib11_imap_quota_plugin.so %files plugin-mail_crypt %{_libdir}/%{name}/libfs_crypt.so %{_libdir}/%{name}/doveadm/libdoveadm_mail_crypt_plugin.so %{_libdir}/%{name}/lib10_mail_crypt_plugin.so %{_libdir}/%{name}/lib05_mail_crypt_acl_plugin.so %files plugin-acl %{_libdir}/%{name}/doveadm/lib10_doveadm_acl_plugin.so %{_libdir}/%{name}/lib01_acl_plugin.so %files plugin-imap_acl %{_libdir}/%{name}/lib02_imap_acl_plugin.so %files plugin-mail_compress %{_libdir}/%{name}/lib20_mail_compress_plugin.so %files plugin-charset_alias %{_libdir}/%{name}/lib20_charset_alias_plugin.so %files plugin-mail_lua %{_libdir}/%{name}/lib01_mail_lua_plugin.so %{_libdir}/%{name}/libdovecot-storage-lua.so* %files plugin-fts %{_libdir}/%{name}/libdovecot-language.so* %{_datadir}/%{name}/stopwords %{_libdir}/%{name}/doveadm/lib20_doveadm_fts_plugin.so %{_libdir}/%{name}/lib20_fts_plugin.so %files plugin-fts-flatcurve %{_libdir}/%{name}/doveadm/libdoveadm_fts_flatcurve_plugin.so %{_libdir}/%{name}/lib21_fts_flatcurve_plugin.so %files plugin-fs_compress %{_libdir}/%{name}/libdovecot-compression.so* %{_libdir}/%{name}/libfs_compress.so %changelog