%define version 11.0.0
%define release 16
%define name smeserver-dovecot


Summary: Dovecot IMAP server integration
Name: %{name}
Version: %{version}
Release: %{release}%{?dist}
License: GPL
Group: Networking/Daemons
Source: %{name}-%{version}.tar.xz


BuildRoot: /var/tmp/%{name}-%{version}-%{release}-buildroot
BuildArchitectures: noarch
BuildRequires: smeserver-devtools

Requires: smeserver-base >= 5.2.0
Requires: dovecot >= 2.3.16
Requires: dovecot-pigeonhole
Requires: portreserve

Provides: smeserver-imap
Provides: smeserver-pop3
Provides: e-smith-imap
Provides: e-smith-pop3
Provides: smeserver-dovecot-extras
Obsoletes: e-smith-imap
Obsoletes: e-smith-pop3
Obsoletes: e-smith-ssl-imap
Obsoletes: e-smith-wu-imap
Obsoletes: imap
Obsoletes: m4 <= 1.4.5
Obsoletes: mailfront <= 1.10
Obsoletes: stunnel <= 4.15
Obsoletes: stunnel-tls <= 3.22

%description
Configure the dovecot IMAP server with sieve scripts support,
quota, ACL, extended logging, master user

%changelog
* Tue Mar 18 2025 Jean-Philippe Pialasse <jpp@koozali.org> 11.0.0-16.sme
- fix [SME: ]

* Sun Jan 19 2025 Jean-Philippe Pialasse <jpp@koozali.org> 11.0.0-15.sme
- use spamd user for spams/ham learning [SME: 12265]
  max size to learn hardocded to 5MB. 
  per user spamassassin config is not supported

* Sat Jan 18 2025 Jean-Philippe Pialasse <jpp@koozali.org> 11.0.0-14.sme
- use esmith::ssl to set ciphers and protocol [SME: 12821]
  improve cipher order to get strongers first
  drop SSLv2

* Mon Oct 21 2024 John Crisp <jcrisp@safeandsoundit.co.uk> 11.0.0-13.sme
- use INDEXPVT instead of INDEX for shared mailboxes [SME: 12150]

* Wed Sep 25 2024 Jean-Philippe Pialasse <jpp@koozali.org> 11.0.0-12.sme
- fix missing sharedmailbox group [SME: 12735]

* Tue Sep 24 2024 Jean-Philippe Pialasse <jpp@koozali.org> 11.0.0-11.sme
- add missing /home/e-smith/files/public/ folder [SME: 12735]

* Wed Sep 11 2024 Jean-Philippe Pialasse <jpp@koozali.org> 11.0.0-10.sme
- merge dovecot-extra [SME: 12735]
- add sieves support over ssl and improve template
- requires dovecot-pigeonhole

* Fri Apr 05 2024 Jean-Philippe Pialasse <jpp@koozali.org> 11.0.0-7.sme
- add missing requirement for portreserve [SME: 12589]

* Thu Apr 04 2024 Jean-Philippe Pialasse <jpp@koozali.org> 11.0.0-6.sme
- fix migrate fragment error  [SME: 12548]
- add support for quota-fs [SME: 11733]
- fix ssl and config issues [SME: 12571]
- use external dh parameter [SME: 10935]

* Thu Apr 04 2024 Brian Read <brianr@koozali.org> 11.0.0-5.sme
- Set license file to GPL2.0  [SME: 12577]

* Sat Mar 30 2024 Trevor Batley <trevor@batley.id.au> 11.0.0-4.sme
- template fix as per [SME: 12562]

* Sat Mar 23 2024 Jean-Philippe Pialasse <jpp@koozali.org> 11.0.0-3.sme
- Provides smeserver-imap smeserver-pop3 [SME: 12521]

* Sat Mar 23 2024 Brian Read <brianr@koozali.org>11.0.0-2.sme
- Change Requires: e-smith- to Requires:smeserver-

* Sat Mar 23 2024 Brian Read <brianr@koozali.org>11.0.0-1.sme
- Update Release and Version to base version and 1st release for SME11 [SME: 12518]

* Thu Oct 26 2023 cvs2git.sh aka Brian Read <brianr@koozali.org> 1.6.0-22.sme
- Roll up patches and move to git repo [SME: 12338]

* Thu Oct 26 2023 BogusDateBot
- Eliminated rpmbuild "bogus date" warnings due to inconsistent weekday,
  by assuming the date is correct and changing the weekday.

* Tue Aug 15 2023 Jean-Philippe Pialasse <tests@pialasse.com> 1.6.0-21.sme
- force imap and dovecot satus=enabled to allow auth for webmail and smtp [SME: 12399]
  also migrate imap imaps pop3 pop3s as configuration, not service

* Mon Aug 14 2023 Jean-Philippe Pialasse <tests@pialasse.com> 1.6.0-20.sme
- remove obsoletes word as it prevents unrelated packages to install [SME: 12393]

