]> git.pld-linux.org Git - packages/dovecot.git/blob - dovecot.spec
Release 3 (by relup.sh)
[packages/dovecot.git] / dovecot.spec
1 #
2 # Conditional build:
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
11
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
14 Name:           dovecot
15 Version:        2.3.21
16 Release:        3
17 Epoch:          1
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:  8961c3dafd845a25fd55e7903ffc3755
22 Source1:        %{name}.pamd
23 Source2:        %{name}.init
24 Source3:        %{name}.sysconfig
25 Source4:        %{name}.tmpfiles
26 Patch0:         %{name}-config.patch
27 Patch1:         %{name}-rpath.patch
28 Patch2:         %{name}-shebang.patch
29 Patch3:         proc-status.patch
30 Patch4:         openssl3.patch
31 URL:            http://dovecot.org/
32 BuildRequires:  autoconf
33 BuildRequires:  automake
34 BuildRequires:  bzip2-devel
35 BuildRequires:  clucene-core-devel >= 2.3.3.4
36 BuildRequires:  curl-devel
37 %{?with_sasl:BuildRequires:     cyrus-sasl-devel >= 2.0}
38 BuildRequires:  expat-devel
39 BuildRequires:  gettext-tools
40 %{?with_gssapi:BuildRequires:   heimdal-devel}
41 BuildRequires:  libapparmor-devel
42 BuildRequires:  libcap-devel
43 BuildRequires:  libicu-devel
44 BuildRequires:  libstemmer-devel
45 BuildRequires:  libexttextcat-devel
46 BuildRequires:  libtool
47 %{?with_lua:BuildRequires:      lua53-devel}
48 BuildRequires:  lz4-devel
49 %{?with_mysql:BuildRequires:    mysql-devel}
50 %{?with_ldap:BuildRequires:     openldap-devel >= 2.3.3}
51 BuildRequires:  openssl-devel >= 0.9.7d
52 BuildRequires:  pam-devel
53 BuildRequires:  pkgconfig
54 BuildRequires:  pkgconfig(lua) >= 5.1
55 %{?with_pgsql:BuildRequires:    postgresql-devel}
56 BuildRequires:  rpmbuild(macros) >= 1.647
57 BuildRequires:  sed >= 4.0
58 %{?with_sqlite:BuildRequires:   sqlite3-devel}
59 BuildRequires:  xz-devel
60 BuildRequires:  zlib-devel
61 BuildRequires:  zstd-devel
62 Requires(post,preun):   /sbin/chkconfig
63 Requires(postun):       /usr/sbin/groupdel
64 Requires(postun):       /usr/sbin/userdel
65 Requires(pre):  /bin/id
66 Requires(pre):  /usr/bin/getgid
67 Requires(pre):  /usr/sbin/groupadd
68 Requires(pre):  /usr/sbin/useradd
69 Requires:       %{name}-libs = %{epoch}:%{version}-%{release}
70 Requires:       pam >= 0.79.0
71 Provides:       group(dovecot)
72 Provides:       imapdaemon
73 Provides:       pop3daemon
74 Provides:       user(dovecot)
75 # heimdal-daemons in PLD contained only "popper" (kerberized POP3 daemon)
76 %{?with_gssapi:Obsoletes:       heimdal-daemons}
77 BuildRoot:      %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
78
79 %define         no_install_post_check_so        1
80
81 %description
82 Dovecot is an IMAP and POP3 server for Linux/UNIX-like systems,
83 written with security primarily in mind. Although it's written with C,
84 it uses several coding techniques to avoid most of the common
85 pitfalls.
86
87 Dovecot can work with standard mbox and maildir formats and it's fully
88 compatible with UW-IMAP and Courier IMAP servers as well as mail
89 clients accessing the mailboxes directly. It's also planned to support
90 storing mails in SQL databases.
91
92 Dovecot is easy to set up and doesn't require special maintenance.
93 Only thing you need is to get the authentication working properly - if
94 your users are in /etc/passwd there's hardly anything you have to do.
95
96 Dovecot should be pretty fast, mostly because of index files that
97 Dovecot maintains; instead of having to scan through all the data in
98 mailbox, Dovecot can get most of the wanted information from index
99 with little effort.
100
101 Status:
102 - should be quite ready for use with normal IMAP clients
103 - complete IMAP4rev1 and POP3 support
104 - supports THREAD, SORT and IDLE extensions, required by many IMAP
105   webmails
106 - complete TLS/SSL support
107 - IPv6 ready
108 - shared mailboxes aren't yet supported
109 - Maildir++ quota is supported, bad hard filesystem quota can be
110   problematic
111
112 %description -l pl.UTF-8
113 Dovecot to serwer IMAP i POP3 dla systemów linuksowych/uniksowych,
114 pisany głównie z myślą o bezpieczeństwie. Chociaż jest pisany w C,
115 używa kilku technik kodowania zapobiegających większości popularnych
116 pułapek.
117
118 Dovecot może działać ze standardowymi formatami mbox i maildir, jest
119 całkowicie kompatybilny z serwerami UW-IMAP i Courier IMAP, a także z
120 klientami pocztowymi bezpośrednio dostającymi się do skrzynek.
121 Planowana jest także obsługa przechowywania listów w bazach SQL.
122
123 Dovecot jest łatwy do skonfigurowania i nie wymaga specjalnego
124 nadzoru. Wystarczy tylko doprowadzić do działania uwierzytelnianie -
125 jeśli użytkownicy są w /etc/passwd, to właściwie nie trzeba nic
126 zmieniać.
127
128 Dovecot powinien być w miarę szybki, głównie z powodu plików
129 indeksowych utrzymywanych przez serwer; zamiast potrzeby skanowania
130 wszystkich danych w skrzynce, Dovecot może małym kosztem uzyskać
131 większość potrzebnych informacji z indeksu.
132
133 Stan:
134 - powinien być gotowy do użycia ze zwykłymi klientami IMAP
135 - pełna obsługa IMAP4rev1 i POP3
136 - obsługa rozszerzeń THREAD, SORT i IDLE, wymaganych przez wiele
137   webmaili IMAP
138 - obsługa IPv6
139 - pełna obsługa TLS/SSL
140 - quota Maildir++ jest obsługiwana, ale twarda quota na systemach
141   plików może być problematyczna
142
143 %package libs
144 Summary:        Dovecot shared libraries
145 Summary(pl.UTF-8):      Współdzielone biblioteki Dovecota
146 Group:          Development/Libraries
147
148 %description libs
149 Dovecot shared libraries.
150
151 %description libs -l pl.UTF-8
152 Współdzielone biblioteki Dovecota.
153
154 %package devel
155 Summary:        Development package for Dovecot plugins
156 Summary(pl.UTF-8):      Pakiet programistyczny do tworzenia wtyczek dla Dovecota
157 Group:          Development/Libraries
158 Requires:       %{name}-libs = %{epoch}:%{version}-%{release}
159
160 %description devel
161 Development package for Dovecot plugins.
162
163 %description devel -l pl.UTF-8
164 Pakiet programistyczny do tworzenia wtyczek dla Dovecota.
165
166 %prep
167 %setup -q
168 %patch0 -p1
169 %patch1 -p1
170 %patch2 -p1
171 %patch3 -p1
172 %patch4 -p1
173
174 %{__sed} -i 's,/usr/lib/dovecot,%{_libdir}/dovecot,g' doc/example-config/*.conf doc/example-config/conf.d/*.conf
175
176 %{__sed} -i 's,#!/usr/bin/env bash,#!/bin/bash,' src/util/health-check.sh
177
178 %build
179 touch config.rpath
180 %{__libtoolize}
181 %{__aclocal} -I . -I m4
182 %{__autoconf}
183 %{__autoheader}
184 %{__automake}
185 %configure \
186         ac_cv_path_VALGRIND=reject \
187         CPPFLAGS="%{rpmcppflags} -I/usr/include/libstemmer -D_LINUX_QUOTA_VERSION=2" \
188         --disable-static \
189         --enable-hardening \
190         %{?debug:--enable-debug} \
191         %{?with_ldap:--with-ldap=yes} \
192         %{?with_mysql:--with-mysql} \
193         %{?with_pgsql:--with-pgsql} \
194         %{?with_sqlite:--with-sqlite} \
195         %{?with_gssapi:--with-gssapi=plugin} \
196         %{?with_lua:--with-lua=plugin} \
197         --with-lucene \
198         --with-stemmer \
199         --with-solr \
200         --with-sql=plugin \
201         --with-pam \
202         --with-zlib \
203         --with-bzlib \
204         --with-libcap \
205         --with-ssl=openssl \
206         --with-zstd \
207 %ifarch x32
208         --without-libunwind \
209 %endif
210         --with-moduledir=%{_libdir}/%{name}/plugins \
211         --with-ssldir=/var/lib/openssl \
212         --sysconfdir=%{_sysconfdir} \
213         --with-systemdsystemunitdir=%{systemdunitdir}
214
215 %{__make}
216
217 %{?with_tests:%{__make} check}
218
219 %install
220 rm -rf $RPM_BUILD_ROOT
221 install -d $RPM_BUILD_ROOT/etc/{pam.d,rc.d/init.d,sysconfig,security} \
222         $RPM_BUILD_ROOT{/var/lib/dovecot,/var/run/dovecot/login} \
223         $RPM_BUILD_ROOT/usr/lib/tmpfiles.d
224
225 %{__make} install \
226         DESTDIR=$RPM_BUILD_ROOT
227
228 mv -f $RPM_BUILD_ROOT%{_datadir}/doc/%{name}/example-config/* $RPM_BUILD_ROOT%{_sysconfdir}/dovecot
229
230 cp -a %{SOURCE1} $RPM_BUILD_ROOT/etc/pam.d/%{name}
231 install -p %{SOURCE2} $RPM_BUILD_ROOT/etc/rc.d/init.d/%{name}
232 cp -a %{SOURCE3} $RPM_BUILD_ROOT/etc/sysconfig/%{name}
233 install %{SOURCE4} $RPM_BUILD_ROOT/usr/lib/tmpfiles.d/%{name}.conf
234
235 touch $RPM_BUILD_ROOT/etc/security/blacklist.imap
236
237 find $RPM_BUILD_ROOT%{_libdir}/%{name} -name '*.la' | xargs rm
238
239 %{__rm} -r $RPM_BUILD_ROOT%{_docdir}/%{name}
240 %{__rm} -r $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/README
241
242 %clean
243 rm -rf $RPM_BUILD_ROOT
244
245 %pre
246 %groupadd -g 172 dovecot
247 %useradd -u 172 -d /usr/share/empty -s /bin/false -c "Dovecot server" -g dovecot dovecot
248 %groupadd -g 254 dovenull
249 %useradd -u 254 -d /usr/share/empty -s /bin/false -c "Dovecot server" -g dovenull dovenull
250
251 %post
252 /sbin/chkconfig --add dovecot
253 %service dovecot restart
254 %systemd_post dovecot.socket dovecot.service
255
256 %preun
257 if [ "$1" = "0" ]; then
258         %service dovecot stop
259         /sbin/chkconfig --del dovecot
260 fi
261 %systemd_preun dovecot.service dovecot.socket
262
263 %postun
264 if [ "$1" = "0" ]; then
265         %userremove dovecot
266         %groupremove dovecot
267         %userremove dovenull
268         %groupremove dovenull
269 fi
270 %systemd_reload
271
272 %post   libs -p /sbin/ldconfig
273 %postun libs -p /sbin/ldconfig
274
275 %triggerin -- pam
276 # restart devocot if pam is upgraded
277 # (dovecot is linked with old libpam but tries to open modules linked with new libpam)
278 if [ "$2" != 1 ]; then
279         %service -q dovecot restart
280 fi
281
282 %triggerpostun -- dovecot < 1:2.0.0
283 # upgrading dovecot < 1.1
284 echo "Configuration change default_mail_env -> mail_location"
285 %{__sed} -i -e "s/^default_mail_env/mail_location/" /etc/dovecot/dovecot.conf
286 # upgrading dovecot < 2.0
287 i=0
288 for a in /etc/dovecot/dovecot-db-example.conf \
289         /etc/dovecot/dovecot-dict-sql-example.conf \
290         /etc/dovecot/dovecot-ldap-example.conf \
291         /etc/dovecot/dovecot-sql-example.conf \
292         /etc/dovecot/dovecot.conf; do
293         if [ -f "$a" ]; then
294                 [ "$i" -eq 0 ] && echo "Read http://wiki2.dovecot.org/Upgrading/2.0"
295                 i=1
296                 echo "Trying to migrate $a config file to dovecot 2."
297                 cp -a "$a" "$a-1.2.org"
298                 :> "$a.log"
299                 chmod 600 "$a.log"
300                 # convert config and prefix stderr lines with #
301                 %{_bindir}/doveconf -n -c "$a-1.2.org" > "$a" 2> "$a.log" || :
302         fi
303 done
304 if [ "$i" -eq 1 ]; then
305         echo "Please verify contents of %{_sysconfdir}/%{name}/* files."
306 fi
307
308 # < 1:2.2.4-2
309 %systemd_trigger dovecot.service dovecot.socket
310
311 %files
312 %defattr(644,root,root,755)
313 # COPYING contains some notes, not actual LGPL text
314 %doc AUTHORS COPYING ChangeLog NEWS README TODO doc/*.txt doc/*.c*f doc/wiki/*.txt
315 %attr(755,root,root) %{_bindir}/doveadm
316 %attr(755,root,root) %{_bindir}/doveconf
317 %attr(755,root,root) %{_bindir}/dovecot-sysreport
318 %attr(755,root,root) %{_bindir}/dsync
319 %attr(755,root,root) %{_sbindir}/%{name}
320 %attr(751,root,root) %dir %{_sysconfdir}/%{name}
321 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/%{name}.conf
322 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/*.ext
323 %attr(751,root,root) %dir %{_sysconfdir}/%{name}/conf.d
324 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/conf.d/*.conf
325 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/conf.d/*.ext
326 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/pam.d/%{name}
327 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/security/blacklist.imap
328 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/%{name}
329 %attr(754,root,root) /etc/rc.d/init.d/%{name}
330 %if "%{_libexecdir}" != "%{_libdir}"
331 %dir %{_libexecdir}/%{name}
332 %endif
333 %attr(755,root,root) %{_libexecdir}/%{name}/aggregator
334 %attr(755,root,root) %{_libexecdir}/%{name}/anvil
335 %attr(755,root,root) %{_libexecdir}/%{name}/auth
336 %attr(755,root,root) %{_libexecdir}/%{name}/checkpassword-reply
337 %attr(755,root,root) %{_libexecdir}/%{name}/config
338 %attr(755,root,root) %{_libexecdir}/%{name}/decode2text.sh
339 %attr(755,root,root) %{_libexecdir}/%{name}/deliver
340 %attr(755,root,root) %{_libexecdir}/%{name}/dict
341 %attr(755,root,root) %{_libexecdir}/%{name}/director
342 %attr(755,root,root) %{_libexecdir}/%{name}/dns-client
343 %attr(755,root,root) %{_libexecdir}/%{name}/doveadm-server
344 %attr(755,root,root) %{_libexecdir}/%{name}/dovecot-lda
345 %attr(755,root,root) %{_libexecdir}/%{name}/gdbhelper
346 %attr(755,root,root) %{_libexecdir}/%{name}/health-check.sh
347 %attr(755,root,root) %{_libexecdir}/%{name}/imap
348 %attr(755,root,root) %{_libexecdir}/%{name}/imap-hibernate
349 %attr(755,root,root) %{_libexecdir}/%{name}/imap-login
350 %attr(755,root,root) %{_libexecdir}/%{name}/imap-urlauth
351 %attr(755,root,root) %{_libexecdir}/%{name}/imap-urlauth-login
352 %attr(755,root,root) %{_libexecdir}/%{name}/imap-urlauth-worker
353 %attr(755,root,root) %{_libexecdir}/%{name}/indexer
354 %attr(755,root,root) %{_libexecdir}/%{name}/indexer-worker
355 %attr(755,root,root) %{_libexecdir}/%{name}/ipc
356 %attr(755,root,root) %{_libexecdir}/%{name}/lmtp
357 %attr(755,root,root) %{_libexecdir}/%{name}/log
358 %attr(755,root,root) %{_libexecdir}/%{name}/maildirlock
359 %attr(755,root,root) %{_libexecdir}/%{name}/old-stats
360 %attr(755,root,root) %{_libexecdir}/%{name}/pop3
361 %attr(755,root,root) %{_libexecdir}/%{name}/pop3-login
362 %attr(755,root,root) %{_libexecdir}/%{name}/quota-status
363 %attr(755,root,root) %{_libexecdir}/%{name}/rawlog
364 %attr(755,root,root) %{_libexecdir}/%{name}/replicator
365 %attr(755,root,root) %{_libexecdir}/%{name}/script
366 %attr(755,root,root) %{_libexecdir}/%{name}/script-login
367 %attr(755,root,root) %{_libexecdir}/%{name}/stats
368 %attr(755,root,root) %{_libexecdir}/%{name}/submission
369 %attr(755,root,root) %{_libexecdir}/%{name}/submission-login
370 %attr(755,root,root) %{_libexecdir}/%{name}/xml2text
371 %attr(755,root,root) %{_libdir}/%{name}/libdcrypt_openssl.so
372 %dir %{_libdir}/%{name}/plugins
373 %attr(755,root,root) %{_libdir}/%{name}/plugins/*.so
374 %dir %{_libdir}/%{name}/plugins/auth
375 %attr(755,root,root) %{_libdir}/%{name}/plugins/auth/*.so
376 %dir %{_libdir}/%{name}/plugins/dict
377 %attr(755,root,root) %{_libdir}/%{name}/plugins/dict/*.so
378 %dir %{_libdir}/%{name}/plugins/doveadm
379 %attr(755,root,root) %{_libdir}/%{name}/plugins/doveadm/*.so
380 %dir %{_libdir}/%{name}/plugins/old-stats
381 %attr(755,root,root) %{_libdir}/%{name}/plugins/old-stats/*.so
382 %{_datadir}/dovecot
383 %{systemdunitdir}/dovecot.service
384 %{systemdunitdir}/dovecot.socket
385 /usr/lib/tmpfiles.d/%{name}.conf
386 %dir /var/lib/dovecot
387 %dir /var/run/dovecot
388 %attr(750,root,dovenull) %dir /var/run/dovecot/login
389
390 %{_mandir}/man1/deliver.1*
391 %{_mandir}/man1/dove*.1*
392 %{_mandir}/man1/dsync.1*
393 %{_mandir}/man7/doveadm-search-query.7*
394
395 %files libs
396 %defattr(644,root,root,755)
397 %dir %{_libdir}/%{name}
398
399 %attr(755,root,root) %{_libdir}/%{name}/libdovecot.so.0.0.0
400 %attr(755,root,root) %{_libdir}/%{name}/libdovecot-compression.so.0.0.0
401 %attr(755,root,root) %{_libdir}/%{name}/libdovecot-dsync.so.0.0.0
402 %attr(755,root,root) %{_libdir}/%{name}/libdovecot-fts.so.0.0.0
403 %attr(755,root,root) %{_libdir}/%{name}/libdovecot-lda.so.0.0.0
404 %{?with_ldap:%attr(755,root,root) %{_libdir}/%{name}/libdovecot-ldap.so.0.0.0}
405 %attr(755,root,root) %{_libdir}/%{name}/libdovecot-login.so.0.0.0
406 %attr(755,root,root) %{_libdir}/%{name}/libdovecot-lua.so.0.0.0
407 %attr(755,root,root) %{_libdir}/%{name}/libdovecot-sql.so.0.0.0
408 %attr(755,root,root) %{_libdir}/%{name}/libdovecot-storage.so.0.0.0
409 %attr(755,root,root) %{_libdir}/%{name}/libdovecot-storage-lua.so.0.0.0
410 # Note: we are in %{_libdir}/dovecot, ldconfig does not look into this
411 # directory. This is why the following files are not %ghost
412 %attr(755,root,root) %{_libdir}/%{name}/libdovecot.so.0
413 %attr(755,root,root) %{_libdir}/%{name}/libdovecot-compression.so.0
414 %attr(755,root,root) %{_libdir}/%{name}/libdovecot-dsync.so.0
415 %attr(755,root,root) %{_libdir}/%{name}/libdovecot-fts.so.0
416 %attr(755,root,root) %{_libdir}/%{name}/libdovecot-lda.so.0
417 %{?with_ldap:%attr(755,root,root) %{_libdir}/%{name}/libdovecot-ldap.so.0}
418 %attr(755,root,root) %{_libdir}/%{name}/libdovecot-login.so.0
419 %attr(755,root,root) %{_libdir}/%{name}/libdovecot-lua.so.0
420 %attr(755,root,root) %{_libdir}/%{name}/libdovecot-sql.so.0
421 %attr(755,root,root) %{_libdir}/%{name}/libdovecot-storage.so.0
422 %attr(755,root,root) %{_libdir}/%{name}/libdovecot-storage-lua.so.0
423
424 %files devel
425 %defattr(644,root,root,755)
426 %attr(755,root,root) %{_libdir}/%{name}/libdovecot.so
427 %attr(755,root,root) %{_libdir}/%{name}/libdovecot-compression.so
428 %attr(755,root,root) %{_libdir}/%{name}/libdovecot-dsync.so
429 %attr(755,root,root) %{_libdir}/%{name}/libdovecot-fts.so
430 %attr(755,root,root) %{_libdir}/%{name}/libdovecot-lda.so
431 %{?with_ldap:%attr(755,root,root) %{_libdir}/%{name}/libdovecot-ldap.so}
432 %attr(755,root,root) %{_libdir}/%{name}/libdovecot-login.so
433 %attr(755,root,root) %{_libdir}/%{name}/libdovecot-lua.so
434 %attr(755,root,root) %{_libdir}/%{name}/libdovecot-sql.so
435 %attr(755,root,root) %{_libdir}/%{name}/libdovecot-storage.so
436 %attr(755,root,root) %{_libdir}/%{name}/libdovecot-storage-lua.so
437 %{_libdir}/%{name}/%{name}-config
438 %{_includedir}/%{name}
439 %{_aclocaldir}/dovecot.m4
This page took 0.070482 seconds and 4 git commands to generate.