/[packages]/cauldron/dovecot/current/SPECS/dovecot.spec
ViewVC logotype

Contents of /cauldron/dovecot/current/SPECS/dovecot.spec

Parent Directory Parent Directory | Revision Log Revision Log


Revision 404859 - (show annotations) (download)
Sun Mar 24 15:20:47 2013 UTC (11 years ago) by colin
File size: 15689 byte(s)
Add systemd requires and general post/pre fixes (mga#9302)
1 %define url_ver %(echo %{version} | cut -d. -f1,2)
2
3 %define build_gssapi 1
4 %define build_ldap 1
5 %define build_lucene 1
6 %define build_solr 1
7 %define build_mysql 1
8 %define build_pgsql 1
9 %define build_sqlite 1
10 %define build_pigeonhole 1
11
12 %{?_with_gssapi: %{expand: %%global build_gssapi 1}}
13 %{?_without_gssapi: %{expand: %%global build_gssapi 0}}
14 %{?_with_ldap: %{expand: %%global build_ldap 1}}
15 %{?_without_ldap: %{expand: %%global build_ldap 0}}
16 %{?_with_lucene: %{expand: %%global build_lucene 1}}
17 %{?_without_lucene: %{expand: %%global build_lucene 0}}
18 %{?_with_solr: %{expand: %%global build_solr 1}}
19 %{?_without_solr: %{expand: %%global build_solr 0}}
20 %{?_with_mysql: %{expand: %%global build_mysql 1}}
21 %{?_without_mysql: %{expand: %%global build_mysql 0}}
22 %{?_with_pgsql: %{expand: %%global build_pgsql 1}}
23 %{?_without_pgsql: %{expand: %%global build_pgsql 0}}
24 %{?_with_sqlite: %{expand: %%global build_sqlite 1}}
25 %{?_without_sqlite: %{expand: %%global build_sqlite 0}}
26 %{?_with_pigeonhole: %{expand: %%global build_pigeonhole 1}}
27 %{?_without_pigeonhole: %{expand: %%global build_pigeonhole 0}}
28
29 %define pigeonhole_ver 0.3.3
30
31 Summary: Secure IMAP and POP3 server
32 Name: dovecot
33 Version: 2.1.15
34 Release: %mkrel 2
35 License: MIT and LGPLv2 and BSD-like and Public Domain
36 Group: System/Servers
37 URL: http://dovecot.org
38 Source0: http://dovecot.org/releases/%{url_ver}/%{name}-%{version}.tar.gz
39 Source1: http://dovecot.org/releases/%{url_ver}/%{name}-%{version}.tar.gz.sig
40 Source2: %{name}-pamd
41 Source4: http://dovecot.org/tools/migration_wuimp_to_dovecot.pl
42 Source5: http://dovecot.org/tools/mboxcrypt.pl
43 Source6: http://www.rename-it.nl/%{name}/%{url_ver}/%{name}-%{url_ver}-pigeonhole-%{pigeonhole_ver}.tar.gz
44 Source7: http://www.rename-it.nl/%{name}/%{url_ver}/%{name}-%{url_ver}-pigeonhole-%{pigeonhole_ver}.tar.gz.sig
45 Source8: http://www.earth.ox.ac.uk/~steve/sieve/procmail2sieve.pl
46 Source9: %{name}-tmpfiles.conf
47 Patch1: pigeonhole-0.3.3-dovecot-link.patch
48 Provides: imap-server pop3-server
49 Provides: imaps-server pop3s-server
50 Requires(post): systemd >= %{systemd_required_version}
51 Requires(pre): rpm-helper >= 0.21
52 Requires(post): rpm-helper >= 0.21
53 Requires(preun): rpm-helper >= 0.21
54 Requires(postun): rpm-helper >= 0.21
55 # for /etc/ssl/ symlinks
56 Requires: rootcerts >= 20121018.00-2.mga3
57 BuildRequires: pam-devel
58 BuildRequires: openssl-devel
59 BuildRequires: libsasl-devel
60 BuildRequires: libcap-devel
61 BuildRequires: gettext-devel
62 BuildRequires: libgc-devel
63 %if %{build_ldap}
64 BuildRequires: openldap-devel
65 %endif
66 %if %{build_lucene}
67 BuildRequires: clucene-devel
68 %endif
69 %if %{build_solr}
70 BuildRequires: expat-devel
71 BuildRequires: curl-devel
72 %endif
73 %if %{build_mysql}
74 BuildRequires: mysql-devel
75 %endif
76 %if %{build_pgsql}
77 BuildRequires: postgresql-devel
78 %endif
79 %if %{build_gssapi}
80 BuildRequires: gssglue-devel
81 BuildRequires: krb5-devel
82 %endif
83 %if %{build_sqlite}
84 BuildRequires: sqlite3-devel
85 %endif
86 BuildRequires: rpm-helper >= 0.21
87 BuildRequires: zlib-devel
88 BuildRequires: bzip2-devel
89
90 %description
91 Dovecot is an IMAP and POP3 server for Linux/UNIX-like systems, written with
92 security primarily in mind. Although it's written with C, it uses several
93 coding techniques to avoid most of the common pitfalls.
94
95 Dovecot can work with standard mbox and maildir formats and it's fully
96 compatible with UW-IMAP and Courier IMAP servers as well as mail clients
97 accessing the mailboxes directly.
98
99 You can build %{name} with some conditional build swithes;
100
101 (ie. use with rpm --rebuild):
102
103 --with[out] gssapi GSSAPI support (enabled)
104 --with[out] ldap LDAP support (enabled)
105 --with[out] lucene Lucene support (enabled)
106 --with[out] solr Solr support (enabled)
107 --with[out] mysql MySQL support (enabled)
108 --with[out] pgsql PostgreSQL support (enabled)
109 --with[out] sqlite SQLite support (enabled)
110 --with[out] sieve Pigeonhole Sieve and ManageSieve support (enabled)
111
112 %if %{build_pigeonhole}
113
114 %package pigeonhole
115 Summary: Pigeonhole Sieve/ManageSieve plugin for dovecot LDA
116 Group: System/Servers
117 Requires: %{name} >= %{version}
118 Obsoletes: %{name}-plugins-sieve < 2.0, %{name}-plugins-managesieve < 2.0
119
120 %description pigeonhole
121 This package provides the Pigeonhole Sieve/ManageSieve plugin version %{pigeonhole_ver}
122 for dovecot LDA.
123
124 %package pigeonhole-devel
125 Summary: Pigeonhole Sieve/ManageSieve development files
126 Group: Development/C
127 Requires: %{name}-pigeonhole >= %{version}
128
129 %description pigeonhole-devel
130 This package contains development files for Pigeonhole Sieve/ManageSieve %{pigeonhole_ver}.
131
132 %endif
133
134 %if %{build_pgsql}
135 %package plugins-pgsql
136 Summary: Postgres SQL backend for dovecot
137 Group: System/Servers
138 Requires: %{name} >= %{version}
139
140 %description plugins-pgsql
141 This package provides the Postgres SQL backend for dovecot-auth etc.
142 %endif
143
144 %if %{build_mysql}
145 %package plugins-mysql
146 Summary: MySQL backend for dovecot
147 Group: System/Servers
148 Requires: %{name} >= %{version}
149
150 %description plugins-mysql
151 This package provides the MySQL backend for dovecot-auth etc.
152 %endif
153
154 %if %{build_ldap}
155 %package plugins-ldap
156 Summary: LDAP support for dovecot
157 Group: System/Servers
158 Requires: %{name} >= %{version}
159
160 %description plugins-ldap
161 This package provides LDAP capabilities to dovecot in a modular form.
162 %endif
163
164 %if %{build_gssapi}
165 %package plugins-gssapi
166 Summary: GSSAPI support for dovecot
167 Group: System/Servers
168 Requires: %{name} >= %{version}
169
170 %description plugins-gssapi
171 This package provides GSSAPI capabilities to dovecot in a modular form.
172 %endif
173
174 %if %{build_sqlite}
175 %package plugins-sqlite
176 Summary: SQLite backend for dovecot
177 Group: System/Servers
178 Requires: %{name} >= %{version}
179
180 %description plugins-sqlite
181 This package provides the SQLite backend for dovecot-auth etc.
182 %endif
183
184 %package devel
185 Summary: Development files for Dovecot IMAP and POP3 server
186 Group: Development/C
187 Requires: %{name} >= %{version}
188
189 %description devel
190 Dovecot is an IMAP and POP3 server for Linux/UNIX-like systems, written with
191 security primarily in mind. Although it's written with C, it uses several
192 coding techniques to avoid most of the common pitfalls.
193
194 Dovecot can work with standard mbox and maildir formats and it's fully
195 compatible with UW-IMAP and Courier IMAP servers as well as mail clients
196 accessing the mailboxes directly.
197
198 This package contains development files for dovecot.
199
200 %prep
201
202 %setup -q
203 # Bug #27491
204 %if %{build_lucene}
205 sed -i '/DEFAULT_INCLUDES *=/s|$| '"$(pkg-config --cflags libclucene-core)|" src/plugins/fts-lucene/Makefile.in
206 %endif
207
208 %if %{build_pigeonhole}
209 %setup -q -D -T -a 6
210 %define pigeonhole_dir %{name}-%{url_ver}-pigeonhole-%{pigeonhole_ver}
211 pushd %{pigeonhole_dir}
212 %patch1 -p1 -b .module
213 popd
214 %endif
215
216 %build
217 %serverbuild
218 %configure2_5x \
219 --disable-static \
220 --with-sql=plugin \
221 --with-ssl=openssl \
222 --with-nss \
223 --with-gc \
224 --with-libcap \
225 %if %{build_ldap}
226 --with-ldap=plugin \
227 %endif
228 %if %{build_pgsql}
229 --with-pgsql \
230 %endif
231 %if %{build_mysql}
232 --with-mysql \
233 %endif
234 %if %{build_sqlite}
235 --with-sqlite \
236 %endif
237 %if %{build_gssapi}
238 --with-gssapi=plugin \
239 %endif
240 %if %{build_lucene}
241 --with-lucene \
242 %endif
243 %if %{build_solr}
244 --with-solr \
245 %endif
246 --with-ssldir=%{_sysconfdir}/pki/tls \
247 --with-moduledir=%{_libdir}/%{name}/modules \
248 --with-rundir=/run/%{name} \
249 --with-statedir=%{_localstatedir}/lib/%{name} \
250 --with-systemdsystemunitdir=%{_unitdir}
251
252 %make
253
254 %if %{build_pigeonhole}
255 pushd %{pigeonhole_dir}
256 autoreconf
257 %configure2_5x \
258 --disable-static \
259 --with-dovecot=../ \
260 --with-unfinished-features
261 %make
262 popd
263 %endif
264
265 %install
266 install -d %{buildroot}%{_sysconfdir}/%{name}/conf.d
267 install -d %{buildroot}%{_sysconfdir}/pam.d
268 install -d %{buildroot}%{_libdir}/%{name}/modules
269 install -d %{buildroot}%{_localstatedir}/lib/%{name}
270
271 %makeinstall_std
272
273 %if %{build_pigeonhole}
274
275 pushd %{pigeonhole_dir}
276 %makeinstall_std
277 cp -a doc/example-config/conf.d/*.conf* %{buildroot}%{_sysconfdir}/%{name}/conf.d
278 popd
279
280 install -d -m 755 %{buildroot}%{_docdir}/%{name}-pigeonhole
281
282 %endif
283
284 cat %{SOURCE2} > %{buildroot}%{_sysconfdir}/pam.d/%{name}
285
286 # Dovecot installs docs by itself, but we'd better do that with %%doc.
287 # Get rid of garbage in the doc directory.
288 rm -rf %{buildroot}%{_docdir}/*
289
290 install doc/example-config/%{name}*.conf* %{buildroot}%{_sysconfdir}/%{name}
291 cp -a doc/example-config/conf.d/*.conf* %{buildroot}%{_sysconfdir}/%{name}/conf.d
292
293 cp %{SOURCE4} .
294 cp %{SOURCE5} .
295
296 # procmail2sieve converter
297 install -d -m 755 %{buildroot}%{_bindir}
298 install %{SOURCE8} -m 755 %{buildroot}%{_bindir}
299 perl -pi -e 's|#!/usr/local/bin/perl|#!%{_bindir}/perl|' \
300 %{buildroot}%{_bindir}/procmail2sieve.pl
301
302 install -D -p -m 0644 %{SOURCE9} %{buildroot}%{_tmpfilesdir}/%{name}.conf
303
304 # automatic reloading for new plugins
305 install -d %{buildroot}%{_var}/lib/rpm/filetriggers
306 cat > %{buildroot}%{_var}/lib/rpm/filetriggers/%{name}.filter << EOF
307 ^.%{_libdir}/%{name}/modules/.*\.so$
308 EOF
309 cat > %{buildroot}%{_var}/lib/rpm/filetriggers/%{name}.script << EOF
310 #!/bin/sh
311 systemctl try-restart %{name}.service
312 EOF
313 chmod 755 %{buildroot}%{_var}/lib/rpm/filetriggers/%{name}.script
314
315 # remove the libtool archives
316 find %{buildroot} -name '*.la' -delete
317
318 %pre
319 %_pre_useradd %{name} /var/lib/%{name} /bin/false
320 %_pre_groupadd %{name} %{name}
321 %_pre_useradd dovenull /var/lib/%{name} /bin/false
322 %_pre_groupadd dovenull dovenull
323
324 %post
325 %_tmpfilescreate %{name}
326 %_post_service %{name}
327 %_create_ssl_certificate %{name}
328
329 %preun
330 %_preun_service %{name}
331
332 %postun
333 %_postun_userdel %{name}
334 %_postun_groupdel %{name}
335 %_postun_userdel dovenull
336 %_postun_groupdel dovenull
337
338 %files
339 %doc AUTHORS ChangeLog COPYING* NEWS README TODO
340 %doc doc/*
341 %doc mboxcrypt.pl migration_wuimp_to_dovecot.pl
342
343 %dir %{_sysconfdir}/dovecot
344 %dir %{_sysconfdir}/dovecot/conf.d
345 %config(noreplace) %{_sysconfdir}/dovecot/README
346 #list all so we'll be noticed if upstream changes anything
347 %config(noreplace) %{_sysconfdir}/dovecot/dovecot.conf
348 %config(noreplace) %{_sysconfdir}/dovecot/dovecot-db.conf.ext
349 %config(noreplace) %{_sysconfdir}/dovecot/dovecot-dict-auth.conf.ext
350 %config(noreplace) %{_sysconfdir}/dovecot/dovecot-dict-sql.conf.ext
351 %config(noreplace) %{_sysconfdir}/dovecot/dovecot-ldap.conf.ext
352 %config(noreplace) %{_sysconfdir}/dovecot/dovecot-sql.conf.ext
353 %config(noreplace) %{_sysconfdir}/dovecot/conf.d/10-auth.conf
354 %config(noreplace) %{_sysconfdir}/dovecot/conf.d/10-director.conf
355 %config(noreplace) %{_sysconfdir}/dovecot/conf.d/10-logging.conf
356 %config(noreplace) %{_sysconfdir}/dovecot/conf.d/10-mail.conf
357 %config(noreplace) %{_sysconfdir}/dovecot/conf.d/10-master.conf
358 %config(noreplace) %{_sysconfdir}/dovecot/conf.d/10-ssl.conf
359 %config(noreplace) %{_sysconfdir}/dovecot/conf.d/15-lda.conf
360 %config(noreplace) %{_sysconfdir}/dovecot/conf.d/15-mailboxes.conf
361 %config(noreplace) %{_sysconfdir}/dovecot/conf.d/20-imap.conf
362 %config(noreplace) %{_sysconfdir}/dovecot/conf.d/20-lmtp.conf
363 %config(noreplace) %{_sysconfdir}/dovecot/conf.d/20-pop3.conf
364 %config(noreplace) %{_sysconfdir}/dovecot/conf.d/90-acl.conf
365 %config(noreplace) %{_sysconfdir}/dovecot/conf.d/90-quota.conf
366 %config(noreplace) %{_sysconfdir}/dovecot/conf.d/90-plugin.conf
367 %config(noreplace) %{_sysconfdir}/dovecot/conf.d/auth-checkpassword.conf.ext
368 %config(noreplace) %{_sysconfdir}/dovecot/conf.d/auth-deny.conf.ext
369 %config(noreplace) %{_sysconfdir}/dovecot/conf.d/auth-ldap.conf.ext
370 %config(noreplace) %{_sysconfdir}/dovecot/conf.d/auth-master.conf.ext
371 %config(noreplace) %{_sysconfdir}/dovecot/conf.d/auth-passwdfile.conf.ext
372 %config(noreplace) %{_sysconfdir}/dovecot/conf.d/auth-sql.conf.ext
373 %config(noreplace) %{_sysconfdir}/dovecot/conf.d/auth-static.conf.ext
374 %config(noreplace) %{_sysconfdir}/dovecot/conf.d/auth-system.conf.ext
375 %config(noreplace) %{_sysconfdir}/dovecot/conf.d/auth-vpopmail.conf.ext
376
377 %config(noreplace) %{_sysconfdir}/pam.d/%{name}
378
379 %attr(0750,dovecot,dovecot) %dir %{_localstatedir}/lib/%{name}
380
381 %if %{build_pigeonhole}
382 %exclude %{_libdir}/%{name}/modules/lib90_sieve_plugin.so
383 %exclude %{_libdir}/%{name}/modules/settings/libmanagesieve*.so
384 %endif
385
386 %{_bindir}/doveadm
387 %{_bindir}/doveconf
388 %{_bindir}/dsync
389 %{_sbindir}/%{name}
390
391 %dir %{_libdir}/%{name}
392 %{_libdir}/%{name}/dovecot-config
393 %{_libdir}/%{name}/modules
394 %exclude %{_libdir}/%{name}/modules/libdriver*sql*.so
395 %exclude %{_libdir}/%{name}/modules/*/libdriver*sql*.so
396 %{_libdir}/%{name}/libdovecot.so*
397 %{_libdir}/%{name}/libdovecot-lda.so*
398 %{_libdir}/%{name}/libdovecot-login.so*
399 %{_libdir}/%{name}/libdovecot-sql.so*
400 %{_libdir}/%{name}/libdovecot-ssl.so*
401 %{_libdir}/%{name}/libdovecot-storage.so*
402
403 %dir %{_libexecdir}/%{name}
404 %{_libexecdir}/%{name}/aggregator
405 %{_libexecdir}/%{name}/anvil
406 %{_libexecdir}/%{name}/auth
407 %{_libexecdir}/%{name}/checkpassword-reply
408 %{_libexecdir}/%{name}/config
409 %{_libexecdir}/%{name}/decode2text.sh
410 %{_libexecdir}/%{name}/deliver
411 %{_libexecdir}/%{name}/dict
412 %{_libexecdir}/%{name}/director
413 %{_libexecdir}/%{name}/dns-client
414 %{_libexecdir}/%{name}/doveadm-server
415 %{_libexecdir}/%{name}/dovecot-lda
416 %{_libexecdir}/%{name}/gdbhelper
417 %{_libexecdir}/%{name}/imap
418 %{_libexecdir}/%{name}/imap-login
419 %{_libexecdir}/%{name}/indexer
420 %{_libexecdir}/%{name}/indexer-worker
421 %{_libexecdir}/%{name}/ipc
422 %{_libexecdir}/%{name}/lmtp
423 %{_libexecdir}/%{name}/log
424 %{_libexecdir}/%{name}/maildirlock
425 %{_libexecdir}/%{name}/pop3
426 %{_libexecdir}/%{name}/pop3-login
427 %{_libexecdir}/%{name}/rawlog
428 %{_libexecdir}/%{name}/replicator
429 %{_libexecdir}/%{name}/script
430 %{_libexecdir}/%{name}/script-login
431 %{_libexecdir}/%{name}/ssl-params
432 %{_libexecdir}/%{name}/stats
433 %{_libexecdir}/%{name}/xml2text
434
435 %{_unitdir}/%{name}.service
436 %{_unitdir}/%{name}.socket
437 %{_tmpfilesdir}/%{name}.conf
438
439 %{_mandir}/man1/doveadm*.1*
440 %{_mandir}/man1/dovecot*.1*
441 %{_mandir}/man1/doveconf*.1*
442 %{_mandir}/man1/deliver.1*
443 %{_mandir}/man1/dsync.1*
444 %{_mandir}/man7/doveadm*.7*
445
446 %{_var}/lib/rpm/filetriggers/%{name}.*
447
448 %if %{build_pigeonhole}
449 %files pigeonhole
450 %doc %{pigeonhole_dir}/{AUTHORS,ChangeLog,COPYING*,INSTALL,NEWS,README}
451 %doc %{pigeonhole_dir}/doc/*
452 %{_sysconfdir}/%{name}/conf.d/20-managesieve.conf
453 %{_sysconfdir}/%{name}/conf.d/90-sieve.conf
454 %{_bindir}/procmail2sieve.pl
455 %{_bindir}/sieve-dump
456 %{_bindir}/sieve-filter
457 %{_bindir}/sieve-test
458 %{_bindir}/sievec
459 %{_libdir}/%{name}/lib%{name}-sieve.so*
460 %{_libexecdir}/%{name}/managesieve
461 %{_libexecdir}/%{name}/managesieve-login
462 %{_libdir}/%{name}/modules/lib90_sieve_plugin.so
463 %{_libdir}/%{name}/modules/settings/libmanagesieve_settings.so
464 %{_libdir}/%{name}/modules/settings/libmanagesieve_login_settings.so
465 %{_mandir}/man1/sievec.1*
466 %{_mandir}/man1/sieved.1*
467 %{_mandir}/man1/sieve-dump.1*
468 %{_mandir}/man1/sieve-filter.1*
469 %{_mandir}/man1/sieve-test.1*
470 %{_mandir}/man7/pigeonhole.7*
471
472 %files pigeonhole-devel
473 %{_includedir}/%{name}/sieve
474
475 %endif
476
477 %if %{build_ldap}
478 %files plugins-ldap
479 %{_libdir}/%{name}/modules/auth/libauthdb_ldap.so
480 %endif
481
482 %if %{build_gssapi}
483 %files plugins-gssapi
484 %{_libdir}/%{name}/modules/auth/libmech_gssapi.so
485 %endif
486
487 %if %{build_sqlite}
488 %files plugins-sqlite
489 %{_libdir}/%{name}/modules/libdriver_sqlite.so
490 %{_libdir}/%{name}/modules/auth/libdriver_sqlite.so
491 %{_libdir}/%{name}/modules/dict/libdriver_sqlite.so
492 %endif
493
494 %if %{build_mysql}
495 %files plugins-mysql
496 %{_libdir}/%{name}/modules/libdriver_mysql.so
497 %{_libdir}/%{name}/modules/auth/libdriver_mysql.so
498 %{_libdir}/%{name}/modules/dict/libdriver_mysql.so
499 %endif
500
501 %if %{build_pgsql}
502 %files plugins-pgsql
503 %{_libdir}/%{name}/modules/libdriver_pgsql.so
504 %{_libdir}/%{name}/modules/auth/libdriver_pgsql.so
505 %{_libdir}/%{name}/modules/dict/libdriver_pgsql.so
506 %endif
507
508 %files devel
509 %dir %{_includedir}/%{name}
510 %{_includedir}/%{name}/*
511 %{_libdir}/%{name}/dovecot-config
512 %{_datadir}/aclocal/%{name}.m4
513 %if %{build_pigeonhole}
514 %exclude %{_includedir}/%{name}/sieve
515 %endif

  ViewVC Help
Powered by ViewVC 1.1.30