[packages/openchange] - new - samba-private patch allows to build with samba 4.2.x (>4.2.1, probably 4.2.2 when released)

qboosh qboosh at pld-linux.org
Sun May 24 10:46:30 CEST 2015


commit cc90af90056fe116b59a70c2a62e58b363cf54f4
Author: Jakub Bogusz <qboosh at pld-linux.org>
Date:   Sun May 24 10:47:31 2015 +0200

    - new
    - samba-private patch allows to build with samba 4.2.x (>4.2.1, probably 4.2.2 when released)

 openchange-link.patch          |  47 ++++++
 openchange-samba-private.patch |  33 ++++
 openchange.spec                | 366 +++++++++++++++++++++++++++++++++++++++++
 3 files changed, 446 insertions(+)
---
diff --git a/openchange.spec b/openchange.spec
new file mode 100644
index 0000000..4caf83c
--- /dev/null
+++ b/openchange.spec
@@ -0,0 +1,366 @@
+#
+# Conditional build:
+%bcond_without	apidocs		# do not build and package API docs
+#
+Summary:	OpenChange - portable implementation of MS Exchange Server and Exchange protocols
+Summary(pl.UTF-8):	OpenChange - przenośna implementacja serwera oraz protokołów MS Exchange
+Name:		openchange
+Version:	2.3
+Release:	1
+License:	GPL v3+
+Group:		Libraries
+%define	cname	VULCAN
+Source0:	https://github.com/openchange/openchange/archive/%{name}-%{version}-%{cname}.tar.gz
+# Source0-md5:	96c13c78c2bcbd7040f7848746284b9f
+Patch0:		%{name}-samba-private.patch
+Patch1:		%{name}-link.patch
+URL:		http://www.openchange.org/
+BuildRequires:	QtCore-devel >= 4.3.0
+BuildRequires:	QtGui-devel >= 4.3.0
+BuildRequires:	autoconf >= 2.57
+BuildRequires:	automake
+BuildRequires:	check-devel
+BuildRequires:	doxygen
+BuildRequires:	ldb-devel
+BuildRequires:	libical-devel >= 0.46
+BuildRequires:	libmagic-devel
+BuildRequires:	libmemcached-devel >= 1.0.18
+BuildRequires:	libpcap-devel
+BuildRequires:	libstdc++-devel
+BuildRequires:	mysql-devel
+BuildRequires:	nanomsg-devel >= 0.5
+BuildRequires:	perl-base
+BuildRequires:	pkgconfig >= 1:0.20
+BuildRequires:	popt-devel
+BuildRequires:	python-devel >= 1:2.7
+BuildRequires:	rpmbuild(macros) >= 1.219
+# with DCERCP multiplex and pending call support (upstream 4.1.18+ or 4.2.>1)
+BuildRequires:	samba-devel >= 4.2.1
+BuildRequires:	samba-pidl >= 4.2.1
+BuildRequires:	sed >= 4.0
+BuildRequires:	subunit-devel
+BuildRequires:	talloc-devel
+BuildRequires:	tdb-devel
+BuildRequires:	zlib-devel
+Requires:	%{name}-libs = %{version}-%{release}
+Requires:	python-openchange = %{version}-%{release}
+BuildRoot:	%{tmpdir}/%{name}-%{version}-root-%(id -u -n)
+
+# libraries use symbols also from samba libs pulled indirectly, from outside %{_libdir}
+#define		filterout_ld	-Wl,--no-copy-dt-needed-entries
+
+%description
+OpenChange is a portable Open Source implementation of Microsoft
+Exchange server and Exchange protocols. It provides a complete
+solution to interoperate with Microsoft Outlook clients or Microsoft
+Exchange servers.
+
+OpenChange client-side library is used in existing messaging clients
+and is the solution in new projects to communicate natively with
+Microsoft Exchange and Exchange-compatible servers. OpenChange server
+is a transparent Microsoft Exchange server replacement using native
+Exchange protocols and does not require any plugin installation in
+Outlook.
+
+%description -l pl.UTF-8
+OpenChange to przenośna, mająca otwarte źródła implementacja serwera
+oraz protokołów Microsoft Exchange. Dostarcza kompletne rozwiązanie
+pozwalające współpracować z klientami Microsoft Outlook oraz serwerami
+Microsoft Exchange.
+
+Biblioteka kliencka OpenChange jest używana przez istniejących
+klientów pocztowych i pozwalają na natywną komunikację z serwerami
+Microsoft Exchange oraz zgodnymi. Serwer OpenChange to przezroczysty
+zamiennik serwera Microsoft Exchange wykorzystujący natywne protokoły
+Exchange, nie wymagający instalowania żadnych wtyczek w Outlooku.
+
+%package libs
+Summary:	OpenChange client libraries
+Summary(pl.UTF-8):	Biblioteki klienckie OpenChange
+Group:		Libraries
+
+%description libs
+OpenChange client libraries.
+
+%description libs -l pl.UTF-8
+Biblioteki klienckie OpenChange.
+
+%package devel
+Summary:	Header files for OpenChange libraries
+Summary(pl.UTF-8):	Pliki nagłówkowe bibliotek OpenChange
+Group:		Development/Libraries
+Requires:	%{name}-libs = %{version}-%{release}
+
+%description devel
+Header files for OpenChange libraries.
+
+%description devel -l pl.UTF-8
+Pliki nagłówkowe bibliotek OpenChange.
+
+%package c++
+Summary:	C++ interface to OpenChange MAPI library
+Summary(pl.UTF-8):	Interfejs C++ do biblioteki OpenChange MAPI
+Group:		Libraries
+
+%description c++
+C++ interface to OpenChange MAPI library.
+
+%description c++ -l pl.UTF-8
+Interfejs C++ do biblioteki OpenChange MAPI.
+
+%package c++-devel
+Summary:	Header files of C++ interface to OpenChange MAPI library
+Summary(pl.UTF-8):	Pliki nagłówkowe interfejsu C++ do biblioteki OpenChange MAPI
+Group:		Development/Libraries
+Requires:	%{name}-c++ = %{version}-%{release}
+
+%description c++-devel
+Header files of C++ interface to OpenChange MAPI library.
+
+%description c++-devel -l pl.UTF-8
+Pliki nagłówkowe interfejsu C++ do biblioteki OpenChange MAPI.
+
+%package qt
+Summary:	Qt interface to OpenChange MAPI library
+Summary(pl.UTF-8):	Interfejs Qt do biblioteki OpenChange MAPI
+Group:		Libraries
+
+%description qt
+Qt interface to OpenChange MAPI library.
+
+%description qt -l pl.UTF-8
+Interfejs Qt do biblioteki OpenChange MAPI.
+
+%package qt-devel
+Summary:	Header files of Qt interface to OpenChange MAPI library
+Summary(pl.UTF-8):	Pliki nagłówkowe interfejsu Qt do biblioteki OpenChange MAPI
+Group:		Development/Libraries
+Requires:	%{name}-qt = %{version}-%{release}
+
+%description qt-devel
+Header files of Qt interface to OpenChange MAPI library.
+
+%description qt-devel -l pl.UTF-8
+Pliki nagłówkowe interfejsu Qt do biblioteki OpenChange MAPI.
+
+%package apidocs
+Summary:	API documentation for OpenChange libraries
+Summary(pl.UTF-8):	Dokumentacja API bibliotek OpenChange
+Group:		Documentation
+
+%description apidocs
+API documentation for OpenChange libraries.
+
+%description apidocs -l pl.UTF-8
+Dokumentacja API bibliotek OpenChange.
+
+%package -n python-openchange
+Summary:	Python interface to OpenChange libraries
+Summary(pl.UTF-8):	Interfejs Pythona do bibliotek OpenChange
+Group:		Libraries/Python
+Requires:	%{name}-libs = %{version}-%{release}
+
+%description -n python-openchange
+Python interface to OpenChange libraries.
+
+%description -n python-openchange -l pl.UTF-8
+Interfejs Pythona do bibliotek OpenChange.
+
+%package -n nagios-plugin-openchange
+Summary:	Nagios plugin to check Exchange/OpenChange services
+Summary(pl.UTF-8):	Wtyczka Nagiosa do sprawdzania usług Exchange/OpenChange
+Group:		Networking
+Requires:	%{name} = %{version}-%{release}
+Requires:	nagios
+
+%description -n nagios-plugin-openchange
+Nagios plugin to check Exchange/OpenChange services.
+
+%description -n nagios-plugin-openchange -l pl.UTF-8
+Wtyczka Nagiosa do sprawdzania usług Exchange/OpenChange.
+
+%prep
+%setup -q -n %{name}-%{name}-%{version}-%{cname}
+%patch0 -p1
+%patch1 -p1
+
+# no switch for verbose mode, enable manually :/
+%{__sed} -i -e 's/^	@\(\$(\(PIDL\|CC\|CXX\|MOC\)\)/	\1/' Makefile
+
+%build
+%{__aclocal}
+%{__autoconf}
+%{__autoheader}
+%configure \
+	--datadir=%{_datadir}/openchange \
+	--enable-openchange-qt4 \
+	--enable-pyopenchange \
+	--with-modulesdir=%{_libdir}/openchange/modules
+%{__make}
+
+%if %{with apidocs}
+%{__make} doxygen
+%endif
+
+%install
+rm -rf $RPM_BUILD_ROOT
+
+%{__make} install \
+	DESTDIR=$RPM_BUILD_ROOT
+
+# doxygen generated man pages are messy; use HTML docs and install man1 pages manually
+%if 0
+%{__make} installman \
+	DESTDIR=$RPM_BUILD_ROOT
+%else
+install -d $RPM_BUILD_ROOT%{_mandir}/man1
+cp doc/man/man1/* $RPM_BUILD_ROOT%{_mandir}/man1
+%endif
+
+# missing from make install
+install -d $RPM_BUILD_ROOT%{_includedir}/libqtmapi
+cp -p qt/lib/*.h $RPM_BUILD_ROOT%{_includedir}/libqtmapi
+cp -a libqtmapi.so.*.* libqtmapi.so $RPM_BUILD_ROOT%{_libdir}
+
+# tests
+%{__rm} $RPM_BUILD_ROOT%{_bindir}/{check_fasttransfer,openchange-testsuite,test_asyncnotif}
+
+/sbin/ldconfig -n $RPM_BUILD_ROOT%{_libdir}
+
+%py_comp $RPM_BUILD_ROOT%{py_sitedir}
+%py_ocomp $RPM_BUILD_ROOT%{py_sitedir}
+%py_postclean
+
+%clean
+rm -rf $RPM_BUILD_ROOT
+
+%post	-p /sbin/ldconfig
+%postun	-p /sbin/ldconfig
+
+%files
+%defattr(644,root,root,755)
+%doc CHANGES.md IDL_LICENSE.txt README.md README.smbconf.md doc/howto.txt
+%attr(755,root,root) %{_bindir}/exchange2ical
+%attr(755,root,root) %{_bindir}/exchange2mbox
+%attr(755,root,root) %{_bindir}/mapiprofile
+%attr(755,root,root) %{_bindir}/mapipropsdump
+%attr(755,root,root) %{_bindir}/mapitest
+%attr(755,root,root) %{_bindir}/ocnotify
+%attr(755,root,root) %{_bindir}/openchangeclient
+%attr(755,root,root) %{_bindir}/openchangemapidump
+%attr(755,root,root) %{_bindir}/openchangepfadmin
+%attr(755,root,root) %{_bindir}/rpcextract
+%attr(755,root,root) %{_bindir}/schemaIDGUID
+%attr(755,root,root) %{_sbindir}/openchange_group
+%attr(755,root,root) %{_sbindir}/openchange_migrate
+%attr(755,root,root) %{_sbindir}/openchange_neworganization
+%attr(755,root,root) %{_sbindir}/openchange_newuser
+%attr(755,root,root) %{_sbindir}/openchange_provision
+# XXX: dir specified by dcerpc_server.pc file, should belong to samba or samba-libs
+%dir %{_libdir}/samba/dcerpc_server
+%attr(755,root,root) %{_libdir}/samba/dcerpc_server/dcesrv_asyncemsmdb.so
+%attr(755,root,root) %{_libdir}/samba/dcerpc_server/dcesrv_mapiproxy.so
+%dir %{_libdir}/openchange
+%dir %{_libdir}/openchange/modules
+%dir %{_libdir}/openchange/modules/dcerpc_mapiproxy
+%attr(755,root,root) %{_libdir}/openchange/modules/dcerpc_mapiproxy/mpm_cache.so
+%attr(755,root,root) %{_libdir}/openchange/modules/dcerpc_mapiproxy/mpm_downgrade.so
+%attr(755,root,root) %{_libdir}/openchange/modules/dcerpc_mapiproxy/mpm_dummy.so
+%attr(755,root,root) %{_libdir}/openchange/modules/dcerpc_mapiproxy/mpm_pack.so
+%dir %{_libdir}/openchange/modules/dcerpc_mapiproxy_server
+%attr(755,root,root) %{_libdir}/openchange/modules/dcerpc_mapiproxy_server/exchange_ds_rfr.so
+%attr(755,root,root) %{_libdir}/openchange/modules/dcerpc_mapiproxy_server/exchange_emsmdb.so
+%attr(755,root,root) %{_libdir}/openchange/modules/dcerpc_mapiproxy_server/exchange_nsp.so
+%dir %{_datadir}/openchange
+%{_datadir}/openchange/mapitest
+%dir %{_datadir}/openchange/setup
+%{_datadir}/openchange/setup/mapistore
+%{_datadir}/openchange/setup/openchangedb
+%{_datadir}/openchange/setup/profiles
+%dir %{_datadir}/samba/setup/AD
+%{_datadir}/samba/setup/AD/oc_provision_*.ldif
+%{_datadir}/samba/setup/AD/provision_schema_basedn_modify.ldif
+%{_datadir}/samba/setup/AD/update_now.ldif
+%{_datadir}/samba/setup/AD/prefixMap.txt
+%{_mandir}/man1/exchange2ical.1*
+%{_mandir}/man1/exchange2mbox.1*
+%{_mandir}/man1/mapiprofile.1*
+%{_mandir}/man1/mapitest.1*
+%{_mandir}/man1/openchangeclient.1*
+%{_mandir}/man1/openchangepfadmin.1*
+
+%files libs
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir}/libmapi.so.*.*
+%attr(755,root,root) %ghost %{_libdir}/libmapi.so.0
+%attr(755,root,root) %{_libdir}/libmapiadmin.so.*.*
+%attr(755,root,root) %ghost %{_libdir}/libmapiadmin.so.0
+%attr(755,root,root) %{_libdir}/libmapipp.so.*.*
+%attr(755,root,root) %ghost %{_libdir}/libmapipp.so.0
+%attr(755,root,root) %{_libdir}/libmapiproxy.so.*.*
+%attr(755,root,root) %ghost %{_libdir}/libmapiproxy.so.0
+%attr(755,root,root) %{_libdir}/libmapiserver.so.*.*
+%attr(755,root,root) %ghost %{_libdir}/libmapiserver.so.0
+%attr(755,root,root) %{_libdir}/libmapistore.so.*.*
+%attr(755,root,root) %ghost %{_libdir}/libmapistore.so.0
+%attr(755,root,root) %{_libdir}/libocpf.so.*.*
+%attr(755,root,root) %ghost %{_libdir}/libocpf.so.0
+
+%files devel
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir}/libmapi.so
+%attr(755,root,root) %{_libdir}/libmapiadmin.so
+%attr(755,root,root) %{_libdir}/libmapipp.so
+%attr(755,root,root) %{_libdir}/libmapiproxy.so
+%attr(755,root,root) %{_libdir}/libmapiserver.so
+%attr(755,root,root) %{_libdir}/libmapistore.so
+%attr(755,root,root) %{_libdir}/libocpf.so
+%{_includedir}/gen_ndr
+%{_includedir}/libmapi
+%{_includedir}/libmapi++
+%{_includedir}/libmapiadmin
+%{_includedir}/libocpf
+%{_includedir}/mapistore
+%{_includedir}/libmapiproxy.h
+%{_includedir}/libmapiserver.h
+%{_pkgconfigdir}/libmapi.pc
+%{_pkgconfigdir}/libmapi++.pc
+%{_pkgconfigdir}/libmapiadmin.pc
+%{_pkgconfigdir}/libmapiproxy.pc
+%{_pkgconfigdir}/libmapiserver.pc
+%{_pkgconfigdir}/libmapistore.pc
+%{_pkgconfigdir}/libocpf.pc
+
+%files qt
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir}/libqtmapi.so.*.*
+%attr(755,root,root) %ghost %{_libdir}/libqtmapi.so.0
+
+%files qt-devel
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir}/libqtmapi.so
+%{_includedir}/libqtmapi
+
+%if %{with apidocs}
+%files apidocs
+%defattr(644,root,root,755)
+%doc apidocs/html/*
+%endif
+
+%files -n python-openchange
+%defattr(644,root,root,755)
+%dir %{py_sitedir}/openchange
+%attr(755,root,root) %{py_sitedir}/openchange/mapi.so
+%attr(755,root,root) %{py_sitedir}/openchange/mapistore.so
+%{py_sitedir}/openchange/*.py[co]
+%{py_sitedir}/openchange/migration
+%{py_sitedir}/openchange/tests
+%{py_sitedir}/openchange/utils
+%{py_sitedir}/openchange/web
+
+%files -n nagios-plugin-openchange
+%defattr(644,root,root,755)
+# R: perl, openchangeclient
+%attr(755,root,root) %{_libdir}/nagios/check_exchange
+# default profile database - should be /etc/...
+#%config(noreplace) %verify(not md5 mtime size) %{_libdir}/nagios/plugins/check_exchange.ldb
diff --git a/openchange-link.patch b/openchange-link.patch
new file mode 100644
index 0000000..656e64c
--- /dev/null
+++ b/openchange-link.patch
@@ -0,0 +1,47 @@
+--- openchange-openchange-2.3-VULCAN/config.mk.in.orig	2015-05-22 23:30:25.141933097 +0200
++++ openchange-openchange-2.3-VULCAN/config.mk.in	2015-05-22 23:30:28.665266286 +0200
+@@ -68,7 +68,7 @@
+ TALLOC_LIBS=@TALLOC_LIBS@
+ 
+ CFLAGS+=$(SAMBA_CFLAGS) $(LDB_CFLAGS) $(TALLOC_CFLAGS) $(TDB_CFLAGS) $(THREAD_CFLAGS) $(NANOMSG_CFLAGS)
+-LIBS+=$(SAMBA_LIBS) $(LDB_LIBS) $(TALLOC_LIBS) $(THREAD_LIBS)
++LIBS+=$(SAMBA_LIBS) $(LDB_LIBS) $(TALLOC_LIBS) $(THREAD_LIBS) -ltevent-util ${libdir}/samba/libcli-ldap-common-samba4.so ${libdir}/samba/libcliauth-samba4.so ${libdir}/samba/libdcerpc-samba-samba4.so ${libdir}/samba/liberrors-samba4.so ${libdir}/samba/libldbsamba-samba4.so ${libdir}/samba/libndr-samba-samba4.so ${libdir}/samba/libsamba-debug-samba4.so ${libdir}/samba/libsamba-security-samba4.so ${libdir}/samba/libsamdb-common-samba4.so
+ LDFLAGS+=@LDFLAGS@
+ 
+ THREAD_LIBS=@THREAD_LIBS@
+--- openchange-openchange-2.3-VULCAN/Makefile.orig	2015-05-23 19:28:30.857562616 +0200
++++ openchange-openchange-2.3-VULCAN/Makefile	2015-05-23 21:04:14.893988228 +0200
+@@ -368,6 +368,9 @@
+ 	@echo "Linking $@"
+ 	$(CXX) $(DSOOPT) $(CXX11FLAGS) $(CXXFLAGS) $(LDFLAGS) -Wl,-soname,libmapipp.$(SHLIBEXT).$(LIBMAPIPP_SO_VERSION) -o $@ $^ $(LIBS) 
+ 
++libmapipp.$(SHLIBEXT).$(LIBMAPI_SO_VERSION): libmapipp.$(SHLIBEXT).$(PACKAGE_VERSION)
++	ln -fs $< $@
++
+ libmapixx-installpc:
+ 	@echo "[*] install: libmapi++ pc files"
+ 	$(INSTALL) -d $(DESTDIR)$(libdir)/pkgconfig
+@@ -858,8 +861,7 @@
+ 							mapiproxy/libmapiserver/libmapiserver_oxorule.po	\
+ 							mapiproxy/libmapiserver/libmapiserver_oxcperm.po	\
+ 							mapiproxy/libmapiserver/libmapiserver_oxcdata.po	\
+-							ndr_mapi.po				\
+-							gen_ndr/ndr_exchange.po
++							libmapi.$(SHLIBEXT).$(LIBMAPI_SO_VERSION)
+ 	@echo "Linking $@"
+ 	@$(CC) -o $@ $(DSOOPT) $(LDFLAGS) -Wl,-soname,libmapiserver.$(SHLIBEXT).$(LIBMAPIPROXY_SO_VERSION) $^ $(LIBS)
+ 
+@@ -1885,9 +1888,11 @@
+ 
+ libqtmapi.$(SHLIBEXT).$(PACKAGE_VERSION): 	\
+ 	qt/lib/foldermodel.o			\
+-	qt/lib/messagesmodel.o
++	qt/lib/messagesmodel.o                  \
++	libmapipp.$(SHLIBEXT).$(LIBMAPIPP_SO_VERSION) \
++	libmapi.$(SHLIBEXT).$(LIBMAPIPP_SO_VERSION)
+ 	@echo "Linking $@"
+-	@$(CXX) $(DSOOPT) $(CXX11FLAGS) $(CXXFLAGS) $(LDFLAGS) -Wl,-soname,libqtmapi.$(SHLIBEXT).$(LIBQTMAPI_SO_VERSION) -o $@ $^ $(LIBS)
++	@$(CXX) $(DSOOPT) $(CXX11FLAGS) $(CXXFLAGS) $(LDFLAGS) -Wl,-soname,libqtmapi.$(SHLIBEXT).$(LIBQTMAPI_SO_VERSION) -o $@ $^ -lQtGui -lQtCore $(LIBS)
+ 
+ 
+ qt/demo/demoapp: qt/demo/demoapp.o 				\
diff --git a/openchange-samba-private.patch b/openchange-samba-private.patch
new file mode 100644
index 0000000..05847fb
--- /dev/null
+++ b/openchange-samba-private.patch
@@ -0,0 +1,33 @@
+--- openchange-openchange-2.3-VULCAN/mapiproxy/dcesrv_mapiproxy.c.orig	2015-05-16 17:22:04.000000000 +0200
++++ openchange-openchange-2.3-VULCAN/mapiproxy/dcesrv_mapiproxy.c	2015-05-22 20:07:34.359110523 +0200
+@@ -134,10 +134,10 @@
+ 
+ 		switch (dce_call->pkt.ptype) {
+ 		case DCERPC_PKT_BIND:
+-			b->assoc_group_id = dce_call->pkt.u.bind.assoc_group_id;
++			dcerpc_binding_set_assoc_group_id(b, dce_call->pkt.u.bind.assoc_group_id);
+ 			break;
+ 		case DCERPC_PKT_ALTER:
+-			b->assoc_group_id = dce_call->pkt.u.alter.assoc_group_id;
++			dcerpc_binding_set_assoc_group_id(b, dce_call->pkt.u.alter.assoc_group_id);
+ 			break;
+ 		default:
+ 			break;
+@@ -154,7 +154,7 @@
+ 		if (!NT_STATUS_IS_OK(status)) {
+ 			return status;
+ 		}
+-		dce_call->context->assoc_group->id = private->c_pipe->assoc_group_id;
++		dce_call->context->assoc_group->id = dcerpc_binding_get_assoc_group_id(private->c_pipe->binding);
+ 		
+ 	} else {
+ 		status = dcerpc_pipe_connect(dce_call->context,
+@@ -169,7 +169,7 @@
+ 		if (!NT_STATUS_IS_OK(status)) {
+ 			return status;
+ 		}
+-		dce_call->context->assoc_group->id = private->c_pipe->assoc_group_id;
++		dce_call->context->assoc_group->id = dcerpc_binding_get_assoc_group_id(private->c_pipe->binding);
+ 	}
+ 
+ 	private->connected = true;
================================================================

---- gitweb:

http://git.pld-linux.org/gitweb.cgi/packages/openchange.git/commitdiff/cc90af90056fe116b59a70c2a62e58b363cf54f4



More information about the pld-cvs-commit mailing list