3 %bcond_without gssapi # without GSSAPI support
4 %bcond_without ldap # without LDAP auth
5 %bcond_without lua # without Lua auth
6 %bcond_without mysql # without MySQL auth
7 %bcond_without pgsql # without PostgreSQL auth
8 %bcond_without sqlite # without SQLite3 auth
9 %bcond_without sasl # without SASL auth
10 %bcond_without tests # tests
12 Summary: IMAP and POP3 server written with security primarily in mind
13 Summary(pl.UTF-8): Serwer IMAP i POP3 pisany głównie z myślą o bezpieczeństwie
18 License: MIT (libraries), LGPL v2.1 (the rest)
19 Group: Networking/Daemons
20 Source0: http://dovecot.org/releases/2.3/%{name}-%{version}.tar.gz
21 # Source0-md5: c6604ee990a10458dc2c674f257588df
24 Source3: %{name}.sysconfig
25 Source4: %{name}.tmpfiles
26 Patch0: %{name}-config.patch
27 Patch1: %{name}-rpath.patch
28 URL: http://dovecot.org/
29 BuildRequires: autoconf
30 BuildRequires: automake
31 BuildRequires: bzip2-devel
32 BuildRequires: clucene-core-devel >= 2.3.3.4
33 BuildRequires: curl-devel
34 %{?with_sasl:BuildRequires: cyrus-sasl-devel >= 2.0}
35 BuildRequires: expat-devel
36 BuildRequires: gettext-tools
37 %{?with_gssapi:BuildRequires: heimdal-devel}
38 BuildRequires: libapparmor-devel
39 BuildRequires: libcap-devel
40 BuildRequires: libicu-devel
41 BuildRequires: libstemmer-devel
42 BuildRequires: libexttextcat-devel
43 BuildRequires: libtool
44 %{?with_lua:BuildRequires: lua53-devel}
45 BuildRequires: lz4-devel
46 %{?with_mysql:BuildRequires: mysql-devel}
47 %{?with_ldap:BuildRequires: openldap-devel >= 2.3.3}
48 BuildRequires: openssl-devel >= 0.9.7d
49 BuildRequires: pam-devel
50 BuildRequires: pkgconfig
51 %{?with_pgsql:BuildRequires: postgresql-devel}
52 BuildRequires: rpmbuild(macros) >= 1.647
53 BuildRequires: sed >= 4.0
54 %{?with_sqlite:BuildRequires: sqlite3-devel}
55 BuildRequires: xz-devel
56 BuildRequires: zlib-devel
57 Requires(post,preun): /sbin/chkconfig
58 Requires(postun): /usr/sbin/groupdel
59 Requires(postun): /usr/sbin/userdel
60 Requires(pre): /bin/id
61 Requires(pre): /usr/bin/getgid
62 Requires(pre): /usr/sbin/groupadd
63 Requires(pre): /usr/sbin/useradd
64 Requires: %{name}-libs = %{epoch}:%{version}-%{release}
65 Requires: pam >= 0.79.0
66 Provides: group(dovecot)
69 Provides: user(dovecot)
70 # heimdal-daemons in PLD contained only "popper" (kerberized POP3 daemon)
71 %{?with_gssapi:Obsoletes: heimdal-daemons}
72 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
74 %define no_install_post_check_so 1
77 Dovecot is an IMAP and POP3 server for Linux/UNIX-like systems,
78 written with security primarily in mind. Although it's written with C,
79 it uses several coding techniques to avoid most of the common
82 Dovecot can work with standard mbox and maildir formats and it's fully
83 compatible with UW-IMAP and Courier IMAP servers as well as mail
84 clients accessing the mailboxes directly. It's also planned to support
85 storing mails in SQL databases.
87 Dovecot is easy to set up and doesn't require special maintenance.
88 Only thing you need is to get the authentication working properly - if
89 your users are in /etc/passwd there's hardly anything you have to do.
91 Dovecot should be pretty fast, mostly because of index files that
92 Dovecot maintains; instead of having to scan through all the data in
93 mailbox, Dovecot can get most of the wanted information from index
97 - should be quite ready for use with normal IMAP clients
98 - complete IMAP4rev1 and POP3 support
99 - supports THREAD, SORT and IDLE extensions, required by many IMAP
101 - complete TLS/SSL support
103 - shared mailboxes aren't yet supported
104 - Maildir++ quota is supported, bad hard filesystem quota can be
107 %description -l pl.UTF-8
108 Dovecot to serwer IMAP i POP3 dla systemów linuksowych/uniksowych,
109 pisany głównie z myślą o bezpieczeństwie. Chociaż jest pisany w C,
110 używa kilku technik kodowania zapobiegających większości popularnych
113 Dovecot może działać ze standardowymi formatami mbox i maildir, jest
114 całkowicie kompatybilny z serwerami UW-IMAP i Courier IMAP, a także z
115 klientami pocztowymi bezpośrednio dostającymi się do skrzynek.
116 Planowana jest także obsługa przechowywania listów w bazach SQL.
118 Dovecot jest łatwy do skonfigurowania i nie wymaga specjalnego
119 nadzoru. Wystarczy tylko doprowadzić do działania uwierzytelnianie -
120 jeśli użytkownicy są w /etc/passwd, to właściwie nie trzeba nic
123 Dovecot powinien być w miarę szybki, głównie z powodu plików
124 indeksowych utrzymywanych przez serwer; zamiast potrzeby skanowania
125 wszystkich danych w skrzynce, Dovecot może małym kosztem uzyskać
126 większość potrzebnych informacji z indeksu.
129 - powinien być gotowy do użycia ze zwykłymi klientami IMAP
130 - pełna obsługa IMAP4rev1 i POP3
131 - obsługa rozszerzeń THREAD, SORT i IDLE, wymaganych przez wiele
134 - pełna obsługa TLS/SSL
135 - quota Maildir++ jest obsługiwana, ale twarda quota na systemach
136 plików może być problematyczna
139 Summary: Dovecot shared libraries
140 Summary(pl.UTF-8): Współdzielone biblioteki Dovecota
141 Group: Development/Libraries
144 Dovecot shared libraries.
146 %description libs -l pl.UTF-8
147 Współdzielone biblioteki Dovecota.
150 Summary: Development package for Dovecot plugins
151 Summary(pl.UTF-8): Pakiet programistyczny do tworzenia wtyczek dla Dovecota
152 Group: Development/Libraries
153 Requires: %{name}-libs = %{epoch}:%{version}-%{release}
156 Development package for Dovecot plugins.
158 %description devel -l pl.UTF-8
159 Pakiet programistyczny do tworzenia wtyczek dla Dovecota.
166 %{__sed} -i 's,/usr/lib/dovecot,%{_libdir}/dovecot,g' doc/example-config/*.conf doc/example-config/conf.d/*.conf
171 %{__aclocal} -I . -I m4
176 ac_cv_prog_VALGRIND=no \
177 CPPFLAGS="%{rpmcppflags} -I/usr/include/libstemmer -D_LINUX_QUOTA_VERSION=2" \
180 %{?debug:--enable-debug} \
181 %{?with_ldap:--with-ldap=yes} \
182 %{?with_mysql:--with-mysql} \
183 %{?with_pgsql:--with-pgsql} \
184 %{?with_sqlite:--with-sqlite} \
185 %{?with_gssapi:--with-gssapi=plugin} \
186 %{?with_lua:--with-lua=plugin} \
196 --with-moduledir=%{_libdir}/%{name}/plugins \
197 --with-ssldir=/var/lib/openssl \
198 --sysconfdir=%{_sysconfdir} \
199 --with-systemdsystemunitdir=%{systemdunitdir}
203 %{?with_tests:%{__make} check}
206 rm -rf $RPM_BUILD_ROOT
207 install -d $RPM_BUILD_ROOT/etc/{pam.d,rc.d/init.d,sysconfig,security} \
208 $RPM_BUILD_ROOT{/var/lib/dovecot,/var/run/dovecot/login} \
209 $RPM_BUILD_ROOT/usr/lib/tmpfiles.d
212 DESTDIR=$RPM_BUILD_ROOT
214 mv -f $RPM_BUILD_ROOT%{_datadir}/doc/%{name}/example-config/* $RPM_BUILD_ROOT%{_sysconfdir}/dovecot
216 cp -a %{SOURCE1} $RPM_BUILD_ROOT/etc/pam.d/%{name}
217 install -p %{SOURCE2} $RPM_BUILD_ROOT/etc/rc.d/init.d/%{name}
218 cp -a %{SOURCE3} $RPM_BUILD_ROOT/etc/sysconfig/%{name}
219 install %{SOURCE4} $RPM_BUILD_ROOT/usr/lib/tmpfiles.d/%{name}.conf
221 touch $RPM_BUILD_ROOT/etc/security/blacklist.imap
223 find $RPM_BUILD_ROOT%{_libdir}/%{name} -name '*.la' | xargs rm
225 %{__rm} -r $RPM_BUILD_ROOT%{_docdir}/%{name}
226 %{__rm} -r $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/README
229 rm -rf $RPM_BUILD_ROOT
232 %groupadd -g 172 dovecot
233 %useradd -u 172 -d /usr/share/empty -s /bin/false -c "Dovecot server" -g dovecot dovecot
234 %groupadd -g 254 dovenull
235 %useradd -u 254 -d /usr/share/empty -s /bin/false -c "Dovecot server" -g dovenull dovenull
238 /sbin/chkconfig --add dovecot
239 %service dovecot restart
240 %systemd_post dovecot.socket dovecot.service
243 if [ "$1" = "0" ]; then
244 %service dovecot stop
245 /sbin/chkconfig --del dovecot
247 %systemd_preun dovecot.service dovecot.socket
250 if [ "$1" = "0" ]; then
254 %groupremove dovenull
258 %post libs -p /sbin/ldconfig
259 %postun libs -p /sbin/ldconfig
262 # restart devocot if pam is upgraded
263 # (dovecot is linked with old libpam but tries to open modules linked with new libpam)
264 if [ "$2" != 1 ]; then
265 %service -q dovecot restart
268 %triggerpostun -- dovecot < 1:2.0.0
269 # upgrading dovecot < 1.1
270 echo "Configuration change default_mail_env -> mail_location"
271 %{__sed} -i -e "s/^default_mail_env/mail_location/" /etc/dovecot/dovecot.conf
272 # upgrading dovecot < 2.0
274 for a in /etc/dovecot/dovecot-db-example.conf \
275 /etc/dovecot/dovecot-dict-sql-example.conf \
276 /etc/dovecot/dovecot-ldap-example.conf \
277 /etc/dovecot/dovecot-sql-example.conf \
278 /etc/dovecot/dovecot.conf; do
280 [ "$i" -eq 0 ] && echo "Read http://wiki2.dovecot.org/Upgrading/2.0"
282 echo "Trying to migrate $a config file to dovecot 2."
283 cp -a "$a" "$a-1.2.org"
286 # convert config and prefix stderr lines with #
287 %{_bindir}/doveconf -n -c "$a-1.2.org" > "$a" 2> "$a.log" || :
290 if [ "$i" -eq 1 ]; then
291 echo "Please verify contents of %{_sysconfdir}/%{name}/* files."
294 %triggerpostun -- %{name} < 1:2.2.4-2
295 %systemd_trigger dovecot.service dovecot.socket
298 %defattr(644,root,root,755)
299 # COPYING contains some notes, not actual LGPL text
300 %doc AUTHORS COPYING ChangeLog NEWS README TODO doc/*.txt doc/*.c*f doc/wiki/*.txt
301 %attr(755,root,root) %{_bindir}/doveadm
302 %attr(755,root,root) %{_bindir}/doveconf
303 %attr(755,root,root) %{_bindir}/dsync
304 %attr(755,root,root) %{_sbindir}/%{name}
305 %attr(751,root,root) %dir %{_sysconfdir}/%{name}
306 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/%{name}.conf
307 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/*.ext
308 %attr(751,root,root) %dir %{_sysconfdir}/%{name}/conf.d
309 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/conf.d/*.conf
310 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/conf.d/*.ext
311 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/pam.d/%{name}
312 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/security/blacklist.imap
313 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/%{name}
314 %attr(754,root,root) /etc/rc.d/init.d/%{name}
315 %if "%{_libexecdir}" != "%{_libdir}"
316 %dir %{_libexecdir}/%{name}
318 %attr(755,root,root) %{_libexecdir}/%{name}/aggregator
319 %attr(755,root,root) %{_libexecdir}/%{name}/anvil
320 %attr(755,root,root) %{_libexecdir}/%{name}/auth
321 %attr(755,root,root) %{_libexecdir}/%{name}/checkpassword-reply
322 %attr(755,root,root) %{_libexecdir}/%{name}/config
323 %attr(755,root,root) %{_libexecdir}/%{name}/decode2text.sh
324 %attr(755,root,root) %{_libexecdir}/%{name}/deliver
325 %attr(755,root,root) %{_libexecdir}/%{name}/dict
326 %attr(755,root,root) %{_libexecdir}/%{name}/director
327 %attr(755,root,root) %{_libexecdir}/%{name}/dns-client
328 %attr(755,root,root) %{_libexecdir}/%{name}/doveadm-server
329 %attr(755,root,root) %{_libexecdir}/%{name}/dovecot-lda
330 %attr(755,root,root) %{_libexecdir}/%{name}/gdbhelper
331 %attr(755,root,root) %{_libexecdir}/%{name}/health-check.sh
332 %attr(755,root,root) %{_libexecdir}/%{name}/imap
333 %attr(755,root,root) %{_libexecdir}/%{name}/imap-hibernate
334 %attr(755,root,root) %{_libexecdir}/%{name}/imap-login
335 %attr(755,root,root) %{_libexecdir}/%{name}/imap-urlauth
336 %attr(755,root,root) %{_libexecdir}/%{name}/imap-urlauth-login
337 %attr(755,root,root) %{_libexecdir}/%{name}/imap-urlauth-worker
338 %attr(755,root,root) %{_libexecdir}/%{name}/indexer
339 %attr(755,root,root) %{_libexecdir}/%{name}/indexer-worker
340 %attr(755,root,root) %{_libexecdir}/%{name}/ipc
341 %attr(755,root,root) %{_libexecdir}/%{name}/lmtp
342 %attr(755,root,root) %{_libexecdir}/%{name}/log
343 %attr(755,root,root) %{_libexecdir}/%{name}/maildirlock
344 %attr(755,root,root) %{_libexecdir}/%{name}/old-stats
345 %attr(755,root,root) %{_libexecdir}/%{name}/pop3
346 %attr(755,root,root) %{_libexecdir}/%{name}/pop3-login
347 %attr(755,root,root) %{_libexecdir}/%{name}/quota-status
348 %attr(755,root,root) %{_libexecdir}/%{name}/rawlog
349 %attr(755,root,root) %{_libexecdir}/%{name}/replicator
350 %attr(755,root,root) %{_libexecdir}/%{name}/script
351 %attr(755,root,root) %{_libexecdir}/%{name}/script-login
352 %attr(755,root,root) %{_libexecdir}/%{name}/stats
353 %attr(755,root,root) %{_libexecdir}/%{name}/submission
354 %attr(755,root,root) %{_libexecdir}/%{name}/submission-login
355 %attr(755,root,root) %{_libexecdir}/%{name}/xml2text
356 %attr(755,root,root) %{_libdir}/%{name}/libdcrypt_openssl.so
357 %dir %{_libdir}/%{name}/plugins
358 %attr(755,root,root) %{_libdir}/%{name}/plugins/*.so
359 %dir %{_libdir}/%{name}/plugins/auth
360 %attr(755,root,root) %{_libdir}/%{name}/plugins/auth/*.so
361 %dir %{_libdir}/%{name}/plugins/dict
362 %attr(755,root,root) %{_libdir}/%{name}/plugins/dict/*.so
363 %dir %{_libdir}/%{name}/plugins/doveadm
364 %attr(755,root,root) %{_libdir}/%{name}/plugins/doveadm/*.so
365 %dir %{_libdir}/%{name}/plugins/old-stats
366 %attr(755,root,root) %{_libdir}/%{name}/plugins/old-stats/*.so
368 %{systemdunitdir}/dovecot.service
369 %{systemdunitdir}/dovecot.socket
370 /usr/lib/tmpfiles.d/%{name}.conf
371 %dir /var/lib/dovecot
372 %dir /var/run/dovecot
373 %attr(750,root,dovenull) %dir /var/run/dovecot/login
375 %{_mandir}/man1/deliver.1*
376 %{_mandir}/man1/dove*.1*
377 %{_mandir}/man1/dsync.1*
378 %{_mandir}/man7/doveadm-search-query.7*
381 %defattr(644,root,root,755)
382 %dir %{_libdir}/%{name}
384 %attr(755,root,root) %{_libdir}/%{name}/libdovecot.so.0.0.0
385 %attr(755,root,root) %{_libdir}/%{name}/libdovecot-compression.so.0.0.0
386 %attr(755,root,root) %{_libdir}/%{name}/libdovecot-dsync.so.0.0.0
387 %attr(755,root,root) %{_libdir}/%{name}/libdovecot-fts.so.0.0.0
388 %attr(755,root,root) %{_libdir}/%{name}/libdovecot-lda.so.0.0.0
389 %{?with_ldap:%attr(755,root,root) %{_libdir}/%{name}/libdovecot-ldap.so.0.0.0}
390 %attr(755,root,root) %{_libdir}/%{name}/libdovecot-login.so.0.0.0
391 %attr(755,root,root) %{_libdir}/%{name}/libdovecot-sql.so.0.0.0
392 %attr(755,root,root) %{_libdir}/%{name}/libdovecot-storage.so.0.0.0
393 # Note: we are in %{_libdir}/dovecot, ldconfig does not look into this
394 # directory. This is why the following files are not %ghost
395 %attr(755,root,root) %{_libdir}/%{name}/libdovecot.so.0
396 %attr(755,root,root) %{_libdir}/%{name}/libdovecot-compression.so.0
397 %attr(755,root,root) %{_libdir}/%{name}/libdovecot-dsync.so.0
398 %attr(755,root,root) %{_libdir}/%{name}/libdovecot-fts.so.0
399 %attr(755,root,root) %{_libdir}/%{name}/libdovecot-lda.so.0
400 %{?with_ldap:%attr(755,root,root) %{_libdir}/%{name}/libdovecot-ldap.so.0}
401 %attr(755,root,root) %{_libdir}/%{name}/libdovecot-login.so.0
402 %attr(755,root,root) %{_libdir}/%{name}/libdovecot-sql.so.0
403 %attr(755,root,root) %{_libdir}/%{name}/libdovecot-storage.so.0
406 %defattr(644,root,root,755)
407 %attr(755,root,root) %{_libdir}/%{name}/libdovecot.so
408 %attr(755,root,root) %{_libdir}/%{name}/libdovecot-compression.so
409 %attr(755,root,root) %{_libdir}/%{name}/libdovecot-dsync.so
410 %attr(755,root,root) %{_libdir}/%{name}/libdovecot-fts.so
411 %attr(755,root,root) %{_libdir}/%{name}/libdovecot-lda.so
412 %{?with_ldap:%attr(755,root,root) %{_libdir}/%{name}/libdovecot-ldap.so}
413 %attr(755,root,root) %{_libdir}/%{name}/libdovecot-login.so
414 %attr(755,root,root) %{_libdir}/%{name}/libdovecot-sql.so
415 %attr(755,root,root) %{_libdir}/%{name}/libdovecot-storage.so
416 %{_libdir}/%{name}/%{name}-config
417 %{_includedir}/%{name}
418 %{_aclocaldir}/dovecot.m4