* Sun May 30 2021 Jean-Philippe Pialasse <tests@pialasse.com> 1.6.0-19.sme
- ssl pem update via template expand in place of copy [SME: 11601]

* Tue Mar 16 2021 Jean-Philippe Pialasse <tests@pialasse.com> 1.6.0-18.sme
- clean rsyslog syntax for dovecot [SME: 11422]

* Sat Jan 02 2021 Jean-Philipe Pialasse <tests@pialasse.com> 1.6.0-17.sme
- add Restart=always [SME: 11101]

* Mon Dec 14 2020 Jean-Philipe Pialasse <tests@pialasse.com> 1.6.0-16.sme
- fix path for event -update [SME: 11101]

* Tue Dec 08 2020 Jean-Philipe Pialasse <tests@pialasse.com> 1.6.0-15.sme
- cleanup /var/service/dovecot [SME: 11101]
  close logger and service from previous runit instance before starting systemd one

* Mon Dec 07 2020 Jean-Philipe Pialasse <tests@pialasse.com> 1.6.0-14.sme
- add systemd drop-in expand in bootstrap-console-save, console-save, post-install, post-upgrade  [SME: 11101]

* Sun Dec 06 2020 Jean-Philipe Pialasse <tests@pialasse.com> 1.6.0-13.sme
- move service to systemd [SME: 11101]
- add imap idle notify interval setting [SME: 10947]

* Mon May 04 2020 Jean-Philipe Pialasse <tests@pialasse.com> 1.6.0-12.sme
- fix typo in enabling TLSv1.2 as default [SME: 10934]

* Mon May 04 2020 John Crisp <jcrisp@safeandsoundit.co.uk>  1.6.0-10.sme
- fix typo in 35ssl template [SME: 10934]

* Mon May 04 2020 John Crisp <jcrisp@safeandsoundit.co.uk>  1.6.0-9.sme
- fix typo in createlinks [SME: 10932]
 
* Sat May 02 2020 Jean-Philipe Pialasse <tests@pialasse.com> 1.6.0-8.sme
- revert property names with period in it [SME: 10934]

* Sat May 02 2020 Jean-Philipe Pialasse <tests@pialasse.com> 1.6.0-7.sme
- add property AcceptFullEmail with enabled as default [SME: 9865]
  * this allow to login using either username or username@domain.tld
    dovecot get the username part.

* Fri May 01 2020 Jean-Philipe Pialasse <tests@pialasse.com> 1.6.0-5.sme
- set TLSv1 and TLSv1.1 disabled as default  [SME: 10934]
  * Amend cipher list
  * force cipher order
  * 4096 default dh parameter
  * property names without period to avoid issues

* Sun Apr 26 2020 Jean-Philipe Pialasse <tests@pialasse.com> 1.6.0-3.sme
- Use Dovecot for pop3 and pop3s [SME: 7510]
  *delete /etc/pam.d/pop3 if exists
  *listen on internal and external interface instead of *
  *update the service on ip-change
  *reuse the ListenIP prop in pop3* and added to imap*
  *migrate pop3* MemLimit to pop3 ProcessMemoryLimit as per imap
  *TODO make it ipv6 ready
- smeserver-dovecot-upgrade event for update without reboot [SME: 10932]

* Thu Feb 23 2017 Daniel Berteaud <daniel@firewall-services.com> 1.6.0-2.sme
- Better default cipher suite, and honor global suite [SME: 10110]

* Sat Feb 06 2016 stephane de Labrusse <stephdl@de-labrusse.fr> 1.6.0-1.sme
- Initial release to sme10

* Wed Jan 13 2016 Daniel Berteaud <daniel@firewall-services.com> - 1.4.0-20.sme
- Hook into the new ssl-update event [SME: 9152]

* Thu Jan 7 2016 Daniel Berteaud <daniel@firewall-services.com> - 1.4.0-19.sme
- Allow settings SSL protocols from DB (and set TLSv1 back to enabled
  on a default install) [SME: 9175]

* Wed Jan 6 2016 Daniel Berteaud <daniel@firewall-services.com> - 1.4.0-18.sme
- Disable TLSv1 [SME: 9175]

* Wed Jan 7 2015 Daniel Berteaud <daniel@firewall-services.com> - 1.4.0-17.sme
- Allow custom passdb args [SME: 8778]

* Thu Jan 23 2014 Daniel Berteaud <daniel@firewall-services.com> - 1.4.0-16.sme
- Remove limit props from the imaps DB entry [SME: 8082]

* Tue Dec 24 2013 Daniel Berteaud <daniel@firewall-services.com> - 1.4.0-15.sme
- Apply process limits [SME: 8082]

* Sun Jun 23 2013 Daniel Berteaud <daniel@firewall-services.com> - 1.4.0-14.sme
- Listen on loopback if disabled [SME: 7697]

* Wed May 29 2013  chris burnat <devlist@burnat.com> - 1.4.0-13.sme
- Reverse changes made in 1.4.0-12 [SME: 7597]

* Fri May 24 2013  chris burnat <devlist@burnat.com> - 1.4.0-12.sme
- Fix IMAP folders dont present correctly in Outlook 2007 [SME: 7597]

