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