import openchange-2.3-38.el9

This commit is contained in:
CentOS Sources 2022-05-17 04:57:31 -04:00 committed by Stepan Oksanichenko
commit de5e175ec3
24 changed files with 4106 additions and 0 deletions

1
.gitignore vendored Normal file
View File

@ -0,0 +1 @@
SOURCES/openchange-2.3-VULCAN.tar.gz

1
.openchange.metadata Normal file
View File

@ -0,0 +1 @@
901e6d8fa4f9f4a1d41c3ad97d967da316d0ad17 SOURCES/openchange-2.3-VULCAN.tar.gz

View File

@ -0,0 +1,34 @@
<xsl:stylesheet
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:fo="http://www.w3.org/1999/XSL/Format"
version="1.0">
<xsl:output method="xml" version="1.0" indent="yes"/>
<xsl:param name="prefix"></xsl:param>
<xsl:param name="booktitle"></xsl:param>
<xsl:param name="bookpart"></xsl:param>
<xsl:template match="/">
<book title="OpenChange: {$booktitle}"
name="openchange-{$bookpart}"
link="index.html">
<functions>
<xsl:apply-templates select="doxygenindex/compound[@kind='file']/member[@kind='function']"/>
<xsl:apply-templates select="doxygenindex/compound[@kind='class']/member[@kind='function']"/>
</functions>
</book>
</xsl:template>
<xsl:template match="member">
<xsl:param name="name"><xsl:value-of select="name"/></xsl:param>
<xsl:param name="refid"><xsl:value-of select="@refid"/></xsl:param>
<xsl:param name="before"><xsl:value-of select="substring-before($refid,'_1')"/></xsl:param>
<xsl:param name="after"><xsl:value-of select="substring-after($refid,'_1')"/></xsl:param>
<xsl:param name="link"><xsl:value-of select="$before"/>.html#<xsl:value-of select="$after"/></xsl:param>
<xsl:if test="contains($refid, '_8c_')">
<function name="{$name}" link="{$prefix}{$link}"/>
</xsl:if>
</xsl:template>
</xsl:stylesheet>

View File

