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