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