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