* Sat May 18 2013  Daniel Berteaud <daniel@firewall-services.com> - 1.4.0-11.sme
- Fix permissions on imapd.pem as it's used by pop3s [SME: 7570]

* Wed Apr 24 2013 Daniel Berteaud <daniel@firewall-services.com> - 1.4.0-10.sme
- Do not obsolete bglibs, it's required for cvm [SME: 7509]

* Tue Apr 16 2013 Daniel Berteaud <daniel@firewall-services.com> - 1.4.0-9.sme
- Allow plaintext (unless explicitly disabled) [SME: 7549]

* Wed Apr 10 2013 Daniel Berteaud <daniel@firewall-services.com> - 1.4.0-8.sme
- Do not obsolete cvm, it's still needed for qpsmtpd [SME: 7509]

* Thu Feb 28 2013 Shad L. Lords <slords@mail.com> - 1.4.0-7.sme
- Obsolete another el5 required by requires [SME: 7273]

* Thu Feb 28 2013 Shad L. Lords <slords@mail.com> - 1.4.0-6.sme
- Fix Obsolete el5 mailfront version [SME: 7273]

* Thu Feb 28 2013 Shad L. Lords <slords@mail.com> - 1.4.0-5.sme
- Obsolete el5 packages that were required by old requires [SME: 7273]

* Thu Feb 28 2013 Shad L. Lords <slords@mail.com> - 1.4.0-4.sme
- Obsolete older requires that are no longer needed [SME: 7273]

* Thu Feb 28 2013 Shad L. Lords <slords@mail.com> - 1.4.0-3.sme
- Remove requires for packages no longer needed [SME: 7405]

* Thu Feb 28 2013 Daniel Berteaud <daniel@firewall-services.com> - 1.4.0-2.sme
- remove the IMAP acl and Sieve support [SME: 7405]
- remove obsolete changelog (used in my previous buildsys)

* Tue Feb 26 2013 Daniel Berteaud <daniel@firewall-services.com> - 0.1.1-1
- store sharedmailbox dict file in /home/e-smith/db/dovecot

* Tue Feb 12 2013 Daniel Berteaud <daniel@firewall-services.com> - 0.1.0-1
- Pass the recipient variable to dovcot-lda

* Tue Nov 29 2011 Daniel Berteaud <daniel@firewall-services.com> - 0.1
- initial release

%prep
%setup -q -n %{name}-%{version}
rm -rf root/var/service
mkdir -p root/etc/dovecot/ssl
mkdir -p root/usr/lib/systemd/system/dovecot.service.d
mkdir -p root/etc/e-smith/templates/usr/lib/systemd/system/dovecot.service.d/50koozali.conf

%build
perl createlinks

%install
/bin/rm -rf $RPM_BUILD_ROOT
(cd root   ; /usr/bin/find . -depth -print | /bin/cpio -dump $RPM_BUILD_ROOT)
/bin/rm -f %{name}-%{version}-filelist
/sbin/e-smith/genfilelist $RPM_BUILD_ROOT \
   --file /sbin/e-smith/systemd/dovecot-control 'attr(0554,root,root)'\
   --dir /var/log/dovecot 'attr(0750,smelog,smelog)' \
   --dir /home/e-smith/db/dovecot 'attr(2770,root,sharedmailbox)' \
   --dir /home/e-smith/files/public 'attr(2770,root,sharedmailbox)' \
   --dir /home/e-smith/files/public/cur 'attr(2770,root,sharedmailbox)' \
   --dir /home/e-smith/files/public/new 'attr(2770,root,sharedmailbox)' \
   --dir /home/e-smith/files/public/tmp 'attr(2770,root,sharedmailbox)' \
   --file /home/e-smith/db/dovecot/sharedmailbox.db 'attr(0660,root,sharedmailbox) %config(noreplace)' \
   --file /usr/bin/imap-postlogin 'attr(0755,root,root)' \
   --file /usr/libexec/dovecot/learn-spam.sh 'attr(0755,root,root)' \
   --file /usr/libexec/dovecot/learn-ham.sh 'attr(0755,root,root)' \
   --ignoredir /usr/bin \
  > %{name}-%{version}-filelist

%files -f %{name}-%{version}-filelist
%defattr(-,root,root)

%clean
rm -rf $RPM_BUILD_ROOT


%pre
if [ $1 -gt 1 ] ; then
  if [ -e /var/service/dovecot/run ] ; then
        /usr/bin/sv d dovecot
        /usr/bin/sv d dovecot/log
  fi
  if [ -e /var/service/dovecot ] ; then
        rm -rf /var/service/dovecot
  fi
  if [ -e /var/service/pop3 ] ; then
        rm -rf /var/service/pop3
  fi
  if [ -e /var/service/pop3s ] ; then
        rm -rf /var/service/pop3s
  fi

fi

/usr/sbin/groupadd -g 439 sharedmailbox 2> /dev/null || :

%post

%preun