6497d6dd004b284b951e37e50d4c80a026a20e64
[packages/openchange.git] / openchange.spec
1 # TODO
2 # - nagios plugin (see it's files section for details)
3 #
4 # Conditional build:
5 %bcond_without  apidocs         # do not build and package API docs
6 %bcond_with     mapiproxy       # mapiproxy suite (disabled with Samba 4.4+)
7 %bcond_with     mapitest        # mapitest utility (disabled with Samba 4.4+)
8 %bcond_with     python          # build python package (requires disabled mapiproxy)
9
10 %define cname   VULCAN
11 Summary:        OpenChange - portable implementation of MS Exchange Server and Exchange protocols
12 Summary(pl.UTF-8):      OpenChange - przenośna implementacja serwera oraz protokołów MS Exchange
13 Name:           openchange
14 Version:        2.3
15 Release:        48
16 License:        GPL v3+
17 Group:          Libraries
18 #Source0Download: https://github.com/openchange/openchange/releases
19 Source0:        https://github.com/openchange/openchange/archive/%{name}-%{version}-%{cname}.tar.gz
20 # Source0-md5:  96c13c78c2bcbd7040f7848746284b9f
21 Patch0:         disable-mapiproxy.patch
22 Patch1:         %{name}-link.patch
23 Patch2:         flex2.6.patch
24 Patch3:         samba-4.2.patch
25 Patch4:         fix-connection-args.patch
26 Patch5:         samba-4.4.patch
27 Patch6:         %{name}-covscan.patch
28 Patch7:         %{name}-samba-4.10-macros.patch
29 Patch8:         %{name}-libical.patch
30 Patch9:         samba-4.11.patch
31 URL:            https://github.com/openchange
32 BuildRequires:  QtCore-devel >= 4.3.0
33 BuildRequires:  QtGui-devel >= 4.3.0
34 BuildRequires:  autoconf >= 2.57
35 BuildRequires:  automake
36 BuildRequires:  check-devel
37 BuildRequires:  doxygen
38 BuildRequires:  ldb-devel
39 BuildRequires:  libical-devel >= 0.46
40 BuildRequires:  libmagic-devel
41 BuildRequires:  libmemcached-devel >= 1.0.18
42 BuildRequires:  libpcap-devel
43 BuildRequires:  libstdc++-devel
44 BuildRequires:  mysql-devel
45 BuildRequires:  nanomsg-devel >= 0.5
46 BuildRequires:  perl-base
47 BuildRequires:  pkgconfig >= 1:0.20
48 BuildRequires:  popt-devel
49 %if %{with python}
50 BuildRequires:  python-devel >= 1:2.7
51 BuildRequires:  python-samba >= 4.2.2
52 %endif
53 BuildRequires:  rpmbuild(macros) >= 1.219
54 # with DCERCP multiplex and pending call support (upstream 4.1.18+ or 4.2.2+)
55 # samba-4.10-macros patch requires samba-pidl 4.10+
56 BuildRequires:  samba-devel >= 4.10
57 BuildRequires:  samba-pidl >= 4.10
58 BuildRequires:  sed >= 4.0
59 BuildRequires:  subunit-devel
60 BuildRequires:  talloc-devel
61 BuildRequires:  tdb-devel
62 BuildRequires:  zlib-devel
63 Requires:       %{name}-libs = %{version}-%{release}
64 %{?with_python:Requires:        python-openchange = %{version}-%{release}}
65 BuildRoot:      %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
66
67 %define         _noautoreq_perl         utils
68
69 %description
70 OpenChange is a portable Open Source implementation of Microsoft
71 Exchange server and Exchange protocols. It provides a complete
72 solution to interoperate with Microsoft Outlook clients or Microsoft
73 Exchange servers.
74
75 OpenChange client-side library is used in existing messaging clients
76 and is the solution in new projects to communicate natively with
77 Microsoft Exchange and Exchange-compatible servers. OpenChange server
78 is a transparent Microsoft Exchange server replacement using native
79 Exchange protocols and does not require any plugin installation in
80 Outlook.
81
82 %description -l pl.UTF-8
83 OpenChange to przenośna, mająca otwarte źródła implementacja serwera
84 oraz protokołów Microsoft Exchange. Dostarcza kompletne rozwiązanie
85 pozwalające współpracować z klientami Microsoft Outlook oraz serwerami
86 Microsoft Exchange.
87
88 Biblioteka kliencka OpenChange jest używana przez istniejących
89 klientów pocztowych i pozwalają na natywną komunikację z serwerami
90 Microsoft Exchange oraz zgodnymi. Serwer OpenChange to przezroczysty
91 zamiennik serwera Microsoft Exchange wykorzystujący natywne protokoły
92 Exchange, nie wymagający instalowania żadnych wtyczek w Outlooku.
93
94 %package libs
95 Summary:        OpenChange client libraries
96 Summary(pl.UTF-8):      Biblioteki klienckie OpenChange
97 Group:          Libraries
98
99 %description libs
100 OpenChange client libraries.
101
102 %description libs -l pl.UTF-8
103 Biblioteki klienckie OpenChange.
104
105 %package devel
106 Summary:        Header files for OpenChange libraries
107 Summary(pl.UTF-8):      Pliki nagłówkowe bibliotek OpenChange
108 Group:          Development/Libraries
109 Requires:       %{name}-libs = %{version}-%{release}
110 Requires:       ldb-devel
111 Requires:       samba-devel >= 4.2.2
112 Requires:       talloc-devel
113 Requires:       tevent-devel
114 Requires:       zlib-devel
115
116 %description devel
117 Header files for OpenChange libraries.
118
119 %description devel -l pl.UTF-8
120 Pliki nagłówkowe bibliotek OpenChange.
121
122 %package c++
123 Summary:        C++ interface to OpenChange MAPI library
124 Summary(pl.UTF-8):      Interfejs C++ do biblioteki OpenChange MAPI
125 Group:          Libraries
126 Requires:       %{name}-libs = %{version}-%{release}
127
128 %description c++
129 C++ interface to OpenChange MAPI library.
130
131 %description c++ -l pl.UTF-8
132 Interfejs C++ do biblioteki OpenChange MAPI.
133
134 %package c++-devel
135 Summary:        Header files of C++ interface to OpenChange MAPI library
136 Summary(pl.UTF-8):      Pliki nagłówkowe interfejsu C++ do biblioteki OpenChange MAPI
137 Group:          Development/Libraries
138 Requires:       %{name}-c++ = %{version}-%{release}
139 Requires:       %{name}-devel = %{version}-%{release}
140 Requires:       libstdc++-devel
141
142 %description c++-devel
143 Header files of C++ interface to OpenChange MAPI library.
144
145 %description c++-devel -l pl.UTF-8
146 Pliki nagłówkowe interfejsu C++ do biblioteki OpenChange MAPI.
147
148 %package qt
149 Summary:        Qt interface to OpenChange MAPI library
150 Summary(pl.UTF-8):      Interfejs Qt do biblioteki OpenChange MAPI
151 Group:          Libraries
152 Requires:       %{name}-c++ = %{version}-%{release}
153 Requires:       QtCore >= 4.3.0
154 Requires:       QtGui >= 4.3.0
155
156 %description qt
157 Qt interface to OpenChange MAPI library.
158
159 %description qt -l pl.UTF-8
160 Interfejs Qt do biblioteki OpenChange MAPI.
161
162 %package qt-devel
163 Summary:        Header files of Qt interface to OpenChange MAPI library
164 Summary(pl.UTF-8):      Pliki nagłówkowe interfejsu Qt do biblioteki OpenChange MAPI
165 Group:          Development/Libraries
166 Requires:       %{name}-qt = %{version}-%{release}
167 Requires:       QtGui-devel >= 4.3.0
168
169 %description qt-devel
170 Header files of Qt interface to OpenChange MAPI library.
171
172 %description qt-devel -l pl.UTF-8
173 Pliki nagłówkowe interfejsu Qt do biblioteki OpenChange MAPI.
174
175 %package apidocs
176 Summary:        API documentation for OpenChange libraries
177 Summary(pl.UTF-8):      Dokumentacja API bibliotek OpenChange
178 Group:          Documentation
179 %if "%{_rpmversion}" >= "5"
180 BuildArch:      noarch
181 %endif
182
183 %description apidocs
184 API documentation for OpenChange libraries.
185
186 %description apidocs -l pl.UTF-8
187 Dokumentacja API bibliotek OpenChange.
188
189 %package -n python-openchange
190 Summary:        Python interface to OpenChange libraries
191 Summary(pl.UTF-8):      Interfejs Pythona do bibliotek OpenChange
192 Group:          Libraries/Python
193 Requires:       %{name}-libs = %{version}-%{release}
194
195 %description -n python-openchange
196 Python interface to OpenChange libraries.
197
198 %description -n python-openchange -l pl.UTF-8
199 Interfejs Pythona do bibliotek OpenChange.
200
201 %package -n nagios-plugin-openchange
202 Summary:        Nagios plugin to check Exchange/OpenChange services
203 Summary(pl.UTF-8):      Wtyczka Nagiosa do sprawdzania usług Exchange/OpenChange
204 Group:          Networking
205 Requires:       %{name} = %{version}-%{release}
206 Requires:       nagios
207
208 %description -n nagios-plugin-openchange
209 Nagios plugin to check Exchange/OpenChange services.
210
211 %description -n nagios-plugin-openchange -l pl.UTF-8
212 Wtyczka Nagiosa do sprawdzania usług Exchange/OpenChange.
213
214 %prep
215 %setup -q -n %{name}-%{name}-%{version}-%{cname}
216 %patch0 -p1
217 %patch1 -p1
218 %patch2 -p1
219 %patch3 -p1
220 %patch4 -p1
221 %patch5 -p1
222 %patch6 -p1
223 %patch7 -p1
224 %patch8 -p1
225 %patch9 -p1
226
227 # no switch for verbose mode, enable manually :/
228 %{__sed} -i -e 's/^     @\(\$(\(PIDL\|CC\|CXX\|MOC\)\)/ \1/' Makefile
229
230 %build
231 %{__aclocal}
232 %{__autoconf}
233 %{__autoheader}
234 %configure \
235         --datadir=%{_datadir}/openchange \
236         --enable-openchange-qt4 \
237         %{?with_python:--enable-pyopenchange} \
238         --with-modulesdir=%{_libdir}/openchange/modules
239 %{__make}
240
241 %if %{with apidocs}
242 %{__make} doxygen
243 %endif
244
245 %install
246 rm -rf $RPM_BUILD_ROOT
247
248 %{__make} install \
249         DESTDIR=$RPM_BUILD_ROOT
250
251 # doxygen generated man pages are messy; use HTML docs and install man1 pages manually
252 %if 0
253 %{__make} installman \
254         DESTDIR=$RPM_BUILD_ROOT
255 %else
256 install -d $RPM_BUILD_ROOT%{_mandir}/man1
257 cp doc/man/man1/* $RPM_BUILD_ROOT%{_mandir}/man1
258 %endif
259
260 # missing from make install
261 install -d $RPM_BUILD_ROOT%{_includedir}/libqtmapi
262 cp -p qt/lib/*.h $RPM_BUILD_ROOT%{_includedir}/libqtmapi
263 cp -a libqtmapi.so.*.* libqtmapi.so $RPM_BUILD_ROOT%{_libdir}
264
265 # tests
266 %{__rm} $RPM_BUILD_ROOT%{_bindir}/test_asyncnotif
267 %if %{without mapitest}
268 %{__rm} $RPM_BUILD_ROOT%{_mandir}/man1/mapitest.1
269 %endif
270
271 /sbin/ldconfig -n $RPM_BUILD_ROOT%{_libdir}
272
273 %py_comp $RPM_BUILD_ROOT%{py_sitedir}
274 %py_ocomp $RPM_BUILD_ROOT%{py_sitedir}
275 %py_postclean
276
277 %clean
278 rm -rf $RPM_BUILD_ROOT
279
280 %post   libs -p /sbin/ldconfig
281 %postun libs -p /sbin/ldconfig
282
283 %post   c++ -p /sbin/ldconfig
284 %postun c++ -p /sbin/ldconfig
285
286 %post   qt -p /sbin/ldconfig
287 %postun qt -p /sbin/ldconfig
288
289 %files
290 %defattr(644,root,root,755)
291 %doc CHANGES.md IDL_LICENSE.txt README.md README.smbconf.md doc/howto.txt
292 %attr(755,root,root) %{_bindir}/exchange2ical
293 %attr(755,root,root) %{_bindir}/exchange2mbox
294 %attr(755,root,root) %{_bindir}/mapiprofile
295 %attr(755,root,root) %{_bindir}/mapipropsdump
296 %attr(755,root,root) %{_bindir}/openchangeclient
297 %attr(755,root,root) %{_bindir}/openchangemapidump
298 %attr(755,root,root) %{_bindir}/openchangepfadmin
299 %attr(755,root,root) %{_bindir}/rpcextract
300 %attr(755,root,root) %{_bindir}/schemaIDGUID
301 %dir %{_datadir}/openchange
302 %dir %{_datadir}/openchange/setup
303 %{_datadir}/openchange/setup/profiles
304 %{_mandir}/man1/exchange2ical.1*
305 %{_mandir}/man1/exchange2mbox.1*
306 %{_mandir}/man1/mapiprofile.1*
307 %{_mandir}/man1/openchangeclient.1*
308 %{_mandir}/man1/openchangepfadmin.1*
309 %if %{with mapiproxy}
310 %attr(755,root,root) %{_bindir}/ocnotify
311 %attr(755,root,root) %{_sbindir}/openchange_group
312 %attr(755,root,root) %{_sbindir}/openchange_migrate
313 %attr(755,root,root) %{_sbindir}/openchange_neworganization
314 %attr(755,root,root) %{_sbindir}/openchange_newuser
315 %attr(755,root,root) %{_sbindir}/openchange_provision
316 # XXX: dir specified by dcerpc_server.pc file, should belong to samba or samba-libs
317 %dir %{_libdir}/samba/dcerpc_server
318 %attr(755,root,root) %{_libdir}/samba/dcerpc_server/dcesrv_asyncemsmdb.so
319 %attr(755,root,root) %{_libdir}/samba/dcerpc_server/dcesrv_mapiproxy.so
320 %dir %{_libdir}/openchange
321 %dir %{_libdir}/openchange/modules
322 %dir %{_libdir}/openchange/modules/dcerpc_mapiproxy
323 %attr(755,root,root) %{_libdir}/openchange/modules/dcerpc_mapiproxy/mpm_cache.so
324 %attr(755,root,root) %{_libdir}/openchange/modules/dcerpc_mapiproxy/mpm_downgrade.so
325 %attr(755,root,root) %{_libdir}/openchange/modules/dcerpc_mapiproxy/mpm_dummy.so
326 %attr(755,root,root) %{_libdir}/openchange/modules/dcerpc_mapiproxy/mpm_pack.so
327 %dir %{_libdir}/openchange/modules/dcerpc_mapiproxy_server
328 %attr(755,root,root) %{_libdir}/openchange/modules/dcerpc_mapiproxy_server/exchange_ds_rfr.so
329 %attr(755,root,root) %{_libdir}/openchange/modules/dcerpc_mapiproxy_server/exchange_emsmdb.so
330 %attr(755,root,root) %{_libdir}/openchange/modules/dcerpc_mapiproxy_server/exchange_nsp.so
331 %{_datadir}/openchange/setup/mapistore
332 %{_datadir}/openchange/setup/openchangedb
333 %dir %{_datadir}/samba/setup/AD
334 %{_datadir}/samba/setup/AD/oc_provision_*.ldif
335 %{_datadir}/samba/setup/AD/provision_schema_basedn_modify.ldif
336 %{_datadir}/samba/setup/AD/update_now.ldif
337 %{_datadir}/samba/setup/AD/prefixMap.txt
338 %endif
339 %if %{with mapitest}
340 %attr(755,root,root) %{_bindir}/mapitest
341 %{_datadir}/openchange/mapitest
342 %{_mandir}/man1/mapitest.1*
343 %endif
344
345 %files libs
346 %defattr(644,root,root,755)
347 %attr(755,root,root) %{_libdir}/libmapi.so.*.*
348 %attr(755,root,root) %ghost %{_libdir}/libmapi.so.0
349 %attr(755,root,root) %{_libdir}/libmapiadmin.so.*.*
350 %attr(755,root,root) %ghost %{_libdir}/libmapiadmin.so.0
351 %attr(755,root,root) %{_libdir}/libocpf.so.*.*
352 %attr(755,root,root) %ghost %{_libdir}/libocpf.so.0
353 %if %{with mapiproxy}
354 %attr(755,root,root) %{_libdir}/libmapiproxy.so.*.*
355 %attr(755,root,root) %ghost %{_libdir}/libmapiproxy.so.0
356 %attr(755,root,root) %{_libdir}/libmapiserver.so.*.*
357 %attr(755,root,root) %ghost %{_libdir}/libmapiserver.so.0
358 %attr(755,root,root) %{_libdir}/libmapistore.so.*.*
359 %attr(755,root,root) %ghost %{_libdir}/libmapistore.so.0
360 %endif
361
362 %files devel
363 %defattr(644,root,root,755)
364 %attr(755,root,root) %{_libdir}/libmapi.so
365 %attr(755,root,root) %{_libdir}/libmapiadmin.so
366 %attr(755,root,root) %{_libdir}/libocpf.so
367 %{_includedir}/gen_ndr
368 %{_includedir}/libmapi
369 %{_includedir}/libmapiadmin
370 %{_includedir}/libocpf
371 %{_pkgconfigdir}/libmapi.pc
372 %{_pkgconfigdir}/libmapiadmin.pc
373 %{_pkgconfigdir}/libocpf.pc
374 %if %{with mapiproxy}
375 %attr(755,root,root) %{_libdir}/libmapiproxy.so
376 %attr(755,root,root) %{_libdir}/libmapiserver.so
377 %attr(755,root,root) %{_libdir}/libmapistore.so
378 %{_includedir}/mapistore
379 %{_includedir}/libmapiproxy.h
380 %{_includedir}/libmapiserver.h
381 %{_pkgconfigdir}/libmapiproxy.pc
382 %{_pkgconfigdir}/libmapiserver.pc
383 %{_pkgconfigdir}/libmapistore.pc
384 %endif
385
386 %files c++
387 %defattr(644,root,root,755)
388 %attr(755,root,root) %{_libdir}/libmapipp.so.*.*
389 %attr(755,root,root) %ghost %{_libdir}/libmapipp.so.0
390
391 %files c++-devel
392 %defattr(644,root,root,755)
393 %attr(755,root,root) %{_libdir}/libmapipp.so
394 %{_includedir}/libmapi++
395 %{_pkgconfigdir}/libmapi++.pc
396
397 %files qt
398 %defattr(644,root,root,755)
399 %attr(755,root,root) %{_libdir}/libqtmapi.so.*.*
400 %attr(755,root,root) %ghost %{_libdir}/libqtmapi.so.0
401
402 %files qt-devel
403 %defattr(644,root,root,755)
404 %attr(755,root,root) %{_libdir}/libqtmapi.so
405 %{_includedir}/libqtmapi
406
407 %if %{with apidocs}
408 %files apidocs
409 %defattr(644,root,root,755)
410 %doc apidocs/html/*
411 %endif
412
413 %if %{with python}
414 %files -n python-openchange
415 %defattr(644,root,root,755)
416 %dir %{py_sitedir}/openchange
417 %attr(755,root,root) %{py_sitedir}/openchange/mapi.so
418 %attr(755,root,root) %{py_sitedir}/openchange/mapistore.so
419 %if %{with mapiproxy}
420 %{py_sitedir}/openchange/*.py[co]
421 %{py_sitedir}/openchange/migration
422 %{py_sitedir}/openchange/tests
423 %{py_sitedir}/openchange/utils
424 %{py_sitedir}/openchange/web
425 %endif
426 %endif
427
428 %files -n nagios-plugin-openchange
429 %defattr(644,root,root,755)
430 # R: perl, openchangeclient
431 # FIXME: use /usr/lib/nagios/plugins dir and make package noarch
432 %attr(755,root,root) %{_libdir}/nagios/check_exchange
433 # default profile database - should be /etc/...
434 #%config(noreplace) %verify(not md5 mtime size) %{_libdir}/nagios/plugins/check_exchange.ldb
This page took 0.071261 seconds and 2 git commands to generate.