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