]> git.pld-linux.org Git - packages/cyrus-imapd.git/blob - cyrus-imapd.spec
- http bcond
[packages/cyrus-imapd.git] / cyrus-imapd.spec
1 #
2 # Conditional build:
3 %bcond_without  http            # build without http support
4 %bcond_without  perl            # build with perl
5
6 %{?with_perl:%include   /usr/lib/rpm/macros.perl}
7 Summary:        High-performance mail store with IMAP and POP3
8 Summary(pl.UTF-8):      Wysoko wydajny serwer IMAP i POP3
9 Summary(pt_BR.UTF-8):   Um servidor de mail de alto desempenho que suporta IMAP e POP3
10 Name:           cyrus-imapd
11 Version:        3.0.8
12 Release:        2
13 License:        BSD-like
14 Group:          Networking/Daemons/POP3
15 Source0:        ftp://ftp.cyrusimap.org/cyrus-imapd/%{name}-%{version}.tar.gz
16 # Source0-md5:  7dc5cf7987d146c6df608146087e0c75
17 Source1:        cyrus-README
18 Source2:        cyrus-procmailrc
19 Source3:        cyrus-deliver-wrapper.c
20 Source4:        cyrus-user-procmailrc.template
21 Source5:        %{name}-procmail+cyrus.mc
22 Source6:        %{name}.logrotate
23 Source7:        %{name}.conf
24 Source9:        %{name}.pamd
25 Source10:       %{name}-pop.pamd
26 Source11:       %{name}.init
27 Source12:       cyrus.conf
28 Source13:       cyrus-sync.init
29 Patch0:         %{name}-et.patch
30 Patch1:         link.patch
31 Patch2:         %{name}-clamav-0.101.patch
32 URL:            http://www.cyrusimap.org/
33 BuildRequires:  autoconf >= 2.54
34 BuildRequires:  automake
35 BuildRequires:  cyrus-sasl-devel >= 1.5.27
36 BuildRequires:  db-devel >= 4.1.25
37 BuildRequires:  flex
38 %{?with_http:BuildRequires:     libbrotli-devel}
39 BuildRequires:  libcom_err-devel >= 1.21
40 %{?with_http:BuildRequires:     libical-devel}
41 BuildRequires:  libtool
42 %{?with_http:BuildRequires:     libxml2-devel >= 2.7.3}
43 BuildRequires:  net-snmp-devel
44 %{?with_http:BuildRequires:     nghttp2-devel >= 1.5}
45 BuildRequires:  openssl-devel >= 0.9.7d
46 BuildRequires:  patchutils
47 %{?with_perl:BuildRequires:     perl-devel >= 1:5.8.0}
48 %{?with_perl:BuildRequires:     rpm-perlprov}
49 %{?with_http:BuildRequires:     shapelib-devel >= 1.4.1}
50 %{?with_http:BuildRequires:     sqlite3-devel}
51 BuildRequires:  rpmbuild(macros) >= 1.527
52 Requires(post,preun):   /sbin/chkconfig
53 Requires(postun):       /usr/sbin/userdel
54 Requires(pre):  /bin/id
55 Requires(pre):  /usr/sbin/useradd
56 Requires:       %{name}-libs = %{version}-%{release}
57 Requires:       rc-scripts >= 0.4.0.18
58 # needed by scripts from %{_bindir}
59 Requires:       pam >= 0.79.0
60 %{?with_perl:Requires:  perl-%{name} = %{version}-%{release}}
61 Provides:       imapdaemon
62 Provides:       pop3daemon
63 Provides:       user(cyrus)
64 Obsoletes:      imap
65 Obsoletes:      imapd
66 Obsoletes:      imapdaemon
67 Obsoletes:      pop3daemon
68 Conflicts:      courier-imap
69 Conflicts:      courier-imap-common
70 Conflicts:      courier-imap-pop3
71 Conflicts:      imap
72 Conflicts:      imap-common
73 Conflicts:      imap-pop2
74 Conflicts:      imap-pop3
75 Conflicts:      qpopper
76 Conflicts:      qpopper6
77 Conflicts:      solid-pop3d
78 Conflicts:      tpop3d
79 BuildRoot:      %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
80
81 %define         _libexecdir     %{_libdir}/cyrus
82
83 %define         skip_post_check_so      libcyrus(|_min|_imap|_sieve).so.*
84
85 %description
86 The Cyrus IMAP server is a scalable enterprise mail system designed
87 for use from small to large enterprise environments using
88 standards-based technologies.
89
90 A full Cyrus IMAP implementation allows a seamless mail and bulletin
91 board environment to be set up across multiple servers. It differs
92 from other IMAP server implementations in that it is run on "sealed"
93 servers, where users are not normally permitted to log in. The mailbox
94 database is stored in parts of the filesystem that are private to the
95 Cyrus IMAP system. All user access to mail is through software using
96 the IMAP, POP3, or KPOP protocols.
97
98 %description -l pl.UTF-8
99 Serwer Cyrus IMAP jest skalowalnym systemem e-mail dla
100 przedsiębiorstwa, zaprojektowanym dla małych i dużych firm i
101 wykorzystującym oparte na standardach technologie.
102
103 Pełna implementacja Cyrus IMAP pozwala na bezproblemowe ustawienie
104 środowiska poczty i elektronicznej tablicy ogłoszeniowej na kilku
105 serwerach. Tym się różni od innych implementacji serwerów IMAP, że
106 jest uruchamiany na "opieczętowanych" serwerach, na które w normalnych
107 warunkach użytkownicy nie mogą się zalogować. Baza danych skrzynek
108 pocztowych jest przechowywana w tych częściach systemu plików, które
109 są dostępne jedynie dla systemu IMAP Cyrus. Wszelki dostęp do poczty
110 ma miejsce poprzez oprogramowanie wykorzystujące protokoły IMAP, POP3
111 oraz KPOP.
112
113 %description -l pt_BR.UTF-8
114 O servidor IMAP Cyrus é um sistema de mail corporativo escalável
115 projetado para uso por pequenos a grandes ambientes corporativos
116 usando tecnologias baseadas em padrões abertos.
117
118 Uma implementação completa do Cyrus permite se configurar um ambiente
119 transparente de mail e bulletin board entre múltiplos servidores. Ele
120 difere de outros servidores IMAP por rodar em servidores "selados",
121 onde usuários não possuem normalmente a permissão de log in. O banco
122 de dados de caixas de mail é armazenado em partes do sistema de
123 arquivos que são privativos do sistema Cyrus. Todo o acesso de
124 usuários aos mails se dá através de software usando os protocolos
125 IMAP, POP3 ou KPOP.
126
127 %package libs
128 Summary:        Shared cyrus-imapd libraries
129 Summary(pl.UTF-8):      Współdzielone biblioteki cyrus-imapd
130 Group:          Libraries
131
132 %description libs
133 Shared cyrus-imapd libraries.
134
135 %description libs -l pl.UTF-8
136 Współdzielone biblioteki cyrus-imapd.
137
138 %package devel
139 Summary:        Header files for developing with cyrus-imapd libraries
140 Summary(pl.UTF-8):      Pliki nagłówkowe do programowania z użyciem bibliotek cyrus-imapd
141 Group:          Development/Libraries
142 Requires:       %{name}-libs = %{version}-%{release}
143
144 %description devel
145 This package provides the necessary header files files to allow you to
146 develop with cyrus-imapd libraries.
147
148 %description devel -l pl.UTF-8
149 Ten pakiet zawiera pliki nagłówkowe niezbędne do tworzenia
150 oprogramowania z wykorzystaniem bibliotek cyrus-imapd.
151
152 %package static
153 Summary:        Static cyrus-imapd libraries
154 Summary(pl.UTF-8):      Biblioteki statyczne cyrus-imapd
155 Group:          Development/Libraries
156 Requires:       %{name}-devel = %{version}-%{release}
157
158 %description static
159 Static cyrus-imapd libraries
160
161 %description static -l pl.UTF-8
162 Biblioteki statyczne cyrus-imapd
163
164 %package -n perl-%{name}
165 Summary:        Perl interface to cyrus-imapd library
166 Summary(pl.UTF-8):      Perlowy interfejs do biblioteki cyrus-imapd
167 Group:          Development/Languages/Perl
168 Requires:       %{name}-libs = %{version}-%{release}
169
170 %description -n perl-%{name}
171 Perl interface to cyrus-imapd library.
172
173 %description -n perl-%{name} -l pl.UTF-8
174 Perlowy interfejs do biblioteki cyrus-imapd.
175
176 %prep
177 %setup -q
178 %patch0 -p1
179 %patch1 -p1
180 %patch2 -p1
181
182 rm -rf autom4te.cache
183
184 cp -p %{SOURCE1} %{SOURCE2} %{SOURCE4} %{SOURCE5} .
185
186 %build
187 %{__libtoolize}
188 %{__aclocal}
189 %{__autoheader}
190 %{__autoconf}
191 %{__automake}
192 %configure \
193         --with-com_err=/usr \
194         --%{!?with_perl:without-perl}%{?with_perl:with-perl=%{__perl}} \
195         --without-libwrap \
196         %{__enable_disable http} \
197         --enable-nntp \
198         --enable-replication \
199         --enable-static
200
201 %{__make} -j1 \
202         INSTALLDIRS=vendor \
203         VERSION=%{version}
204
205 %{__cc} %{rpmcflags} \
206         -DLIBEXECDIR="\"%{_libexecdir}\"" %{rpmldflags} -Wall -o deliver-wrapper %{SOURCE3}
207
208 %install
209 rm -rf $RPM_BUILD_ROOT
210 install -d \
211         $RPM_BUILD_ROOT{%{_sbindir},%{_libexecdir},%{_mandir}} \
212         $RPM_BUILD_ROOT%{_sysconfdir}/{logrotate.d,sysconfig/rc-inetd} \
213         $RPM_BUILD_ROOT/var/spool/imap/stage. \
214         $RPM_BUILD_ROOT/var/lib/imap/{user,quota,proc,log,msg,deliverdb/db,sieve,db,socket} \
215         $RPM_BUILD_ROOT/etc/{security,pam.d,rc.d/init.d}
216
217 touch $RPM_BUILD_ROOT/var/lib/imap/mailboxes \
218         $RPM_BUILD_ROOT/var/lib/imap/faillog \
219         $RPM_BUILD_ROOT/etc/security/blacklist.imap \
220         $RPM_BUILD_ROOT/etc/security/blacklist.pop3
221
222 %{__make} install \
223         DESTDIR=$RPM_BUILD_ROOT \
224         CYRUS_USER=%(id -u) \
225         CYRUS_GROUP=%(id -g) \
226         INSTALLDIRS=vendor
227
228 # ensure +x bit for rpm autodeps
229 chmod +x $RPM_BUILD_ROOT%{_libdir}/*.so*
230
231 install -p deliver-wrapper $RPM_BUILD_ROOT%{_libexecdir}/deliver-wrapper
232
233 cp -p %{SOURCE6} $RPM_BUILD_ROOT/etc/logrotate.d/cyrus-imapd
234 cp -p %{SOURCE7} $RPM_BUILD_ROOT%{_sysconfdir}/imapd.conf
235 cp -p %{SOURCE9} $RPM_BUILD_ROOT/etc/pam.d/imap
236 cp -p %{SOURCE10} $RPM_BUILD_ROOT/etc/pam.d/pop
237 sed -e 's,/''usr/lib/cyrus,%{_libexecdir},' %{SOURCE11} > $RPM_BUILD_ROOT/etc/rc.d/init.d/cyrus-imapd
238 sed -e 's,/''usr/lib/cyrus,%{_libexecdir},' %{SOURCE13} > $RPM_BUILD_ROOT/etc/rc.d/init.d/cyrus-sync
239 cp -p %{SOURCE12} $RPM_BUILD_ROOT%{_sysconfdir}/cyrus.conf
240
241 # We rename some utils, so we need to sort out the manpages
242 for i in master reconstruct quota deliver; do
243         mv $RPM_BUILD_ROOT%{_mandir}/man8/{,cyr}$i.8
244 done
245
246 %{__rm} $RPM_BUILD_ROOT%{_mandir}/man8/idled.8
247
248 touch $RPM_BUILD_ROOT/etc/security/blacklist.{imap,pop3}
249
250 # make hashed dirs
251 for i in $(%{__perl} -le 'print for "a".."z"'); do
252         install -d $RPM_BUILD_ROOT%{_var}/lib/imap/user/$i
253         install -d $RPM_BUILD_ROOT%{_var}/lib/imap/quota/$i
254         install -d $RPM_BUILD_ROOT%{_var}/lib/imap/sieve/$i
255         install -d $RPM_BUILD_ROOT%{_var}/spool/imap/$i
256 done
257
258 %if %{with perl}
259 find $RPM_BUILD_ROOT%{perl_vendorarch} -name .packlist | xargs rm -v
260 %{__rm} $RPM_BUILD_ROOT%{perl_archlib}/perllocal.pod
261 %endif
262
263 %clean
264 rm -rf $RPM_BUILD_ROOT
265
266 %pre
267 %useradd -u 76 -d /var/spool/imap -s /bin/false -c "Cyrus User" -g mail cyrus
268
269 %post
270 touch /var/lib/imap/faillog
271 chown cyrus:mail /var/lib/imap/faillog
272 chmod 640 /var/lib/imap/faillog
273 cd /var/lib/imap
274 chattr +S . user quota user/* quota/* 2>/dev/null ||:
275 chattr +S /var/spool/imap /var/spool/imap/* 2>/dev/null ||:
276
277 /sbin/chkconfig --add cyrus-imapd
278 %service cyrus-imapd restart "cyrus imap daemon"
279 %service cyrus-sync restart "cyrus replication service"
280
281 %preun
282 if [ "$1" = "0" ]; then
283         %service cyrus-imapd stop
284         %service cyrus-sync stop
285         /sbin/chkconfig --del cyrus-imapd
286         /sbin/chkconfig --del cyrus-sync
287 fi
288
289 %postun
290 if [ "$1" = "0" ]; then
291         %userremove cyrus
292 fi
293
294 %post   libs -p /sbin/ldconfig
295 %postun libs -p /sbin/ldconfig
296
297 %files
298 %defattr(644,root,root,755)
299 %doc cyrus-README cyrus-procmailrc cyrus-user-procmailrc.template
300 %doc cyrus-imapd-procmail+cyrus.mc COPYING tools
301 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/*.conf
302 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/logrotate.d/cyrus-imapd
303 %attr(440,cyrus,root) %config(noreplace) %verify(not md5 mtime size) /etc/pam.d/*
304 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/security/blacklist.*
305 %attr(754,root,root) /etc/rc.d/init.d/cyrus-imapd
306 %attr(754,root,root) /etc/rc.d/init.d/cyrus-sync
307 %attr(640,cyrus,mail) %ghost /var/lib/imap/faillog
308 %attr(755,root,root) %{_bindir}/cyradm
309 %attr(755,root,root) %{_bindir}/httptest
310 %attr(755,root,root) %{_bindir}/imtest
311 %attr(755,root,root) %{_bindir}/installsieve
312 %attr(755,root,root) %{_bindir}/lmtptest
313 %attr(755,root,root) %{_bindir}/mupdatetest
314 %attr(755,root,root) %{_bindir}/nntptest
315 %attr(755,root,root) %{_bindir}/pop3test
316 %attr(755,root,root) %{_bindir}/sieveshell
317 %attr(755,root,root) %{_bindir}/sivtest
318 %attr(755,root,root) %{_bindir}/smtptest
319 %attr(755,root,root) %{_bindir}/synctest
320
321 %dir %{_libexecdir}
322 %attr(2755,cyrus,mail) %{_libexecdir}/deliver-wrapper
323 %attr(755,root,root) %{_libexecdir}/fud
324 %{?with_http:%attr(755,root,root) %{_libexecdir}/httpd}
325 %attr(755,root,root) %{_libexecdir}/imapd
326 %attr(755,root,root) %{_libexecdir}/lmtpd
327 %attr(755,root,root) %{_libexecdir}/lmtpproxyd
328 %attr(755,root,root) %{_libexecdir}/master
329 %attr(755,root,root) %{_libexecdir}/nntpd
330 %attr(755,root,root) %{_libexecdir}/notifyd
331 %attr(755,root,root) %{_libexecdir}/pop3d
332 %attr(755,root,root) %{_libexecdir}/pop3proxyd
333 %attr(755,root,root) %{_libexecdir}/proxyd
334 %attr(755,root,root) %{_libexecdir}/smmapd
335 %attr(755,root,root) %{_libexecdir}/sync_server
336 %attr(755,root,root) %{_libexecdir}/timsieved
337 %attr(755,root,root) %{_sbindir}/arbitron
338 %attr(755,root,root) %{_sbindir}/chk_cyrus
339 %attr(755,root,root) %{_sbindir}/ctl_conversationsdb
340 %attr(755,root,root) %{_sbindir}/ctl_cyrusdb
341 %attr(755,root,root) %{_sbindir}/ctl_deliver
342 %attr(755,root,root) %{_sbindir}/ctl_mboxlist
343 %{?with_http:%attr(755,root,root) %{_sbindir}/ctl_zoneinfo}
344 %attr(755,root,root) %{_sbindir}/cvt_cyrusdb
345 %attr(755,root,root) %{_sbindir}/cvt_xlist_specialuse
346 %attr(755,root,root) %{_sbindir}/cyr_buildinfo
347 %attr(755,root,root) %{_sbindir}/cyr_dbtool
348 %attr(755,root,root) %{_sbindir}/cyr_deny
349 %attr(755,root,root) %{_sbindir}/cyr_df
350 %attr(755,root,root) %{_sbindir}/cyrdump
351 %attr(755,root,root) %{_sbindir}/cyr_expire
352 %attr(755,root,root) %{_sbindir}/cyr_info
353 %attr(755,root,root) %{_sbindir}/cyr_sequence
354 %attr(755,root,root) %{_sbindir}/cyr_synclog
355 %attr(755,root,root) %{_sbindir}/cyr_userseen
356 %attr(755,root,root) %{_sbindir}/cyr_virusscan
357 %{?with_http:%attr(755,root,root) %{_sbindir}/dav_reconstruct}
358 %attr(755,root,root) %{_sbindir}/deliver
359 %attr(755,root,root) %{_sbindir}/fetchnews
360 %attr(755,root,root) %{_sbindir}/ipurge
361 %attr(755,root,root) %{_sbindir}/mbexamine
362 %attr(755,root,root) %{_sbindir}/mbpath
363 %attr(755,root,root) %{_sbindir}/mbtool
364 %attr(755,root,root) %{_sbindir}/quota
365 %attr(755,root,root) %{_sbindir}/reconstruct
366 %attr(755,root,root) %{_sbindir}/sievec
367 %attr(755,root,root) %{_sbindir}/sieved
368 %attr(755,root,root) %{_sbindir}/squatter
369 %attr(755,root,root) %{_sbindir}/sync_client
370 %attr(755,root,root) %{_sbindir}/sync_reset
371 %attr(755,root,root) %{_sbindir}/tls_prune
372 %attr(755,root,root) %{_sbindir}/unexpunge
373
374 %attr(750,cyrus,mail) /var/spool/imap
375 %attr(750,cyrus,mail) %dir /var/lib/imap
376 %attr(750,cyrus,mail) %dir /var/lib/imap/deliverdb
377 %attr(750,cyrus,mail) /var/lib/imap/deliverdb/db
378 %attr(750,cyrus,mail) /var/lib/imap/quota
379 %attr(750,cyrus,mail) /var/lib/imap/user
380 %attr(750,cyrus,mail) /var/lib/imap/sieve
381 %attr(750,cyrus,mail) /var/lib/imap/log
382 %attr(750,cyrus,mail) /var/lib/imap/msg
383 %attr(750,cyrus,mail) /var/lib/imap/proc
384 %attr(750,cyrus,mail) /var/lib/imap/db
385 %attr(750,cyrus,mail) /var/lib/imap/socket
386 %attr(750,cyrus,mail) %config(noreplace) %verify(not md5 mtime size) /var/lib/imap/mailboxes
387
388 %{_mandir}/man*/*
389
390 %files libs
391 %defattr(644,root,root,755)
392 %attr(755,root,root) %{_libdir}/libcyrus.so.0
393 %attr(755,root,root) %ghost %{_libdir}/libcyrus.so.*.*
394 %attr(755,root,root) %{_libdir}/libcyrus_min.so.0
395 %attr(755,root,root) %ghost %{_libdir}/libcyrus_min.so.*.*
396 %attr(755,root,root) %{_libdir}/libcyrus_imap.so.0
397 %attr(755,root,root) %ghost %{_libdir}/libcyrus_imap.so.*.*
398 %attr(755,root,root) %{_libdir}/libcyrus_sieve.so.0
399 %attr(755,root,root) %ghost %{_libdir}/libcyrus_sieve.so.*.*
400
401 %files devel
402 %defattr(644,root,root,755)
403 %{_includedir}/cyrus
404 %attr(755,root,root) %{_libdir}/libcyrus.so
405 %attr(755,root,root) %{_libdir}/libcyrus_min.so
406 %attr(755,root,root) %{_libdir}/libcyrus_imap.so
407 %attr(755,root,root) %{_libdir}/libcyrus_sieve.so
408 %{_libdir}/libcyrus.la
409 %{_libdir}/libcyrus_min.la
410 %{_libdir}/libcyrus_imap.la
411 %{_libdir}/libcyrus_sieve.la
412 %{_pkgconfigdir}/libcyrus.pc
413 %{_pkgconfigdir}/libcyrus_min.pc
414 %{_pkgconfigdir}/libcyrus_sieve.pc
415
416 %files static
417 %defattr(644,root,root,755)
418 %{_libdir}/libcyrus.a
419 %{_libdir}/libcyrus_imap.a
420 %{_libdir}/libcyrus_min.a
421 %{_libdir}/libcyrus_sieve.a
422
423 %if %{with perl}
424 %files -n perl-%{name}
425 %defattr(644,root,root,755)
426 %{perl_vendorarch}/Cyrus
427 %dir %{perl_vendorarch}/auto/Cyrus
428 %dir %{perl_vendorarch}/auto/Cyrus/IMAP
429 %attr(755,root,root) %{perl_vendorarch}/auto/Cyrus/IMAP/IMAP.so
430 %dir %{perl_vendorarch}/auto/Cyrus/SIEVE
431 %dir %{perl_vendorarch}/auto/Cyrus/SIEVE/managesieve
432 %attr(755,root,root) %{perl_vendorarch}/auto/Cyrus/SIEVE/managesieve/managesieve.so
433 %endif
This page took 0.71352 seconds and 4 git commands to generate.