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