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