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
10 Summary: IMAP and POP3 server written with security primarily in mind
11 Summary(pl.UTF-8): Serwer IMAP i POP3 pisany głównie z myślą o bezpieczeństwie
16 License: MIT (libraries), LGPL v2.1 (the rest)
17 Group: Networking/Daemons
18 Source0: http://dovecot.org/releases/2.2/%{name}-%{version}.tar.gz
19 # Source0-md5: db65988ef2e6889dd8b49c132b21fc8f
22 Source3: %{name}.sysconfig
23 Source4: %{name}.tmpfiles
24 Patch0: %{name}-config.patch
25 URL: http://dovecot.org/
26 BuildRequires: autoconf
27 BuildRequires: automake
28 BuildRequires: bzip2-devel
29 %{?with_sasl:BuildRequires: cyrus-sasl-devel >= 2.0}
30 BuildRequires: gettext-devel
31 %{?with_gssapi:BuildRequires: heimdal-devel}
32 BuildRequires: libcap-devel
33 BuildRequires: libtool
34 %{?with_mysql:BuildRequires: mysql-devel}
35 %{?with_ldap:BuildRequires: openldap-devel >= 2.3.3}
36 BuildRequires: openssl-devel >= 0.9.7d
37 BuildRequires: pam-devel
38 BuildRequires: pkgconfig
39 %{?with_pgsql:BuildRequires: postgresql-devel}
40 BuildRequires: rpmbuild(macros) >= 1.647
41 BuildRequires: sed >= 4.0
42 %{?with_sqlite:BuildRequires: sqlite3-devel}
43 BuildRequires: zlib-devel
44 Requires(post,preun): /sbin/chkconfig
45 Requires(postun): /usr/sbin/groupdel
46 Requires(postun): /usr/sbin/userdel
47 Requires(pre): /bin/id
48 Requires(pre): /usr/bin/getgid
49 Requires(pre): /usr/sbin/groupadd
50 Requires(pre): /usr/sbin/useradd
51 Requires: %{name}-libs = %{epoch}:%{version}-%{release}
52 Requires: pam >= 0.79.0
53 Provides: group(dovecot)
55 Provides: user(dovecot)
56 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
58 %define no_install_post_check_so 1
61 Dovecot is an IMAP and POP3 server for Linux/UNIX-like systems,
62 written with security primarily in mind. Although it's written with C,
63 it uses several coding techniques to avoid most of the common
66 Dovecot can work with standard mbox and maildir formats and it's fully
67 compatible with UW-IMAP and Courier IMAP servers as well as mail
68 clients accessing the mailboxes directly. It's also planned to support
69 storing mails in SQL databases.
71 Dovecot is easy to set up and doesn't require special maintenance.
72 Only thing you need is to get the authentication working properly - if
73 your users are in /etc/passwd there's hardly anything you have to do.
75 Dovecot should be pretty fast, mostly because of index files that
76 Dovecot maintains; instead of having to scan through all the data in
77 mailbox, Dovecot can get most of the wanted information from index
81 - should be quite ready for use with normal IMAP clients
82 - complete IMAP4rev1 and POP3 support
83 - supports THREAD, SORT and IDLE extensions, required by many IMAP
85 - complete TLS/SSL support
87 - shared mailboxes aren't yet supported
88 - Maildir++ quota is supported, bad hard filesystem quota can be
91 %description -l pl.UTF-8
92 Dovecot to serwer IMAP i POP3 dla systemów linuksowych/uniksowych,
93 pisany głównie z myślą o bezpieczeństwie. Chociaż jest pisany w C,
94 używa kilku technik kodowania zapobiegających większości popularnych
97 Dovecot może działać ze standardowymi formatami mbox i maildir, jest
98 całkowicie kompatybilny z serwerami UW-IMAP i Courier IMAP, a także z
99 klientami pocztowymi bezpośrednio dostającymi się do skrzynek.
100 Planowana jest także obsługa przechowywania listów w bazach SQL.
102 Dovecot jest łatwy do skonfigurowania i nie wymaga specjalnego
103 nadzoru. Wystarczy tylko doprowadzić do działania uwierzytelnianie -
104 jeśli użytkownicy są w /etc/passwd, to właściwie nie trzeba nic
107 Dovecot powinien być w miarę szybki, głównie z powodu plików
108 indeksowych utrzymywanych przez serwer; zamiast potrzeby skanowania
109 wszystkich danych w skrzynce, Dovecot może małym kosztem uzyskać
110 większość potrzebnych informacji z indeksu.
113 - powinien być gotowy do użycia ze zwykłymi klientami IMAP
114 - pełna obsługa IMAP4rev1 i POP3
115 - obsługa rozszerzeń THREAD, SORT i IDLE, wymaganych przez wiele
118 - pełna obsługa TLS/SSL
119 - quota Maildir++ jest obsługiwana, ale twarda quota na systemach
120 plików może być problematyczna
123 Summary: Development package for Dovecot plugins
124 Summary(pl.UTF-8): Pakiet programistyczny do tworzenia wtyczek dla Dovecota
125 Group: Development/Libraries
126 Requires: %{name}-libs = %{epoch}:%{version}-%{release}
129 Development package for Dovecot plugins.
131 %description devel -l pl.UTF-8
132 Pakiet programistyczny do tworzenia wtyczek dla Dovecota.
135 Summary: Dovecot shared libraries
136 Summary(pl.UTF-8): Współdzielone biblioteki Dovecota
137 Group: Development/Libraries
140 Dovecot shared libraries.
142 %description libs -l pl.UTF-8
143 Współdzielone biblioteki Dovecota.
149 %{__sed} -i 's,/usr/lib/dovecot,%{_libdir}/dovecot,g' doc/example-config/*.conf doc/example-config/conf.d/*.conf
160 %{?debug:--enable-debug} \
161 %{?with_ldap:--with-ldap=yes} \
162 %{?with_mysql:--with-mysql} \
163 %{?with_pgsql:--with-pgsql} \
164 %{?with_sqlite:--with-sqlite} \
165 %{?with_gssapi:--with-gssapi=plugin} \
172 --with-moduledir=%{_libdir}/%{name}/plugins \
173 --with-ssldir=/var/lib/openssl \
174 --sysconfdir=%{_sysconfdir} \
175 --with-systemdsystemunitdir=%{systemdunitdir}
180 rm -rf $RPM_BUILD_ROOT
181 install -d $RPM_BUILD_ROOT/etc/{pam.d,rc.d/init.d,sysconfig,security} \
182 $RPM_BUILD_ROOT{/var/lib/dovecot,/var/run/dovecot/login} \
183 $RPM_BUILD_ROOT/usr/lib/tmpfiles.d
186 DESTDIR=$RPM_BUILD_ROOT
188 mv -f $RPM_BUILD_ROOT%{_datadir}/doc/%{name}/example-config/* $RPM_BUILD_ROOT%{_sysconfdir}/dovecot
190 cp -a %{SOURCE1} $RPM_BUILD_ROOT/etc/pam.d/%{name}
191 install -p %{SOURCE2} $RPM_BUILD_ROOT/etc/rc.d/init.d/%{name}
192 cp -a %{SOURCE3} $RPM_BUILD_ROOT/etc/sysconfig/%{name}
193 install %{SOURCE4} $RPM_BUILD_ROOT/usr/lib/tmpfiles.d/%{name}.conf
195 touch $RPM_BUILD_ROOT/etc/security/blacklist.imap
197 find $RPM_BUILD_ROOT%{_libdir}/%{name} -name '*.la' | xargs rm
199 mv $RPM_BUILD_ROOT%{_libdir}/%{name}/dovecot-config $RPM_BUILD_ROOT%{_libdir}/%{name}-devel
201 %{__rm} -r $RPM_BUILD_ROOT%{_docdir}/%{name}
202 %{__rm} -r $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/README
205 rm -rf $RPM_BUILD_ROOT
208 %groupadd -g 172 dovecot
209 %useradd -u 172 -d /usr/share/empty -s /bin/false -c "Dovecot server" -g dovecot dovecot
210 %groupadd -g 254 dovenull
211 %useradd -u 254 -d /usr/share/empty -s /bin/false -c "Dovecot server" -g dovenull dovenull
214 /sbin/chkconfig --add dovecot
215 %service dovecot restart
216 %systemd_post dovecot.socket dovecot.service
219 if [ "$1" = "0" ]; then
220 %service dovecot stop
221 /sbin/chkconfig --del dovecot
223 %systemd_preun dovecot.service dovecot.socket
226 if [ "$1" = "0" ]; then
230 %groupremove dovenull
234 %post libs -p /sbin/ldconfig
235 %postun libs -p /sbin/ldconfig
238 # restart devocot if pam is upgraded
239 # (dovecot is linked with old libpam but tries to open modules linked with new libpam)
240 if [ "$2" != 1 ]; then
241 %service -q dovecot restart
244 %triggerpostun -- dovecot < 1:2.0.0
245 # upgrading dovecot < 1.1
246 echo "Configuration change default_mail_env -> mail_location"
247 %{__sed} -i -e "s/^default_mail_env/mail_location/" /etc/dovecot/dovecot.conf
248 # upgrading dovecot < 2.0
250 for a in /etc/dovecot/dovecot-db-example.conf \
251 /etc/dovecot/dovecot-dict-sql-example.conf \
252 /etc/dovecot/dovecot-ldap-example.conf \
253 /etc/dovecot/dovecot-sql-example.conf \
254 /etc/dovecot/dovecot.conf; do
256 [ "$i" -eq 0 ] && echo "Read http://wiki2.dovecot.org/Upgrading/2.0"
258 echo "Trying to migrate $a config file to dovecot 2."
259 cp -a "$a" "$a-1.2.org"
262 # convert config and prefix stderr lines with #
263 %{_bindir}/doveconf -n -c "$a-1.2.org" > "$a" 2> "$a.log" || :
266 if [ "$i" -eq 1 ]; then
267 echo "Please verify contents of %{_sysconfdir}/%{name}/* files."
270 %triggerpostun -- %{name} < 1:2.2.4-2
271 %systemd_trigger dovecot.service dovecot.socket
274 %defattr(644,root,root,755)
275 # COPYING contains some notes, not actual LGPL text
276 %doc AUTHORS COPYING ChangeLog NEWS README TODO doc/*.txt doc/*.c*f doc/wiki/*.txt
277 %attr(755,root,root) %{_bindir}/doveadm
278 %attr(755,root,root) %{_bindir}/doveconf
279 %attr(755,root,root) %{_bindir}/dsync
280 %attr(755,root,root) %{_sbindir}/%{name}
281 %attr(751,root,root) %dir %{_sysconfdir}/%{name}
282 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/%{name}.conf
283 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/*.ext
284 %attr(751,root,root) %dir %{_sysconfdir}/%{name}/conf.d
285 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/conf.d/*.conf
286 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/conf.d/*.ext
287 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/pam.d/%{name}
288 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/security/blacklist.imap
289 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/%{name}
290 %attr(754,root,root) /etc/rc.d/init.d/%{name}
291 %attr(755,root,root) %{_libdir}/%{name}/aggregator
292 %attr(755,root,root) %{_libdir}/%{name}/anvil
293 %attr(755,root,root) %{_libdir}/%{name}/auth
294 %attr(755,root,root) %{_libdir}/%{name}/checkpassword-reply
295 %attr(755,root,root) %{_libdir}/%{name}/config
296 %attr(755,root,root) %{_libdir}/%{name}/decode2text.sh
297 %attr(755,root,root) %{_libdir}/%{name}/deliver
298 %attr(755,root,root) %{_libdir}/%{name}/dict
299 %attr(755,root,root) %{_libdir}/%{name}/director
300 %attr(755,root,root) %{_libdir}/%{name}/dns-client
301 %attr(755,root,root) %{_libdir}/%{name}/doveadm-server
302 %attr(755,root,root) %{_libdir}/%{name}/dovecot-lda
303 %attr(755,root,root) %{_libdir}/%{name}/gdbhelper
304 %attr(755,root,root) %{_libdir}/%{name}/imap
305 %attr(755,root,root) %{_libdir}/%{name}/imap-login
306 %attr(755,root,root) %{_libdir}/%{name}/imap-urlauth
307 %attr(755,root,root) %{_libdir}/%{name}/imap-urlauth-login
308 %attr(755,root,root) %{_libdir}/%{name}/imap-urlauth-worker
309 %attr(755,root,root) %{_libdir}/%{name}/indexer
310 %attr(755,root,root) %{_libdir}/%{name}/indexer-worker
311 %attr(755,root,root) %{_libdir}/%{name}/ipc
312 %attr(755,root,root) %{_libdir}/%{name}/lmtp
313 %attr(755,root,root) %{_libdir}/%{name}/log
314 %attr(755,root,root) %{_libdir}/%{name}/maildirlock
315 %attr(755,root,root) %{_libdir}/%{name}/pop3
316 %attr(755,root,root) %{_libdir}/%{name}/pop3-login
317 %attr(755,root,root) %{_libdir}/%{name}/quota-status
318 %attr(755,root,root) %{_libdir}/%{name}/rawlog
319 %attr(755,root,root) %{_libdir}/%{name}/replicator
320 %attr(755,root,root) %{_libdir}/%{name}/script
321 %attr(755,root,root) %{_libdir}/%{name}/script-login
322 %attr(755,root,root) %{_libdir}/%{name}/ssl-params
323 %attr(755,root,root) %{_libdir}/%{name}/stats
324 %attr(755,root,root) %{_libdir}/%{name}/xml2text
325 %dir %{_libdir}/%{name}/plugins
326 %attr(755,root,root) %{_libdir}/%{name}/plugins/*.so
327 %dir %{_libdir}/%{name}/plugins/auth
328 %attr(755,root,root) %{_libdir}/%{name}/plugins/auth/*.so
329 %dir %{_libdir}/%{name}/plugins/dict
330 %attr(755,root,root) %{_libdir}/%{name}/plugins/dict/*.so
331 %dir %{_libdir}/%{name}/plugins/doveadm
332 %attr(755,root,root) %{_libdir}/%{name}/plugins/doveadm/*.so
333 %{systemdunitdir}/dovecot.service
334 %{systemdunitdir}/dovecot.socket
335 /usr/lib/tmpfiles.d/%{name}.conf
336 %dir /var/lib/dovecot
337 %dir /var/run/dovecot
338 %attr(750,root,dovenull) %dir /var/run/dovecot/login
340 %{_mandir}/man1/deliver.1*
341 %{_mandir}/man1/dove*.1*
342 %{_mandir}/man1/dsync.1*
343 %{_mandir}/man7/doveadm-search-query.7*
346 %defattr(644,root,root,755)
347 %attr(755,root,root) %{_libdir}/%{name}/libdovecot.so
348 %attr(755,root,root) %{_libdir}/%{name}/libdovecot-compression.so
349 %attr(755,root,root) %{_libdir}/%{name}/libdovecot-lda.so
350 %attr(755,root,root) %{_libdir}/%{name}/libdovecot-login.so
351 %attr(755,root,root) %{_libdir}/%{name}/libdovecot-sql.so
352 %attr(755,root,root) %{_libdir}/%{name}/libdovecot-storage.so
353 %{_libdir}/%{name}-devel
354 %{_includedir}/%{name}
355 %{_aclocaldir}/dovecot.m4
358 %defattr(644,root,root,755)
359 %dir %{_libdir}/%{name}
360 %attr(755,root,root) %{_libdir}/%{name}/libdovecot.so.0.0.0
361 %attr(755,root,root) %{_libdir}/%{name}/libdovecot-compression.so.0.0.0
362 %attr(755,root,root) %{_libdir}/%{name}/libdovecot-lda.so.0.0.0
363 %attr(755,root,root) %{_libdir}/%{name}/libdovecot-login.so.0.0.0
364 %attr(755,root,root) %{_libdir}/%{name}/libdovecot-sql.so.0.0.0
365 %attr(755,root,root) %{_libdir}/%{name}/libdovecot-storage.so.0.0.0
366 # Note: we are in %{_libdir}/dovecot, ldconfig does not look into this
367 # directory. This is why the following files are not %ghost
368 %attr(755,root,root) %{_libdir}/%{name}/libdovecot.so.0
369 %attr(755,root,root) %{_libdir}/%{name}/libdovecot-compression.so.0
370 %attr(755,root,root) %{_libdir}/%{name}/libdovecot-lda.so.0
371 %attr(755,root,root) %{_libdir}/%{name}/libdovecot-login.so.0
372 %attr(755,root,root) %{_libdir}/%{name}/libdovecot-sql.so.0
373 %attr(755,root,root) %{_libdir}/%{name}/libdovecot-storage.so.0