]> git.pld-linux.org Git - packages/cyrus-imapd.git/blob - cyrus-imapd.spec
0c4f1c89d9ee8391f9252bc19de862e435ccfc0d
[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.4
11 Release:        0.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:  9d6970cec96aa867e9ced3978caddb8f
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 Patch5:         asneeded.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 %prep
173 %setup -q
174 %patch0 -p1
175 %patch5 -p1
176 %patch1 -p1
177 %patch2 -p1
178 %patch3 -p1
179 %patch4 -p1
180
181 rm -rf autom4te.cache
182
183 %build
184 cd makedepend
185 %{__libtoolize}
186 %{__aclocal}
187 %{__autoconf}
188 cp -f %{_datadir}/automake/config.* .
189 %configure
190 %{__make}
191 PATH=$PATH:$(pwd); export PATH
192 cd ..
193 %{__libtoolize}
194 %{__aclocal} -I cmulocal
195 %{__autoheader}
196 %{__autoconf}
197 cp -f %{_datadir}/automake/config.* .
198 cp -f %{_datadir}/automake/install-sh .
199 %configure \
200         --with-cyrus-prefix=%{_libexecdir} \
201         --with-service-path=%{_libexecdir} \
202         --with-com_err=/usr \
203         --%{!?with_perl:without-perl}%{?with_perl:with-perl=%{__perl}} \
204         --without-libwrap \
205         --enable-nntp \
206         --enable-replication
207 %{__make} -j1 \
208         INSTALLDIRS=vendor \
209         VERSION=%{version}
210
211 %{__cc} %{rpmcflags} \
212         -DLIBEXECDIR="\"%{_libexecdir}\"" %{rpmldflags} -Wall -o deliver-wrapper %{SOURCE3}
213
214 %install
215 rm -rf $RPM_BUILD_ROOT
216 install -d \
217         $RPM_BUILD_ROOT{%{_sbindir},%{_libexecdir},%{_mandir}} \
218         $RPM_BUILD_ROOT%{_sysconfdir}/{logrotate.d,sysconfig/rc-inetd} \
219         $RPM_BUILD_ROOT/var/spool/imap/stage. \
220         $RPM_BUILD_ROOT/var/lib/imap/{user,quota,proc,log,msg,deliverdb/db,sieve,db,socket} \
221         $RPM_BUILD_ROOT/etc/{security,pam.d,rc.d/init.d}
222
223 touch $RPM_BUILD_ROOT/var/lib/imap/mailboxes \
224         $RPM_BUILD_ROOT/var/lib/imap/faillog \
225         $RPM_BUILD_ROOT/etc/security/blacklist.imap \
226         $RPM_BUILD_ROOT/etc/security/blacklist.pop3
227
228 %{__make} install \
229         DESTDIR=$RPM_BUILD_ROOT \
230         CYRUS_USER=%(id -u) \
231         CYRUS_GROUP=%(id -g) \
232         INSTALLDIRS=vendor
233
234 install deliver-wrapper $RPM_BUILD_ROOT%{_libexecdir}/deliver-wrapper
235
236 install %{SOURCE1}      %{SOURCE2} %{SOURCE4} %{SOURCE5} .
237 install %{SOURCE6}      $RPM_BUILD_ROOT/etc/logrotate.d/cyrus-imapd
238 install %{SOURCE7}      $RPM_BUILD_ROOT%{_sysconfdir}/imapd.conf
239 install %{SOURCE9}      $RPM_BUILD_ROOT/etc/pam.d/imap
240 install %{SOURCE10}     $RPM_BUILD_ROOT/etc/pam.d/pop
241 sed -e 's,/''usr/lib/cyrus,%{_libexecdir},' %{SOURCE11} > $RPM_BUILD_ROOT/etc/rc.d/init.d/cyrus-imapd
242 sed -e 's,/''usr/lib/cyrus,%{_libexecdir},' %{SOURCE13} > $RPM_BUILD_ROOT/etc/rc.d/init.d/cyrus-sync
243 install %{SOURCE12}     $RPM_BUILD_ROOT%{_sysconfdir}/cyrus.conf
244
245 mv -f $RPM_BUILD_ROOT%{_libexecdir}/master      $RPM_BUILD_ROOT%{_libexecdir}/cyrus-master
246 mv -f $RPM_BUILD_ROOT%{_mandir}/man8/master.8   $RPM_BUILD_ROOT%{_mandir}/man8/cyrus-master.8
247 rm -f $RPM_BUILD_ROOT%{_mandir}/man8/idled.8
248
249 touch $RPM_BUILD_ROOT/etc/security/blacklist.{imap,pop3}
250
251 # make hashed dirs
252 for i in $(%{__perl} -le 'print for "a".."z"'); do
253         install -d $RPM_BUILD_ROOT%{_var}/lib/imap/user/$i
254         install -d $RPM_BUILD_ROOT%{_var}/lib/imap/quota/$i
255         install -d $RPM_BUILD_ROOT%{_var}/lib/imap/sieve/$i
256         install -d $RPM_BUILD_ROOT%{_var}/spool/imap/$i
257 done
258
259 %if %{with perl}
260 find $RPM_BUILD_ROOT%{perl_vendorarch} -name .packlist | xargs rm -v
261 rm -f $RPM_BUILD_ROOT%{perl_archlib}/perllocal.pod
262 %endif
263
264 %clean
265 rm -rf $RPM_BUILD_ROOT
266
267 %pre
268 %useradd -u 76 -d /var/spool/imap -s /bin/false -c "Cyrus User" -g mail cyrus
269
270 %post
271 touch /var/lib/imap/faillog
272 chown cyrus:mail /var/lib/imap/faillog
273 chmod 640 /var/lib/imap/faillog
274 cd /var/lib/imap
275 chattr +S . user quota user/* quota/* 2>/dev/null ||:
276 chattr +S /var/spool/imap /var/spool/imap/* 2>/dev/null ||:
277
278 /sbin/chkconfig --add cyrus-imapd
279 %service cyrus-imapd restart "cyrus imap daemon"
280 %service cyrus-sync restart "cyrus replication service"
281
282 %preun
283 if [ "$1" = "0" ]; then
284         %service cyrus-imapd stop
285         %service cyrus-sync stop
286         /sbin/chkconfig --del cyrus-imapd
287         /sbin/chkconfig --del cyrus-sync
288 fi
289
290 %postun
291 if [ "$1" = "0" ]; then
292         %userremove cyrus
293 fi
294
295 %post   libs -p /sbin/ldconfig
296 %postun libs -p /sbin/ldconfig
297
298 %files
299 %defattr(644,root,root,755)
300 %doc cyrus-README cyrus-procmailrc cyrus-user-procmailrc.template
301 %doc cyrus-imapd-procmail+cyrus.mc COPYRIGHT doc/*.html tools
302 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/*.conf
303 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/logrotate.d/cyrus-imapd
304 %attr(440,cyrus,root) %config(noreplace) %verify(not md5 mtime size) /etc/pam.d/*
305 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/security/blacklist.*
306 %attr(754,root,root) /etc/rc.d/init.d/cyrus-imapd
307 %attr(754,root,root) /etc/rc.d/init.d/cyrus-sync
308 %attr(640,cyrus,mail) %ghost /var/lib/imap/faillog
309 %attr(755,root,root) %{_bindir}/*
310 %dir %{_libexecdir}
311 %attr(4754,cyrus,mail) %{_libexecdir}/deliver
312 %attr(2755,cyrus,mail) %{_libexecdir}/deliver-wrapper
313 %attr(755,root,root) %{_libexecdir}/arbitron
314 %attr(755,root,root) %{_libexecdir}/chk_cyrus
315 %attr(755,root,root) %{_libexecdir}/ctl_cyrusdb
316 %attr(755,root,root) %{_libexecdir}/ctl_deliver
317 %attr(755,root,root) %{_libexecdir}/ctl_mboxlist
318 %attr(755,root,root) %{_libexecdir}/cvt_cyrusdb
319 %attr(755,root,root) %{_libexecdir}/cyr_dbtool
320 %attr(755,root,root) %{_libexecdir}/cyr_df
321 %attr(755,root,root) %{_libexecdir}/cyr_expire
322 %attr(755,root,root) %{_libexecdir}/cyr_sequence
323 %attr(755,root,root) %{_libexecdir}/cyr_synclog
324 %attr(755,root,root) %{_libexecdir}/cyr_userseen
325 %attr(755,root,root) %{_libexecdir}/cyrdump
326 %attr(755,root,root) %{_libexecdir}/cyrus-master
327 %attr(755,root,root) %{_libexecdir}/fetchnews
328 %attr(755,root,root) %{_libexecdir}/fud
329 %attr(755,root,root) %{_libexecdir}/imapd
330 %attr(755,root,root) %{_libexecdir}/ipurge
331 %attr(755,root,root) %{_libexecdir}/lmtpd
332 %attr(755,root,root) %{_libexecdir}/lmtpproxyd
333 %attr(755,root,root) %{_libexecdir}/mbexamine
334 %attr(755,root,root) %{_libexecdir}/mbpath
335 %attr(755,root,root) %{_libexecdir}/nntpd
336 %attr(755,root,root) %{_libexecdir}/notifyd
337 %attr(755,root,root) %{_libexecdir}/pop3d
338 %attr(755,root,root) %{_libexecdir}/pop3proxyd
339 %attr(755,root,root) %{_libexecdir}/proxyd
340 %attr(755,root,root) %{_libexecdir}/quota
341 %attr(755,root,root) %{_libexecdir}/reconstruct
342 %attr(755,root,root) %{_libexecdir}/sievec
343 %attr(755,root,root) %{_libexecdir}/sieved
344 %attr(755,root,root) %{_libexecdir}/smmapd
345 %attr(755,root,root) %{_libexecdir}/squatter
346 %attr(755,root,root) %{_libexecdir}/sync_client
347 %attr(755,root,root) %{_libexecdir}/sync_reset
348 %attr(755,root,root) %{_libexecdir}/sync_server
349 %attr(755,root,root) %{_libexecdir}/timsieved
350 %attr(755,root,root) %{_libexecdir}/tls_prune
351 %attr(755,root,root) %{_libexecdir}/unexpunge
352
353 %attr(750,cyrus,mail) /var/spool/imap
354 %attr(750,cyrus,mail) %dir /var/lib/imap
355 %attr(750,cyrus,mail) %dir /var/lib/imap/deliverdb
356 %attr(750,cyrus,mail) /var/lib/imap/deliverdb/db
357 %attr(750,cyrus,mail) /var/lib/imap/quota
358 %attr(750,cyrus,mail) /var/lib/imap/user
359 %attr(750,cyrus,mail) /var/lib/imap/sieve
360 %attr(750,cyrus,mail) /var/lib/imap/log
361 %attr(750,cyrus,mail) /var/lib/imap/msg
362 %attr(750,cyrus,mail) /var/lib/imap/proc
363 %attr(750,cyrus,mail) /var/lib/imap/db
364 %attr(750,cyrus,mail) /var/lib/imap/socket
365 %attr(750,cyrus,mail) %config(noreplace) %verify(not md5 mtime size) /var/lib/imap/mailboxes
366
367 %{_mandir}/man*/*
368
369 %if %{with shared}
370 %files libs
371 %defattr(644,root,root,755)
372 %attr(755,root,root) %{_libdir}/libcyrus-%{version}.so
373 %attr(755,root,root) %{_libdir}/libcyrus_min-%{version}.so
374 %endif
375
376 %files devel
377 %defattr(644,root,root,755)
378 %{_includedir}/cyrus
379 %if %{with shared}
380 %attr(755,root,root) %{_libdir}/libcyrus.so
381 %attr(755,root,root) %{_libdir}/libcyrus_min.so
382 %{_libdir}/libcyrus.la
383 %{_libdir}/libcyrus_min.la
384
385 %files static
386 %defattr(644,root,root,755)
387 %endif
388 %{_libdir}/libcyrus.a
389 %{_libdir}/libcyrus_min.a
390
391 %if %{with perl}
392 %files -n perl-%{name}
393 %defattr(644,root,root,755)
394 %{perl_vendorarch}/Cyrus
395 %dir %{perl_vendorarch}/auto/Cyrus
396 %dir %{perl_vendorarch}/auto/Cyrus/IMAP
397 %attr(755,root,root) %{perl_vendorarch}/auto/Cyrus/IMAP/IMAP.so
398 %{perl_vendorarch}/auto/Cyrus/IMAP/IMAP.bs
399 %dir %{perl_vendorarch}/auto/Cyrus/SIEVE
400 %dir %{perl_vendorarch}/auto/Cyrus/SIEVE/managesieve
401 %attr(755,root,root) %{perl_vendorarch}/auto/Cyrus/SIEVE/managesieve/managesieve.so
402 %{perl_vendorarch}/auto/Cyrus/SIEVE/managesieve/managesieve.bs
403 %endif
This page took 0.073225 seconds and 2 git commands to generate.