]> git.pld-linux.org Git - packages/cyrus-imapd.git/blob - cyrus-imapd.spec
- rel 1
[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.18
12 Release:        4
13 License:        BSD-like
14 Group:          Networking/Daemons/POP3
15 Source0:        ftp://ftp.cyrusimap.org/cyrus-imapd/%{name}-%{version}.tar.gz
16 # Source0-md5:  6b5151fbb1619cf1a133f65f55cda619
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 %if "%{_rpmversion}" >= "5"
178 BuildArch:      noarch
179 %endif
180
181 %description doc
182 Cyrus-IMAP HTML documentation.
183
184 %prep
185 %setup -q
186 %patch6 -p1
187 %patch0 -p1
188 %if %{with shared}
189 lsdiff --strip 1 %{PATCH1} |grep -E '(configure.in|Makefile.in)'| xargs %{__sed} -i -e '
190         s/\.o/.lo/g
191         s/\.a/.la/g
192 '
193 %patch1 -p1
194 %endif
195 %patch2 -p1
196 %patch3 -p1
197 %patch4 -p1
198
199 rm -rf autom4te.cache
200
201 cp -p %{SOURCE1} %{SOURCE2} %{SOURCE4} %{SOURCE5} .
202
203 %build
204 cd makedepend
205 %{__libtoolize}
206 %{__aclocal}
207 %{__autoconf}
208 cp -f %{_datadir}/automake/config.* .
209 %configure
210 %{__make}
211 PATH=$PATH:$(pwd); export PATH
212 cd ..
213 %{__libtoolize}
214 %{__aclocal} -I cmulocal
215 %{__autoheader}
216 %{__autoconf}
217 cp -f %{_datadir}/automake/config.* .
218 cp -f %{_datadir}/automake/install-sh .
219 %configure \
220         --with-cyrus-prefix=%{_libexecdir} \
221         --with-service-path=%{_libexecdir} \
222         --with-com_err=/usr \
223         --%{!?with_perl:without-perl}%{?with_perl:with-perl=%{__perl}} \
224         --without-libwrap \
225         --enable-nntp \
226         --enable-replication
227 %{__make} -j1 \
228         INSTALLDIRS=vendor \
229         VERSION=%{version}
230
231 %{__cc} %{rpmcflags} \
232         -DLIBEXECDIR="\"%{_libexecdir}\"" %{rpmldflags} -Wall -o deliver-wrapper %{SOURCE3}
233
234 %install
235 rm -rf $RPM_BUILD_ROOT
236 install -d \
237         $RPM_BUILD_ROOT{%{_sbindir},%{_libexecdir},%{_mandir}} \
238         $RPM_BUILD_ROOT%{_sysconfdir}/{logrotate.d,sysconfig/rc-inetd} \
239         $RPM_BUILD_ROOT/var/spool/imap/stage. \
240         $RPM_BUILD_ROOT/var/lib/imap/{user,quota,proc,log,msg,deliverdb/db,sieve,db,socket} \
241         $RPM_BUILD_ROOT/etc/{security,pam.d,rc.d/init.d}
242
243 touch $RPM_BUILD_ROOT/var/lib/imap/mailboxes \
244         $RPM_BUILD_ROOT/var/lib/imap/faillog \
245         $RPM_BUILD_ROOT/etc/security/blacklist.imap \
246         $RPM_BUILD_ROOT/etc/security/blacklist.pop3
247
248 %{__make} install \
249         DESTDIR=$RPM_BUILD_ROOT \
250         CYRUS_USER=%(id -u) \
251         CYRUS_GROUP=%(id -g) \
252         INSTALLDIRS=vendor
253
254 # ensure +x bit for rpm autodeps
255 chmod +x $RPM_BUILD_ROOT%{_libdir}/*.so*
256
257 install -p deliver-wrapper $RPM_BUILD_ROOT%{_libexecdir}/deliver-wrapper
258
259 cp -p %{SOURCE6} $RPM_BUILD_ROOT/etc/logrotate.d/cyrus-imapd
260 cp -p %{SOURCE7} $RPM_BUILD_ROOT%{_sysconfdir}/imapd.conf
261 cp -p %{SOURCE9} $RPM_BUILD_ROOT/etc/pam.d/imap
262 cp -p %{SOURCE10} $RPM_BUILD_ROOT/etc/pam.d/pop
263 sed -e 's,/''usr/lib/cyrus,%{_libexecdir},' %{SOURCE11} > $RPM_BUILD_ROOT/etc/rc.d/init.d/cyrus-imapd
264 sed -e 's,/''usr/lib/cyrus,%{_libexecdir},' %{SOURCE13} > $RPM_BUILD_ROOT/etc/rc.d/init.d/cyrus-sync
265 cp -p %{SOURCE12} $RPM_BUILD_ROOT%{_sysconfdir}/cyrus.conf
266
267 # move lots of admin-only/system-only stuff to sbin and lib
268 # but keep compat links as they are used in configs
269 for i in master reconstruct quota deliver; do
270         mv $RPM_BUILD_ROOT{%{_libexecdir}/$i,%{_sbindir}/cyr$i}
271         ln -s %{_sbindir}/cyr$i $RPM_BUILD_ROOT%{_libexecdir}/$i
272 done
273 for i in mbpath ctl_mboxlist ctl_deliver ctl_cyrusdb squatter \
274                  tls_prune ipurge cyrdump cvt_cyrusdb chk_cyrus arbitron \
275          cyr_expire; do
276         mv $RPM_BUILD_ROOT{%{_libexecdir},%{_sbindir}}/$i
277         ln -s %{_sbindir}/$i $RPM_BUILD_ROOT%{_libexecdir}
278 done
279 # We rename some utils, so we need to sort out the manpages
280 for i in master reconstruct quota deliver; do
281         mv $RPM_BUILD_ROOT%{_mandir}/man8/{,cyr}$i.8
282 done
283
284 %{__rm} $RPM_BUILD_ROOT%{_mandir}/man8/idled.8
285
286 touch $RPM_BUILD_ROOT/etc/security/blacklist.{imap,pop3}
287
288 # make hashed dirs
289 for i in $(%{__perl} -le 'print for "a".."z"'); do
290         install -d $RPM_BUILD_ROOT%{_var}/lib/imap/user/$i
291         install -d $RPM_BUILD_ROOT%{_var}/lib/imap/quota/$i
292         install -d $RPM_BUILD_ROOT%{_var}/lib/imap/sieve/$i
293         install -d $RPM_BUILD_ROOT%{_var}/spool/imap/$i
294 done
295
296 %if %{with perl}
297 find $RPM_BUILD_ROOT%{perl_vendorarch} -name .packlist | xargs rm -v
298 %{__rm} $RPM_BUILD_ROOT%{perl_archlib}/perllocal.pod
299 %endif
300
301 %clean
302 rm -rf $RPM_BUILD_ROOT
303
304 %pre
305 %useradd -u 76 -d /var/spool/imap -s /bin/false -c "Cyrus User" -g mail cyrus
306
307 %post
308 touch /var/lib/imap/faillog
309 chown cyrus:mail /var/lib/imap/faillog
310 chmod 640 /var/lib/imap/faillog
311 cd /var/lib/imap
312 chattr +S . user quota user/* quota/* 2>/dev/null ||:
313 chattr +S /var/spool/imap /var/spool/imap/* 2>/dev/null ||:
314
315 /sbin/chkconfig --add cyrus-imapd
316 %service cyrus-imapd restart "cyrus imap daemon"
317 %service cyrus-sync restart "cyrus replication service"
318
319 %preun
320 if [ "$1" = "0" ]; then
321         %service cyrus-imapd stop
322         %service cyrus-sync stop
323         /sbin/chkconfig --del cyrus-imapd
324         /sbin/chkconfig --del cyrus-sync
325 fi
326
327 %postun
328 if [ "$1" = "0" ]; then
329         %userremove cyrus
330 fi
331
332 %post   libs -p /sbin/ldconfig
333 %postun libs -p /sbin/ldconfig
334
335 %files
336 %defattr(644,root,root,755)
337 %doc cyrus-README cyrus-procmailrc cyrus-user-procmailrc.template
338 %doc cyrus-imapd-procmail+cyrus.mc COPYRIGHT tools
339 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/*.conf
340 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/logrotate.d/cyrus-imapd
341 %attr(440,cyrus,root) %config(noreplace) %verify(not md5 mtime size) /etc/pam.d/*
342 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/security/blacklist.*
343 %attr(754,root,root) /etc/rc.d/init.d/cyrus-imapd
344 %attr(754,root,root) /etc/rc.d/init.d/cyrus-sync
345 %attr(640,cyrus,mail) %ghost /var/lib/imap/faillog
346 %attr(755,root,root) %{_bindir}/cyradm
347 %attr(755,root,root) %{_bindir}/imtest
348 %attr(755,root,root) %{_bindir}/installsieve
349 %attr(755,root,root) %{_bindir}/lmtptest
350 %attr(755,root,root) %{_bindir}/mupdatetest
351 %attr(755,root,root) %{_bindir}/nntptest
352 %attr(755,root,root) %{_bindir}/pop3test
353 %attr(755,root,root) %{_bindir}/sieveshell
354 %attr(755,root,root) %{_bindir}/sivtest
355 %attr(755,root,root) %{_bindir}/smtptest
356 %attr(755,root,root) %{_bindir}/synctest
357
358 %attr(4754,cyrus,mail) %{_sbindir}/cyrdeliver
359 %attr(755,root,root) %{_sbindir}/arbitron
360 %attr(755,root,root) %{_sbindir}/chk_cyrus
361 %attr(755,root,root) %{_sbindir}/ctl_cyrusdb
362 %attr(755,root,root) %{_sbindir}/ctl_deliver
363 %attr(755,root,root) %{_sbindir}/ctl_mboxlist
364 %attr(755,root,root) %{_sbindir}/cvt_cyrusdb
365 %attr(755,root,root) %{_sbindir}/cyr_expire
366 %attr(755,root,root) %{_sbindir}/cyrdump
367 %attr(755,root,root) %{_sbindir}/cyrmaster
368 %attr(755,root,root) %{_sbindir}/cyrquota
369 %attr(755,root,root) %{_sbindir}/cyrreconstruct
370 %attr(755,root,root) %{_sbindir}/ipurge
371 %attr(755,root,root) %{_sbindir}/mbpath
372 %attr(755,root,root) %{_sbindir}/squatter
373 %attr(755,root,root) %{_sbindir}/tls_prune
374
375 %dir %{_libexecdir}
376 %attr(2755,cyrus,mail) %{_libexecdir}/deliver-wrapper
377 %attr(755,root,root) %{_libexecdir}/cyr_dbtool
378 %attr(755,root,root) %{_libexecdir}/cyr_df
379 %attr(755,root,root) %{_libexecdir}/cyr_sequence
380 %attr(755,root,root) %{_libexecdir}/cyr_synclog
381 %attr(755,root,root) %{_libexecdir}/cyr_userseen
382 %attr(755,root,root) %{_libexecdir}/fetchnews
383 %attr(755,root,root) %{_libexecdir}/fud
384 %attr(755,root,root) %{_libexecdir}/imapd
385 %attr(755,root,root) %{_libexecdir}/lmtpd
386 %attr(755,root,root) %{_libexecdir}/lmtpproxyd
387 %attr(755,root,root) %{_libexecdir}/mbexamine
388 %attr(755,root,root) %{_libexecdir}/nntpd
389 %attr(755,root,root) %{_libexecdir}/notifyd
390 %attr(755,root,root) %{_libexecdir}/pop3d
391 %attr(755,root,root) %{_libexecdir}/pop3proxyd
392 %attr(755,root,root) %{_libexecdir}/proxyd
393 %attr(755,root,root) %{_libexecdir}/sievec
394 %attr(755,root,root) %{_libexecdir}/sieved
395 %attr(755,root,root) %{_libexecdir}/smmapd
396 %attr(755,root,root) %{_libexecdir}/sync_client
397 %attr(755,root,root) %{_libexecdir}/sync_reset
398 %attr(755,root,root) %{_libexecdir}/sync_server
399 %attr(755,root,root) %{_libexecdir}/timsieved
400 %attr(755,root,root) %{_libexecdir}/unexpunge
401
402 # symlinks
403 %attr(755,root,root) %{_libexecdir}/arbitron
404 %attr(755,root,root) %{_libexecdir}/chk_cyrus
405 %attr(755,root,root) %{_libexecdir}/ctl_cyrusdb
406 %attr(755,root,root) %{_libexecdir}/ctl_deliver
407 %attr(755,root,root) %{_libexecdir}/ctl_mboxlist
408 %attr(755,root,root) %{_libexecdir}/cvt_cyrusdb
409 %attr(755,root,root) %{_libexecdir}/cyr_expire
410 %attr(755,root,root) %{_libexecdir}/cyrdump
411 %attr(755,root,root) %{_libexecdir}/deliver
412 %attr(755,root,root) %{_libexecdir}/ipurge
413 %attr(755,root,root) %{_libexecdir}/master
414 %attr(755,root,root) %{_libexecdir}/mbpath
415 %attr(755,root,root) %{_libexecdir}/quota
416 %attr(755,root,root) %{_libexecdir}/reconstruct
417 %attr(755,root,root) %{_libexecdir}/squatter
418 %attr(755,root,root) %{_libexecdir}/tls_prune
419
420 %attr(750,cyrus,mail) /var/spool/imap
421 %attr(750,cyrus,mail) %dir /var/lib/imap
422 %attr(750,cyrus,mail) %dir /var/lib/imap/deliverdb
423 %attr(750,cyrus,mail) /var/lib/imap/deliverdb/db
424 %attr(750,cyrus,mail) /var/lib/imap/quota
425 %attr(750,cyrus,mail) /var/lib/imap/user
426 %attr(750,cyrus,mail) /var/lib/imap/sieve
427 %attr(750,cyrus,mail) /var/lib/imap/log
428 %attr(750,cyrus,mail) /var/lib/imap/msg
429 %attr(750,cyrus,mail) /var/lib/imap/proc
430 %attr(750,cyrus,mail) /var/lib/imap/db
431 %attr(750,cyrus,mail) /var/lib/imap/socket
432 %attr(750,cyrus,mail) %config(noreplace) %verify(not md5 mtime size) /var/lib/imap/mailboxes
433
434 %{_mandir}/man*/*
435
436 %if %{with shared}
437 %files libs
438 %defattr(644,root,root,755)
439 %attr(755,root,root) %{_libdir}/libcyrus-%{version}.so
440 %attr(755,root,root) %{_libdir}/libcyrus_min-%{version}.so
441 %endif
442
443 %files devel
444 %defattr(644,root,root,755)
445 %{_includedir}/cyrus
446 %if %{with shared}
447 %attr(755,root,root) %{_libdir}/libcyrus.so
448 %attr(755,root,root) %{_libdir}/libcyrus_min.so
449 %{_libdir}/libcyrus.la
450 %{_libdir}/libcyrus_min.la
451
452 %files static
453 %defattr(644,root,root,755)
454 %endif
455 %{_libdir}/libcyrus.a
456 %{_libdir}/libcyrus_min.a
457
458 %if %{with perl}
459 %files -n perl-%{name}
460 %defattr(644,root,root,755)
461 %{perl_vendorarch}/Cyrus
462 %dir %{perl_vendorarch}/auto/Cyrus
463 %dir %{perl_vendorarch}/auto/Cyrus/IMAP
464 %attr(755,root,root) %{perl_vendorarch}/auto/Cyrus/IMAP/IMAP.so
465 %dir %{perl_vendorarch}/auto/Cyrus/SIEVE
466 %dir %{perl_vendorarch}/auto/Cyrus/SIEVE/managesieve
467 %attr(755,root,root) %{perl_vendorarch}/auto/Cyrus/SIEVE/managesieve/managesieve.so
468 %endif
469
470 %files doc
471 %defattr(644,root,root,755)
472 %doc doc/*.html
This page took 0.053839 seconds and 3 git commands to generate.