1 |
spuhler |
926296 |
## This spec is based on kolab's spec from the OBS |
2 |
|
|
|
3 |
spuhler |
926177 |
%define _disable_ld_no_undefined 1 |
4 |
spuhler |
926296 |
|
5 |
|
|
# major is the part of the library name after the .so |
6 |
|
|
%define major 0 |
7 |
|
|
%define libname %mklibname %{name} %{major} |
8 |
|
|
%define develname %mklibname %{name} -d |
9 |
|
|
|
10 |
|
|
|
11 |
spuhler |
926160 |
%global with_systemd 1 |
12 |
ennael |
33418 |
|
13 |
spuhler |
926160 |
%global _name cyrus-imapd |
14 |
ennael |
33418 |
|
15 |
spuhler |
926160 |
%global ssl_pem_file %{_sysconfdir}/pki/%{_name}/%{_name}.pem |
16 |
ennael |
33418 |
|
17 |
spuhler |
926165 |
|
18 |
spuhler |
926160 |
%global _cyrususer cyrus |
19 |
|
|
%global _cyrusgroup mail |
20 |
|
|
%global _cyrexecdir %{_exec_prefix}/lib/%{_name} |
21 |
ennael |
33418 |
|
22 |
spuhler |
926160 |
%global real_version 2.5.7 |
23 |
ennael |
33418 |
|
24 |
spuhler |
926160 |
## |
25 |
|
|
## Options |
26 |
|
|
## |
27 |
ennael |
33418 |
|
28 |
spuhler |
926160 |
%global with_bdb 1 |
29 |
|
|
%global with_mysql 1 |
30 |
|
|
%global with_pgsql 1 |
31 |
ennael |
33418 |
|
32 |
spuhler |
965084 |
%global with_dav 0 |
33 |
spuhler |
926160 |
%global with_tcpwrap 1 |
34 |
ennael |
33418 |
|
35 |
spuhler |
926160 |
Name: cyrus-imapd |
36 |
|
|
Summary: A high-performance mail server with IMAP, POP3, NNTP and SIEVE support |
37 |
|
|
Version: %{real_version} |
38 |
luigiwalser |
992051 |
Release: %mkrel 10 |
39 |
spuhler |
926160 |
License: BSD |
40 |
spuhler |
926165 |
Group: System/Servers |
41 |
spuhler |
926160 |
URL: http://www.cyrusimap.org |
42 |
ennael |
33418 |
|
43 |
spuhler |
926160 |
# Upstream sources |
44 |
oden |
980331 |
Source0: ftp://ftp.cyrusimap.org/cyrus-imapd/%{_name}-%{real_version}.tar.gz |
45 |
spuhler |
989656 |
Source1: cyrus-imapd.imap-2.5.x-conf |
46 |
spuhler |
926160 |
Source2: cyrus-imapd.cvt_cyrusdb_all |
47 |
|
|
Source3: cyrus-imapd.magic |
48 |
ennael |
33418 |
|
49 |
spuhler |
926160 |
# Distribution specific sources |
50 |
|
|
Source11: cyrus-imapd.logrotate |
51 |
|
|
Source12: cyrus-imapd.pam-config |
52 |
|
|
Source13: cyrus-imapd.cron-daily |
53 |
tmb |
233654 |
|
54 |
spuhler |
926160 |
|
55 |
|
|
# Systemd support |
56 |
|
|
Source21: cyrus-imapd.service |
57 |
|
|
Source22: cyr_systemd_helper |
58 |
|
|
|
59 |
|
|
## |
60 |
|
|
## Patches |
61 |
|
|
## |
62 |
|
|
|
63 |
|
|
Provides: imap |
64 |
|
|
Provides: imap-server |
65 |
|
|
|
66 |
|
|
## |
67 |
|
|
## Build Requirements |
68 |
|
|
## |
69 |
|
|
BuildRequires: autoconf |
70 |
|
|
BuildRequires: automake |
71 |
|
|
BuildRequires: bison |
72 |
|
|
BuildRequires: pkgconfig(libsasl2) |
73 |
|
|
BuildRequires: pkgconfig(cunit) |
74 |
|
|
BuildRequires: sasl-plug-digestmd5 |
75 |
|
|
BuildRequires: sasl-plug-plain |
76 |
spuhler |
926336 |
BuildRequires: pkgconfig(libxml-2.0) |
77 |
spuhler |
926160 |
|
78 |
|
|
%if 0%{?with_bdb} |
79 |
spuhler |
926296 |
BuildRequires: db4-devel |
80 |
ennael |
33418 |
%endif |
81 |
spuhler |
926160 |
BuildRequires: flex |
82 |
|
|
#BuildRequires: gcc-c++ |
83 |
|
|
BuildRequires: gcc |
84 |
|
|
BuildRequires: groff |
85 |
|
|
BuildRequires: pkgconfig(jansson) |
86 |
|
|
BuildRequires: pkgconfig(krb5) |
87 |
|
|
|
88 |
|
|
%if 0%{?with_dav} |
89 |
|
|
BuildRequires: pkgconfig(libical) |
90 |
ennael |
33418 |
%endif |
91 |
|
|
|
92 |
spuhler |
926160 |
BuildRequires: libtool |
93 |
|
|
BuildRequires: pkgconfig(uuid) |
94 |
|
|
|
95 |
|
|
%if 0%{?with_mysql} |
96 |
|
|
BuildRequires: mysql-devel |
97 |
ennael |
33418 |
%endif |
98 |
spuhler |
926160 |
BuildRequires: openldap-devel |
99 |
|
|
BuildRequires: openssl-devel |
100 |
|
|
BuildRequires: perl(ExtUtils::MakeMaker) |
101 |
ennael |
33418 |
|
102 |
spuhler |
926160 |
BuildRequires: perl-devel |
103 |
|
|
BuildRequires: pkgconfig |
104 |
ennael |
33418 |
|
105 |
spuhler |
926160 |
%if 0%{?with_pgsql} |
106 |
|
|
BuildRequires: postgresql-devel |
107 |
|
|
%endif |
108 |
ennael |
33418 |
|
109 |
spuhler |
926160 |
%if 0%{?with_dav} |
110 |
spuhler |
926343 |
BuildRequires: pkgconfig(sqlite3) |
111 |
spuhler |
926160 |
%endif |
112 |
ennael |
33418 |
|
113 |
spuhler |
926160 |
%if 0%{?with_tcpwrap} |
114 |
|
|
BuildRequires: tcp_wrappers |
115 |
|
|
%endif |
116 |
ennael |
33418 |
|
117 |
spuhler |
926160 |
BuildRequires: transfig |
118 |
|
|
%if 0 |
119 |
|
|
# Disable the xapian-core requirement |
120 |
|
|
BuildRequires: xapian-core-devel |
121 |
|
|
%endif |
122 |
ennael |
33418 |
|
123 |
spuhler |
926296 |
Requires: db4-utils |
124 |
spuhler |
926160 |
Requires: file |
125 |
spuhler |
926578 |
## Spuhler 2016-01-22: I don't think we need this (Fedora has it in the perl-libs pacakge |
126 |
|
|
#Requires: perl(:MODULE_COMPAT_%(eval "`%{__perl} -V:version`"; echo $version)) |
127 |
spuhler |
926160 |
Requires(post): coreutils |
128 |
|
|
Requires(post): e2fsprogs |
129 |
|
|
Requires(post): findutils |
130 |
|
|
Requires(post): grep |
131 |
|
|
Requires(post): make |
132 |
|
|
Requires(post): openssl |
133 |
|
|
Requires(post): perl |
134 |
|
|
Requires(preun): coreutils |
135 |
|
|
Requires(pre): /usr/sbin/useradd /usr/sbin/groupadd |
136 |
|
|
Requires(preun): /usr/sbin/userdel /usr/sbin/groupdel |
137 |
|
|
Requires(post): rpm-helper >= 0.24.8-1 |
138 |
|
|
Requires(preun): rpm-helper >= 0.24.8-1 |
139 |
ennael |
33418 |
|
140 |
|
|
|
141 |
spuhler |
926160 |
Obsoletes: %{name}-perl < %{version}-%{release} |
142 |
|
|
Provides: %{name}-perl = %{version}-%{release} |
143 |
|
|
Obsoletes: %{name}-utils < %{version}-%{release} |
144 |
|
|
Provides: %{name}-utils = %{version}-%{release} |
145 |
ennael |
33418 |
|
146 |
spuhler |
926160 |
%description |
147 |
|
|
The %{name} package contains the core of the Cyrus IMAP server. |
148 |
|
|
It is a scaleable enterprise mail system designed for use from |
149 |
|
|
small to large enterprise environments using standards-based |
150 |
|
|
internet mail technologies. |
151 |
ennael |
33418 |
|
152 |
spuhler |
926160 |
A full Cyrus IMAP implementation allows a seamless mail and bulletin |
153 |
|
|
board environment to be set up across multiple servers. It differs from |
154 |
|
|
other IMAP server implementations in that it is run on "sealed" |
155 |
|
|
servers, where users are not normally permitted to log in and have no |
156 |
|
|
system account on the server. The mailbox database is stored in parts |
157 |
|
|
of the filesystem that are private to the Cyrus IMAP server. All user |
158 |
|
|
access to mail is through software using the IMAP, POP3 or KPOP |
159 |
|
|
protocols. It also includes support for virtual domains, NNTP, |
160 |
|
|
mailbox annotations, and much more. The private mailbox database design |
161 |
|
|
gives the server large advantages in efficiency, scalability and |
162 |
|
|
administratability. Multiple concurrent read/write connections to the |
163 |
|
|
same mailbox are permitted. The server supports access control lists on |
164 |
|
|
mailboxes and storage quotas on mailbox hierarchies. |
165 |
ennael |
33418 |
|
166 |
spuhler |
926160 |
The Cyrus IMAP server supports the IMAP4rev1 protocol described |
167 |
|
|
in RFC 3501. IMAP4rev1 has been approved as a proposed standard. |
168 |
|
|
It supports any authentication mechanism available from the SASL |
169 |
|
|
library, imaps/pop3s/nntps (IMAP/POP3/NNTP encrypted using SSL and |
170 |
|
|
TLSv1) can be used for security. The server supports single instance |
171 |
|
|
store where possible when an email message is addressed to multiple |
172 |
|
|
recipients, SIEVE provides server side email filtering. |
173 |
ennael |
33418 |
|
174 |
spuhler |
926296 |
%package -n %{libname} |
175 |
|
|
Summary: Cyrus IMAP server library files |
176 |
|
|
Group: System/Libraries |
177 |
|
|
|
178 |
|
|
%description -n %{libname} |
179 |
|
|
The %{name}-lib package contains the library for cyrus-imapd |
180 |
ennael |
33418 |
|
181 |
spuhler |
926296 |
%package -n %{develname} |
182 |
|
|
Summary: Cyrus IMAP server development files |
183 |
|
|
Group: Development/Other |
184 |
|
|
Requires: %{libname} = %{version} |
185 |
|
|
Provides: %{name}-devel = %{version}-%{release} |
186 |
|
|
|
187 |
|
|
%description -n %{develname} |
188 |
spuhler |
926160 |
The %{name}-devel package contains header files and libraries |
189 |
|
|
necessary for developing applications which use the imclient library. |
190 |
ennael |
33418 |
|
191 |
spuhler |
926296 |
|
192 |
|
|
%package -n perl-Cyrus |
193 |
|
|
Summary: Cyrus IMAPd utility Perl modules |
194 |
|
|
Group: Development/Perl |
195 |
|
|
|
196 |
|
|
%description -n perl-Cyrus |
197 |
|
|
This package contains Perl modules necessary to use the Cyrus server |
198 |
|
|
administrative utilities. |
199 |
|
|
|
200 |
|
|
The main package is %{name}. |
201 |
|
|
|
202 |
ennael |
33418 |
%prep |
203 |
spuhler |
926160 |
%setup -q -n %{_name}-%{real_version}%{?dot_snapshot_version} |
204 |
ennael |
33418 |
|
205 |
spuhler |
926160 |
%if 0%{?with_bdb} < 1 |
206 |
|
|
sed -i -e 's/,berkeley//g' cunit/db.testc |
207 |
|
|
sed -r -i -e 's/"berkeley(|-[a-z-]+)", //g' lib/imapoptions |
208 |
colin |
400402 |
%endif |
209 |
ennael |
33418 |
|
210 |
spuhler |
926160 |
# only to update config.* files |
211 |
|
|
autoreconf -vi || (libtoolize --force && autoreconf -vi) |
212 |
ennael |
33418 |
|
213 |
spuhler |
926160 |
# Modify docs master --> cyrus-master |
214 |
|
|
%{__perl} -pi -e "s@master\(8\)@cyrus-master(8)@" man/*5 man/*8 lib/imapoptions |
215 |
|
|
%{__sed} -i -e 's|\([^-]\)master|\1cyrus-master|g;s|^master|cyrus-master|g;s|Master|Cyrus-master|g;s|MASTER|CYRUS-MASTER|g' \ |
216 |
|
|
man/master.8 doc/man.html |
217 |
|
|
|
218 |
|
|
%if 0%{?with_dav} |
219 |
|
|
# Modify docs httpd --> cyrus-httpd |
220 |
|
|
%{__perl} -pi -e "s@httpd\(8\)@cyrus-httpd(8)@" man/*5 man/*8 lib/imapoptions |
221 |
|
|
%{__sed} -i -e 's|\([^-]\)httpd|\1cyrus-httpd|g;s|^httpd|cyrus-httpd|g;s|Httpd|Cyrus-httpd|g;s|HTTPD|CYRUS-HTTPD|g' \ |
222 |
|
|
man/httpd.8 doc/man.html |
223 |
colin |
400402 |
%endif |
224 |
ennael |
33418 |
|
225 |
spuhler |
926160 |
# Modify path in perl scripts |
226 |
|
|
find . -type f -name "*.pl" | xargs %{__perl} -pi -e "s@/usr/local/bin/perl@%{__perl}@" |
227 |
colin |
400398 |
|
228 |
spuhler |
926160 |
# modify lmtp socket path in .conf files |
229 |
|
|
%{__perl} -pi -e "s@/var/imap/@%{_var}/lib/imap/@" master/conf/*.conf doc/cyrusv2.mc doc/m4/%{name}-sendmail-8.12.9-cyrusv2.m4 |
230 |
ennael |
33418 |
|
231 |
spuhler |
926160 |
# enable idled in .conf files to prevent error messages |
232 |
|
|
%{__perl} -pi -e "s/# idled/ idled/" master/conf/*.conf |
233 |
ennael |
33418 |
|
234 |
|
|
%build |
235 |
spuhler |
926160 |
CPPFLAGS="-I%{_includedir}/et -I%{_includedir}/kerberosIV" |
236 |
ennael |
33418 |
export CPPFLAGS |
237 |
|
|
CFLAGS="$RPM_OPT_FLAGS -fPIC" |
238 |
|
|
export CFLAGS |
239 |
spuhler |
926160 |
CXXFLAGS="$RPM_OPT_FLAGS -fPIC"; |
240 |
|
|
export CXXFLAGS |
241 |
|
|
CCDLFLAGS="-rdynamic" |
242 |
|
|
export CCDLFLAGS |
243 |
ennael |
33418 |
LDFLAGS="-L%{_libdir}" |
244 |
|
|
export LDFLAGS |
245 |
|
|
|
246 |
|
|
%configure2_5x \ |
247 |
spuhler |
926160 |
--enable-event-notification \ |
248 |
|
|
--enable-gssapi \ |
249 |
spuhler |
410430 |
--enable-idled \ |
250 |
spuhler |
926160 |
--enable-murder \ |
251 |
|
|
--enable-netscapehack \ |
252 |
|
|
--enable-nntp \ |
253 |
|
|
--enable-replication \ |
254 |
|
|
--enable-unit-tests \ |
255 |
|
|
%if 0 |
256 |
|
|
--enable-xapian \ |
257 |
ennael |
33418 |
%endif |
258 |
spuhler |
926160 |
%if 0%{?with_bdb} |
259 |
|
|
--with-bdb-incdir=%{_includedir}/db4 \ |
260 |
|
|
%else |
261 |
|
|
--without-bdb \ |
262 |
ennael |
33418 |
%endif |
263 |
spuhler |
926160 |
--with-cyrus-prefix=%{_cyrexecdir} \ |
264 |
|
|
--with-extraident="Kolab-%{version}-%{release}" \ |
265 |
|
|
%if 0%{?with_tcpwrap} < 1 |
266 |
|
|
--without-wrap \ |
267 |
ennael |
33418 |
%endif |
268 |
spuhler |
926160 |
%if 0%{?with_dav} |
269 |
spuhler |
926296 |
--enable-http \ |
270 |
ennael |
33418 |
%endif |
271 |
spuhler |
926160 |
--with-krbimpl=mit \ |
272 |
|
|
--with-ldap=/usr \ |
273 |
|
|
%if 0%{?with_mysql} |
274 |
|
|
--with-mysql=%{_prefix} \ |
275 |
|
|
--with-mysql-incdir=%{_includedir}/mysql/ \ |
276 |
spuhler |
926296 |
--with-mysql \ |
277 |
ennael |
33418 |
%endif |
278 |
spuhler |
926160 |
--with-perl=%{__perl} \ |
279 |
|
|
%if 0%{?with_pgsql} |
280 |
|
|
--with-pgsql=%{_includedir} \ |
281 |
ennael |
33418 |
%endif |
282 |
spuhler |
926160 |
--with-service-path=%{_cyrexecdir} \ |
283 |
|
|
--with-syslogfacility=MAIL |
284 |
ennael |
33418 |
|
285 |
spuhler |
926160 |
%make |
286 |
ennael |
33418 |
|
287 |
spuhler |
926160 |
%install |
288 |
|
|
%{__rm} -rf %{buildroot} |
289 |
ennael |
33418 |
|
290 |
spuhler |
926160 |
# Fix permissions on perl programs |
291 |
|
|
find . -type f -name "*.pl" -exec %{__chmod} 755 {} \; |
292 |
ennael |
33418 |
|
293 |
spuhler |
926160 |
# Do what the regular make install does |
294 |
|
|
%{__make} install DESTDIR=%{buildroot} PREFIX=%{_prefix} mandir=%{_mandir} INSTALLDIRS=vendor |
295 |
ennael |
33418 |
|
296 |
|
|
# Install tools |
297 |
spuhler |
926160 |
for tool in tools/* ; do |
298 |
|
|
test -f ${tool} && %{__install} -m 755 ${tool} %{buildroot}%{_cyrexecdir}/ |
299 |
ennael |
33418 |
done |
300 |
|
|
|
301 |
|
|
# Create directories |
302 |
|
|
%{__install} -d \ |
303 |
spuhler |
926160 |
%{buildroot}%{_sysconfdir}/{logrotate.d,pam.d,cron.daily} \ |
304 |
|
|
%{buildroot}%{_libdir}/sasl \ |
305 |
|
|
%{buildroot}%{_var}/spool/imap \ |
306 |
|
|
%{buildroot}%{_var}/lib/imap/{user,quota,proc,log,msg,socket,db,sieve,sync,md5,rpm,backup,meta} \ |
307 |
|
|
%{buildroot}%{_var}/lib/imap/ptclient \ |
308 |
|
|
%{buildroot}%{_sysconfdir}/pki/%{_name} \ |
309 |
|
|
doc/contrib |
310 |
ennael |
33418 |
|
311 |
|
|
# Install additional files |
312 |
spuhler |
926160 |
%{__install} -p -m 644 master/conf/prefork.conf %{buildroot}%{_sysconfdir}/cyrus.conf |
313 |
|
|
%{__install} -p -m 644 %{SOURCE1} %{buildroot}%{_sysconfdir}/imapd.conf |
314 |
|
|
%{__install} -p -m 755 %{SOURCE2} %{buildroot}%{_cyrexecdir}/cvt_cyrusdb_all |
315 |
|
|
%{__install} -p -m 644 %{SOURCE3} %{buildroot}%{_var}/lib/imap/rpm/magic |
316 |
|
|
%{__install} -p -m 644 %{SOURCE11} %{buildroot}%{_sysconfdir}/logrotate.d/%{_name} |
317 |
|
|
%{__install} -p -m 644 %{SOURCE12} %{buildroot}%{_sysconfdir}/pam.d/pop |
318 |
|
|
%{__install} -p -m 644 %{SOURCE12} %{buildroot}%{_sysconfdir}/pam.d/imap |
319 |
|
|
%{__install} -p -m 644 %{SOURCE12} %{buildroot}%{_sysconfdir}/pam.d/sieve |
320 |
|
|
%{__install} -p -m 644 %{SOURCE12} %{buildroot}%{_sysconfdir}/pam.d/mupdate |
321 |
|
|
%{__install} -p -m 644 %{SOURCE12} %{buildroot}%{_sysconfdir}/pam.d/lmtp |
322 |
|
|
%{__install} -p -m 644 %{SOURCE12} %{buildroot}%{_sysconfdir}/pam.d/nntp |
323 |
|
|
%{__install} -p -m 644 %{SOURCE12} %{buildroot}%{_sysconfdir}/pam.d/csync |
324 |
|
|
%{__install} -p -m 755 %{SOURCE13} %{buildroot}%{_sysconfdir}/cron.daily/%{_name} |
325 |
|
|
%{__install} -d %{buildroot}%{_sysconfdir}/sysconfig/ |
326 |
|
|
%{__install} -p -m 644 %{SOURCE22} %{buildroot}%{_sysconfdir}/sysconfig/%{_name} |
327 |
|
|
%{__install} -p -D -m 644 %{SOURCE21} %{buildroot}%{_unitdir}/cyrus-imapd.service |
328 |
|
|
%{__install} -p -D -m 755 %{SOURCE22} %{buildroot}%{_cyrexecdir}/cyr_systemd_helper |
329 |
ennael |
33418 |
|
330 |
|
|
|
331 |
spuhler |
926160 |
# Cleanup of doc dir |
332 |
|
|
find doc perl -name CVS -type d | xargs -r %{__rm} -rf |
333 |
|
|
find doc perl -name .cvsignore -type f | xargs -r %{__rm} -f |
334 |
|
|
%{__rm} -f doc/Makefile.dist* |
335 |
|
|
%{__rm} -f doc/text/htmlstrip.c |
336 |
|
|
%{__rm} -f doc/text/Makefile |
337 |
|
|
%{__rm} -rf doc/man |
338 |
ennael |
33418 |
|
339 |
spuhler |
926160 |
# fix permissions on perl .so files |
340 |
|
|
find %{buildroot}%{perl_vendorarch} -type f -name "*.so" -exec %{__chmod} 755 {} \; |
341 |
ennael |
33418 |
|
342 |
spuhler |
926160 |
# fix conflicts with uw-imap |
343 |
|
|
mv %{buildroot}%{_mandir}/man8/imapd.8 %{buildroot}%{_mandir}/man8/imapd.8cyrus |
344 |
|
|
mv %{buildroot}%{_mandir}/man8/pop3d.8 %{buildroot}%{_mandir}/man8/pop3d.8cyrus |
345 |
ennael |
33418 |
|
346 |
spuhler |
926160 |
# Install templates |
347 |
|
|
%{__install} -m 755 -d doc/conf |
348 |
|
|
%{__install} -m 644 master/conf/*.conf doc/conf/ |
349 |
ennael |
33418 |
|
350 |
spuhler |
926160 |
# Generate db config file |
351 |
|
|
( grep '^{' lib/imapoptions | grep _db | grep -v _db_path | cut -d'"' -f 2,4 | \ |
352 |
|
|
sed -e 's/^ *//' -e 's/-nosync//' -e 's/ *$//' -e 's/"/=/' |
353 |
|
|
echo sieve_version=2.2.3 ) | sort > %{buildroot}%{_var}/lib/imap/rpm/db.cfg |
354 |
ennael |
33418 |
|
355 |
spuhler |
926160 |
# create the ghost pem file |
356 |
|
|
touch %{buildroot}%{ssl_pem_file} |
357 |
ennael |
33418 |
|
358 |
spuhler |
926160 |
# Rename 'master' binary and manpage to avoid clash with postfix |
359 |
|
|
%{__mv} -f %{buildroot}%{_cyrexecdir}/master %{buildroot}%{_cyrexecdir}/cyrus-master |
360 |
|
|
%{__mv} -f %{buildroot}%{_mandir}/man8/master.8 %{buildroot}%{_mandir}/man8/cyrus-master.8 |
361 |
ennael |
33418 |
|
362 |
spuhler |
926160 |
# Rename 'httpd' binary and manpage to avoid clash with apache httpd |
363 |
|
|
%if 0%{?with_dav} |
364 |
|
|
%{__mv} -f %{buildroot}%{_cyrexecdir}/httpd %{buildroot}%{_cyrexecdir}/cyrus-httpd |
365 |
|
|
%{__mv} -f %{buildroot}%{_mandir}/man8/httpd.8 %{buildroot}%{_mandir}/man8/cyrus-httpd.8 |
366 |
|
|
%endif |
367 |
ennael |
33418 |
|
368 |
spuhler |
926160 |
# Rename 'fetchnews' binary and manpage to avoid clash with leafnode |
369 |
|
|
%{__mv} -f %{buildroot}%{_cyrexecdir}/fetchnews %{buildroot}%{_cyrexecdir}/cyrfetchnews |
370 |
|
|
%{__mv} -f %{buildroot}%{_mandir}/man8/fetchnews.8 %{buildroot}%{_mandir}/man8/cyrfetchnews.8 |
371 |
|
|
%{__perl} -pi -e 's|fetchnews|cyrfetchnews|g;s|Fetchnews|Cyrfetchnews|g;s/FETCHNEWS/CYRFETCHNEWS/g' \ |
372 |
|
|
%{buildroot}%{_mandir}/man8/cyrfetchnews.8 |
373 |
ennael |
33418 |
|
374 |
spuhler |
926160 |
# compress manpages |
375 |
|
|
[ -x /usr/lib/rpm/brp-compress ] && /usr/lib/rpm/brp-compress |
376 |
ennael |
33418 |
|
377 |
spuhler |
926160 |
# remove executable bit from docs |
378 |
|
|
for ddir in doc perl/imap/examples |
379 |
|
|
do |
380 |
|
|
find $ddir -type f -exec %{__chmod} -x {} \; |
381 |
|
|
done |
382 |
ennael |
33418 |
|
383 |
spuhler |
926160 |
# Remove installed but not packaged files |
384 |
|
|
%{__rm} -f %{buildroot}%{_cyrexecdir}/not-mkdep |
385 |
|
|
%{__rm} -f %{buildroot}%{_cyrexecdir}/config2header* |
386 |
|
|
%{__rm} -f %{buildroot}%{_cyrexecdir}/config2man |
387 |
|
|
%{__rm} -f %{buildroot}%{_cyrexecdir}/pop3proxyd |
388 |
|
|
find %{buildroot} -type f -name "perllocal.pod" -exec %{__rm} -vf {} \; |
389 |
|
|
find %{buildroot} -type f -name ".packlist" -exec %{__rm} -vf {} \; |
390 |
|
|
find %{buildroot} -type f -name ".gitignore" -exec %{__rm} -vf {} \; |
391 |
|
|
%{__rm} -f %{buildroot}%{_mandir}/man8/syncnews.8* |
392 |
|
|
find %{buildroot}%{perl_vendorarch} -type f -name "*.bs" -exec %{__rm} -vf {} \; |
393 |
ennael |
33418 |
|
394 |
spuhler |
926160 |
%check |
395 |
|
|
make check || : |
396 |
ennael |
33418 |
|
397 |
|
|
|
398 |
|
|
%pre |
399 |
spuhler |
926160 |
if [ $1 == 1 ]; then |
400 |
|
|
# Create 'cyrus' user on target host |
401 |
spuhler |
926296 |
/usr/sbin/groupadd -r saslauth 2> /dev/null || : |
402 |
spuhler |
926160 |
/usr/sbin/useradd -c "Cyrus IMAP Server" -d %{_var}/lib/imap -g %{_cyrusgroup} \ |
403 |
spuhler |
926296 |
-G saslauth -s /sbin/nologin -r %{_cyrususer} 2> /dev/null || : |
404 |
spuhler |
926160 |
fi |
405 |
ennael |
33418 |
|
406 |
spuhler |
927664 |
## From documentation: |
407 |
|
|
# It is strongly recommended to shut down the Cyrus IMAP services |
408 |
|
|
# before performing the upgrade, as the newer binaries will end up |
409 |
|
|
# writing to mailboxes.db in a way that is not compatible with the older binaries |
410 |
|
|
# (that would otherwise still be running). |
411 |
|
|
if [ $1 == 2 ]; then |
412 |
|
|
/usr/bin/systemctl stop cyrus-imapd |
413 |
|
|
fi |
414 |
|
|
|
415 |
ennael |
33418 |
%post |
416 |
spuhler |
926160 |
CHATTRSYNC=0 |
417 |
|
|
|
418 |
|
|
if [ -f "%{_sysconfdir}/sysconfig/cyrus-imapd" ]; then |
419 |
|
|
source %{_sysconfdir}/sysconfig/cyrus-imapd |
420 |
ennael |
33418 |
fi |
421 |
|
|
|
422 |
spuhler |
926160 |
if [ $CHATTRSYNC -eq 1 ]; then |
423 |
|
|
# Force synchronous updates of files in the following directories |
424 |
|
|
chattr -R +S \ |
425 |
|
|
$(grep ^configdirectory: /etc/imapd.conf | cut -d':' -f2) \ |
426 |
|
|
$(grep ^partition- /etc/imapd.conf | cut -d':' -f2) \ |
427 |
|
|
$(grep ^metapartition- /etc/imapd.conf | cut -d':' -f2) 2>/dev/null ||: |
428 |
|
|
fi |
429 |
ennael |
33418 |
|
430 |
spuhler |
926160 |
# Create SSL certificates |
431 |
|
|
exec > /dev/null 2> /dev/null |
432 |
ennael |
33418 |
|
433 |
spuhler |
926160 |
if [ ! -z "%{ssl_pem_file}" -a -z "$(cat %{ssl_pem_file})" ]; then |
434 |
|
|
%{__rm} -f "%{ssl_pem_file}" || : |
435 |
ennael |
33418 |
fi |
436 |
|
|
|
437 |
spuhler |
926160 |
if [ ! -f %{ssl_pem_file} -a -d "%{_sysconfdir}/pki/tls/certs" ]; then |
438 |
|
|
pushd %{_sysconfdir}/pki/tls/certs |
439 |
|
|
umask 077 |
440 |
|
|
%{__cat} << EOF | make %{_name}.pem |
441 |
|
|
-- |
442 |
|
|
SomeState |
443 |
|
|
SomeCity |
444 |
|
|
SomeOrganization |
445 |
|
|
SomeOrganizationalUnit |
446 |
|
|
localhost.localdomain |
447 |
|
|
root@localhost.localdomain |
448 |
|
|
EOF |
449 |
ennael |
33418 |
|
450 |
spuhler |
926160 |
%{__chown} root.%{_cyrusgroup} %{_name}.pem |
451 |
|
|
%{__chmod} 640 %{_name}.pem |
452 |
|
|
mv %{_name}.pem %{ssl_pem_file} |
453 |
|
|
popd |
454 |
ennael |
33418 |
fi |
455 |
spuhler |
394129 |
|
456 |
spuhler |
926160 |
# These commands may fail in a docker container, which may not |
457 |
|
|
# have a /usr/bin/systemctl with a 'preset' command |
458 |
spuhler |
989656 |
%_post_service cyrus-imapd |
459 |
spuhler |
394129 |
|
460 |
ennael |
33418 |
%preun |
461 |
spuhler |
989656 |
%_preun_service cyrus-imapd |
462 |
ennael |
33418 |
|
463 |
|
|
%files |
464 |
spuhler |
926160 |
%doc COPYING README |
465 |
|
|
%doc doc/* |
466 |
|
|
%config(noreplace) %{_sysconfdir}/cyrus.conf |
467 |
|
|
%config(noreplace) %{_sysconfdir}/imapd.conf |
468 |
|
|
%{_unitdir}/cyrus-imapd.service |
469 |
|
|
%{_cyrexecdir}/cyr_systemd_helper |
470 |
|
|
%dir %{_sysconfdir}/pki |
471 |
|
|
%config(noreplace) %{_sysconfdir}/logrotate.d/%{_name} |
472 |
|
|
%attr(0640,root,%{_cyrusgroup}) %config(noreplace) %{_sysconfdir}/sysconfig/%{_name} |
473 |
|
|
%config(noreplace) %{_sysconfdir}/pam.d/pop |
474 |
|
|
%config(noreplace) %{_sysconfdir}/pam.d/imap |
475 |
|
|
%config(noreplace) %{_sysconfdir}/pam.d/sieve |
476 |
|
|
%config(noreplace) %{_sysconfdir}/pam.d/lmtp |
477 |
|
|
%config(noreplace) %{_sysconfdir}/pam.d/mupdate |
478 |
|
|
%config(noreplace) %{_sysconfdir}/pam.d/csync |
479 |
|
|
%config(noreplace) %{_sysconfdir}/pam.d/nntp |
480 |
|
|
%attr(0755,root,root) %{_bindir}/cyradm |
481 |
|
|
%{_bindir}/imtest |
482 |
|
|
%{_bindir}/installsieve |
483 |
|
|
%{_bindir}/lmtptest |
484 |
|
|
%{_bindir}/mupdatetest |
485 |
|
|
%{_bindir}/nntptest |
486 |
|
|
%{_bindir}/pop3test |
487 |
|
|
%{_bindir}/sieveshell |
488 |
|
|
%{_bindir}/sivtest |
489 |
|
|
%{_bindir}/smtptest |
490 |
|
|
%{_bindir}/synctest |
491 |
|
|
%{_sysconfdir}/cron.daily/%{_name} |
492 |
guillomovitch |
232092 |
%dir %{_cyrexecdir} |
493 |
|
|
%{_cyrexecdir}/arbitron |
494 |
spuhler |
926160 |
%{_cyrexecdir}/arbitronsort.pl |
495 |
guillomovitch |
232092 |
%{_cyrexecdir}/chk_cyrus |
496 |
spuhler |
926160 |
%{_cyrexecdir}/compile_st.pl |
497 |
|
|
%{_cyrexecdir}/convert-sieve.pl |
498 |
|
|
%{_cyrexecdir}/cyr_deny |
499 |
|
|
%{_cyrexecdir}/cyr_df |
500 |
|
|
%{_cyrexecdir}/cyr_info |
501 |
|
|
#%%{_cyrexecdir}/ctl_conversationsdb |
502 |
guillomovitch |
232092 |
%{_cyrexecdir}/ctl_cyrusdb |
503 |
|
|
%{_cyrexecdir}/ctl_deliver |
504 |
|
|
%{_cyrexecdir}/ctl_mboxlist |
505 |
spuhler |
965084 |
#%%{_cyrexecdir}/ctl_zoneinfo |
506 |
guillomovitch |
232092 |
%{_cyrexecdir}/cvt_cyrusdb |
507 |
|
|
%{_cyrexecdir}/cyr_dbtool |
508 |
|
|
%{_cyrexecdir}/cyr_expire |
509 |
spuhler |
926160 |
%{_cyrexecdir}/cyr_sequence |
510 |
guillomovitch |
232092 |
%{_cyrexecdir}/cyr_synclog |
511 |
|
|
%{_cyrexecdir}/cyr_userseen |
512 |
spuhler |
926160 |
%{_cyrexecdir}/cyrdump |
513 |
|
|
%if 0%{?with_dav} |
514 |
|
|
%{_cyrexecdir}/cyrus-httpd |
515 |
spuhler |
926296 |
%{_cyrexecdir}/dav_reconstruct |
516 |
spuhler |
926160 |
%endif |
517 |
guillomovitch |
232092 |
%{_cyrexecdir}/cyrus-master |
518 |
spuhler |
926160 |
%{_cyrexecdir}/deliver |
519 |
guillomovitch |
232092 |
%{_cyrexecdir}/dohash |
520 |
spuhler |
926160 |
%{_cyrexecdir}/fixsearchpath.pl |
521 |
guillomovitch |
232092 |
%{_cyrexecdir}/fud |
522 |
spuhler |
926160 |
#%%{_cyrexecdir}/hammer_cyrusdb |
523 |
guillomovitch |
232092 |
%{_cyrexecdir}/imapd |
524 |
|
|
%{_cyrexecdir}/ipurge |
525 |
spuhler |
926160 |
%exclude %{_cyrexecdir}/jenkins-build.sh |
526 |
guillomovitch |
232092 |
%{_cyrexecdir}/lmtpd |
527 |
spuhler |
926160 |
%{_cyrexecdir}/lmtpproxyd |
528 |
guillomovitch |
232092 |
%{_cyrexecdir}/masssievec |
529 |
|
|
%{_cyrexecdir}/mbexamine |
530 |
|
|
%{_cyrexecdir}/mbpath |
531 |
spuhler |
926160 |
%{_cyrexecdir}/mbtool |
532 |
spuhler |
926296 |
#%%{_cyrexecdir}/message_test |
533 |
guillomovitch |
232092 |
%{_cyrexecdir}/migrate-metadata |
534 |
|
|
%{_cyrexecdir}/mkimap |
535 |
|
|
%{_cyrexecdir}/mknewsgroups |
536 |
|
|
%{_cyrexecdir}/notifyd |
537 |
|
|
%{_cyrexecdir}/pop3d |
538 |
|
|
%{_cyrexecdir}/quota |
539 |
|
|
%{_cyrexecdir}/reconstruct |
540 |
|
|
%{_cyrexecdir}/rehash |
541 |
spuhler |
926160 |
#%%{_cyrexecdir}/search_test |
542 |
guillomovitch |
232092 |
%{_cyrexecdir}/sievec |
543 |
|
|
%{_cyrexecdir}/sieved |
544 |
spuhler |
926160 |
%{_cyrexecdir}/smmapd |
545 |
|
|
#%%{_cyrexecdir}/squat_dump |
546 |
guillomovitch |
232092 |
%{_cyrexecdir}/squatter |
547 |
|
|
%{_cyrexecdir}/timsieved |
548 |
|
|
%{_cyrexecdir}/tls_prune |
549 |
|
|
%{_cyrexecdir}/translatesieve |
550 |
|
|
%{_cyrexecdir}/undohash |
551 |
|
|
%{_cyrexecdir}/unexpunge |
552 |
|
|
%{_cyrexecdir}/upgradesieve |
553 |
spuhler |
926160 |
%{_cyrexecdir}/cvt_cyrusdb_all |
554 |
|
|
%{_cyrexecdir}/idled |
555 |
|
|
%{_cyrexecdir}/mupdate |
556 |
|
|
%{_cyrexecdir}/mupdate-loadgen.pl |
557 |
|
|
%{_cyrexecdir}/proxyd |
558 |
|
|
%{_cyrexecdir}/sync_client |
559 |
|
|
%{_cyrexecdir}/sync_reset |
560 |
|
|
%{_cyrexecdir}/sync_server |
561 |
|
|
%{_cyrexecdir}/cyrfetchnews |
562 |
|
|
%{_cyrexecdir}/nntpd |
563 |
guillomovitch |
232092 |
%{_cyrexecdir}/ptdump |
564 |
|
|
%{_cyrexecdir}/ptexpire |
565 |
|
|
%{_cyrexecdir}/ptloader |
566 |
spuhler |
926160 |
%attr(0750,%{_cyrususer},%{_cyrusgroup}) %dir %{_var}/lib/imap |
567 |
|
|
%attr(0750,%{_cyrususer},%{_cyrusgroup}) %dir %{_var}/lib/imap/backup |
568 |
|
|
%attr(0750,%{_cyrususer},%{_cyrusgroup}) %dir %{_var}/lib/imap/db |
569 |
|
|
%attr(0750,%{_cyrususer},%{_cyrusgroup}) %dir %{_var}/lib/imap/log |
570 |
|
|
%attr(0750,%{_cyrususer},%{_cyrusgroup}) %dir %{_var}/lib/imap/meta |
571 |
|
|
%attr(0750,%{_cyrususer},%{_cyrusgroup}) %dir %{_var}/lib/imap/md5 |
572 |
|
|
%attr(0750,%{_cyrususer},%{_cyrusgroup}) %dir %{_var}/lib/imap/msg |
573 |
|
|
%attr(0750,%{_cyrususer},%{_cyrusgroup}) %{_var}/lib/imap/proc |
574 |
|
|
%attr(0750,%{_cyrususer},%{_cyrusgroup}) %{_var}/lib/imap/ptclient |
575 |
|
|
%attr(0750,%{_cyrususer},%{_cyrusgroup}) %dir %{_var}/lib/imap/quota |
576 |
|
|
%attr(0750,%{_cyrususer},%{_cyrusgroup}) %dir %{_var}/lib/imap/rpm |
577 |
|
|
%attr(0750,%{_cyrususer},%{_cyrusgroup}) %dir %{_var}/lib/imap/sieve |
578 |
|
|
%attr(0750,%{_cyrususer},%{_cyrusgroup}) %{_var}/lib/imap/socket |
579 |
|
|
%attr(0750,%{_cyrususer},%{_cyrusgroup}) %dir %{_var}/lib/imap/sync |
580 |
|
|
%attr(0750,%{_cyrususer},%{_cyrusgroup}) %dir %{_var}/lib/imap/user |
581 |
|
|
%attr(0750,%{_cyrususer},%{_cyrusgroup}) %dir %{_var}/spool/imap |
582 |
|
|
%{_libdir}/*.so.* |
583 |
|
|
%{_var}/lib/imap/rpm/* |
584 |
|
|
%doc perl/imap/README |
585 |
|
|
%doc perl/imap/Changes |
586 |
|
|
%doc perl/imap/examples |
587 |
|
|
%dir %{perl_vendorarch}/Cyrus |
588 |
|
|
%dir %{perl_vendorarch}/Cyrus/IMAP |
589 |
|
|
%{perl_vendorarch}/Cyrus/IMAP/Admin.pm |
590 |
|
|
%{perl_vendorarch}/Cyrus/IMAP/Shell.pm |
591 |
|
|
%{perl_vendorarch}/Cyrus/IMAP/IMSP.pm |
592 |
|
|
%{perl_vendorarch}/Cyrus/IMAP.pm |
593 |
|
|
%dir %{perl_vendorarch}/Cyrus/SIEVE |
594 |
|
|
%{perl_vendorarch}/Cyrus/SIEVE/managesieve.pm |
595 |
|
|
%dir %{perl_vendorlib}/Cyrus/ |
596 |
|
|
%dir %{perl_vendorlib}/Cyrus/Annotator |
597 |
|
|
%{perl_vendorlib}/Cyrus/Annotator/Daemon.pm |
598 |
|
|
%{perl_vendorlib}/Cyrus/Annotator/Message.pm |
599 |
|
|
%dir %{perl_vendorarch}/auto |
600 |
|
|
%dir %{perl_vendorarch}/auto/Cyrus |
601 |
|
|
%dir %{perl_vendorarch}/auto/Cyrus/IMAP |
602 |
|
|
%{perl_vendorarch}/auto/Cyrus/IMAP/IMAP.so |
603 |
|
|
%dir %{perl_vendorarch}/auto/Cyrus/SIEVE |
604 |
|
|
%dir %{perl_vendorarch}/auto/Cyrus/SIEVE/managesieve |
605 |
|
|
%{perl_vendorarch}/auto/Cyrus/SIEVE/managesieve/managesieve.so |
606 |
|
|
%{_mandir}/man1/* |
607 |
|
|
%{_mandir}/man3/* |
608 |
guillomovitch |
232092 |
%{_mandir}/man5/* |
609 |
spuhler |
926160 |
%{_mandir}/man8/* |
610 |
|
|
%dir %{_sysconfdir}/pki/%{_name} |
611 |
|
|
%attr(0640,root,%{_cyrusgroup}) %ghost %config(missingok,noreplace) %verify(not md5 size mtime) %{ssl_pem_file} |
612 |
ennael |
33418 |
|
613 |
spuhler |
926296 |
|
614 |
|
|
%files -n %{libname} |
615 |
|
|
%{_libdir}/*.so.%{major}* |
616 |
|
|
|
617 |
|
|
%files -n %{develname} |
618 |
spuhler |
926160 |
%defattr(0644,root,root,0755) |
619 |
ennael |
33418 |
%{_includedir}/cyrus |
620 |
spuhler |
926160 |
%{_libdir}/pkgconfig/*cyrus*.pc |
621 |
|
|
%{_libdir}/*.so |
622 |
spuhler |
926296 |
%{_libdir}/lib*.la |
623 |
|
|
|
624 |
|
|
%files -n perl-Cyrus |
625 |
|
|
%doc perl/imap/README perl/imap/Changes perl/imap/examples |
626 |
|
|
%{perl_vendorarch}/auto/Cyrus |
627 |
|
|
%{perl_vendorarch}/Cyrus |
628 |
|
|
%{_mandir}/man3/Cyrus* |