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