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