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