@ -0,0 +1,348 @@
diff -up openchange-openchange-2.3-VULCAN/libmapi.pc.in.libmapi-conflict openchange-openchange-2.3-VULCAN/libmapi.pc.in
--- openchange-openchange-2.3-VULCAN/libmapi.pc.in.libmapi-conflict 2015-05-16 17:22:04.000000000 +0200
+++ openchange-openchange-2.3-VULCAN/libmapi.pc.in 2015-05-18 07:00:01.718355270 +0200
@@ -8,7 +8,7 @@ datadir=@datadir@
Name: MAPI
Description: MAPI Protocol Implementation
Version: @PACKAGE_VERSION@
-Libs: -L${libdir} -lmapi
+Libs: -L${libdir} -lmapi-openchange
Libs.private: @LIBS@
Cflags: -I${includedir}
Requires: talloc dcerpc ndr tevent
diff -up openchange-openchange-2.3-VULCAN/Makefile.libmapi-conflict openchange-openchange-2.3-VULCAN/Makefile
--- openchange-openchange-2.3-VULCAN/Makefile.libmapi-conflict 2015-05-16 17:22:04.000000000 +0200
+++ openchange-openchange-2.3-VULCAN/Makefile 2015-05-18 07:01:57.737350354 +0200
@@ -166,7 +166,7 @@ LIBMAPI_SO_VERSION = 0
libmapi: idl \
libmapi/version.h \
- libmapi.$(SHLIBEXT).$(PACKAGE_VERSION)
+ libmapi-openchange.$(SHLIBEXT).$(PACKAGE_VERSION)
libmapi-install: libmapi \
libmapi-installpc \
@@ -201,8 +201,8 @@ endif
rm -f *~
rm -f */*~
rm -f */*/*~
- rm -f libmapi.$(SHLIBEXT).$(PACKAGE_VERSION) libmapi.$(SHLIBEXT).* \
- libmapi.$(SHLIBEXT)
+ rm -f libmapi-openchange.$(SHLIBEXT).$(PACKAGE_VERSION) libmapi-openchange.$(SHLIBEXT).* \
+ libmapi-openchange.$(SHLIBEXT)
clean:: libmapi-clean
@@ -219,10 +219,10 @@ libmapi-installpc:
libmapi-installlib:
@echo "[*] install: libmapi library"
$(INSTALL) -d $(DESTDIR)$(libdir)
- $(INSTALL) -m 0755 libmapi.$(SHLIBEXT).$(PACKAGE_VERSION) $(DESTDIR)$(libdir)
- ln -sf libmapi.$(SHLIBEXT).$(PACKAGE_VERSION) $(DESTDIR)$(libdir)/libmapi.$(SHLIBEXT)
+ $(INSTALL) -m 0755 libmapi-openchange.$(SHLIBEXT).$(PACKAGE_VERSION) $(DESTDIR)$(libdir)
+ ln -sf libmapi-openchange.$(SHLIBEXT).$(PACKAGE_VERSION) $(DESTDIR)$(libdir)/libmapi-openchange.$(SHLIBEXT)
ifeq ($(MANUALLY_CREATE_SYMLINKS), yes)
- ln -sf libmapi.$(SHLIBEXT).$(PACKAGE_VERSION) $(DESTDIR)$(libdir)/libmapi.$(SHLIBEXT).$(LIBMAPI_SO_VERSION)
+ ln -sf libmapi-openchange.$(SHLIBEXT).$(PACKAGE_VERSION) $(DESTDIR)$(libdir)/libmapi-openchange.$(SHLIBEXT).$(LIBMAPI_SO_VERSION)
endif
libmapi-installheader:
@@ -267,7 +267,7 @@ libmapi-uninstallpc:
rm -f $(DESTDIR)$(libdir)/pkgconfig/libmapi.pc
libmapi-uninstalllib:
- rm -f $(DESTDIR)$(libdir)/libmapi.*
+ rm -f $(DESTDIR)$(libdir)/libmapi-openchange.*
libmapi-uninstallheader:
rm -rf $(DESTDIR)$(includedir)/libmapi
@@ -279,7 +279,7 @@ libmapi-uninstallscript:
rm -f $(DESTDIR)$(datadir)/setup/profiles/oc_profiles*
rm -rf $(DESTDIR)$(datadir)/setup/profiles
-libmapi.$(SHLIBEXT).$(PACKAGE_VERSION): \
+libmapi-openchange.$(SHLIBEXT).$(PACKAGE_VERSION): \
libmapi/emsmdb.po \
libmapi/async_emsmdb.po \
libmapi/IABContainer.po \
@@ -326,10 +326,10 @@ libmapi.$(SHLIBEXT).$(PACKAGE_VERSION):
libmapi/socket/interface.po \
libmapi/socket/netif.po
@echo "Linking $@"
- @$(CC) $(DSOOPT) $(CFLAGS) $(LDFLAGS) -Wl,-soname,libmapi.$(SHLIBEXT).$(LIBMAPI_SO_VERSION) -o $@ $^ $(LIBS)
+ @$(CC) $(DSOOPT) $(CFLAGS) $(LDFLAGS) -Wl,-soname,libmapi-openchange.$(SHLIBEXT).$(LIBMAPI_SO_VERSION) -o $@ $^ $(LIBS)
-libmapi.$(SHLIBEXT).$(LIBMAPI_SO_VERSION): libmapi.$(SHLIBEXT).$(PACKAGE_VERSION)
+libmapi-openchange.$(SHLIBEXT).$(LIBMAPI_SO_VERSION): libmapi-openchange.$(SHLIBEXT).$(PACKAGE_VERSION)
ln -fs $< $@
libmapi/version.h: VERSION
@@ -364,7 +364,7 @@ libmapipp.$(SHLIBEXT).$(PACKAGE_VERSION)
libmapi++/src/object.po \
libmapi++/src/profile.po \
libmapi++/src/session.po \
- libmapi.$(SHLIBEXT).$(LIBMAPI_SO_VERSION)
+ libmapi-openchange.$(SHLIBEXT).$(LIBMAPI_SO_VERSION)
@echo "Linking $@"
@$(CXX) $(DSOOPT) $(CXX11FLAGS) $(CXXFLAGS) $(LDFLAGS) -Wl,-soname,libmapipp.$(SHLIBEXT).$(LIBMAPIPP_SO_VERSION) -o $@ $^ $(LIBS)
@@ -445,7 +445,7 @@ clean:: libmapixx-tests-clean
bin/libmapixx-test: libmapi++/tests/test.cpp \
libmapipp.$(SHLIBEXT).$(PACKAGE_VERSION) \
- libmapi.$(SHLIBEXT).$(PACKAGE_VERSION)
+ libmapi-openchange.$(SHLIBEXT).$(PACKAGE_VERSION)
@echo "Linking sample application $@"
@$(CXX) $(CXX11FLAGS) $(CXXFLAGS) $(LDFLAGS) -o $@ $^ $(LIBS)
@@ -460,7 +460,7 @@ libmapixx-attach-clean:
bin/libmapixx-attach: libmapi++/tests/attach_test.po \
libmapipp.$(SHLIBEXT).$(PACKAGE_VERSION) \
- libmapi.$(SHLIBEXT).$(PACKAGE_VERSION)
+ libmapi-openchange.$(SHLIBEXT).$(PACKAGE_VERSION)
@echo "Linking sample application $@"
@$(CXX) $(CXX11FLAGS) $(CXXFLAGS) -o $@ $^ $(LIBS)
@@ -470,7 +470,7 @@ libmapixx-exception: bin/libmapixx-excep
bin/libmapixx-exception: libmapi++/tests/exception_test.cpp \
libmapipp.$(SHLIBEXT).$(PACKAGE_VERSION) \
- libmapi.$(SHLIBEXT).$(PACKAGE_VERSION)
+ libmapi-openchange.$(SHLIBEXT).$(PACKAGE_VERSION)
@echo "Linking exception test application $@"
@$(CXX) $(CXX11FLAGS) $(CXXFLAGS) -o $@ $^ $(LIBS)
@@ -490,7 +490,7 @@ libmapixx-profiletest-clean:
bin/libmapixx-profiletest: libmapi++/tests/profile_test.po \
libmapipp.$(SHLIBEXT).$(PACKAGE_VERSION) \
- libmapi.$(SHLIBEXT).$(PACKAGE_VERSION)
+ libmapi-openchange.$(SHLIBEXT).$(PACKAGE_VERSION)
@echo "Linking profile test application $@"
@$(CXX) $(CXX11FLAGS) $(CXXFLAGS) -o $@ $^ $(LIBS)
@@ -511,7 +511,7 @@ libmapixx-messages-clean:
libmapi++/examples/foldertree: libmapi++/examples/foldertree.cpp \
libmapipp.$(SHLIBEXT).$(PACKAGE_VERSION) \
- libmapi.$(SHLIBEXT).$(PACKAGE_VERSION)
+ libmapi-openchange.$(SHLIBEXT).$(PACKAGE_VERSION)
@echo "Linking foldertree example application $@"
@$(CXX) $(CXX11FLAGS) $(CXXFLAGS) -o $@ $^ $(LIBS)
@@ -519,7 +519,7 @@ clean:: libmapixx-foldertree-clean
libmapi++/examples/messages: libmapi++/examples/messages.cpp \
libmapipp.$(SHLIBEXT).$(PACKAGE_VERSION) \
- libmapi.$(SHLIBEXT).$(PACKAGE_VERSION)
+ libmapi-openchange.$(SHLIBEXT).$(PACKAGE_VERSION)
@echo "Linking messages example application $@"
@$(CXX) $(CXX11FLAGS) $(CXXFLAGS) -o $@ $^ $(LIBS)
@@ -586,7 +586,7 @@ libmapiadmin-uninstallheader:
libmapiadmin.$(SHLIBEXT).$(PACKAGE_VERSION): \
libmapiadmin/mapiadmin_user.po \
libmapiadmin/mapiadmin.po \
- libmapi.$(SHLIBEXT).$(PACKAGE_VERSION)
+ libmapi-openchange.$(SHLIBEXT).$(PACKAGE_VERSION)
@echo "Linking $@"
@$(CC) $(DSOOPT) $(LDFLAGS) -Wl,-soname,libmapiadmin.$(SHLIBEXT).$(LIBMAPIADMIN_SO_VERSION) -o $@ $^ $(LIBS) $(LIBMAPIADMIN_LIBS)
@@ -663,7 +663,7 @@ libocpf.$(SHLIBEXT).$(PACKAGE_VERSION):
libocpf/ocpf_dump.po \
libocpf/ocpf_api.po \
libocpf/ocpf_write.po \
- libmapi.$(SHLIBEXT).$(PACKAGE_VERSION)
+ libmapi-openchange.$(SHLIBEXT).$(PACKAGE_VERSION)
@echo "Linking $@"
@$(CC) $(DSOOPT) $(LDFLAGS) -Wl,-soname,libocpf.$(SHLIBEXT).$(LIBOCPF_SO_VERSION) -o $@ $^ $(LIBS)
@@ -740,7 +740,7 @@ mapiproxy/dcesrv_mapiproxy.$(SHLIBEXT):
gen_ndr/ndr_exchange.po
@echo "Linking $@"
- @$(CC) -o $@ $(DSOOPT) $^ -L. $(LDFLAGS) $(LIBS) $(SAMBASERVER_LIBS) $(SAMDB_LIBS) -Lmapiproxy mapiproxy/libmapiproxy.$(SHLIBEXT).$(PACKAGE_VERSION) libmapi.$(SHLIBEXT).$(PACKAGE_VERSION)
+ @$(CC) -o $@ $(DSOOPT) $^ -L. $(LDFLAGS) $(LIBS) $(SAMBASERVER_LIBS) $(SAMDB_LIBS) -Lmapiproxy mapiproxy/libmapiproxy.$(SHLIBEXT).$(PACKAGE_VERSION) libmapi-openchange.$(SHLIBEXT).$(PACKAGE_VERSION)
mapiproxy/dcesrv_mapiproxy.c: gen_ndr/ndr_exchange_s.c gen_ndr/ndr_exchange.c
@@ -748,7 +748,7 @@ mapiproxy/dcesrv_mapiproxy.c: gen_ndr/nd
mapiproxy/dcesrv_asyncemsmdb.$(SHLIBEXT): mapiproxy/servers/default/asyncemsmdb/dcesrv_asyncemsmdb.po \
gen_ndr/ndr_asyncemsmdb.po
@echo "Linking $@"
- @$(CC) -o $@ $(DSOOPT) $^ -L. $(LDFLAGS) $(LIBS) $(SAMBASERVER_LIBS) $(SAMDB_LIBS) $(NANOMSG_LIBS) -Lmapiproxy mapiproxy/libmapiproxy.$(SHLIBEXT).$(PACKAGE_VERSION) libmapi.$(SHLIBEXT).$(PACKAGE_VERSION) mapiproxy/libmapistore.$(SHLIBEXT).$(PACKAGE_VERSION) mapiproxy/libmapiserver.$(SHLIBEXT).$(PACKAGE_VERSION) \
+ @$(CC) -o $@ $(DSOOPT) $^ -L. $(LDFLAGS) $(LIBS) $(SAMBASERVER_LIBS) $(SAMDB_LIBS) $(NANOMSG_LIBS) -Lmapiproxy mapiproxy/libmapiproxy.$(SHLIBEXT).$(PACKAGE_VERSION) libmapi-openchange.$(SHLIBEXT).$(PACKAGE_VERSION) mapiproxy/libmapistore.$(SHLIBEXT).$(PACKAGE_VERSION) mapiproxy/libmapiserver.$(SHLIBEXT).$(PACKAGE_VERSION) \
mapiproxy/servers/default/asyncemsmdb/dcesrv_asyncemsmdb.c: gen_ndr/ndr_asyncemsmdb_s.c gen_ndr/ndr_asyncemsmdb.c
@@ -808,7 +808,7 @@ mapiproxy/libmapiproxy.$(SHLIBEXT).$(PAC
mapiproxy/util/mysql.po \
mapiproxy/util/schema_migration.po \
mapiproxy/util/ccan/htable/htable.po \
- libmapi.$(SHLIBEXT).$(PACKAGE_VERSION)
+ libmapi-openchange.$(SHLIBEXT).$(PACKAGE_VERSION)
@echo "Linking $@"
@$(CC) -o $@ $(DSOOPT) $(LDFLAGS) -Wl,-soname,libmapiproxy.$(SHLIBEXT).$(LIBMAPIPROXY_SO_VERSION) $^ -L. $(LIBS) $(TDB_LIBS) $(DL_LIBS) $(MYSQL_LIBS) $(PYTHON_LIBS)
@@ -962,7 +962,7 @@ mapiproxy/libmapistore.$(SHLIBEXT).$(PAC
mapiproxy/util/ccan/htable/htable.po \
mapiproxy/util/ccan/hash/hash.po \
mapiproxy/libmapiproxy.$(SHLIBEXT).$(PACKAGE_VERSION) \
- libmapi.$(SHLIBEXT).$(PACKAGE_VERSION)
+ libmapi-openchange.$(SHLIBEXT).$(PACKAGE_VERSION)
@echo "Linking $@"
@$(CC) $(DSOOPT) $(MEMCACHED_CFLAGS) $(CFLAGS) $(LDFLAGS) -Wl,-soname,libmapistore.$(SHLIBEXT).$(LIBMAPISTORE_SO_VERSION) -o $@ $^ $(LIBS) $(TDB_LIBS) $(DL_LIBS) $(MYSQL_LIBS) $(MEMCACHED_LIBS)
@@ -984,7 +984,7 @@ mapistore_test: bin/mapistore_test
bin/mapistore_test: mapiproxy/libmapistore/tests/mapistore_test.o \
mapiproxy/libmapistore.$(SHLIBEXT).$(PACKAGE_VERSION) \
mapiproxy/libmapiproxy.$(SHLIBEXT).$(PACKAGE_VERSION) \
- libmapi.$(SHLIBEXT).$(PACKAGE_VERSION)
+ libmapi-openchange.$(SHLIBEXT).$(PACKAGE_VERSION)
@echo "Linking $@"
@$(CC) -o $@ $^ $(LDFLAGS) $(LIBS) -lpopt
@@ -1178,7 +1178,7 @@ clean:: openchangeclient-clean
bin/openchangeclient: utils/openchangeclient.o \
utils/openchange-tools.o \
- libmapi.$(SHLIBEXT).$(PACKAGE_VERSION) \
+ libmapi-openchange.$(SHLIBEXT).$(PACKAGE_VERSION) \
libocpf.$(SHLIBEXT).$(PACKAGE_VERSION)
@echo "Linking $@"
@$(CC) $(CFLAGS) -o $@ $^ $(LDFLAGS) $(LIBS) -lpopt
@@ -1207,7 +1207,7 @@ clean:: mapiprofile-clean
bin/mapiprofile: utils/mapiprofile.o \
utils/openchange-tools.o \
- libmapi.$(SHLIBEXT).$(PACKAGE_VERSION)
+ libmapi-openchange.$(SHLIBEXT).$(PACKAGE_VERSION)
@echo "Linking $@"
@$(CC) $(CFLAGS) -o $@ $^ $(LDFLAGS) $(LIBS) -lpopt
@@ -1233,7 +1233,7 @@ clean:: ocnotify-clean
bin/ocnotify: utils/ocnotify.o \
mapiproxy/libmapistore.$(SHLIBEXT).$(PACKAGE_VERSION) \
mapiproxy/libmapiproxy.$(SHLIBEXT).$(PACKAGE_VERSION) \
- libmapi.$(SHLIBEXT).$(PACKAGE_VERSION)
+ libmapi-openchange.$(SHLIBEXT).$(PACKAGE_VERSION)
@echo "Linking $@"
@$(CC) $(CFLAGS) $(NANOMSG_CFLAGS) -o $@ $^ $(LDFLAGS) $(NANOMSG_LIBS) $(LIBS) -lpopt
@@ -1257,7 +1257,7 @@ rpcextract-clean::
clean:: rpcextract-clean
bin/rpcextract: utils/rpcextract.o \
- libmapi.$(SHLIBEXT).$(PACKAGE_VERSION)
+ libmapi-openchange.$(SHLIBEXT).$(PACKAGE_VERSION)
@echo "Linking $@"
@$(CC) $(CFLAGS) $(PCAP_CFLAGS) -o $@ $^ $(LDFLAGS) $(PCAP_LIBS) $(LIBS) -lpopt -lndr
@@ -1282,7 +1282,7 @@ mapipropsdump-clean::
clean:: mapipropsdump-clean
bin/mapipropsdump: utils/mapipropsdump.o \
- libmapi.$(SHLIBEXT).$(PACKAGE_VERSION)
+ libmapi-openchange.$(SHLIBEXT).$(PACKAGE_VERSION)
@echo "Linking $@"
@$(CC) $(CFLAGS) -o $@ $^ $(LDFLAGS) $(SAMBA_LIBS) $(LIBS) $(DL_LIBS) -lpopt -lndr
@@ -1309,7 +1309,7 @@ clean:: openchangepfadmin-clean
bin/openchangepfadmin: utils/openchangepfadmin.o \
utils/openchange-tools.o \
- libmapi.$(SHLIBEXT).$(PACKAGE_VERSION) \
+ libmapi-openchange.$(SHLIBEXT).$(PACKAGE_VERSION) \
libmapiadmin.$(SHLIBEXT).$(PACKAGE_VERSION)
@echo "Linking $@"
@$(CC) -o $@ $^ $(LDFLAGS) $(LIBS) $(LIBMAPIADMIN_LIBS) -lpopt
@@ -1341,7 +1341,7 @@ clean:: exchange2mbox-clean
bin/exchange2mbox: utils/exchange2mbox.o \
utils/openchange-tools.o \
- libmapi.$(SHLIBEXT).$(PACKAGE_VERSION)
+ libmapi-openchange.$(SHLIBEXT).$(PACKAGE_VERSION)
@echo "Linking $@"
@$(CC) -o $@ $^ $(LIBS) $(LDFLAGS) -lpopt $(MAGIC_LIBS)
@@ -1405,7 +1405,7 @@ bin/exchange2ical: utils/exchange2ical_t
libexchange2ical/ical2exchange.o \
libexchange2ical/ical2exchange_property.o \
utils/openchange-tools.o \
- libmapi.$(SHLIBEXT).$(PACKAGE_VERSION)
+ libmapi-openchange.$(SHLIBEXT).$(PACKAGE_VERSION)
@echo "Linking $@"
@$(CC) $(LDFLAGS) -o $@ $^ $(LIBS) $(ICAL_LIBS) -lpopt
@@ -1445,7 +1445,7 @@ bin/openchange-testsuite: testsuite/tes
mapiproxy/libmapistore.$(SHLIBEXT).$(PACKAGE_VERSION) \
mapiproxy/libmapiproxy.$(SHLIBEXT).$(PACKAGE_VERSION)
@echo "Linking $@"
- @$(CC) $(CFLAGS) $(CHECK_CFLAGS) $(TDB_CFLAGS) $(PYTHON_CFLAGS) -I. -Itestsuite/ -Imapiproxy -o $@ $^ $(LDFLAGS) $(LIBS) $(TDB_LIBS) $(CHECK_LIBS) $(MYSQL_LIBS) $(PYTHON_LIBS) -lpopt libmapi.$(SHLIBEXT).$(PACKAGE_VERSION) $(MEMCACHED_LIBS)
+ @$(CC) $(CFLAGS) $(CHECK_CFLAGS) $(TDB_CFLAGS) $(PYTHON_CFLAGS) -I. -Itestsuite/ -Imapiproxy -o $@ $^ $(LDFLAGS) $(LIBS) $(TDB_LIBS) $(CHECK_LIBS) $(MYSQL_LIBS) $(PYTHON_LIBS) -lpopt libmapi-openchange.$(SHLIBEXT).$(PACKAGE_VERSION) $(MEMCACHED_LIBS)
testsuite-check: testsuite
@LD_LIBRARY_PATH=. PYTHONPATH=./python CK_XML_LOG_FILE_NAME=test_results.xml ./bin/openchange-testsuite
@@ -1513,7 +1513,7 @@ bin/mapitest: utils/mapitest/mapitest.o
utils/mapitest/modules/module_lcid.o \
utils/mapitest/modules/module_mapidump.o \
utils/mapitest/modules/module_lzxpress.o \
- libmapi.$(SHLIBEXT).$(PACKAGE_VERSION)
+ libmapi-openchange.$(SHLIBEXT).$(PACKAGE_VERSION)
@echo "Linking $@"
@$(CC) -o $@ $^ $(LDFLAGS) $(LIBS) -lpopt $(SUBUNIT_LIBS)
@@ -1574,7 +1574,7 @@ clean:: openchangemapidump-clean
bin/openchangemapidump: utils/backup/openchangemapidump.o \
utils/backup/openchangebackup.o \
utils/openchange-tools.o \
- libmapi.$(SHLIBEXT).$(PACKAGE_VERSION)
+ libmapi-openchange.$(SHLIBEXT).$(PACKAGE_VERSION)
@echo "Linking $@"
@$(CC) -o $@ $^ $(LDFLAGS) $(LIBS) -lpopt
@@ -1625,7 +1625,7 @@ check_fasttransfer-clean::
clean:: check_fasttransfer-clean
bin/check_fasttransfer: testprogs/check_fasttransfer.o \
- libmapi.$(SHLIBEXT).$(PACKAGE_VERSION) \
+ libmapi-openchange.$(SHLIBEXT).$(PACKAGE_VERSION) \
mapiproxy/libmapistore.$(SHLIBEXT).$(PACKAGE_VERSION) \
mapiproxy/libmapiproxy.$(SHLIBEXT).$(PACKAGE_VERSION)
@echo "Linking $@"
@@ -1653,7 +1653,7 @@ test_asyncnotif-clean::
clean:: test_asyncnotif-clean
bin/test_asyncnotif: testprogs/test_asyncnotif.o \
- libmapi.$(SHLIBEXT).$(PACKAGE_VERSION)
+ libmapi-openchange.$(SHLIBEXT).$(PACKAGE_VERSION)
@echo "Linking $@"
@$(CC) -o $@ $^ $(LIBS) $(LDFLAGS) -lpopt
@@ -1701,13 +1701,13 @@ pyopenchange: $(pythonscriptdir)/opench
$(pythonscriptdir)/openchange/mapi.$(SHLIBEXT): pyopenchange/pymapi.c \
pyopenchange/pymapi_properties.c \
- libmapi.$(SHLIBEXT).$(PACKAGE_VERSION)
+ libmapi-openchange.$(SHLIBEXT).$(PACKAGE_VERSION)
@echo "Linking $@"
@$(CC) $(PYTHON_CFLAGS) $(CFLAGS) -fno-strict-aliasing $(DSOOPT) $(LDFLAGS) -o $@ $^ $(PYTHON_LIBS) $(LIBS)
# $(pythonscriptdir)/openchange/ocpf.$(SHLIBEXT): pyopenchange/pyocpf.c \
# libocpf.$(SHLIBEXT).$(PACKAGE_VERSION) \
-# libmapi.$(SHLIBEXT).$(PACKAGE_VERSION)
+# libmapi-openchange.$(SHLIBEXT).$(PACKAGE_VERSION)
# @echo "Linking $@"
# @$(CC) $(PYTHON_CFLAGS) $(CFLAGS) $(DSOOPT) $(LDFLAGS) -o $@ $^ $(PYTHON_LIBS) $(LIBS)
@@ -1894,7 +1894,7 @@ libqtmapi.$(SHLIBEXT).$(PACKAGE_VERSION)
qt/demo/demoapp: qt/demo/demoapp.o \
qt/demo/main.o \
- libmapi.$(SHLIBEXT).$(PACKAGE_VERSION) \
+ libmapi-openchange.$(SHLIBEXT).$(PACKAGE_VERSION) \
libmapipp.$(SHLIBEXT).$(PACKAGE_VERSION) \
libqtmapi.$(SHLIBEXT).$(PACKAGE_VERSION)
@echo "Linking $@"

View File

@ -0,0 +1,196 @@
diff -up openchange-2.0-QUADRANT/Doxyfile.in.generate-xml-doc openchange-2.0-QUADRANT/Doxyfile.in
--- openchange-2.0-QUADRANT/Doxyfile.in.generate-xml-doc 2013-01-24 19:55:36.000000000 +0100
+++ openchange-2.0-QUADRANT/Doxyfile.in 2013-02-14 12:23:27.594802658 +0100
@@ -224,7 +224,7 @@ SUBGROUPING = YES
# Private class members and static file members will be hidden unless
# the EXTRACT_PRIVATE and EXTRACT_STATIC tags are set to YES
-EXTRACT_ALL = NO
+EXTRACT_ALL = YES
# If the EXTRACT_PRIVATE tag is set to YES all private members of a class
# will be included in the documentation.
@@ -918,13 +918,13 @@ MAN_LINKS = YES
# generate an XML file that captures the structure of
# the code including all documentation.
-GENERATE_XML = NO
+GENERATE_XML = YES
# The XML_OUTPUT tag is used to specify where the XML pages will be put.
# If a relative path is entered the value of OUTPUT_DIRECTORY will be
# put in front of it. If left blank `xml' will be used as the default path.
-XML_OUTPUT = xml
+XML_OUTPUT = xml/overview
# The XML_SCHEMA tag can be used to specify an XML schema,
# which can be used by a validating XML parser to check the
diff -up openchange-2.0-QUADRANT/libmapiadmin/Doxyfile.in.generate-xml-doc openchange-2.0-QUADRANT/libmapiadmin/Doxyfile.in
--- openchange-2.0-QUADRANT/libmapiadmin/Doxyfile.in.generate-xml-doc 2013-01-24 19:55:36.000000000 +0100
+++ openchange-2.0-QUADRANT/libmapiadmin/Doxyfile.in 2013-02-14 12:23:27.594802658 +0100
@@ -224,7 +224,7 @@ SUBGROUPING = YES
# Private class members and static file members will be hidden unless
# the EXTRACT_PRIVATE and EXTRACT_STATIC tags are set to YES
-EXTRACT_ALL = NO
+EXTRACT_ALL = YES
# If the EXTRACT_PRIVATE tag is set to YES all private members of a class
# will be included in the documentation.
@@ -916,13 +916,13 @@ MAN_LINKS = YES
# generate an XML file that captures the structure of
# the code including all documentation.
-GENERATE_XML = NO
+GENERATE_XML = YES
# The XML_OUTPUT tag is used to specify where the XML pages will be put.
# If a relative path is entered the value of OUTPUT_DIRECTORY will be
# put in front of it. If left blank `xml' will be used as the default path.
-XML_OUTPUT = xml
+XML_OUTPUT = xml/libmapiadmin
# The XML_SCHEMA tag can be used to specify an XML schema,
# which can be used by a validating XML parser to check the
diff -up openchange-2.0-QUADRANT/libmapi/Doxyfile.in.generate-xml-doc openchange-2.0-QUADRANT/libmapi/Doxyfile.in
--- openchange-2.0-QUADRANT/libmapi/Doxyfile.in.generate-xml-doc 2013-01-24 19:55:36.000000000 +0100
+++ openchange-2.0-QUADRANT/libmapi/Doxyfile.in 2013-02-14 12:23:27.594802658 +0100
@@ -224,7 +224,7 @@ SUBGROUPING = YES
# Private class members and static file members will be hidden unless
# the EXTRACT_PRIVATE and EXTRACT_STATIC tags are set to YES
-EXTRACT_ALL = NO
+EXTRACT_ALL = YES
# If the EXTRACT_PRIVATE tag is set to YES all private members of a class
# will be included in the documentation.
@@ -922,13 +922,13 @@ MAN_LINKS = YES
# generate an XML file that captures the structure of
# the code including all documentation.
-GENERATE_XML = NO
+GENERATE_XML = YES
# The XML_OUTPUT tag is used to specify where the XML pages will be put.
# If a relative path is entered the value of OUTPUT_DIRECTORY will be
# put in front of it. If left blank `xml' will be used as the default path.
-XML_OUTPUT = xml
+XML_OUTPUT = xml/libmapi
# The XML_SCHEMA tag can be used to specify an XML schema,
# which can be used by a validating XML parser to check the
diff -up openchange-2.0-QUADRANT/libmapi++/Doxyfile.in.generate-xml-doc openchange-2.0-QUADRANT/libmapi++/Doxyfile.in
--- openchange-2.0-QUADRANT/libmapi++/Doxyfile.in.generate-xml-doc 2013-01-24 19:55:36.000000000 +0100
+++ openchange-2.0-QUADRANT/libmapi++/Doxyfile.in 2013-02-14 12:23:27.595802671 +0100
@@ -224,7 +224,7 @@ SUBGROUPING = YES
# Private class members and static file members will be hidden unless
# the EXTRACT_PRIVATE and EXTRACT_STATIC tags are set to YES
-EXTRACT_ALL = NO
+EXTRACT_ALL = YES
# If the EXTRACT_PRIVATE tag is set to YES all private members of a class
# will be included in the documentation.
@@ -901,13 +901,13 @@ MAN_LINKS = YES
# generate an XML file that captures the structure of
# the code including all documentation.
-GENERATE_XML = NO
+GENERATE_XML = YES
# The XML_OUTPUT tag is used to specify where the XML pages will be put.
# If a relative path is entered the value of OUTPUT_DIRECTORY will be
# put in front of it. If left blank `xml' will be used as the default path.
-XML_OUTPUT = xml
+XML_OUTPUT = xml/libmapi++
# The XML_SCHEMA tag can be used to specify an XML schema,
# which can be used by a validating XML parser to check the
diff -up openchange-2.0-QUADRANT/libocpf/Doxyfile.in.generate-xml-doc openchange-2.0-QUADRANT/libocpf/Doxyfile.in
--- openchange-2.0-QUADRANT/libocpf/Doxyfile.in.generate-xml-doc 2013-01-24 19:55:36.000000000 +0100
+++ openchange-2.0-QUADRANT/libocpf/Doxyfile.in 2013-02-14 12:23:27.595802671 +0100
@@ -224,7 +224,7 @@ SUBGROUPING = YES
# Private class members and static file members will be hidden unless
# the EXTRACT_PRIVATE and EXTRACT_STATIC tags are set to YES
-EXTRACT_ALL = NO
+EXTRACT_ALL = YES
# If the EXTRACT_PRIVATE tag is set to YES all private members of a class
# will be included in the documentation.
@@ -920,13 +920,13 @@ MAN_LINKS = YES
# generate an XML file that captures the structure of
# the code including all documentation.
-GENERATE_XML = NO
+GENERATE_XML = YES
# The XML_OUTPUT tag is used to specify where the XML pages will be put.
# If a relative path is entered the value of OUTPUT_DIRECTORY will be
# put in front of it. If left blank `xml' will be used as the default path.
-XML_OUTPUT = xml
+XML_OUTPUT = xml/libocpf
# The XML_SCHEMA tag can be used to specify an XML schema,
# which can be used by a validating XML parser to check the
diff -up openchange-2.0-QUADRANT/mapiproxy/Doxyfile.in.generate-xml-doc openchange-2.0-QUADRANT/mapiproxy/Doxyfile.in
--- openchange-2.0-QUADRANT/mapiproxy/Doxyfile.in.generate-xml-doc 2013-01-24 19:55:36.000000000 +0100
+++ openchange-2.0-QUADRANT/mapiproxy/Doxyfile.in 2013-02-14 12:23:27.596802685 +0100
@@ -286,7 +286,7 @@ SYMBOL_CACHE_SIZE = 0
# Private class members and static file members will be hidden unless
# the EXTRACT_PRIVATE and EXTRACT_STATIC tags are set to YES
-EXTRACT_ALL = NO
+EXTRACT_ALL = YES
# If the EXTRACT_PRIVATE tag is set to YES all private members of a class
# will be included in the documentation.
@@ -1118,13 +1118,13 @@ MAN_LINKS = YES
# generate an XML file that captures the structure of
# the code including all documentation.
-GENERATE_XML = NO
+GENERATE_XML = YES
# The XML_OUTPUT tag is used to specify where the XML pages will be put.
# If a relative path is entered the value of OUTPUT_DIRECTORY will be
# put in front of it. If left blank `xml' will be used as the default path.
-XML_OUTPUT = xml
+XML_OUTPUT = xml/mapiproxy
# The XML_SCHEMA tag can be used to specify an XML schema,
# which can be used by a validating XML parser to check the
diff -up openchange-2.0-QUADRANT/utils/mapitest/Doxyfile.in.generate-xml-doc openchange-2.0-QUADRANT/utils/mapitest/Doxyfile.in
--- openchange-2.0-QUADRANT/utils/mapitest/Doxyfile.in.generate-xml-doc 2013-01-24 19:55:36.000000000 +0100
+++ openchange-2.0-QUADRANT/utils/mapitest/Doxyfile.in 2013-02-14 12:23:27.596802685 +0100
@@ -224,7 +224,7 @@ SUBGROUPING = YES
# Private class members and static file members will be hidden unless
# the EXTRACT_PRIVATE and EXTRACT_STATIC tags are set to YES
-EXTRACT_ALL = NO
+EXTRACT_ALL = YES
# If the EXTRACT_PRIVATE tag is set to YES all private members of a class
# will be included in the documentation.
@@ -914,13 +914,13 @@ MAN_LINKS = YES
# generate an XML file that captures the structure of
# the code including all documentation.
-GENERATE_XML = NO
+GENERATE_XML = YES
# The XML_OUTPUT tag is used to specify where the XML pages will be put.
# If a relative path is entered the value of OUTPUT_DIRECTORY will be
# put in front of it. If left blank `xml' will be used as the default path.
-XML_OUTPUT = xml
+XML_OUTPUT = xml/mapitest
# The XML_SCHEMA tag can be used to specify an XML schema,
# which can be used by a validating XML parser to check the

View File

@ -0,0 +1,12 @@
diff -up openchange-2.1-QUADRANT/configure.ac.OC_RULE_ADD-fix openchange-2.1-QUADRANT/configure.ac
--- openchange-2.1-QUADRANT/configure.ac.OC_RULE_ADD-fix 2014-04-28 11:41:13.075975644 +0200
+++ openchange-2.1-QUADRANT/configure.ac 2014-04-28 11:56:50.991936546 +0200
@@ -639,7 +639,7 @@ dnl ####################################
dnl mapiproxy server
dnl ##########################################################################
if test x$PYTHON != x; then
- if test "x$SAMBASERVER_LIBS" != x ; then
+ if test "x$SAMDB_LIBS" != x -a "x$SAMBASERVER_LIBS" != x ; then
mapiproxy=1
fi
fi

View File

@ -0,0 +1,109 @@
diff -up openchange-2.1-QUADRANT/libmapi/emsmdb.c.symbol-clash openchange-2.1-QUADRANT/libmapi/emsmdb.c
--- openchange-2.1-QUADRANT/libmapi/emsmdb.c.symbol-clash 2014-04-28 11:58:17.560932938 +0200
+++ openchange-2.1-QUADRANT/libmapi/emsmdb.c 2014-04-28 12:00:21.085927789 +0200
@@ -644,7 +644,7 @@ struct mapi_notify_ctx *emsmdb_bind_noti
notify_ctx->notifications->next = NULL;
openchange_load_interfaces(mem_ctx, lpcfg_interfaces(mapi_ctx->lp_ctx), &ifaces);
- ipaddr = iface_best_ip(ifaces, mapi_ctx->session->profile->server);
+ ipaddr = libmapi_iface_best_ip(ifaces, mapi_ctx->session->profile->server);
if (!ipaddr) {
talloc_free(notify_ctx->notifications);
talloc_free(notify_ctx);
diff -up openchange-2.1-QUADRANT/libmapi/libmapi_private.h.symbol-clash openchange-2.1-QUADRANT/libmapi/libmapi_private.h
--- openchange-2.1-QUADRANT/libmapi/libmapi_private.h.symbol-clash 2014-04-28 11:58:17.560932938 +0200
+++ openchange-2.1-QUADRANT/libmapi/libmapi_private.h 2014-04-28 12:05:13.875915584 +0200
@@ -123,13 +123,13 @@ uint16_t mapi_recipients_RecipientFlags
/* The following private definitions come from libmapi/socket/interface.c */
void openchange_load_interfaces(TALLOC_CTX *, const char **, struct interface **);
-int iface_count(struct interface *);
-const char *iface_n_ip(struct interface *, int);
-const char *iface_n_bcast(struct interface *, int);
-const char *iface_n_netmask(struct interface *, int);
-const char *iface_best_ip(struct interface *, const char *);
-bool iface_is_local(struct interface *, const char *);
-bool iface_same_net(const char *, const char *, const char *);
+int libmapi_iface_count(struct interface *);
+const char *libmapi_iface_n_ip(struct interface *, int);
+const char *libmapi_iface_n_bcast(struct interface *, int);
+const char *libmapi_iface_n_netmask(struct interface *, int);
+const char *libmapi_iface_best_ip(struct interface *, const char *);
+bool libmapi_iface_is_local(struct interface *, const char *);
+bool libmapi_iface_same_net(const char *, const char *, const char *);
__END_DECLS
diff -up openchange-2.1-QUADRANT/libmapi/socket/interface.c.symbol-clash openchange-2.1-QUADRANT/libmapi/socket/interface.c
--- openchange-2.1-QUADRANT/libmapi/socket/interface.c.symbol-clash 2014-04-23 21:43:06.000000000 +0200
+++ openchange-2.1-QUADRANT/libmapi/socket/interface.c 2014-04-28 11:58:17.560932938 +0200
@@ -228,7 +228,7 @@ void openchange_load_interfaces(TALLOC_C
/**
how many interfaces do we have
**/
-int iface_count(struct interface *ifaces)
+int libmapi_iface_count(struct interface *ifaces)
{
int ret = 0;
struct interface *i;
@@ -241,7 +241,7 @@ int iface_count(struct interface *ifaces
/**
return IP of the Nth interface
**/
-const char *iface_n_ip(struct interface *ifaces, int n)
+const char *libmapi_iface_n_ip(struct interface *ifaces, int n)
{
struct interface *i;
@@ -257,7 +257,7 @@ const char *iface_n_ip(struct interface
/**
return bcast of the Nth interface
**/
-const char *iface_n_bcast(struct interface *ifaces, int n)
+const char *libmapi_iface_n_bcast(struct interface *ifaces, int n)
{
struct interface *i;
@@ -273,7 +273,7 @@ const char *iface_n_bcast(struct interfa
/**
return netmask of the Nth interface
**/
-const char *iface_n_netmask(struct interface *ifaces, int n)
+const char *libmapi_iface_n_netmask(struct interface *ifaces, int n)
{
struct interface *i;
@@ -290,7 +290,7 @@ const char *iface_n_netmask(struct inter
return the local IP address that best matches a destination IP, or
our first interface if none match
*/
-const char *iface_best_ip(struct interface *ifaces, const char *dest)
+const char *libmapi_iface_best_ip(struct interface *ifaces, const char *dest)
{
struct interface *iface;
struct in_addr ip;
@@ -300,13 +300,13 @@ const char *iface_best_ip(struct interfa
if (iface) {
return iface->ip_s;
}
- return iface_n_ip(ifaces, 0);
+ return libmapi_iface_n_ip(ifaces, 0);
}
/**
return true if an IP is one one of our local networks
*/
-bool iface_is_local(struct interface *ifaces, const char *dest)
+bool libmapi_iface_is_local(struct interface *ifaces, const char *dest)
{
struct in_addr ip;
@@ -320,7 +320,7 @@ bool iface_is_local(struct interface *if
/**
return true if a IP matches a IP/netmask pair
*/
-bool iface_same_net(const char *ip1, const char *ip2, const char *netmask)
+bool libmapi_iface_same_net(const char *ip1, const char *ip2, const char *netmask)
{
return same_net_v4(interpret_addr2(ip1),
interpret_addr2(ip2),

View File

@ -0,0 +1,136 @@
diff -up openchange-openchange-2.3-VULCAN/libmapi/cdo_mapi.c.samba-4.2.0-rc2 openchange-openchange-2.3-VULCAN/libmapi/cdo_mapi.c
--- openchange-openchange-2.3-VULCAN/libmapi/cdo_mapi.c.samba-4.2.0-rc2 2015-12-03 11:20:17.502119228 +0100
+++ openchange-openchange-2.3-VULCAN/libmapi/cdo_mapi.c 2015-12-03 11:20:44.524118102 +0100
@@ -337,6 +337,9 @@ _PUBLIC_ enum MAPISTATUS SetMAPIDebugLev
ret = lpcfg_set_cmdline(mapi_ctx->lp_ctx, "log level", debuglevel);
talloc_free(debuglevel);
+ if (ret)
+ _oc_log_samba_level = level;
+
return (ret == true) ? MAPI_E_SUCCESS : MAPI_E_INVALID_PARAMETER;
}
diff -up openchange-openchange-2.3-VULCAN/libmapi/oc_log.c.samba-4.2.0-rc2 openchange-openchange-2.3-VULCAN/libmapi/oc_log.c
--- openchange-openchange-2.3-VULCAN/libmapi/oc_log.c.samba-4.2.0-rc2 2015-12-03 11:11:01.801142393 +0100
+++ openchange-openchange-2.3-VULCAN/libmapi/oc_log.c 2015-12-03 11:27:22.921101494 +0100
@@ -20,7 +20,9 @@
*/
#include "libmapi/libmapi.h"
-#include <util/debug.h>
+#include <stdio.h>
+
+int _oc_log_samba_level = 0;
void oc_log(enum oc_log_level level, const char *fmt_string, ...)
{
@@ -47,12 +49,16 @@ void oc_logv(enum oc_log_level level, co
samba_level = 0;
}
+ if (samba_level && !(_oc_log_samba_level & samba_level))
+ return;
+
/* Add a trailing newline if one is not already present */
if (line[strlen(line)-1] == '\n') {
- DEBUG(samba_level, ("%s", line));
+ fprintf(stderr, "%s", line);
} else {
- DEBUG(samba_level, ("%s\n", line));
+ fprintf(stderr, "%s\n", line);
}
+ fflush(stderr);
}
void oc_log_init_stdout()
diff -up openchange-openchange-2.3-VULCAN/libmapi/oc_log.h.samba-4.2.0-rc2 openchange-openchange-2.3-VULCAN/libmapi/oc_log.h
--- openchange-openchange-2.3-VULCAN/libmapi/oc_log.h.samba-4.2.0-rc2 2015-12-03 11:18:27.407123817 +0100
+++ openchange-openchange-2.3-VULCAN/libmapi/oc_log.h 2015-12-03 11:20:19.228119156 +0100
@@ -77,4 +77,6 @@ void oc_log_init_user(const char *progna
defaulting to /var/log/openchange.log */
void oc_log_init_server(const char *progname, struct loadparm_context *lp_ctx);
+extern int _oc_log_samba_level; /* Private, do not change it other than by SetMAPIDebugLevel() */
+
#endif /* _OC_LOG_H_ */
diff -up openchange-openchange-2.3-VULCAN/mapiproxy/libmapiproxy/fault_util.c.samba-4.2.0-rc2 openchange-openchange-2.3-VULCAN/mapiproxy/libmapiproxy/fault_util.c
--- openchange-openchange-2.3-VULCAN/mapiproxy/libmapiproxy/fault_util.c.samba-4.2.0-rc2 2015-12-03 11:11:17.337141745 +0100
+++ openchange-openchange-2.3-VULCAN/mapiproxy/libmapiproxy/fault_util.c 2015-12-03 11:27:46.505100511 +0100
@@ -30,14 +30,14 @@
#include "fault_util.h"
#include "libmapi/libmapi.h"
#include "libmapi/libmapi_private.h"
-#include <util/debug.h>
+#include <stdio.h>
#include <samba/version.h>
#include <execinfo.h>
/**
- \details print a backtrace using DEBUG() macro.
+ \details print a backtrace (*not* using DEBUG() macro).
*/
_PUBLIC_ void debug_print_backtrace(int dbg_level)
@@ -47,16 +47,19 @@ _PUBLIC_ void debug_print_backtrace(int
size_t backtrace_size;
char **backtrace_strings;
+ if (!(_oc_log_samba_level & dbg_level))
+ return;
+
backtrace_size = backtrace(backtrace_stack, BACKTRACE_SIZE);
backtrace_strings = backtrace_symbols(backtrace_stack, backtrace_size);
- DEBUG(dbg_level, ("BACKTRACE: %lu stack frames:\n", (unsigned long)backtrace_size));
+ fprintf(stderr, "BACKTRACE: %lu stack frames:\n", (unsigned long)backtrace_size);
if (backtrace_strings) {
int i;
for (i = 0; i < backtrace_size; i++) {
- DEBUGADD(dbg_level, (" #%.2u %s\n", i, backtrace_strings[i]));
+ fprintf(stderr, " #%.2u %s\n", i, backtrace_strings[i]);
}
free(backtrace_strings);
diff -up openchange-openchange-2.3-VULCAN/mapiproxy/libmapiproxy/fault_util.h.samba-4.2.0-rc2 openchange-openchange-2.3-VULCAN/mapiproxy/libmapiproxy/fault_util.h
--- openchange-openchange-2.3-VULCAN/mapiproxy/libmapiproxy/fault_util.h.samba-4.2.0-rc2 2015-12-03 11:11:37.089140922 +0100
+++ openchange-openchange-2.3-VULCAN/mapiproxy/libmapiproxy/fault_util.h 2015-12-03 11:26:38.633103340 +0100
@@ -28,7 +28,7 @@
* It will print information about the error and if is_fatal is true abort()
* will be called.
*
- * DEBUG macro will be used to print a report with the following format:
+ * DEBUG macro will *not* be used to print a report with the following format:
* @code
* ==================================
* OPENCHANGE INTERNAL ERROR: pid 123
@@ -59,9 +59,10 @@
* @see DEBUG()
*/
#define OC_PANIC( is_fatal, body ) \
- DEBUGSEP(0); \
- DEBUG(0, ("OPENCHANGE INTERNAL ERROR: pid %d\n", (int)getpid())); \
- DEBUG(0, body); \
+ fprintf(stderr,"\n"); \
+ fprintf(stderr, "OPENCHANGE INTERNAL ERROR: pid %d\n", (int)getpid()); \
+ fprintf(stderr, body); \
+ fflush(stderr); \
openchange_abort(is_fatal);
#ifndef __BEGIN_DECLS
diff -up openchange-openchange-2.3-VULCAN/mapiproxy/libmapiproxy/mapi_handles.c.samba-4.2.0-rc2 openchange-openchange-2.3-VULCAN/mapiproxy/libmapiproxy/mapi_handles.c
--- openchange-openchange-2.3-VULCAN/mapiproxy/libmapiproxy/mapi_handles.c.samba-4.2.0-rc2 2015-12-03 11:12:08.457139614 +0100
+++ openchange-openchange-2.3-VULCAN/mapiproxy/libmapiproxy/mapi_handles.c 2015-12-03 11:26:50.473102847 +0100
@@ -429,7 +429,7 @@ static int mapi_handles_traverse_delete(
OC_DEBUG(5, "handles being released must NOT have child handles attached to them (%s is a child of %s)", handle_str, container_handle_str);
handle = strtol((const char *) handle_str, NULL, 16);
/* abort(); */
- /* DEBUG(5, ("deleting child handle: %d, %s\n", handle, handle_str)); */
+ /* OC_DEBUG(5, ("deleting child handle: %d, %s\n", handle, handle_str)); */
mapi_handles_delete(handles_private->handles_ctx, handle);
}

View File

@ -0,0 +1,675 @@
diff -up openchange-openchange-2.3-VULCAN/libexchange2ical/exchange2ical_property.c.covscan openchange-openchange-2.3-VULCAN/libexchange2ical/exchange2ical_property.c
--- openchange-openchange-2.3-VULCAN/libexchange2ical/exchange2ical_property.c.covscan 2018-07-19 13:53:41.281450703 +0200
+++ openchange-openchange-2.3-VULCAN/libexchange2ical/exchange2ical_property.c 2018-07-19 13:53:41.285450703 +0200
@@ -53,6 +53,7 @@ static void openchange_all_string_sub(ch
}
}
+#if 0
struct RRULE_byday {
uint16_t DayOfWeek;
const char *DayName;
@@ -68,6 +69,7 @@ static const struct RRULE_byday RRULE_by
{ 0x0006, "SA" },
{ 0x0007, NULL }
};
+#endif
static const char *get_filename(const char *filename)
{
diff -up openchange-openchange-2.3-VULCAN/libexchange2ical/exchange2ical_utils.c.covscan openchange-openchange-2.3-VULCAN/libexchange2ical/exchange2ical_utils.c
--- openchange-openchange-2.3-VULCAN/libexchange2ical/exchange2ical_utils.c.covscan 2018-07-19 13:53:41.281450703 +0200
+++ openchange-openchange-2.3-VULCAN/libexchange2ical/exchange2ical_utils.c 2018-07-19 13:53:41.285450703 +0200
@@ -232,7 +232,7 @@ uint32_t get_exchange_rdfDays_from_ical(
struct icaltimetype get_icaltimetype_from_tm(struct tm *tm)
{
- struct icaltimetype tt;
+ struct icaltimetype tt = icaltime_null_time ();
tt.year = tm->tm_year+1900;
tt.month = tm->tm_mon+1;
@@ -259,7 +259,7 @@ struct icaltimetype get_icaltimetype_fro
struct icaltimetype get_icaldate_from_tm(struct tm *tm)
{
- struct icaltimetype tt;
+ struct icaltimetype tt = icaltime_null_time ();
tt.year = tm->tm_year+1900;
tt.month = tm->tm_mon+1;
@@ -267,6 +267,7 @@ struct icaltimetype get_icaldate_from_tm
tt.hour = 0;
tt.minute = 0;
tt.second = 0;
+ tt.zone = NULL;
tt.is_date = 1;
tt.is_daylight = 0;
@@ -292,7 +293,7 @@ struct tm *get_tm_from_FILETIME(const st
struct icaltimetype get_icaltime_from_FILETIME(const struct FILETIME *ft)
{
- struct icaltimetype tt;
+ struct icaltimetype tt = icaltime_null_time ();
NTTIME nttime;
struct timeval temp_timeval;
struct tm *tm;
@@ -317,7 +318,7 @@ struct icaltimetype get_icaltime_from_FI
struct icaltimetype get_icaltime_from_FILETIME_UTC(const struct FILETIME *ft)
{
- struct icaltimetype tt;
+ struct icaltimetype tt = icaltime_null_time ();
NTTIME nttime;
struct timeval temp_timeval;
struct tm *tm;
@@ -342,7 +343,7 @@ struct icaltimetype get_icaltime_from_FI
struct icaltimetype get_icaldate_from_FILETIME(const struct FILETIME *ft)
{
- struct icaltimetype tt;
+ struct icaltimetype tt = icaltime_null_time ();
NTTIME nttime;
struct timeval temp_timeval;
struct tm *tm;
@@ -373,7 +374,7 @@ struct icaltimetype get_icaldate_from_FI
struct icaltimetype get_icaldate_from_GlobalObjectId(struct GlobalObjectId *GlobalObjectId)
{
- struct icaltimetype tt;
+ struct icaltimetype tt = icaltime_null_time ();
tt.year = GlobalObjectId->YH;
tt.year = tt.year <<8;
tt.year |= GlobalObjectId->YL;
@@ -513,7 +514,10 @@ uint32_t get_minutes_from_icaltimetype(i
time_t time;
NTTIME nttime;
struct timeval t;
-
+
+ if (icaltime_is_null_time(icaltime) || !icaltime_is_valid_time(icaltime))
+ return 0;
+
tm.tm_year = icaltime.year - 1900;
tm.tm_mon = icaltime.month - 1;
tm.tm_mday = icaltime.day;
diff -up openchange-openchange-2.3-VULCAN/libexchange2ical/ical2exchange_property.c.covscan openchange-openchange-2.3-VULCAN/libexchange2ical/ical2exchange_property.c
--- openchange-openchange-2.3-VULCAN/libexchange2ical/ical2exchange_property.c.covscan 2015-05-16 17:22:04.000000000 +0200
+++ openchange-openchange-2.3-VULCAN/libexchange2ical/ical2exchange_property.c 2018-07-19 13:53:41.286450703 +0200
@@ -147,7 +147,6 @@ void ical2exchange_property_CATEGORIES(s
struct StringArray_r *sArray;
char **stringArray = NULL;
char string[256];
- char *value;
char *tok;
icalproperty *categoriesProp;
uint32_t i = 0;
@@ -160,8 +159,10 @@ void ical2exchange_property_CATEGORIES(s
categoriesProp = icalcomponent_get_first_property(ical2exchange->categoriesEvent, ICAL_CATEGORIES_PROPERTY);
sArray->cValues = 0;
while(categoriesProp){
-
- value = strdup(icalproperty_get_categories(categoriesProp));
+ const char *categories = icalproperty_get_categories(categoriesProp);
+ char *value;
+
+ value = strdup(categories ? categories : "");
tok = strtok(value, ",");
while(tok){
if(!stringArray){
@@ -185,6 +186,7 @@ void ical2exchange_property_CATEGORIES(s
}
categoriesProp = icalcomponent_get_next_property(ical2exchange->categoriesEvent, ICAL_CATEGORIES_PROPERTY);
+ free(value);
}
sArray->lppszA= (const char **) stringArray;
@@ -519,6 +521,7 @@ void ical2exchange_property_RRULE_EXDATE
ritr = icalrecur_iterator_new(irt,dtstart);
next=icalrecur_iterator_next(ritr);
+ last = icaltime_null_time();
while (!icaltime_is_null_time(next)){
last = next;
diff -up openchange-openchange-2.3-VULCAN/libmapi++/examples/foldertree.cpp.covscan openchange-openchange-2.3-VULCAN/libmapi++/examples/foldertree.cpp
--- openchange-openchange-2.3-VULCAN/libmapi++/examples/foldertree.cpp.covscan 2015-05-16 17:22:04.000000000 +0200
+++ openchange-openchange-2.3-VULCAN/libmapi++/examples/foldertree.cpp 2018-07-19 13:53:41.286450703 +0200
@@ -65,12 +65,12 @@ int main ()
}
}
- catch (libmapipp::mapi_exception e) // Catch any MAPI exceptions
+ catch (libmapipp::mapi_exception &e) // Catch any MAPI exceptions
{
std::cout << "MAPI Exception in main: " << e.what()
<< std::endl;
}
- catch (std::runtime_error e) // Catch any other runtime exceptions
+ catch (std::runtime_error &e) // Catch any other runtime exceptions
{
std::cout << "std::runtime_error exception in main: "
<< e.what() << std::endl;
diff -up openchange-openchange-2.3-VULCAN/libmapi++/examples/messages.cpp.covscan openchange-openchange-2.3-VULCAN/libmapi++/examples/messages.cpp
--- openchange-openchange-2.3-VULCAN/libmapi++/examples/messages.cpp.covscan 2015-05-16 17:22:04.000000000 +0200
+++ openchange-openchange-2.3-VULCAN/libmapi++/examples/messages.cpp 2018-07-19 13:53:41.286450703 +0200
@@ -61,12 +61,12 @@ int main ()
}
}
}
- catch (libmapipp::mapi_exception e) // Catch any MAPI exceptions
+ catch (libmapipp::mapi_exception &e) // Catch any MAPI exceptions
{
std::cout << "MAPI Exception in main: " << e.what()
<< std::endl;
}
- catch (std::runtime_error e) // Catch any other runtime exceptions
+ catch (std::runtime_error &e) // Catch any other runtime exceptions
{
std::cout << "std::runtime_error exception in main: "
<< e.what() << std::endl;
diff -up openchange-openchange-2.3-VULCAN/libmapi/FXICS.c.covscan openchange-openchange-2.3-VULCAN/libmapi/FXICS.c
--- openchange-openchange-2.3-VULCAN/libmapi/FXICS.c.covscan 2015-05-16 17:22:04.000000000 +0200
+++ openchange-openchange-2.3-VULCAN/libmapi/FXICS.c 2018-07-19 13:53:41.286450703 +0200
@@ -800,6 +800,7 @@ _PUBLIC_ enum MAPISTATUS FXGetBuffer(map
if ((retval = mapi_object_get_logon_id(obj_source_context, &logon_id)) != MAPI_E_SUCCESS)
return retval;
+ memset(&request, 0, sizeof(struct FastTransferSourceGetBuffer_req));
mem_ctx = talloc_named(session, 0, "FXGetBuffer");
size = 0;
diff -up openchange-openchange-2.3-VULCAN/libmapi/idset.c.covscan openchange-openchange-2.3-VULCAN/libmapi/idset.c
--- openchange-openchange-2.3-VULCAN/libmapi/idset.c.covscan 2015-05-16 17:22:04.000000000 +0200
+++ openchange-openchange-2.3-VULCAN/libmapi/idset.c 2018-07-19 13:53:41.286450703 +0200
@@ -383,6 +383,7 @@ _PUBLIC_ struct idset *IDSET_parse(TALLO
total_bytes += 16;
}
+ byte_count = 0;
globset.length = buffer.length - 16;
globset.data = (uint8_t *) buffer.data + 16;
idset->ranges = GLOBSET_parse(idset, globset, &idset->range_count, &byte_count);
@@ -1182,7 +1183,8 @@ _PUBLIC_ void RAWIDSET_push_eid(struct r
}
else {
glob_idset = RAWIDSET_make(rawidset->mem_ctx, true, rawidset->single);
- last_glob_idset->next = glob_idset;
+ if (last_glob_idset)
+ last_glob_idset->next = glob_idset;
}
glob_idset->repl.id = eid_id;
}
diff -up openchange-openchange-2.3-VULCAN/libmapi/IMAPIProp.c.covscan openchange-openchange-2.3-VULCAN/libmapi/IMAPIProp.c
--- openchange-openchange-2.3-VULCAN/libmapi/IMAPIProp.c.covscan 2015-05-16 17:22:04.000000000 +0200
+++ openchange-openchange-2.3-VULCAN/libmapi/IMAPIProp.c 2018-07-19 13:53:41.287450703 +0200
@@ -1122,6 +1122,7 @@ _PUBLIC_ enum MAPISTATUS QueryNamedPrope
return retval;
/* Initialization */
+ memset(&request, 0, sizeof(struct QueryNamedProperties_req));
mem_ctx = talloc_named(session, 0, "QueryNamesFromIDs");
size = 0;
diff -up openchange-openchange-2.3-VULCAN/libmapi/IMAPISupport.c.covscan openchange-openchange-2.3-VULCAN/libmapi/IMAPISupport.c
--- openchange-openchange-2.3-VULCAN/libmapi/IMAPISupport.c.covscan 2015-05-16 17:22:04.000000000 +0200
+++ openchange-openchange-2.3-VULCAN/libmapi/IMAPISupport.c 2018-07-19 13:53:41.287450703 +0200
@@ -101,6 +101,7 @@ _PUBLIC_ enum MAPISTATUS Subscribe(mapi_
if ((retval = mapi_object_get_logon_id(obj, &logon_id)) != MAPI_E_SUCCESS)
return retval;
+ memset(&request, 0, sizeof(struct RegisterNotification_req));
mem_ctx = talloc_named(session, 0, "Subscribe");
/* Fill the Subscribe operation */
diff -up openchange-openchange-2.3-VULCAN/libmapi/IMessage.c.covscan openchange-openchange-2.3-VULCAN/libmapi/IMessage.c
--- openchange-openchange-2.3-VULCAN/libmapi/IMessage.c.covscan 2015-05-16 17:22:04.000000000 +0200
+++ openchange-openchange-2.3-VULCAN/libmapi/IMessage.c 2018-07-19 13:53:41.287450703 +0200
@@ -499,6 +499,8 @@ _PUBLIC_ enum MAPISTATUS SetRecipientTyp
enum MAPISTATUS retval;
struct SPropValue lpProp;
+ memset(&lpProp, 0, sizeof(struct SPropValue));
+
lpProp.ulPropTag = PR_RECIPIENT_TYPE;
lpProp.value.l = RecipClass;
@@ -1648,6 +1650,7 @@ _PUBLIC_ enum MAPISTATUS OpenEmbeddedMes
if ((retval = mapi_object_get_logon_id(obj_attach, &logon_id)) != MAPI_E_SUCCESS)
return retval;
+ memset(&lpProp, 0, sizeof(struct SPropValue));
mem_ctx = talloc_named(session, 0, "OpenEmbeddedMessage");
/* Fill the OpenEmbeddedMessage request */
diff -up openchange-openchange-2.3-VULCAN/libmapi/IStoreFolder.c.covscan openchange-openchange-2.3-VULCAN/libmapi/IStoreFolder.c
--- openchange-openchange-2.3-VULCAN/libmapi/IStoreFolder.c.covscan 2015-05-16 17:22:04.000000000 +0200
+++ openchange-openchange-2.3-VULCAN/libmapi/IStoreFolder.c 2018-07-19 13:53:41.287450703 +0200
@@ -93,6 +93,7 @@ _PUBLIC_ enum MAPISTATUS OpenMessage(map
if ((retval = mapi_object_get_logon_id(obj_store, &logon_id)) != MAPI_E_SUCCESS)
return retval;
+ memset(&lpProp, 0, sizeof(struct SPropValue));
mem_ctx = talloc_named(session, 0, "OpenMessage");
/* Fill the OpenMessage operation */
@@ -232,6 +233,7 @@ _PUBLIC_ enum MAPISTATUS ReloadCachedInf
if ((retval = mapi_object_get_logon_id(obj_message, &logon_id)) != MAPI_E_SUCCESS)
return retval;
+ memset(&lpProp, 0, sizeof(struct SPropValue));
mem_ctx = talloc_named(session, 0, "ReloadCachedInformation");
/* Fill the ReloadCachedInformation operation */
diff -up openchange-openchange-2.3-VULCAN/libmapi/IStream.c.covscan openchange-openchange-2.3-VULCAN/libmapi/IStream.c
--- openchange-openchange-2.3-VULCAN/libmapi/IStream.c.covscan 2015-05-16 17:22:04.000000000 +0200
+++ openchange-openchange-2.3-VULCAN/libmapi/IStream.c 2018-07-19 13:53:41.287450703 +0200
@@ -183,6 +183,7 @@ _PUBLIC_ enum MAPISTATUS ReadStream(mapi
if ((retval = mapi_object_get_logon_id(obj_stream, &logon_id)) != MAPI_E_SUCCESS)
return retval;
+ memset(&request, 0, sizeof(struct ReadStream_req));
mem_ctx = talloc_named(session, 0, "ReadStream");
*ByteRead = 0;
diff -up openchange-openchange-2.3-VULCAN/libmapi++/src/folder.cpp.covscan openchange-openchange-2.3-VULCAN/libmapi++/src/folder.cpp
--- openchange-openchange-2.3-VULCAN/libmapi++/src/folder.cpp.covscan 2015-05-16 17:22:04.000000000 +0200
+++ openchange-openchange-2.3-VULCAN/libmapi++/src/folder.cpp 2018-07-19 13:53:41.287450703 +0200
@@ -57,7 +57,7 @@ folder::message_container_type folder::f
message_container.push_back(message_shared_ptr(new message(m_session,
m_id,
row_set.aRow[i].lpProps[1].value.d)));
- } catch(mapi_exception e) {
+ } catch(mapi_exception &e) {
mapi_object_release(&contents_table);
throw;
}
@@ -102,7 +102,7 @@ folder::hierarchy_container_type folder:
try {
hierarchy_container.push_back(folder_shared_ptr(new folder(*this,
row_set.aRow[i].lpProps[0].value.d)));
- } catch(mapi_exception e) {
+ } catch(mapi_exception &e) {
mapi_object_release(&hierarchy_table);
throw;
}
diff -up openchange-openchange-2.3-VULCAN/libmapi++/src/message.cpp.covscan openchange-openchange-2.3-VULCAN/libmapi++/src/message.cpp
--- openchange-openchange-2.3-VULCAN/libmapi++/src/message.cpp.covscan 2015-05-16 17:22:04.000000000 +0200
+++ openchange-openchange-2.3-VULCAN/libmapi++/src/message.cpp 2018-07-19 13:53:41.287450703 +0200
@@ -50,7 +50,7 @@ message::attachment_container_type messa
try {
attachment_container.push_back(attachment_shared_ptr(new attachment(*this, row_set.aRow[i].lpProps[0].value.l)));
}
- catch(mapi_exception e) {
+ catch(mapi_exception &e) {
mapi_object_release(&attachment_table);
throw;
}
diff -up openchange-openchange-2.3-VULCAN/libmapi++/src/session.cpp.covscan openchange-openchange-2.3-VULCAN/libmapi++/src/session.cpp
--- openchange-openchange-2.3-VULCAN/libmapi++/src/session.cpp.covscan 2015-05-16 17:22:04.000000000 +0200
+++ openchange-openchange-2.3-VULCAN/libmapi++/src/session.cpp 2018-07-19 13:53:41.287450703 +0200
@@ -61,7 +61,7 @@ void session::login(const std::string& p
if (m_profile_name == "") { // if profile is not set, try to get default profile
try {
m_profile_name = profile_database().get_default_profile_name();
- } catch(mapi_exception e) {
+ } catch(mapi_exception &e) {
uninitialize();
throw;
}
@@ -74,7 +74,7 @@ void session::login(const std::string& p
try {
m_message_store->open(m_session);
- } catch (mapi_exception e) {
+ } catch (mapi_exception &e) {
throw;
}
}
diff -up openchange-openchange-2.3-VULCAN/libmapi++/tests/attach_test.cpp.covscan openchange-openchange-2.3-VULCAN/libmapi++/tests/attach_test.cpp
--- openchange-openchange-2.3-VULCAN/libmapi++/tests/attach_test.cpp.covscan 2015-05-16 17:22:04.000000000 +0200
+++ openchange-openchange-2.3-VULCAN/libmapi++/tests/attach_test.cpp 2018-07-19 13:53:41.287450703 +0200
@@ -84,11 +84,11 @@ int main()
print_folder_tree(top_folder, mapi_session);
}
- catch (mapi_exception e) // Catch any mapi exceptions
+ catch (mapi_exception &e) // Catch any mapi exceptions
{
cout << "MAPI Exception @ main: " << e.what() << endl;
}
- catch (std::runtime_error e) // Catch runtime exceptions
+ catch (std::runtime_error &e) // Catch runtime exceptions
{
cout << "std::runtime_error exception @ main: " << e.what() << endl;
}
diff -up openchange-openchange-2.3-VULCAN/libmapi++/tests/exception_test.cpp.covscan openchange-openchange-2.3-VULCAN/libmapi++/tests/exception_test.cpp
--- openchange-openchange-2.3-VULCAN/libmapi++/tests/exception_test.cpp.covscan 2015-05-16 17:22:04.000000000 +0200
+++ openchange-openchange-2.3-VULCAN/libmapi++/tests/exception_test.cpp 2018-07-19 13:53:41.287450703 +0200
@@ -12,7 +12,7 @@ int main()
try {
dotest();
}
- catch (libmapipp::mapi_exception e) {
+ catch (libmapipp::mapi_exception &e) {
std::cout << e.what() << std::endl;
}
diff -up openchange-openchange-2.3-VULCAN/libmapi++/tests/profile_test.cpp.covscan openchange-openchange-2.3-VULCAN/libmapi++/tests/profile_test.cpp
--- openchange-openchange-2.3-VULCAN/libmapi++/tests/profile_test.cpp.covscan 2015-05-16 17:22:04.000000000 +0200
+++ openchange-openchange-2.3-VULCAN/libmapi++/tests/profile_test.cpp 2018-07-19 13:53:41.287450703 +0200
@@ -27,15 +27,18 @@
#define PROFILEDB_NAME_TEMPLATE "/tmp/mapidbXXXXXX"
int main ()
{
+ char *tmpname = NULL, *tmpname2 = NULL;
+
try {
libmapipp::profile_database db;
std::cout << "default profile name: " << db.get_default_profile_name() << std::endl;
{
- char *tmpname = (char*) calloc(sizeof(PROFILEDB_NAME_TEMPLATE) + 1, sizeof(char));
- strncpy(tmpname, PROFILEDB_NAME_TEMPLATE, sizeof(PROFILEDB_NAME_TEMPLATE));
- int ret = mkstemp(tmpname);
+ int ret;
+
+ tmpname = strdup(PROFILEDB_NAME_TEMPLATE);
+ ret = mkstemp(tmpname);
if (ret < 0) {
std::cout << "failed to create temporary file: " << strerror(errno) << std::endl;
}
@@ -45,12 +48,15 @@ int main ()
std::cout << "failed to create a temporary profile store" << std::endl;
}
unlink(tmpname);
+ free(tmpname);
+ tmpname = NULL;
}
{
- char *tmpname2 = (char*) calloc(sizeof(PROFILEDB_NAME_TEMPLATE) + 1, sizeof(char));
- strncpy(tmpname2, PROFILEDB_NAME_TEMPLATE, sizeof(PROFILEDB_NAME_TEMPLATE));
- int ret = mkstemp(tmpname2);
+ int ret;
+
+ tmpname2 = strdup(PROFILEDB_NAME_TEMPLATE);
+ ret = mkstemp(tmpname2);
if (ret < 0) {
std::cout << "failed to create temporary file: " << strerror(errno) << std::endl;
}
@@ -60,19 +66,33 @@ int main ()
std::cout << "failed to create a temporary profile store with std::string" << std::endl;
}
unlink(tmpname2);
+ free(tmpname2);
+ tmpname2 = NULL;
}
std::cout << "finished profile and profile database tests" << std::endl;
}
- catch (libmapipp::mapi_exception e) // Catch any mapi exceptions
+ catch (libmapipp::mapi_exception &e) // Catch any mapi exceptions
{
std::cout << "MAPI Exception @ main: " << e.what() << std::endl;
}
- catch (std::runtime_error e) // Catch runtime exceptions
+ catch (std::runtime_error &e) // Catch runtime exceptions
{
std::cout << "std::runtime_error exception @ main: " << e.what() << std::endl;
}
+ if (tmpname) {
+ unlink(tmpname);
+ free(tmpname);
+ tmpname = NULL;
+ }
+
+ if (tmpname2) {
+ unlink(tmpname2);
+ free(tmpname2);
+ tmpname2 = NULL;
+ }
+
return 0;
}
diff -up openchange-openchange-2.3-VULCAN/libmapi++/tests/test.cpp.covscan openchange-openchange-2.3-VULCAN/libmapi++/tests/test.cpp
--- openchange-openchange-2.3-VULCAN/libmapi++/tests/test.cpp.covscan 2015-05-16 17:22:04.000000000 +0200
+++ openchange-openchange-2.3-VULCAN/libmapi++/tests/test.cpp 2018-07-19 13:53:41.288450703 +0200
@@ -126,11 +126,11 @@ int main ()
cout << "finished session" << endl;
}
- catch (mapi_exception e) // Catch any mapi exceptions
+ catch (mapi_exception &e) // Catch any mapi exceptions
{
cout << "MAPI Exception @ main: " << e.what() << endl;
}
- catch (std::runtime_error e) // Catch runtime exceptions
+ catch (std::runtime_error &e) // Catch runtime exceptions
{
cout << "std::runtime_error exception @ main: " << e.what() << endl;
diff -up openchange-openchange-2.3-VULCAN/libocpf/ocpf_api.c.covscan openchange-openchange-2.3-VULCAN/libocpf/ocpf_api.c
--- openchange-openchange-2.3-VULCAN/libocpf/ocpf_api.c.covscan 2015-05-16 17:22:04.000000000 +0200
+++ openchange-openchange-2.3-VULCAN/libocpf/ocpf_api.c 2018-07-19 13:53:41.288450703 +0200
@@ -316,6 +316,8 @@ int ocpf_propvalue(struct ocpf_context *
if (!ocpf || !ocpf->mem_ctx) return OCPF_ERROR;
if (!ctx) return OCPF_ERROR;
+ memset(&lpProps, 0, sizeof(struct SPropValue));
+
switch (scope) {
case kw_PROPERTY:
/* Sanity check: do not insert the same property twice */
diff -up openchange-openchange-2.3-VULCAN/libocpf/ocpf_public.c.covscan openchange-openchange-2.3-VULCAN/libocpf/ocpf_public.c
--- openchange-openchange-2.3-VULCAN/libocpf/ocpf_public.c.covscan 2015-05-16 17:22:04.000000000 +0200
+++ openchange-openchange-2.3-VULCAN/libocpf/ocpf_public.c 2018-07-19 13:53:41.288450703 +0200
@@ -537,6 +537,8 @@ static bool set_external_recipients(TALL
uint32_t last;
struct SPropValue SPropValue;
+ memset(&SPropValue, 0, sizeof(struct SPropValue));
+
SRowSet->aRow = talloc_realloc(mem_ctx, SRowSet->aRow, struct SRow, SRowSet->cRows + 2);
last = SRowSet->cRows;
SRowSet->aRow[last].cValues = 0;
@@ -626,6 +628,8 @@ _PUBLIC_ enum MAPISTATUS ocpf_set_Recipi
MAPI_RETVAL_IF(!ctx->recipients->cRows, MAPI_E_NOT_FOUND, NULL);
+ memset(&SPropValue, 0, sizeof(struct SPropValue));
+
SPropTagArray = set_SPropTagArray(mem_ctx, 0x8,
PidTagObjectType,
PidTagDisplayName,
diff -up openchange-openchange-2.3-VULCAN/ndr_mapi.c.covscan openchange-openchange-2.3-VULCAN/ndr_mapi.c
--- openchange-openchange-2.3-VULCAN/ndr_mapi.c.covscan 2018-07-19 13:53:41.276450703 +0200
+++ openchange-openchange-2.3-VULCAN/ndr_mapi.c 2018-07-19 13:53:41.288450703 +0200
@@ -1310,8 +1310,11 @@ _PUBLIC_ enum ndr_err_code ndr_pull_EcDo
NDR_PULL_ALLOC(ndr, r->out.pulTimeStamp);
*r->out.pulTimeStamp = *r->in.pulTimeStamp;
NDR_PULL_ALLOC(ndr, r->out.pcbAuxOut);
- *r->out.pcbAuxOut = *r->in.pcbAuxOut;
- }
+ if (r->in.pcbAuxOut)
+ *r->out.pcbAuxOut = *r->in.pcbAuxOut;
+ else
+ *r->out.pcbAuxOut = 0;
+ }
if (flags & NDR_OUT) {
if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
diff -up openchange-openchange-2.3-VULCAN/script/makepropslist.py.covscan openchange-openchange-2.3-VULCAN/script/makepropslist.py
--- openchange-openchange-2.3-VULCAN/script/makepropslist.py.covscan 2015-05-16 17:22:04.000000000 +0200
+++ openchange-openchange-2.3-VULCAN/script/makepropslist.py 2018-07-19 13:53:41.288450703 +0200
@@ -992,7 +992,7 @@ def check_duplicate_alternative_names():
if previous_alternative_names.has_key(altname):
print "\tIn section", entry["OXPROPS_Sect"], ", alternative name:", altname, "duplicates name in section", previous_alternative_names[altname]
if previous_canonical_names.has_key(altname):
- print "\tIn section", entry["OXPROPS_Sect"], ", alternative name:", altname, "duplicates canonical name in section", previous_alternative_names[altname]
+ print "\tIn section", entry["OXPROPS_Sect"], ", alternative name:", altname, "duplicates canonical name in section", previous_canonical_names[altname]
previous_alternative_names[altname] = (entry["OXPROPS_Sect"])
def check_duplicate_propids():
diff -up openchange-openchange-2.3-VULCAN/testprogs/test_asyncnotif.c.covscan openchange-openchange-2.3-VULCAN/testprogs/test_asyncnotif.c
--- openchange-openchange-2.3-VULCAN/testprogs/test_asyncnotif.c.covscan 2015-05-16 17:22:04.000000000 +0200
+++ openchange-openchange-2.3-VULCAN/testprogs/test_asyncnotif.c 2018-07-19 13:53:41.288450703 +0200
@@ -109,12 +109,16 @@ static int callback(uint16_t Notificatio
break;
case fnevMbit|fnevObjectDeleted:
OC_DEBUG(0, "[+] Message deleted");
+ break;
case fnevMbit|fnevObjectModified:
OC_DEBUG(0, "[+] Message modified");
+ break;
case fnevMbit|fnevObjectMoved:
OC_DEBUG(0, "[+] Message moved");
+ break;
case fnevMbit|fnevObjectCopied:
OC_DEBUG(0, "[+] Message copied");
+ break;
case fnevMbit|fnevTableModified:
ctable = (struct ContentsTableChange *) NotificationData;
switch (ctable->TableEvent) {
@@ -143,6 +147,7 @@ static int callback(uint16_t Notificatio
break;
case fnevMbit|fnevSbit|fnevObjectModified:
OC_DEBUG(0, "[+] A property on a message in a search folder has changed");
+ break;
case fnevMbit|fnevSbit|fnevTableModified:
stable = (struct ContentsTableChange *) NotificationData;
switch (stable->TableEvent) {
@@ -250,6 +255,7 @@ int main(int argc, const char *argv[])
retval = MAPIInitialize(&mapi_ctx, opt_profdb);
if (retval != MAPI_E_SUCCESS) {
+ talloc_free(mem_ctx);
mapi_errstr("MAPIInitialize", retval);
exit (1);
}
@@ -261,6 +267,10 @@ int main(int argc, const char *argv[])
SetMAPIDebugLevel(mapi_ctx, atoi(opt_debug));
}
+ mapi_object_init(&obj_store);
+ mapi_object_init(&obj_inbox);
+ mapi_object_init(&obj_contentstable);
+
/* if no profile is supplied use the default one */
if (!opt_profname) {
retval = GetDefaultProfile(mapi_ctx, &opt_profname);
@@ -280,7 +290,6 @@ int main(int argc, const char *argv[])
}
/* Open the default message store */
- mapi_object_init(&obj_store);
retval = OpenMsgStore(session, &obj_store);
if (retval != MAPI_E_SUCCESS) {
@@ -292,11 +301,9 @@ int main(int argc, const char *argv[])
retval = GetReceiveFolder(&obj_store, &fid, NULL);
MAPI_RETVAL_IF(retval, retval, mem_ctx);
- mapi_object_init(&obj_inbox);
retval = OpenFolder(&obj_store, fid, &obj_inbox);
MAPI_RETVAL_IF(retval, retval, mem_ctx);
- mapi_object_init(&obj_contentstable);
retval = GetContentsTable(&obj_inbox, &obj_contentstable, 0, &count);
printf("mailbox contains %i messages\n", count);
diff -up openchange-openchange-2.3-VULCAN/utils/mapipropsdump.c.covscan openchange-openchange-2.3-VULCAN/utils/mapipropsdump.c
--- openchange-openchange-2.3-VULCAN/utils/mapipropsdump.c.covscan 2018-07-19 13:53:41.276450703 +0200
+++ openchange-openchange-2.3-VULCAN/utils/mapipropsdump.c 2018-07-19 13:53:41.289450703 +0200
@@ -79,21 +79,21 @@
*/
-static const const struct ndr_interface_table *load_exchange_emsmdb_dso(const char *plugin)
+static const struct ndr_interface_table *load_exchange_emsmdb_dso(const char *plugin, void **phandle)
{
const struct ndr_interface_table *p;
- void *handle;
- handle = dlopen(plugin, RTLD_NOW);
- if (handle == NULL) {
+ *phandle = dlopen(plugin, RTLD_NOW);
+ if (*phandle == NULL) {
printf("%s: Unable to open: %s\n", plugin, dlerror());
return NULL;
}
- p = (const struct ndr_interface_table *) dlsym(handle, "ndr_table_exchange_emsmdb");
+ p = (const struct ndr_interface_table *) dlsym(*phandle, "ndr_table_exchange_emsmdb");
if (!p) {
OC_DEBUG(0, "%s: Unable to find DCE/RPC interface table for 'ndr_table_exchange_emsmdb': %s", plugin, dlerror());
- dlclose(handle);
+ dlclose(*phandle);
+ *phandle = NULL;
return NULL;
}
@@ -409,6 +409,7 @@ int main(int argc, const char *argv[])
struct SPropTagArray *s;
const char *opt_reqfile = NULL;
const char *opt_replfile = NULL;
+ void *plhandle = NULL;
poptContext pc;
int opt;
int index = -1;
@@ -442,7 +443,7 @@ int main(int argc, const char *argv[])
exit (1);
}
- p = load_exchange_emsmdb_dso(PLUGIN);
+ p = load_exchange_emsmdb_dso(PLUGIN, &plhandle);
if (!p) {
exit (1);
}
@@ -454,6 +455,7 @@ int main(int argc, const char *argv[])
s = process_request(mem_ctx, f, opt_reqfile, &opnum, &index);
if (!s) {
talloc_free(mem_ctx);
+ dlclose(plhandle);
exit (1);
}
@@ -461,9 +463,12 @@ int main(int argc, const char *argv[])
ret = process_response(mem_ctx, f, opt_replfile, s, opnum, index);
if (ret == -1) {
talloc_free(mem_ctx);
+ dlclose(plhandle);
exit (1);
}
talloc_free(mem_ctx);
+ dlclose(plhandle);
+
return (0);
}
diff -up openchange-openchange-2.3-VULCAN/utils/openchangeclient.c.covscan openchange-openchange-2.3-VULCAN/utils/openchangeclient.c
--- openchange-openchange-2.3-VULCAN/utils/openchangeclient.c.covscan 2018-07-19 13:53:41.277450703 +0200
+++ openchange-openchange-2.3-VULCAN/utils/openchangeclient.c 2018-07-19 13:53:41.289450703 +0200
@@ -629,6 +629,8 @@ static bool set_external_recipients(TALL
uint32_t last;
struct SPropValue SPropValue;
+ memset(&SPropValue, 0, sizeof(struct SPropValue));
+
SRowSet->aRow = talloc_realloc(mem_ctx, SRowSet->aRow, struct SRow, SRowSet->cRows + 1);
last = SRowSet->cRows;
SRowSet->aRow[last].cValues = 0;
@@ -821,6 +823,8 @@ static enum MAPISTATUS openchangeclient_
mapi_object_init(&obj_outbox);
mapi_object_init(&obj_message);
+ memset(&SPropValue, 0, sizeof(struct SPropValue));
+
if (oclient->pf == true) {
retval = openchangeclient_getpfdir(mem_ctx, obj_store, &obj_outbox, oclient->folder);
if (retval != MAPI_E_SUCCESS) return retval;

View File

@ -0,0 +1,81 @@
diff -up openchange-openchange-2.3-VULCAN/configure.ac.disable-mysql openchange-openchange-2.3-VULCAN/configure.ac
--- openchange-openchange-2.3-VULCAN/configure.ac.disable-mysql 2018-02-19 17:21:16.683135863 +0100
+++ openchange-openchange-2.3-VULCAN/configure.ac 2018-02-19 17:23:26.313134071 +0100
@@ -50,22 +50,22 @@ AC_SUBST(ENDIAN)
dnl #################################################################
dnl MySQL
dnl #################################################################
-AC_PATH_PROG(MYSQL_CONFIG, mysql_config)
-if test x"$MYSQL_CONFIG" = x""; then
- AC_MSG_WARN([No version of mysql_config was found!])
- AC_MSG_ERROR([Please install libmysqlclient-dev])
-fi
-AC_SUBST(MYSQL_CONFIG)
-
-AC_MSG_CHECKING(mysql cflags)
-MYSQL_CFLAGS=`$MYSQL_CONFIG --cflags`
-AC_MSG_RESULT($MYSQL_CFLAGS)
-AC_SUBST(MYSQL_CFLAGS)
-
-AC_MSG_CHECKING(mysql libs)
-MYSQL_LIBS=`$MYSQL_CONFIG --libs`
-AC_MSG_RESULT($MYSQL_LIBS)
-AC_SUBST(MYSQL_LIBS)
+dnl AC_PATH_PROG(MYSQL_CONFIG, mysql_config)
+dnl if test x"$MYSQL_CONFIG" = x""; then
+dnl AC_MSG_WARN([No version of mysql_config was found!])
+dnl AC_MSG_ERROR([Please install libmysqlclient-dev])
+dnl fi
+dnl AC_SUBST(MYSQL_CONFIG)
+dnl
+dnl AC_MSG_CHECKING(mysql cflags)
+dnl MYSQL_CFLAGS=`$MYSQL_CONFIG --cflags`
+dnl AC_MSG_RESULT($MYSQL_CFLAGS)
+dnl AC_SUBST(MYSQL_CFLAGS)
+dnl
+dnl AC_MSG_CHECKING(mysql libs)
+dnl MYSQL_LIBS=`$MYSQL_CONFIG --libs`
+dnl AC_MSG_RESULT($MYSQL_LIBS)
+dnl AC_SUBST(MYSQL_LIBS)
dnl #################################################################
dnl Check for OS dependent options
@@ -409,22 +409,22 @@ AC_SUBST(pythondir)
dnl ----------------------------------------------------------------------------
dnl Check for MYSQL client libraries
dnl ----------------------------------------------------------------------------
-AC_PATH_PROG(MYSQL_CONFIG, mysql_config)
-if test x"$MYSQL_CONFIG" = x""; then
- AC_MSG_WARN([No version of mysql_config was found!])
- AC_MSG_ERROR([Please install libmysqlclient-dev])
-fi
-AC_SUBST(MYSQL_CONFIG)
-
-AC_MSG_CHECKING(mysql cflags)
-MYSQL_CFLAGS=`$MYSQL_CONFIG --cflags`
-AC_MSG_RESULT($MYSQL_CFLAGS)
-AC_SUBST(MYSQL_CFLAGS)
-
-AC_MSG_CHECKING(mysql libs)
-MYSQL_LIBS=`$MYSQL_CONFIG --libs`
-AC_MSG_RESULT($MYSQL_LIBS)
-AC_SUBST(MYSQL_LIBS)
+dnl AC_PATH_PROG(MYSQL_CONFIG, mysql_config)
+dnl if test x"$MYSQL_CONFIG" = x""; then
+dnl AC_MSG_WARN([No version of mysql_config was found!])
+dnl AC_MSG_ERROR([Please install libmysqlclient-dev])
+dnl fi
+dnl AC_SUBST(MYSQL_CONFIG)
+dnl
+dnl AC_MSG_CHECKING(mysql cflags)
+dnl MYSQL_CFLAGS=`$MYSQL_CONFIG --cflags`
+dnl AC_MSG_RESULT($MYSQL_CFLAGS)
+dnl AC_SUBST(MYSQL_CFLAGS)
+dnl
+dnl AC_MSG_CHECKING(mysql libs)
+dnl MYSQL_LIBS=`$MYSQL_CONFIG --libs`
+dnl AC_MSG_RESULT($MYSQL_LIBS)
+dnl AC_SUBST(MYSQL_LIBS)
dnl ----------------------------------------------------------------------------
dnl Check for memcached

View File

@ -0,0 +1,106 @@
diff -up openchange-openchange-2.3-VULCAN/configure.ac.drop-python openchange-openchange-2.3-VULCAN/configure.ac
--- openchange-openchange-2.3-VULCAN/configure.ac.drop-python 2018-04-17 12:59:29.738652248 +0200
+++ openchange-openchange-2.3-VULCAN/configure.ac 2018-04-17 13:00:36.006651332 +0200
@@ -376,36 +376,42 @@ AC_SUBST(PIDL)
dnl ---------------------------------------------------------------------------
dnl Check for Python
dnl ---------------------------------------------------------------------------
+dnl
+dnl AC_PATH_PROG(PYTHON, python3)
+dnl if test x"$PYTHON" = x""; then
+dnl AC_MSG_WARN([No version of python3 was found!])
+dnl AC_MSG_ERROR([Please install python3])
+dnl fi
+dnl AC_SUBST(PYTHON)
+dnl
+dnl AC_PATH_PROG(PYTHON_CONFIG, python3-config)
+dnl if test x"$PYTHON_CONFIG" = x""; then
+dnl AC_MSG_WARN([No version of python3-config was found!])
+dnl AC_MSG_ERROR([Please install python3-dev 3.x])
+dnl fi
+dnl AC_SUBST(PYTHON_CONFIG)
+dnl
+dnl AC_MSG_CHECKING(python cflags)
+dnl PYTHON_CFLAGS=`$PYTHON_CONFIG --cflags`
+dnl AC_MSG_RESULT($PYTHON_CFLAGS)
+dnl AC_SUBST(PYTHON_CFLAGS)
+dnl
+dnl AC_MSG_CHECKING(python libs)
+dnl PYTHON_LIBS=`$PYTHON_CONFIG --libs`
+dnl AC_MSG_RESULT($PYTHON_LIBS)
+dnl AC_SUBST(PYTHON_LIBS)
+dnl
+dnl AC_MSG_CHECKING(python library directory)
+dnl pythondir=`$PYTHON -c "from distutils import sysconfig; print sysconfig.get_python_lib(1, 0, '\\${prefix}')"`
+dnl AC_MSG_RESULT($pythondir)
+dnl AC_SUBST(pythondir)
-AC_PATH_PROG(PYTHON, python3)
-if test x"$PYTHON" = x""; then
- AC_MSG_WARN([No version of python3 was found!])
- AC_MSG_ERROR([Please install python3])
-fi
-AC_SUBST(PYTHON)
-
-AC_PATH_PROG(PYTHON_CONFIG, python3-config)
-if test x"$PYTHON_CONFIG" = x""; then
- AC_MSG_WARN([No version of python3-config was found!])
- AC_MSG_ERROR([Please install python3-dev 3.x])
-fi
-AC_SUBST(PYTHON_CONFIG)
-
-AC_MSG_CHECKING(python cflags)
-PYTHON_CFLAGS=`$PYTHON_CONFIG --cflags`
-AC_MSG_RESULT($PYTHON_CFLAGS)
+PYTHON_CFLAGS=
AC_SUBST(PYTHON_CFLAGS)
-AC_MSG_CHECKING(python libs)
-PYTHON_LIBS=`$PYTHON_CONFIG --libs`
-AC_MSG_RESULT($PYTHON_LIBS)
+PYTHON_LIBS=
AC_SUBST(PYTHON_LIBS)
-AC_MSG_CHECKING(python library directory)
-pythondir=`$PYTHON -c "from distutils import sysconfig; print sysconfig.get_python_lib(1, 0, '\\${prefix}')"`
-AC_MSG_RESULT($pythondir)
-AC_SUBST(pythondir)
-
dnl ----------------------------------------------------------------------------
dnl Check for MYSQL client libraries
dnl ----------------------------------------------------------------------------
@@ -759,11 +765,11 @@ AC_SUBST(OC_SERVER_UNINSTALL)
dnl ##########################################################################
dnl mapiproxy server
dnl ##########################################################################
-if test x$PYTHON != x; then
- if test "x$SAMDB_LIBS" != x -a "x$SAMBASERVER_LIBS" != x ; then
- mapiproxy=1
- fi
-fi
+dnl if test x$PYTHON != x; then
+dnl if test "x$SAMDB_LIBS" != x -a "x$SAMBASERVER_LIBS" != x ; then
+dnl mapiproxy=1
+dnl fi
+dnl fi
OC_RULE_ADD(mapiproxy, SERVER)
AC_ARG_WITH(modulesdir,
@@ -780,14 +786,15 @@ AC_ARG_ENABLE(pyopenchange, AC_HELP_STRI
[build Python bindings for libmapi]),
enable_pyopenchange="$enableval",
enable_pyopenchange=no)
-PYCDIR=`$PYTHON -c "import distutils.sysconfig; print distutils.sysconfig.get_python_lib(1, prefix='\\$(prefix)')"`
-AC_SUBST(PYCDIR)
PYOPENCHANGEALL=
PYOPENCHANGEINSTALL=
PYOPENCHANGEUNINSTALL=
if test x$enable_pyopenchange = xyes ; then
+ PYCDIR=`$PYTHON -c "import distutils.sysconfig; print distutils.sysconfig.get_python_lib(1, prefix='\\$(prefix)')"`
+ AC_SUBST(PYCDIR)
+
dnl Enable pyopenchange by default
PYOPENCHANGEALL="$PYOPENCHANGEALL pyopenchange"
PYOPENCHANGEINSTALL="$PYOPENCHANGEALLINSTALL pyopenchange-install"

View File

@ -0,0 +1,12 @@
diff -up openchange-openchange-2.3-VULCAN/configure.ac.disable-server-reqs openchange-openchange-2.3-VULCAN/configure.ac
--- openchange-openchange-2.3-VULCAN/configure.ac.disable-server-reqs 2021-06-17 21:40:49.938611315 +0200
+++ openchange-openchange-2.3-VULCAN/configure.ac 2021-06-17 21:41:18.616614841 +0200
@@ -436,7 +436,7 @@ dnl AC_SUBST(MYSQL_LIBS)
dnl ----------------------------------------------------------------------------
dnl Check for memcached
dnl ----------------------------------------------------------------------------
-PKG_CHECK_MODULES([MEMCACHED], [libmemcached >= 1.0.18], [], [AC_MSG_ERROR(memcached >= 1.0.18 required to build mapistore library)])
+dnl PKG_CHECK_MODULES([MEMCACHED], [libmemcached >= 1.0.18], [], [AC_MSG_ERROR(memcached >= 1.0.18 required to build mapistore library)])
dnl ----------------------------------------------------------------------------
dnl Check for Flex

View File

@ -0,0 +1,41 @@
diff -up openchange-openchange-2.3-VULCAN/configure.ac.disable-server-tools-build openchange-openchange-2.3-VULCAN/configure.ac
--- openchange-openchange-2.3-VULCAN/configure.ac.disable-server-tools-build 2015-11-27 08:30:31.481874706 +0100
+++ openchange-openchange-2.3-VULCAN/configure.ac 2015-11-27 08:33:39.769867245 +0100
@@ -284,7 +284,7 @@ AC_SUBST(COVERAGE_INIT)
dnl ---------------------------------------------------------------------------
dnl Check for check (unittest library)
dnl ---------------------------------------------------------------------------
-PKG_CHECK_MODULES(CHECK, check, [testsuite=1], [AC_MSG_WARN(Conditions unmet for unit testing support)])
+#PKG_CHECK_MODULES(CHECK, check, [testsuite=1], [AC_MSG_WARN(Conditions unmet for unit testing support)])
AC_SUBST(CHECK_CFLAGS)
AC_SUBST(CHECK_LIBS)
OC_RULE_ADD(testsuite, TESTSUITE)
@@ -292,7 +292,7 @@ OC_RULE_ADD(testsuite, TESTSUITE)
dnl ---------------------------------------------------------------------------
dnl Check for nanomsg library (server notification)
dnl ---------------------------------------------------------------------------
-PKG_CHECK_MODULES(NANOMSG, libnanomsg, [], [AC_MSG_ERROR(Install nanomsg library >= 0.5)])
+#PKG_CHECK_MODULES(NANOMSG, libnanomsg, [], [AC_MSG_ERROR(Install nanomsg library >= 0.5)])
AC_SUBST(NANOMSG_CFLAGS)
AC_SUBST(NANO_LIBS)
@@ -698,16 +698,16 @@ AC_SUBST(MAPISTORE_TEST)
OC_RULE_ADD(openchangeclient, TOOLS)
#OC_RULE_ADD(mapistore_fsocpf, MAPISTORE)
OC_RULE_ADD(mapipropsdump, TOOLS)
-OC_RULE_ADD(ocnotify, TOOLS)
+#OC_RULE_ADD(ocnotify, TOOLS)
OC_RULE_ADD(exchange2ical, TOOLS)
-OC_RULE_ADD(rpcextract, TOOLS)
+#OC_RULE_ADD(rpcextract, TOOLS)
OC_RULE_ADD(openchangepfadmin, TOOLS)
OC_RULE_ADD(mapitest, TOOLS)
OC_RULE_ADD(mapiprofile, TOOLS)
OC_RULE_ADD(openchangemapidump, TOOLS)
OC_RULE_ADD(schemaIDGUID, TOOLS)
-OC_RULE_ADD(check_fasttransfer, TOOLS)
+#OC_RULE_ADD(check_fasttransfer, TOOLS)
OC_RULE_ADD(test_asyncnotif, TOOLS)

View File

@ -0,0 +1,38 @@
diff -up openchange-openchange-2.3-VULCAN/libmapi/IMSProvider.c.fix-connection-args openchange-openchange-2.3-VULCAN/libmapi/IMSProvider.c
--- openchange-openchange-2.3-VULCAN/libmapi/IMSProvider.c.fix-connection-args 2015-05-16 17:22:04.000000000 +0200
+++ openchange-openchange-2.3-VULCAN/libmapi/IMSProvider.c 2016-04-07 19:10:30.340959912 +0200
@@ -91,6 +91,7 @@ static char *build_binding_string(struct
struct mapi_profile *profile)
{
char *binding;
+ bool any_string_added = false;
/* Sanity Checks */
if (!profile) return NULL;
@@ -101,15 +102,23 @@ static char *build_binding_string(struct
/* If dump-data option is enabled */
if (mapi_ctx->dumpdata == true) {
- binding = talloc_strdup_append(binding, "print,");
+ binding = talloc_strdup_append(binding, "print");
+ any_string_added = true;
}
/* If seal option is enabled in the profile */
if (profile->seal == true) {
- binding = talloc_strdup_append(binding, "seal,");
+ if (any_string_added) {
+ binding = talloc_strdup_append(binding, ",");
+ }
+ binding = talloc_strdup_append(binding, "seal");
+ any_string_added = true;
}
/* If localaddress parameter is available in the profile */
if (profile->localaddr) {
- binding = talloc_asprintf_append(binding, "localaddress=%s,", profile->localaddr);
+ if (any_string_added) {
+ binding = talloc_strdup_append(binding, ",");
+ }
+ binding = talloc_asprintf_append(binding, "localaddress=%s", profile->localaddr);
}
binding = talloc_strdup_append(binding, "]");

View File

@ -0,0 +1,88 @@
diff -up openchange-openchange-2.3-VULCAN/libexchange2ical/exchange2ical_property.c.libical-3.0 openchange-openchange-2.3-VULCAN/libexchange2ical/exchange2ical_property.c
--- openchange-openchange-2.3-VULCAN/libexchange2ical/exchange2ical_property.c.libical-3.0 2017-11-08 14:45:06.494302213 +0100
+++ openchange-openchange-2.3-VULCAN/libexchange2ical/exchange2ical_property.c 2017-11-08 14:47:33.465300181 +0100
@@ -515,7 +515,7 @@ void ical_property_EXDATE(struct exchang
icalproperty_add_parameter(prop, tzid);
} else {
/*Get time from dtstart*/
- icaltime.is_utc = 1;
+ icaltime.zone = icaltimezone_get_utc_timezone ();
if (exchange2ical->apptEndWhole){
dttime = get_icaltime_from_FILETIME_UTC(exchange2ical->apptStartWhole);
icaltime.hour = dttime.hour;
diff -up openchange-openchange-2.3-VULCAN/libexchange2ical/exchange2ical_utils.c.libical-3.0 openchange-openchange-2.3-VULCAN/libexchange2ical/exchange2ical_utils.c
--- openchange-openchange-2.3-VULCAN/libexchange2ical/exchange2ical_utils.c.libical-3.0 2017-11-08 14:45:43.123301706 +0100
+++ openchange-openchange-2.3-VULCAN/libexchange2ical/exchange2ical_utils.c 2017-11-08 14:47:31.873300203 +0100
@@ -241,10 +241,9 @@ struct icaltimetype get_icaltimetype_fro
tt.minute = tm->tm_min;
tt.second = tm->tm_sec;
- tt.is_utc = 0;
tt.is_date = 0;
tt.is_daylight = 0;
- tt.zone = 0;
+ tt.zone = icaltimezone_get_utc_timezone ();
return tt;
}
@@ -254,7 +253,6 @@ struct icaltimetype get_icaltimetype_fro
struct icaltimetype tt;
tt = get_icaltimetype_from_tm(tm);
- tt.is_utc = 1;
return tt;
}
@@ -270,10 +268,8 @@ struct icaltimetype get_icaldate_from_tm
tt.minute = 0;
tt.second = 0;
- tt.is_utc = 1;
tt.is_date = 1;
tt.is_daylight = 0;
- tt.zone = NULL;
return tt;
}
@@ -313,7 +309,6 @@ struct icaltimetype get_icaltime_from_FI
tt.minute = tm->tm_min;
tt.second = tm->tm_sec;
tt.is_date = 0;
- tt.is_utc = 0;
tt.is_daylight = 0;
tt.zone = NULL;
@@ -339,9 +334,8 @@ struct icaltimetype get_icaltime_from_FI
tt.minute = tm->tm_min;
tt.second = tm->tm_sec;
tt.is_date = 0;
- tt.is_utc = 1;
tt.is_daylight = 0;
- tt.zone = NULL;
+ tt.zone = icaltimezone_get_utc_timezone ();
return tt;
}
@@ -371,9 +365,8 @@ struct icaltimetype get_icaldate_from_FI
tt.minute = 0;
tt.second = 0;
tt.is_date = 1;
- tt.is_utc = 1;
tt.is_daylight = 0;
- tt.zone = NULL;
+ tt.zone = icaltimezone_get_utc_timezone ();
return tt;
}
@@ -390,10 +383,9 @@ struct icaltimetype get_icaldate_from_Gl
tt.minute = 0;
tt.second = 0;
- tt.is_utc = 1;
tt.is_date = 1;
tt.is_daylight = 0;
- tt.zone = NULL;
+ tt.zone = icaltimezone_get_utc_timezone ();
return tt;
}

View File

@ -0,0 +1,12 @@
diff -up openchange-openchange-2.3-VULCAN/libocpf/lex.l.no-yyunput openchange-openchange-2.3-VULCAN/libocpf/lex.l
--- openchange-openchange-2.3-VULCAN/libocpf/lex.l.no-yyunput 2016-04-07 21:57:52.155596453 +0200
+++ openchange-openchange-2.3-VULCAN/libocpf/lex.l 2016-04-07 21:58:19.397595467 +0200
@@ -29,7 +29,7 @@
#include "libocpf/lex.h"
#define YY_EXTRA_TYPE struct ocpf_context *
-#define YY_NO_UNPUT
+/*#define YY_NO_UNPUT*/
static void unterminated(struct ocpf_context *, const char *, unsigned int);

View File

@ -0,0 +1,159 @@
diff -up openchange-openchange-2.3-VULCAN/libmapiadmin/mapiadmin_user.c.samba-4.10-macros openchange-openchange-2.3-VULCAN/libmapiadmin/mapiadmin_user.c
--- openchange-openchange-2.3-VULCAN/libmapiadmin/mapiadmin_user.c.samba-4.10-macros 2019-02-14 15:19:53.317769411 +0100
+++ openchange-openchange-2.3-VULCAN/libmapiadmin/mapiadmin_user.c 2019-02-14 15:19:53.331769410 +0100
@@ -39,6 +39,8 @@
#include <time.h>
+#include "libmapi/libmapi_private.h"
+
static ssize_t openchange_sys_read(int fd, void *buf, size_t count)
{
ssize_t ret;
@@ -101,7 +103,7 @@ static enum ndr_err_code openchange_ndr_
NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->sid_rev_num));
NDR_CHECK(ndr_push_int8(ndr, NDR_SCALARS, r->num_auths));
NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->id_auth, 6));
- if (r->num_auths < 0 || r->num_auths > ARRAY_SIZE(r->sub_auths)) {
+ if (r->num_auths < 0 || r->num_auths > OC_ARRAY_SIZE(r->sub_auths)) {
return ndr_push_error(ndr, NDR_ERR_RANGE, "value out of range");
}
for (cntr_sub_auths_0 = 0; cntr_sub_auths_0 < r->num_auths; cntr_sub_auths_0++) {
@@ -659,7 +661,7 @@ again:
OC_DEBUG(3, "Setting account password '%s'", mapiadmin_ctx->password);
- ZERO_STRUCT(u);
+ OC_ZERO_STRUCT(u);
s.in.user_handle = &mapiadmin_ctx->user_ctx->user_handle;
s.in.info = &u;
s.in.level = 24;
@@ -687,7 +689,7 @@ again:
}
}
- ZERO_STRUCT(u);
+ OC_ZERO_STRUCT(u);
s.in.user_handle = &mapiadmin_ctx->user_ctx->user_handle;
s.in.info = &u;
s.in.level = 21;
diff -up openchange-openchange-2.3-VULCAN/libmapi/libmapi_private.h.samba-4.10-macros openchange-openchange-2.3-VULCAN/libmapi/libmapi_private.h
--- openchange-openchange-2.3-VULCAN/libmapi/libmapi_private.h.samba-4.10-macros 2019-02-14 15:19:53.313769411 +0100
+++ openchange-openchange-2.3-VULCAN/libmapi/libmapi_private.h 2019-02-14 15:19:53.331769410 +0100
@@ -141,6 +141,11 @@ const char *libmapi_iface_best_ip(struc
bool libmapi_iface_is_local(struct interface *, const char *);
bool libmapi_iface_same_net(const char *, const char *, const char *);
+#define OC_ZERO_STRUCT(x) memset((char *)&(x), 0, sizeof(x))
+#define OC_ZERO_STRUCTP(x) do { if ((x) != NULL) memset((char *)(x), 0, sizeof(*(x))); } while(0)
+#define OC_ZERO_STRUCTPN(x) memset((char *)(x), 0, sizeof(*(x)))
+#define OC_ARRAY_SIZE(a) (sizeof(a)/sizeof(a[0]))
+
__END_DECLS
#undef _PRINTF_ATTRIBUTE
diff -up openchange-openchange-2.3-VULCAN/libmapi/socket/interface.c.samba-4.10-macros openchange-openchange-2.3-VULCAN/libmapi/socket/interface.c
--- openchange-openchange-2.3-VULCAN/libmapi/socket/interface.c.samba-4.10-macros 2019-02-14 15:19:53.318769411 +0100
+++ openchange-openchange-2.3-VULCAN/libmapi/socket/interface.c 2019-02-14 15:19:53.331769410 +0100
@@ -70,7 +70,7 @@ static void add_interface(TALLOC_CTX *me
if (iface == NULL)
return;
- ZERO_STRUCTPN(iface);
+ OC_ZERO_STRUCTPN(iface);
iface->ip = ip;
iface->nmask = nmask;
diff -up openchange-openchange-2.3-VULCAN/mapiproxy/dcesrv_mapiproxy.c.samba-4.10-macros openchange-openchange-2.3-VULCAN/mapiproxy/dcesrv_mapiproxy.c
--- openchange-openchange-2.3-VULCAN/mapiproxy/dcesrv_mapiproxy.c.samba-4.10-macros 2015-05-16 17:22:04.000000000 +0200
+++ openchange-openchange-2.3-VULCAN/mapiproxy/dcesrv_mapiproxy.c 2019-02-14 15:19:53.331769410 +0100
@@ -703,7 +703,7 @@ NTSTATUS dcerpc_server_mapiproxy_init(vo
NTSTATUS ret;
struct dcesrv_endpoint_server ep_server;
- ZERO_STRUCT(ep_server);
+ OC_ZERO_STRUCT(ep_server);
/* Fill in our name */
ep_server.name = "mapiproxy";
diff -up openchange-openchange-2.3-VULCAN/ndr_mapi.c.samba-4.10-macros openchange-openchange-2.3-VULCAN/ndr_mapi.c
--- openchange-openchange-2.3-VULCAN/ndr_mapi.c.samba-4.10-macros 2019-02-14 15:19:53.329769410 +0100
+++ openchange-openchange-2.3-VULCAN/ndr_mapi.c 2019-02-14 15:19:53.331769410 +0100
@@ -921,7 +921,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_EcDo
TALLOC_CTX *_mem_save_length_0;
if (flags & NDR_IN) {
- ZERO_STRUCT(r->out);
+ OC_ZERO_STRUCT(r->out);
if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
NDR_PULL_ALLOC(ndr, r->in.handle);
@@ -961,7 +961,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_EcDo
NDR_PULL_ALLOC(ndr, r->out.handle);
*r->out.handle = *r->in.handle;
NDR_PULL_ALLOC(ndr, r->out.mapi_response);
- ZERO_STRUCTP(r->out.mapi_response);
+ OC_ZERO_STRUCTP(r->out.mapi_response);
NDR_PULL_ALLOC(ndr, r->out.length);
*r->out.length = *r->in.length;
}
@@ -1235,7 +1235,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_EcDo
TALLOC_CTX *_mem_save_rgbAuxOut_1;
if (flags & NDR_IN) {
- ZERO_STRUCT(r->out);
+ OC_ZERO_STRUCT(r->out);
NDR_CHECK(ndr_pull_array_size(ndr, &r->in.szUserDN));
NDR_CHECK(ndr_pull_array_length(ndr, &r->in.szUserDN));
@@ -1294,19 +1294,19 @@ _PUBLIC_ enum ndr_err_code ndr_pull_EcDo
}
NDR_PULL_SET_MEM_CTX(ndr, _mem_save_pcbAuxOut_0, LIBNDR_FLAG_REF_ALLOC);
NDR_PULL_ALLOC(ndr, r->out.handle);
- ZERO_STRUCTP(r->out.handle);
+ OC_ZERO_STRUCTP(r->out.handle);
NDR_PULL_ALLOC(ndr, r->out.pcmsPollsMax);
- ZERO_STRUCTP(r->out.pcmsPollsMax);
+ OC_ZERO_STRUCTP(r->out.pcmsPollsMax);
NDR_PULL_ALLOC(ndr, r->out.pcRetry);
- ZERO_STRUCTP(r->out.pcRetry);
+ OC_ZERO_STRUCTP(r->out.pcRetry);
NDR_PULL_ALLOC(ndr, r->out.pcmsRetryDelay);
- ZERO_STRUCTP(r->out.pcmsRetryDelay);
+ OC_ZERO_STRUCTP(r->out.pcmsRetryDelay);
NDR_PULL_ALLOC(ndr, r->out.picxr);
- ZERO_STRUCTP(r->out.picxr);
+ OC_ZERO_STRUCTP(r->out.picxr);
NDR_PULL_ALLOC(ndr, r->out.szDNPrefix);
- ZERO_STRUCTP(r->out.szDNPrefix);
+ OC_ZERO_STRUCTP(r->out.szDNPrefix);
NDR_PULL_ALLOC(ndr, r->out.szDisplayName);
- ZERO_STRUCTP(r->out.szDisplayName);
+ OC_ZERO_STRUCTP(r->out.szDisplayName);
NDR_PULL_ALLOC(ndr, r->out.pulTimeStamp);
*r->out.pulTimeStamp = *r->in.pulTimeStamp;
NDR_PULL_ALLOC(ndr, r->out.pcbAuxOut);
diff -up openchange-openchange-2.3-VULCAN/testsuite/libmapi/mapi_property.c.samba-4.10-macros openchange-openchange-2.3-VULCAN/testsuite/libmapi/mapi_property.c
--- openchange-openchange-2.3-VULCAN/testsuite/libmapi/mapi_property.c.samba-4.10-macros 2015-05-16 17:22:04.000000000 +0200
+++ openchange-openchange-2.3-VULCAN/testsuite/libmapi/mapi_property.c 2019-02-14 15:19:53.331769410 +0100
@@ -280,7 +280,7 @@ static void _make_test_srow(TALLOC_CTX *
{
struct SPropValue prop_val;
- ZERO_STRUCT(prop_val);
+ OC_ZERO_STRUCT(prop_val);
/* PT_I8 */
prop_val.ulPropTag = PR_FID;
prop_val.value.d = 0x0123456789ABCDEFul;
diff -up openchange-openchange-2.3-VULCAN/testsuite/libmapiproxy/openchangedb_logger.c.samba-4.10-macros openchange-openchange-2.3-VULCAN/testsuite/libmapiproxy/openchangedb_logger.c
--- openchange-openchange-2.3-VULCAN/testsuite/libmapiproxy/openchangedb_logger.c.samba-4.10-macros 2015-05-16 17:22:04.000000000 +0200
+++ openchange-openchange-2.3-VULCAN/testsuite/libmapiproxy/openchangedb_logger.c 2019-02-14 15:19:53.332769410 +0100
@@ -638,7 +638,7 @@ static void ocdb_logger_setup(void)
ck_abort();
}
- ZERO_STRUCT(functions_called);
+ OC_ZERO_STRUCT(functions_called);
}
static void ocdb_logger_teardown(void)

View File

@ -0,0 +1,41 @@
diff -up openchange-openchange-2.3-VULCAN/exchange.idl.samba-4.11 openchange-openchange-2.3-VULCAN/exchange.idl
--- openchange-openchange-2.3-VULCAN/exchange.idl.samba-4.11 2015-05-16 17:22:04.000000000 +0200
+++ openchange-openchange-2.3-VULCAN/exchange.idl 2019-08-30 07:23:02.172309353 +0200
@@ -465,12 +465,12 @@ System Attendant Private Interface
would otherwise break the data alignment on wire operations.
However, they must be defined here as they make use of the same array types. */
- typedef [nopush,nopull,noprint] struct {
+ typedef [public] struct {
[range(0,100000)] uint32 cValues;
[size_is(cValues)] hyper *lpui8;
} UI8Array_r;
- typedef [switch_type(uint32),nopush,nopull,noprint] union {
+ typedef [switch_type(uint32)] union {
[case(PT_I2)] uint16 i;
[case(PT_LONG)] uint32 l;
[case(PT_DOUBLE)] double dbl;
@@ -495,19 +495,19 @@ System Attendant Private Interface
[case(PT_OBJECT)] uint32 object;
} SPropValue_CTR;
- typedef [public,noprint,nopush,nopull] struct {
+ typedef [public] struct {
MAPITAGS ulPropTag;
uint32 dwAlignPad;
[switch_is(ulPropTag & 0xFFFF)] SPropValue_CTR value;
} SPropValue;
- typedef [public,noprint,nopush,nopull] struct {
+ typedef [public] struct {
uint32 ulAdrEntryPad;
[range(0,100000)] uint32 cValues;
[size_is(cValues)]SPropValue *lpProps;
} SRow;
- typedef [public,noprint,nopush,nopull] struct {
+ typedef [public] struct {
[range(0,100000)] uint32 cRows;
[size_is(cRows)] SRow aRow[];
} SRowSet;

View File

@ -0,0 +1,85 @@
diff -up openchange-openchange-2.3-VULCAN/libmapiadmin/libmapiadmin.h.samba-4.12 openchange-openchange-2.3-VULCAN/libmapiadmin/libmapiadmin.h
--- openchange-openchange-2.3-VULCAN/libmapiadmin/libmapiadmin.h.samba-4.12 2020-01-27 11:33:02.941846935 +0100
+++ openchange-openchange-2.3-VULCAN/libmapiadmin/libmapiadmin.h 2020-01-27 11:33:19.170846710 +0100
@@ -103,7 +103,9 @@ __BEGIN_DECLS
struct ldb_dn *samdb_search_dn(struct ldb_context *, TALLOC_CTX *, struct ldb_dn *, const char *, ...) _PRINTF_ATTRIBUTE(4,5);
struct dom_sid *dom_sid_add_rid(TALLOC_CTX *, const struct dom_sid *, uint32_t);
bool encode_pw_buffer(uint8_t buffer[516], const char *, int);
+#if 0 /* removed in samba 4.12 */
void arcfour_crypt_blob(uint8_t *, int, const DATA_BLOB *);
+#endif
/* The following public definitions come from libmapiadmin/mapiadmin.c */
struct mapiadmin_ctx *mapiadmin_init(struct mapi_session *);
diff -up openchange-openchange-2.3-VULCAN/libmapiadmin/mapiadmin_user.c.samba-4.12 openchange-openchange-2.3-VULCAN/libmapiadmin/mapiadmin_user.c
--- openchange-openchange-2.3-VULCAN/libmapiadmin/mapiadmin_user.c.samba-4.12 2020-01-27 11:25:31.398853179 +0100
+++ openchange-openchange-2.3-VULCAN/libmapiadmin/mapiadmin_user.c 2020-01-27 11:31:27.490848255 +0100
@@ -592,6 +592,9 @@ _PUBLIC_ enum MAPISTATUS mapiadmin_user_
*/
_PUBLIC_ enum MAPISTATUS mapiadmin_user_add(struct mapiadmin_ctx *mapiadmin_ctx)
{
+ OC_DEBUG(3, "mapiadmin_user_add(): is disabled");
+ return MAPI_E_UNABLE_TO_COMPLETE;
+#if 0 /* disable it, use samba function directly, if needed (no 'arcfour_crypt_blob' in samba 4.12) */
TALLOC_CTX *mem_ctx;
NTSTATUS status;
enum MAPISTATUS retval;
@@ -732,6 +735,7 @@ again:
talloc_free(mem_ctx);
return MAPI_E_SUCCESS;
+#endif
}
/**
diff -up openchange-openchange-2.3-VULCAN/ndr_mapi.c.samba-4.12 openchange-openchange-2.3-VULCAN/ndr_mapi.c
--- openchange-openchange-2.3-VULCAN/ndr_mapi.c.samba-4.12 2020-01-27 11:04:07.136870938 +0100
+++ openchange-openchange-2.3-VULCAN/ndr_mapi.c 2020-01-27 11:12:29.978863985 +0100
@@ -2151,7 +2151,11 @@ enum ndr_err_code ndr_push_RestrictionVa
uint32_t _flags_save_STRUCT = ndr->flags;
ndr_set_flags(&ndr->flags, LIBNDR_FLAG_NOALIGN);
if (ndr_flags & NDR_SCALARS) {
- int level = ndr_push_get_switch_value(ndr, r);
+ uint32_t level = 0;
+
+ if (!NDR_ERR_CODE_IS_SUCCESS(ndr_push_steal_switch_value(ndr, r, &level)))
+ level = 0;
+
switch (level) {
case 0x0: {
break; }
@@ -2165,7 +2169,9 @@ enum ndr_err_code ndr_push_RestrictionVa
}
}
if (ndr_flags & NDR_BUFFERS) {
- int level = ndr_push_get_switch_value(ndr, r);
+ uint32_t level;
+ if (!NDR_ERR_CODE_IS_SUCCESS(ndr_push_steal_switch_value(ndr, r, &level)))
+ level = 0;
switch (level) {
case 0x0:
break;
@@ -2187,9 +2193,10 @@ enum ndr_err_code ndr_push_RestrictionVa
enum ndr_err_code ndr_pull_RestrictionVariable(struct ndr_pull *ndr, int ndr_flags, union RestrictionVariable *r)
{
- int level;
+ uint32_t level;
TALLOC_CTX *_mem_save_res_0;
- level = ndr_pull_get_switch_value(ndr, r);
+ if (!NDR_ERR_CODE_IS_SUCCESS(ndr_pull_steal_switch_value(ndr, r, &level)))
+ level = 0;
{
uint32_t _flags_save_STRUCT = ndr->flags;
ndr_set_flags(&ndr->flags, LIBNDR_FLAG_NOALIGN);
@@ -2237,8 +2244,8 @@ enum ndr_err_code ndr_pull_RestrictionV
_PUBLIC_ void ndr_print_RestrictionVariable(struct ndr_print *ndr, const char *name, const union RestrictionVariable *r)
{
- int level;
- level = ndr_print_get_switch_value(ndr, r);
+ uint32_t level;
+ level = ndr_print_steal_switch_value(ndr, r);
ndr_print_union(ndr, name, level, "RestrictionVariable");
switch (level) {
case 0x0:

View File

@ -0,0 +1,40 @@
diff -up openchange-openchange-2.3-VULCAN/libmapi/IProfAdmin.c.samba-4.13 openchange-openchange-2.3-VULCAN/libmapi/IProfAdmin.c
--- openchange-openchange-2.3-VULCAN/libmapi/IProfAdmin.c.samba-4.13 2020-11-13 13:37:00.953428673 +0100
+++ openchange-openchange-2.3-VULCAN/libmapi/IProfAdmin.c 2020-11-13 13:38:36.541453531 +0100
@@ -753,7 +753,7 @@ _PUBLIC_ enum MAPISTATUS OpenProfile(str
_PUBLIC_ enum MAPISTATUS LoadProfile(struct mapi_context *mapi_ctx,
struct mapi_profile *profile)
{
- enum credentials_use_kerberos use_krb = CRED_AUTO_USE_KERBEROS;
+ enum credentials_use_kerberos use_krb = CRED_USE_KERBEROS_DESIRED;
/* Sanity checks */
OPENCHANGE_RETVAL_IF(!mapi_ctx, MAPI_E_NOT_INITIALIZED, NULL);
@@ -777,9 +777,9 @@ _PUBLIC_ enum MAPISTATUS LoadProfile(str
* another API in the profile */
if (profile->kerberos) {
if (!strncmp(profile->kerberos, "yes", 3)) {
- use_krb = CRED_MUST_USE_KERBEROS;
+ use_krb = CRED_USE_KERBEROS_REQUIRED;
} else {
- use_krb = CRED_DONT_USE_KERBEROS;
+ use_krb = CRED_USE_KERBEROS_DISABLED;
}
}
/* additionally, don't set the username in the ccache if kerberos
@@ -787,13 +787,13 @@ _PUBLIC_ enum MAPISTATUS LoadProfile(str
* credentials. cli_credentials_guess probably gets the right
* thing anyway in the situations where kerberos is in use */
if (profile->username && *(profile->username)
- && use_krb != CRED_MUST_USE_KERBEROS) {
+ && use_krb != CRED_USE_KERBEROS_REQUIRED) {
cli_credentials_set_username(profile->credentials, profile->username, CRED_SPECIFIED);
}
if (profile->password && *(profile->password)) {
cli_credentials_set_password(profile->credentials, profile->password, CRED_SPECIFIED);
}
- if (use_krb != CRED_AUTO_USE_KERBEROS) {
+ if (use_krb != CRED_USE_KERBEROS_DESIRED) {
cli_credentials_set_kerberos_state(profile->credentials, use_krb);
}

View File

@ -0,0 +1,103 @@
diff -up openchange-openchange-2.3-VULCAN/libmapi/IProfAdmin.c.samba-4.15 openchange-openchange-2.3-VULCAN/libmapi/IProfAdmin.c
--- openchange-openchange-2.3-VULCAN/libmapi/IProfAdmin.c.samba-4.15 2021-07-19 12:26:37.615770488 +0200
+++ openchange-openchange-2.3-VULCAN/libmapi/IProfAdmin.c 2021-07-19 12:26:39.640771957 +0200
@@ -794,7 +794,7 @@ _PUBLIC_ enum MAPISTATUS LoadProfile(str
cli_credentials_set_password(profile->credentials, profile->password, CRED_SPECIFIED);
}
if (use_krb != CRED_USE_KERBEROS_DESIRED) {
- cli_credentials_set_kerberos_state(profile->credentials, use_krb);
+ cli_credentials_set_kerberos_state(profile->credentials, use_krb, CRED_SPECIFIED);
}
return MAPI_E_SUCCESS;
diff -up openchange-openchange-2.3-VULCAN/ndr_mapi.c.samba-4.15 openchange-openchange-2.3-VULCAN/ndr_mapi.c
--- openchange-openchange-2.3-VULCAN/ndr_mapi.c.samba-4.15 2021-07-19 12:59:29.801210983 +0200
+++ openchange-openchange-2.3-VULCAN/ndr_mapi.c 2021-07-19 13:07:49.382594567 +0200
@@ -1235,15 +1235,18 @@ _PUBLIC_ enum ndr_err_code ndr_pull_EcDo
TALLOC_CTX *_mem_save_rgbAuxOut_1;
if (flags & NDR_IN) {
+ uint32_t array_length = 0, array_size = 0;
OC_ZERO_STRUCT(r->out);
NDR_CHECK(ndr_pull_array_size(ndr, &r->in.szUserDN));
NDR_CHECK(ndr_pull_array_length(ndr, &r->in.szUserDN));
- if (ndr_get_array_length(ndr, &r->in.szUserDN) > ndr_get_array_size(ndr, &r->in.szUserDN)) {
- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.szUserDN), ndr_get_array_length(ndr, &r->in.szUserDN));
+ NDR_CHECK(ndr_get_array_length(ndr, &r->in.szUserDN, &array_length));
+ NDR_CHECK(ndr_get_array_size(ndr, &r->in.szUserDN, &array_size));
+ if (array_length > array_size) {
+ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", array_size, array_length);
}
- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.szUserDN), sizeof(uint8_t)));
- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.szUserDN, ndr_get_array_length(ndr, &r->in.szUserDN), sizeof(uint8_t), CH_DOS));
+ NDR_CHECK(ndr_check_string_terminator(ndr, array_length, sizeof(uint8_t)));
+ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.szUserDN, array_length, sizeof(uint8_t), CH_DOS));
NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.ulFlags));
NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.ulConMod));
NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.cbLimit));
@@ -1317,6 +1320,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_EcDo
}
if (flags & NDR_OUT) {
+ uint32_t array_length = 0, array_size = 0;
if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
NDR_PULL_ALLOC(ndr, r->out.handle);
}
@@ -1366,11 +1370,13 @@ _PUBLIC_ enum ndr_err_code ndr_pull_EcDo
NDR_PULL_SET_MEM_CTX(ndr, *r->out.szDNPrefix, 0);
NDR_CHECK(ndr_pull_array_size(ndr, r->out.szDNPrefix));
NDR_CHECK(ndr_pull_array_length(ndr, r->out.szDNPrefix));
- if (ndr_get_array_length(ndr, r->out.szDNPrefix) > ndr_get_array_size(ndr, r->out.szDNPrefix)) {
- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, r->out.szDNPrefix), ndr_get_array_length(ndr, r->out.szDNPrefix));
+ NDR_CHECK(ndr_get_array_length(ndr, r->out.szDNPrefix, &array_length));
+ NDR_CHECK(ndr_get_array_size(ndr, r->out.szDNPrefix, &array_size));
+ if (array_length > array_size) {
+ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", array_size, array_length);
}
- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, r->out.szDNPrefix), sizeof(uint8_t)));
- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, r->out.szDNPrefix, ndr_get_array_length(ndr, r->out.szDNPrefix), sizeof(uint8_t), CH_DOS));
+ NDR_CHECK(ndr_check_string_terminator(ndr, array_length, sizeof(uint8_t)));
+ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, r->out.szDNPrefix, array_length, sizeof(uint8_t), CH_DOS));
NDR_PULL_SET_MEM_CTX(ndr, _mem_save_szDNPrefix_1, 0);
}
NDR_PULL_SET_MEM_CTX(ndr, _mem_save_szDNPrefix_0, LIBNDR_FLAG_REF_ALLOC);
@@ -1391,11 +1397,13 @@ _PUBLIC_ enum ndr_err_code ndr_pull_EcDo
NDR_PULL_SET_MEM_CTX(ndr, *r->out.szDisplayName, 0);
NDR_CHECK(ndr_pull_array_size(ndr, r->out.szDisplayName));
NDR_CHECK(ndr_pull_array_length(ndr, r->out.szDisplayName));
- if (ndr_get_array_length(ndr, r->out.szDisplayName) > ndr_get_array_size(ndr, r->out.szDisplayName)) {
- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, r->out.szDisplayName), ndr_get_array_length(ndr, r->out.szDisplayName));
+ NDR_CHECK(ndr_get_array_length(ndr, r->out.szDisplayName, &array_length));
+ NDR_CHECK(ndr_get_array_size(ndr, r->out.szDisplayName, &array_size));
+ if (array_length > array_size) {
+ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", array_size, array_length);
}
- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, r->out.szDisplayName), sizeof(uint8_t)));
- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, r->out.szDisplayName, ndr_get_array_length(ndr, r->out.szDisplayName), sizeof(uint8_t), CH_DOS));
+ NDR_CHECK(ndr_check_string_terminator(ndr, array_length, sizeof(uint8_t)));
+ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, r->out.szDisplayName, array_length, sizeof(uint8_t), CH_DOS));
NDR_PULL_SET_MEM_CTX(ndr, _mem_save_szDisplayName_1, 0);
}
NDR_PULL_SET_MEM_CTX(ndr, _mem_save_szDisplayName_0, LIBNDR_FLAG_REF_ALLOC);
@@ -1415,14 +1423,16 @@ _PUBLIC_ enum ndr_err_code ndr_pull_EcDo
NDR_PULL_SET_MEM_CTX(ndr, _mem_save_pulTimeStamp_0, LIBNDR_FLAG_REF_ALLOC);
NDR_CHECK(ndr_pull_array_size(ndr, &r->out.rgbAuxOut));
NDR_CHECK(ndr_pull_array_length(ndr, &r->out.rgbAuxOut));
- if (ndr_get_array_length(ndr, &r->out.rgbAuxOut) > ndr_get_array_size(ndr, &r->out.rgbAuxOut)) {
- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->out.rgbAuxOut), ndr_get_array_length(ndr, &r->out.rgbAuxOut));
+ NDR_CHECK(ndr_get_array_length(ndr, &r->out.rgbAuxOut, &array_length));
+ NDR_CHECK(ndr_get_array_size(ndr, &r->out.rgbAuxOut, &array_size));
+ if (array_length > array_size) {
+ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", array_size, array_length);
}
if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
- NDR_PULL_ALLOC_N(ndr, r->out.rgbAuxOut, ndr_get_array_size(ndr, &r->out.rgbAuxOut));
+ NDR_PULL_ALLOC_N(ndr, r->out.rgbAuxOut, array_size);
}
/* Only try to pull rgbAuxOut if the fake array size is > 0 */
- if (ndr_get_array_size(ndr, &r->out.rgbAuxOut)) {
+ if (array_size) {
_mem_save_rgbAuxOut_1 = NDR_PULL_GET_MEM_CTX(ndr);
NDR_PULL_SET_MEM_CTX(ndr, r->out.rgbAuxOut, 0);
NDR_CHECK(ndr_pull_mapi2k7_AuxInfo(ndr, NDR_SCALARS, r->out.rgbAuxOut));

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,27 @@
diff -up openchange-openchange-2.3-VULCAN/configure.ac.switch-to-python3 openchange-openchange-2.3-VULCAN/configure.ac
--- openchange-openchange-2.3-VULCAN/configure.ac.switch-to-python3 2018-04-17 13:51:55.977608741 +0200
+++ openchange-openchange-2.3-VULCAN/configure.ac 2018-04-17 13:54:21.958606722 +0200
@@ -377,17 +377,17 @@ dnl ------------------------------------
dnl Check for Python
dnl ---------------------------------------------------------------------------
-AC_PATH_PROG(PYTHON, python)
+AC_PATH_PROG(PYTHON, python3)
if test x"$PYTHON" = x""; then
- AC_MSG_WARN([No version of python was found!])
- AC_MSG_ERROR([Please install python])
+ AC_MSG_WARN([No version of python3 was found!])
+ AC_MSG_ERROR([Please install python3])
fi
AC_SUBST(PYTHON)
-AC_PATH_PROG(PYTHON_CONFIG, python-config)
+AC_PATH_PROG(PYTHON_CONFIG, python3-config)
if test x"$PYTHON_CONFIG" = x""; then
- AC_MSG_WARN([No version of python-config was found!])
- AC_MSG_ERROR([Please install python-dev 2.7])
+ AC_MSG_WARN([No version of python3-config was found!])
+ AC_MSG_ERROR([Please install python3-dev 3.x])
fi
AC_SUBST(PYTHON_CONFIG)

684
SPECS/openchange.spec Normal file
View File

@ -0,0 +1,684 @@
%global samba_version 4.13
%global talloc_version 2.0.5
%global nickname VULCAN
# the python subpackage doesn't work, due to hard disable in patches for build requirements
%global build_python_package 0
%global built_mapitest 0
%if 0%{?rhel}
%global build_server_package 0
%else
# currently disabled also for rawhide (f18), due to samba4 changes
%global build_server_package 0
%endif
%if %{build_python_package}
%{!?python_sitearch: %global python_sitearch %(%{__python} -c "from distutils.sysconfig import get_python_lib; print get_python_lib(1)")}
%endif
### Abstract ###
# Licensing Note: The code is GPLv3+ and the IDL files are public domain.
Name: openchange
Version: 2.3
Release: 38%{?dist}
Summary: Provides access to Microsoft Exchange servers using native protocols
License: GPLv3+ and Public Domain
URL: http://www.openchange.org/
Source0: https://github.com/openchange/openchange/archive/openchange-%{version}-%{nickname}.tar.gz
Source1: doxygen_to_devhelp.xsl
### Build Dependencies ###
BuildRequires: make
BuildRequires: autoconf
BuildRequires: automake
BuildRequires: bison
BuildRequires: doxygen
BuildRequires: file-devel
BuildRequires: flex
BuildRequires: gcc
BuildRequires: gcc-c++
BuildRequires: libical-devel
BuildRequires: libldb-devel
BuildRequires: libtalloc-devel >= %{talloc_version}
BuildRequires: libtdb-devel
BuildRequires: pkgconfig
BuildRequires: libxslt
BuildRequires: popt-devel
%if %{build_python_package}
BuildRequires: python3-devel
%endif
BuildRequires: samba-common >= %{samba_version}
BuildRequires: samba-devel >= %{samba_version}
BuildRequires: samba-libs >= %{samba_version}
BuildRequires: samba-pidl >= %{samba_version}
BuildRequires: zlib-devel
%if %{build_server_package}
BuildRequires: libmemcached-devel
BuildRequires: sqlite-devel
%endif
# Certain versions of libtevent have incorrect
# internal ABI versions
Conflicts: libtevent < 0.9.13
### Patches ###
# OpenChange's libmapi conflicts with Zarafa's libmapi.
# Zarafa is older than OpenChange, so it wins.
Patch0: libmapi-0.8.2-libmapi-conflict.patch
# RH bug #552984
Patch1: openchange-0.9-generate-xml-doc.patch
# Do not build server and python parts
Patch2: openchange-1.0-OC_RULE_ADD-fix.patch
# RH-bug #1028698
Patch4: openchange-1.0-symbol-clash.patch
Patch5: openchange-2.2-samba-4.2.0-rc2.patch
Patch6: openchange-2.3-disable-server-tools-build.patch
Patch7: openchange-2.3-samba-4.4.patch
Patch8: openchange-2.3-fix-connection-args.patch
Patch9: openchange-2.3-no-yyunput.patch
Patch10: openchange-2.3-libical-3.0.patch
Patch11: openchange-2.3-disable-mysql.patch
Patch12: openchange-2.3-switch-to-python3.patch
%if !%{build_python_package}
Patch13: openchange-2.3-disable-python3.patch
%endif
Patch14: openchange-2.3-covscan.patch
Patch15: openchange-2.3-samba-4.10-macros.patch
Patch16: openchange-2.3-samba-4.11.patch
Patch17: openchange-2.3-samba-4.12.patch
Patch18: openchange-2.3-samba-4.13.patch
%if !%{build_server_package}
Patch19: openchange-2.3-disable-server-reqs.patch
%endif
Patch20: openchange-2.3-samba-4.15.patch
%description
OpenChange provides libraries to access Microsoft Exchange servers
using native protocols.
%package devel
Summary: Developer tools for OpenChange libraries
Requires: openchange = %{version}-%{release}
%if %{build_server_package}
Requires: openchange-server = %{version}-%{release}
%endif
%description devel
This package provides the development tools and headers for
OpenChange, providing libraries to access Microsoft Exchange servers
using native protocols.
%package devel-docs
Summary: Developer documentation for OpenChange libraries
Requires: devhelp
Requires: openchange = %{version}-%{release}
BuildArch: noarch
%description devel-docs
This package contains developer documentation for Openchange.
%package client
Summary: User tools for OpenChange libraries
Requires: openchange = %{version}-%{release}
%description client
This package provides the user tools for OpenChange, providing access to
Microsoft Exchange servers using native protocols.
%if %{build_python_package}
%package python
Summary: Python bindings for OpenChange libraries
Requires: openchange = %{version}-%{release}
%description python
This module contains a wrapper that allows the use of OpenChange via Python.
%endif
%if %{build_server_package}
%package server
Summary: Server-side modules for OpenChange
Requires: openchange = %{version}-%{release}
Requires: sqlite
%description server
This package provides the server elements for OpenChange.
%endif
%prep
%setup -q -n openchange-%{name}-%{version}-%{nickname}
%patch0 -p1 -b .libmapi-conflict
%patch1 -p1 -b .generate-xml-doc
%patch2 -p1 -b .OC_RULE_ADD-fix
%patch4 -p1 -b .symbol-clash
%patch5 -p1 -b .samba-4.2.0-rc2
%patch6 -p1 -b .disable-server-tools-build
%patch7 -p1 -b .samba-4.4
%patch8 -p1 -b .fix-connection-args
%patch9 -p1 -b .no-yyunput
%patch10 -p1 -b .libical-3.0
%patch11 -p1 -b .disable-mysql
%patch12 -p1 -b .switch-to-python3
%if !%{build_python_package}
%patch13 -p1 -b .disable-python3
%endif
%patch14 -p1 -b .covscan
%patch15 -p1 -b .samba-4.10-macros
%patch16 -p1 -b .samba-4.11
%patch17 -p1 -b .samba-4.12
%patch18 -p1 -b .samba-4.13
%if !%{build_server_package}
%patch19 -p1 -b .disable-server-reqs
%endif
%patch20 -p1 -b .samba-4.15
%build
./autogen.sh
%configure \
%if %{build_python_package}
--enable-pymapi \
%endif
--with-modulesdir=%{_libdir}/samba/modules
# Parallel builds prohibited by makefile
make
if test -d apidocs ; then
rm -r apidocs
fi
make doxygen
xsltproc -o openchange-libmapi.devhelp --stringparam "booktitle" "MAPI client library (libmapi)" --stringparam "bookpart" "libmapi" %{SOURCE1} apidocs/xml/libmapi/index.xml
xsltproc -o openchange-libmapiadmin.devhelp --stringparam "booktitle" "MAPI administration libraries (libmapiadmin)" --stringparam "bookpart" "libmapiadmin" %{SOURCE1} apidocs/xml/libmapiadmin/index.xml
xsltproc -o openchange-libocpf.devhelp --stringparam "booktitle" "OpenChange Property Files (libocpf)" --stringparam "bookpart" "libocpf" %{SOURCE1} apidocs/xml/libocpf/index.xml
%if %{built_mapitest}
xsltproc -o openchange-mapitest.devhelp --stringparam "booktitle" "MA regression test framework (mapitest)" --stringparam "bookpart" "mapitest" %{SOURCE1} apidocs/xml/mapitest/index.xml
%endif
xsltproc -o openchange-mapiproxy.devhelp --stringparam "booktitle" "MAPIProxy project (mapiproxy)" --stringparam "bookpart" "mapiproxy" %{SOURCE1} apidocs/xml/mapiproxy/index.xml
xsltproc -o openchange-libmapi++.devhelp --stringparam "booktitle" "C++ bindings for libmapi (libmapi++)" --stringparam "bookpart" "libmapi++" %{SOURCE1} apidocs/xml/libmapi++/index.xml
%install
rm -rf $RPM_BUILD_ROOT
%make_install
# This makes the right links, as rpmlint requires that the
# ldconfig-created links be recorded in the RPM.
/sbin/ldconfig -N -n $RPM_BUILD_ROOT/%{_libdir}
mkdir $RPM_BUILD_ROOT%{_mandir}
cp -r doc/man/man1 $RPM_BUILD_ROOT%{_mandir}
# Skip man3 for now, it doesn't work anyway
# cp -r apidocs/man/man3 $RPM_BUILD_ROOT%{_mandir}
rm -r apidocs/man/man3
#%if ! %{build_python_package}
#rm -r $RPM_BUILD_ROOT%{python3_sitearch}/openchange
#%endif
%if ! %{build_server_package}
# XXX OC_RULE_ADD patch disables build of this, no need to delete it.
#rm $RPM_BUILD_ROOT%{_libdir}/libmapiserver.so.*
#rm -r $RPM_BUILD_ROOT%{_libdir}/samba/modules/*
#rm $RPM_BUILD_ROOT%{_libdir}/samba/dcerpc_server/dcesrv_mapiproxy.so
rm $RPM_BUILD_ROOT%{_libdir}/nagios/check_exchange
rm -r $RPM_BUILD_ROOT%{_datadir}/setup/*
%endif
#%if !%{build_python_package} && !%{build_server_package}
#rm $RPM_BUILD_ROOT%{_bindir}/check_fasttransfer
#%endif
mkdir -p $RPM_BUILD_ROOT%{_datadir}/devhelp/books/openchange-libmapi
cp openchange-libmapi.devhelp $RPM_BUILD_ROOT%{_datadir}/devhelp/books/openchange-libmapi
cp -r apidocs/html/libmapi/* $RPM_BUILD_ROOT%{_datadir}/devhelp/books/openchange-libmapi
mkdir -p $RPM_BUILD_ROOT%{_datadir}/devhelp/books/openchange-libmapiadmin
cp openchange-libmapiadmin.devhelp $RPM_BUILD_ROOT%{_datadir}/devhelp/books/openchange-libmapiadmin
cp -r apidocs/html/libmapiadmin/* $RPM_BUILD_ROOT%{_datadir}/devhelp/books/openchange-libmapiadmin
mkdir -p $RPM_BUILD_ROOT%{_datadir}/devhelp/books/openchange-libocpf
cp openchange-libocpf.devhelp $RPM_BUILD_ROOT%{_datadir}/devhelp/books/openchange-libocpf
cp -r apidocs/html/libocpf/* $RPM_BUILD_ROOT%{_datadir}/devhelp/books/openchange-libocpf
%if %{built_mapitest}
mkdir -p $RPM_BUILD_ROOT%{_datadir}/devhelp/books/openchange-mapitest
cp openchange-mapitest.devhelp $RPM_BUILD_ROOT%{_datadir}/devhelp/books/openchange-mapitest
cp -r apidocs/html/mapitest/* $RPM_BUILD_ROOT%{_datadir}/devhelp/books/openchange-mapitest
%endif
mkdir -p $RPM_BUILD_ROOT%{_datadir}/devhelp/books/openchange-mapiproxy
cp openchange-mapiproxy.devhelp $RPM_BUILD_ROOT%{_datadir}/devhelp/books/openchange-mapiproxy
cp -r apidocs/html/mapiproxy/* $RPM_BUILD_ROOT%{_datadir}/devhelp/books/openchange-mapiproxy
mkdir -p $RPM_BUILD_ROOT%{_datadir}/devhelp/books/openchange-libmapi++
cp openchange-libmapi++.devhelp $RPM_BUILD_ROOT%{_datadir}/devhelp/books/openchange-libmapi++
cp -r apidocs/html/libmapi++/* $RPM_BUILD_ROOT%{_datadir}/devhelp/books/openchange-libmapi++
%ldconfig_scriptlets
%if %{build_server_package}
%ldconfig_scriptlets server
%endif
%files
%doc COPYING IDL_LICENSE.txt VERSION
%{_libdir}/libmapi-openchange.so.0
%{_libdir}/libmapi-openchange.so.2.3
%{_libdir}/libmapiadmin.so.0
%{_libdir}/libmapiadmin.so.2.3
%{_libdir}/libmapipp.so.0
%{_libdir}/libmapipp.so.2.3
%if %{build_server_package}
%{_libdir}/libmapiproxy.so.0
%{_libdir}/libmapiproxy.so.2.3
%{_libdir}/libmapistore.so.0
%{_libdir}/libmapistore.so.2.3
%endif
%{_libdir}/libocpf.so.0
%{_libdir}/libocpf.so.2.3
%files devel
%{_includedir}/*
%{_libdir}/*.so
%{_libdir}/pkgconfig/*
%files devel-docs
#%%{_mandir}/man3/*
%doc %{_datadir}/devhelp/books/*
%doc apidocs/html/libmapi
%doc apidocs/html/libocpf
%doc apidocs/html/overview
%doc apidocs/html/index.html
%files client
%{_bindir}/*
%{_mandir}/man1/*
%if %{built_mapitest}
%{_datadir}/mapitest/*
%endif
%if %{build_python_package}
%files python
%{python3_sitearch}/openchange
%endif
%if %{build_server_package}
%files server
%{_libdir}/libmapiserver.so.*
%{_libdir}/samba/dcerpc_server/dcesrv_mapiproxy.so
%{_libdir}/samba/modules/*
%if !0%{?rhel}
%{_libdir}/nagios/check_exchange
%endif
%{_datadir}/setup/*
%endif
%changelog
* Wed Dec 01 2021 Milan Crha <mcrha@redhat.com> - 2.3-38
- Related: #2013578 (Add patch to build against samba 4.15)
- Avoid build time dependencies related to server, when it's not built
* Mon Aug 09 2021 Mohan Boddu <mboddu@redhat.com> - 2.3-37
- Rebuilt for IMA sigs, glibc 2.34, aarch64 flags
Related: rhbz#1991688
* Fri Apr 16 2021 Mohan Boddu <mboddu@redhat.com> - 2.3-36
- Rebuilt for RHEL 9 BETA on Apr 15th 2021. Related: rhbz#1947937
* Tue Jan 26 2021 Fedora Release Engineering <releng@fedoraproject.org> - 2.3-35
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
* Mon Nov 30 2020 Milan Crha <mcrha@redhat.com> - 2.3-34
- Add patch to build against samba 4.13
* Tue Jul 28 2020 Fedora Release Engineering <releng@fedoraproject.org> - 2.3-33
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
* Tue Jul 14 2020 Tom Stellard <tstellar@redhat.com> - 2.3-32
- Use make macros
- https://fedoraproject.org/wiki/Changes/UseMakeBuildInstallMacro
* Wed Jan 29 2020 Fedora Release Engineering <releng@fedoraproject.org> - 2.3-31
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
* Mon Jan 27 2020 Milan Crha <mcrha@redhat.com> - 2.3-30
- Add patch to build against samba 4.12
* Fri Aug 30 2019 Milan Crha <mcrha@redhat.com> - 2.3-29
- Rebuild for newer libldb
- Add patch to build against samba 4.11
* Thu Jul 25 2019 Fedora Release Engineering <releng@fedoraproject.org> - 2.3-28
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
* Thu Feb 14 2019 Milan Crha <mcrha@redhat.com> - 2.3-27
- Add patch to build against samba 4.10 semi-public macro changes
* Fri Feb 01 2019 Fedora Release Engineering <releng@fedoraproject.org> - 2.3-26
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
* Thu Jul 19 2018 Milan Crha <mcrha@redhat.com> - 2.3-25
- Address some of the Coverity Scan and clang issues
* Fri Jul 13 2018 Fedora Release Engineering <releng@fedoraproject.org> - 2.3-24
- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
* Tue Apr 17 2018 Milan Crha <mcrha@redhat.com> - 2.3-23
- Switch to python3 (partly) and disable python3 build dependency by default
* Mon Mar 19 2018 Iryna Shcherbina <ishcherb@redhat.com> - 2.3-22
- Update Python 2 dependency declarations to new packaging standards
(See https://fedoraproject.org/wiki/FinalizingFedoraSwitchtoPython3)
* Wed Mar 07 2018 Milan Crha <mcrha@redhat.com> - 2.3-21
- Do not copy content of libmapi++/ into includedir (RH bug #1548719)
* Mon Feb 19 2018 Milan Crha <mcrha@redhat.com> - 2.3-20
- Remove unneeded build dependency on mariadb-connector-c-devel
* Thu Feb 08 2018 Fedora Release Engineering <releng@fedoraproject.org> - 2.3-19
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
* Wed Nov 08 2017 Milan Crha <mcrha@redhat.com> - 2.3-18
- Rebuild for newer libical
* Fri Sep 22 2017 Milan Crha <mcrha@redhat.com> - 2.3-17
- Use mariadb-connector-c-devel instead of community-mysql-devel (RH bug #1494307)
* Thu Aug 03 2017 Fedora Release Engineering <releng@fedoraproject.org> - 2.3-16
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild
* Thu Jul 27 2017 Fedora Release Engineering <releng@fedoraproject.org> - 2.3-15
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild
* Sat Feb 11 2017 Fedora Release Engineering <releng@fedoraproject.org> - 2.3-14
- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild
* Fri Apr 15 2016 David Tardon <dtardon@redhat.com> - 2.3-13
- rebuild for ICU 57.1
* Thu Apr 07 2016 Milan Crha <mcrha@redhat.com> - 2.3-12
- Add patch to fix connection string for samba
- Add patch to be able to build with flex 2.6.0
* Tue Feb 09 2016 Milan Crha <mcrha@redhat.com> - 2.3-11
- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild
- Add patch to build against new samba
* Mon Jan 18 2016 Milan Crha <mcrha@redhat.com> - 2.3-10
- Rebuild against newer libical
* Thu Dec 03 2015 Milan Crha <mcrha@redhat.com> - 2.3-9
- Do not depend on libsamba-debug private library
* Mon Oct 26 2015 Milan Crha <mcrha@redhat.com> - 2.3-8
- Rebuild against newer samba
* Mon Sep 14 2015 Milan Crha <mcrha@redhat.com> - 2.3-7
- Rebuild against newer samba
* Mon Sep 07 2015 Milan Crha <mcrha@redhat.com> - 2.3-6
- Rebuild against newer samba
* Tue Sep 01 2015 Milan Crha <mcrha@redhat.com> - 2.3-5
- Rebuild against newer samba
* Mon Jul 20 2015 Milan Crha <mcrha@redhat.com> - 2.3-4
- Rebuild against newer samba
* Wed Jun 17 2015 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.3-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild
* Fri Jun 05 2015 Milan Crha <mcrha@redhat.com> - 2.3-2
- Rebuild against newer samba
* Mon May 18 2015 Milan Crha <mcrha@redhat.com> - 2.3-1
- Update to 2.3
* Thu Apr 23 2015 Milan Crha <mcrha@redhat.com> - 2.2-6
- Rebuild against newer samba
* Tue Apr 07 2015 Milan Crha <mcrha@redhat.com> - 2.2-5
- Rebuild against newer samba with a patch for samba 4.2.0 update
* Tue Jan 27 2015 Dan Horák <dan[at]danny.cz> - 2.2-4
- Rebuild again for newer samba to workaround samba-4.2.0-0.1.rc3.fc22 < samba-4.2.0-0.2.rc2.fc22 situation in secondary koji
* Tue Jan 06 2015 Milan Crha <mcrha@redhat.com> - 2.2-3
- Rebuild against newer samba
* Mon Nov 24 2014 Milan Crha <mcrha@redhat.com> - 2.2-2
- Add a patch to be able to build against samba 4.2.0-rc2
* Thu Aug 21 2014 Matthew Barnes <mbarnes@redhat.com> - 2.2-1
- Update to OpenChange 2.2
* Sun Aug 17 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.1-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild
* Sat Jun 07 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.1-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild
* Mon Apr 28 2014 Milan Crha <mcrha@redhat.com> - 2.1-1
- Update to OpenChange 2.1
* Thu Nov 21 2013 Milan Crha <mcrha@redhat.com> - 2.0-6
- Rebuild for new libical (RH bug #1023020)
* Mon Nov 11 2013 Milan Crha <mcrha@redhat.com> - 2.0-5
- Add patch for RH bug #1028698 (Symbol collision with NSS)
* Thu Sep 19 2013 Milan Crha <mcrha@redhat.com> - 2.0-4
- Add patch to fix multilib issue in libmapi/version.h
- Move devel-docs subpackage to noarch
* Sat Aug 03 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.0-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild
* Fri May 24 2013 Rex Dieter <rdieter@fedoraproject.org> 2.0-2
- rebuild (libical)
* Thu Feb 14 2013 Milan Crha <mcrha@redhat.com> - 2.0-1
- Update to OpenChange 2.0
* Thu Feb 14 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.0-13
- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild
* Fri Oct 26 2012 Milan Crha <mcrha@redhat.com> - 1.0-12
- Add patch for Gnome bug #682449 (WriteStream fails)
* Mon Aug 06 2012 Milan Crha <mcrha@redhat.com> - 1.0-11
- Add patch for Red Hat bug #845618 (incorrect symbol resolution)
* Thu Jul 26 2012 Milan Crha <mcrha@redhat.com> - 1.0-10
- Remove check_fasttransfer from openchange-client, if not building server package
* Fri Jul 20 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.0-9
- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild
* Tue Jul 10 2012 Milan Crha <mcrha@redhat.com> - 1.0-8
- Add patch for OpenChange bug #397 (crash under MAPIUninitialize)
- Disable build of python and mapiproxy
* Fri Jun 01 2012 Milan Crha <mcrha@redhat.com> - 1.0-7
- Add patch to use system's popt.h
- Add patch to compile only certain parts of the package
- Disable openchange-server for rawhide too (due to samba4 changes)
* Thu May 17 2012 Matthew Barnes <mbarnes@redhat.com> -1.0-6
- Do not build openchange-server in RHEL.
(And make disabling the subpackage actually work.)
* Wed May 02 2012 Milan Crha <mcrha@redhat.com> - 1.0-5
- Do not include nagios/check_exchange in RHEL
* Tue Apr 24 2012 Milan Crha <mcrha@redhat.com> - 1.0-4
- Bump samba4 dependency
* Thu Apr 19 2012 Matthew Barnes <mbarnes@redhat.com> - 1.0-3
- Add BR: libical-devel (RH bug #803640).
* Wed Apr 18 2012 Milan Crha <mcrha@redhat.com> - 1.0-2
- Bump samba4 dependency
* Tue Apr 03 2012 Milan Crha <mcrha@redhat.com> - 1.0-1
- Update to 1.0
- Enable packages for server part and python bindings
- Skip man3 pages, which are generated incomplete (use devhelp instead)
* Fri Jan 13 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.11-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild
* Tue Aug 30 2011 Milan Crha <mcrha@redhat.com> - 0.11-3
- Fix package version number
* Mon Aug 29 2011 Stephen Gallagher <sgallagh@redhat.com> - 0.11-2.1
- Rebuild against fixed libtevent version
* Mon Aug 29 2011 Milan Crha <mcrha@redhat.com> - 0.11-2
- Sync version and changes with Fedora 16 package
* Thu Aug 11 2011 Milan Crha <mcrha@redhat.com> - 0.11-1
- Update to OpenChange 0.11 Transporter upstream release
- Remove unnecessary build modification patches.
- Add patch to not use mapi_ctx->session as a TALLOC_CTX (OpenChange issue #366)
- Add patch to read/write PidNameKeywords (OpenChange issue #367)
* Wed Apr 6 2011 Matthew Barnes <mbarnes@redhat.com> - 0.10.9-4
- OpenChange relies on a private Samba 4 library (libsamba-util-common).
Add extra linker flags to libmapi.pc to compensate.
* Wed Apr 6 2011 Matthew Barnes <mbarnes@redhat.com> - 0.10.9-3
- Move libmapiproxy.so, libmapistore.so and mapistore backend libraries
to the main package so the client subpackage is installable.
* Fri Mar 25 2011 Simo Sorce <ssorce@redhat.com> - 0.10.9-2
- New snapshot that avoid bison issues.
- Also add patch that fix build (previously erroneously preapplied in the
snapshot tarball)
- Fix timestamps in tarball
- Fix specfile's install and files section to cope with newer version changes
* Fri Mar 25 2011 Simo Sorce <ssorce@redhat.com> - 0.10.9-1
- Upgrade to a 0.11 development snapshot.
- Required by the new samba4 packages.
* Mon Feb 21 2011 Milan Crha <mcrha@redhat.com> - 0.9-14
- Rebuild against newer libldb
* Tue Feb 08 2011 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.9-13
- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild
* Wed Feb 02 2011 Milan Crha <mcrha@redhat.com> - 0.9-12
- Add patch for message sending, found by Gianluca Cecchi (RH bug #674034)
* Thu Dec 16 2010 Matthew Barnes <mbarnes@redhat.com> - 0.9-11
- Re-fix man-pages file conflict (RH bug #654729).
* Thu Dec 02 2010 Milan Crha <mcrha@redhat.com> - 0.9-10
- Add patch for talloc abort in FindGoodServer, found by Jeff Raber (RH bug #602661)
* Wed Sep 29 2010 jkeating - 0.9-9
- Rebuilt for gcc bug 634757
* Mon Sep 13 2010 Matthew Barnes <mbarnes@redhat.com> - 0.9-8
- Backport unicode and properties support (RH bug #605364).
* Wed Jul 21 2010 David Malcolm <dmalcolm@redhat.com> - 0.9-7
- Rebuilt for https://fedoraproject.org/wiki/Features/Python_2.7/MassRebuild
* Thu Jun 24 2010 Matthew Barnes <mbarnes@redhat.com> - 0.9-6
- Disable python and server subpackages until they're needed.
* Wed Jun 23 2010 Matthew Barnes <mbarnes@redhat.com> - 0.9-5
- More spec file cleanups.
* Fri Jun 18 2010 Matthew Barnes <mbarnes@redhat.com> - 0.9-4
- Spec file cleanups.
* Mon May 24 2010 Matthew Barnes <mbarnes@redhat.com> - 0.9-3
- Avoid a file conflict with man-pages package.
* Sat Jan 09 2010 Matthew Barnes <mbarnes@redhat.com> - 0.9-2
- Add a devel-docs subpackage (RH bug #552984).
* Sat Dec 26 2009 Matthew Barnes <mbarnes@redhat.com> - 0.9-1
- Update to 0.9 (COCHRANE)
- Bump samba4 requirement to alpha10.
* Wed Sep 23 2009 Matthew Barnes <mbarnes@redhat.com> - 0.8.2-5
- Rebuild.
* Sat Jul 25 2009 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.8.2-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild
* Mon Jun 29 2009 Matthew Barnes <mbarnes@redhat.com> - 0.8.2-3
- Rename libmapi so as not to conflict with Zarafa (RH bug #505783).
* Thu May 07 2009 Matthew Barnes <mbarnes@redhat.com> - 0.8.2-2
- Do not own the pkgconfig directory (RH bug #499655).
* Tue Mar 31 2009 Matthew Barnes <mbarnes@redhat.com> - 0.8.2-1
- Update to 0.8.2
- Add a server subpackage.
- Add BuildRequires: sqlite-devel (for server)
* Sun Mar 08 2009 Matthew Barnes <mbarnes@redhat.com> - 0.8-6
- Fix build breakage.
- Explicitly require libldb-devel.
- Bump samba4 requirement to alpha7.
* Wed Feb 25 2009 Matthew Barnes <mbarnes@redhat.com> - 0.8-5
- Rebuild with correct tarball.
* Wed Feb 25 2009 Matthew Barnes <mbarnes@redhat.com> - 0.8-4
- Formal package review cleanups.
* Wed Feb 25 2009 Matthew Barnes <mbarnes@redhat.com> - 0.8-3
- Add documentation files.
* Thu Feb 19 2009 Matthew Barnes <mbarnes@redhat.com> - 0.8-2
- Add some missing build requirements.
* Tue Jan 20 2009 Matthew Barnes <mbarnes@redhat.com> - 0.8-1
- Update to 0.8 (ROMULUS)
* Sat Jan 17 2009 Matthew Barnes <mbarnes@redhat.com> - 0.8-0.7.svn949
- Add missing BuildRequires: zlib-devel
* Sat Dec 27 2008 Matthew Barnes <mbarnes@redhat.com> - 0.8-0.6.svn949
- Update to SVN revision 949.
* Mon Dec 15 2008 Matthew Barnes <mbarnes@redhat.com> - 0.8-0.5.svn909
- Package review feedback (RH bug #453395).
* Fri Dec 12 2008 Matthew Barnes <mbarnes@redhat.com> - 0.8-0.4.svn909
- Update to SVN revision 909.
- Bump the samba4 requirement.
* Fri Aug 29 2008 Andrew Bartlett <abartlet@samba.org> - 0:0.8-0.3.svn960.fc9
- Bump version
- Don't make the Samba4 version distro-dependent
* Sat Jul 26 2008 Brad Hards <bradh@frogmouth.net> - 0:0.8-0.2.svnr674.fc10
- Bump version
- Install documentation / man pages correctly
- Remove epoch (per https://bugzilla.redhat.com/show_bug.cgi?id=453395)
- Remove %%post and %%postun (per https://bugzilla.redhat.com/show_bug.cgi?id=453395)
- Remove talloc dependency (per https://bugzilla.redhat.com/show_bug.cgi?id=453395)
- Take out libmapiproxy, because we aren't up to server side yet.
* Sat Jul 12 2008 Andrew Bartlett <abartlet@samba.org> - 0:0.7-0.2.svnr627.fc9
- Add popt-devel BR
* Mon Jun 30 2008 Andrew Bartlett <abartlet@samba.org> - 0:0.7-0.1.svnr627.fc9
- Initial package of OpenChange for Fedora