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