summaryrefslogtreecommitdiffstats
path: root/external/libcmis
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--external/libcmis/0001-rename-class-GetObject-to-avoid-name-clash-on-Window.patch69
-rw-r--r--external/libcmis/Makefile7
-rw-r--r--external/libcmis/Module_libcmis.mk17
-rw-r--r--external/libcmis/README8
-rw-r--r--external/libcmis/StaticLibrary_libcmis.mk104
-rw-r--r--external/libcmis/UnpackedTarball_libcmis.mk21
-rw-r--r--external/libcmis/inc/pch/precompiled_libcmis.cxx12
-rw-r--r--external/libcmis/inc/pch/precompiled_libcmis.hxx70
-rw-r--r--external/libcmis/libcmis-libxml2_compatibility.patch14
9 files changed, 322 insertions, 0 deletions
diff --git a/external/libcmis/0001-rename-class-GetObject-to-avoid-name-clash-on-Window.patch b/external/libcmis/0001-rename-class-GetObject-to-avoid-name-clash-on-Window.patch
new file mode 100644
index 000000000..f82c82f81
--- /dev/null
+++ b/external/libcmis/0001-rename-class-GetObject-to-avoid-name-clash-on-Window.patch
@@ -0,0 +1,69 @@
+From 219e6d6586c8280dfd9c4851cee0d14d68b6ad65 Mon Sep 17 00:00:00 2001
+From: David Tardon <dtardon@redhat.com>
+Date: Fri, 28 Dec 2018 15:26:28 +0100
+Subject: [PATCH] rename class GetObject to avoid name clash on Windows
+
+---
+ src/libcmis/ws-objectservice.cxx | 2 +-
+ src/libcmis/ws-requests.cxx | 2 +-
+ src/libcmis/ws-requests.hxx | 7 +++----
+ 3 files changed, 5 insertions(+), 6 deletions(-)
+
+diff --git a/src/libcmis/ws-objectservice.cxx b/src/libcmis/ws-objectservice.cxx
+index 9e40085..d57f3cc 100644
+--- a/src/libcmis/ws-objectservice.cxx
++++ b/src/libcmis/ws-objectservice.cxx
+@@ -71,7 +71,7 @@ libcmis::ObjectPtr ObjectService::getObject( string repoId, string id )
+ {
+ libcmis::ObjectPtr object;
+
+- class GetObject request( repoId, id );
++ GetObjectRequest request( repoId, id );
+ vector< SoapResponsePtr > responses = m_session->soapRequest( m_url, request );
+ if ( responses.size( ) == 1 )
+ {
+diff --git a/src/libcmis/ws-requests.cxx b/src/libcmis/ws-requests.cxx
+index f8bc245..408d053 100644
+--- a/src/libcmis/ws-requests.cxx
++++ b/src/libcmis/ws-requests.cxx
+@@ -269,7 +269,7 @@ SoapResponsePtr GetTypeChildrenResponse::create( xmlNodePtr node, RelatedMultipa
+ return SoapResponsePtr( response );
+ }
+
+-void GetObject::toXml( xmlTextWriterPtr writer )
++void GetObjectRequest::toXml( xmlTextWriterPtr writer )
+ {
+ xmlTextWriterStartElement( writer, BAD_CAST( "cmism:getObject" ) );
+ xmlTextWriterWriteAttribute( writer, BAD_CAST( "xmlns:cmis" ), BAD_CAST( NS_CMIS_URL ) );
+diff --git a/src/libcmis/ws-requests.hxx b/src/libcmis/ws-requests.hxx
+index 2c4ae92..534d9a4 100644
+--- a/src/libcmis/ws-requests.hxx
++++ b/src/libcmis/ws-requests.hxx
+@@ -203,21 +203,20 @@ class GetTypeChildrenResponse : public SoapResponse
+ std::vector< libcmis::ObjectTypePtr > getChildren( ) { return m_children; }
+ };
+
+-#undef GetObject
+-class GetObject : public SoapRequest
++class GetObjectRequest : public SoapRequest
+ {
+ private:
+ std::string m_repositoryId;
+ std::string m_id;
+
+ public:
+- GetObject( std::string repoId, std::string id ) :
++ GetObjectRequest( std::string repoId, std::string id ) :
+ m_repositoryId( repoId ),
+ m_id( id )
+ {
+ }
+
+- ~GetObject( ) { }
++ ~GetObjectRequest( ) { }
+
+ void toXml( xmlTextWriterPtr writer );
+ };
+--
+2.19.2
+
diff --git a/external/libcmis/Makefile b/external/libcmis/Makefile
new file mode 100644
index 000000000..e4968cf85
--- /dev/null
+++ b/external/libcmis/Makefile
@@ -0,0 +1,7 @@
+# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*-
+
+module_directory:=$(dir $(realpath $(firstword $(MAKEFILE_LIST))))
+
+include $(module_directory)/../../solenv/gbuild/partial_build.mk
+
+# vim: set noet sw=4 ts=4:
diff --git a/external/libcmis/Module_libcmis.mk b/external/libcmis/Module_libcmis.mk
new file mode 100644
index 000000000..78ab61c51
--- /dev/null
+++ b/external/libcmis/Module_libcmis.mk
@@ -0,0 +1,17 @@
+# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*-
+#
+# This file is part of the LibreOffice project.
+#
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+#
+
+$(eval $(call gb_Module_Module,libcmis))
+
+$(eval $(call gb_Module_add_targets,libcmis,\
+ StaticLibrary_libcmis \
+ UnpackedTarball_libcmis \
+))
+
+# vim: set noet sw=4 ts=4:
diff --git a/external/libcmis/README b/external/libcmis/README
new file mode 100644
index 000000000..8065e7c76
--- /dev/null
+++ b/external/libcmis/README
@@ -0,0 +1,8 @@
+A C++ client library for the CMIS interface.
+
+From:
+[https://github.com/tdf/libcmis]
+
+Wikipedia (CMIS):
+Content Management Interoperability Services (CMIS) is an open standard that defines an
+abstraction layer for controlling diverse document management systems and repositories using web protocols.
diff --git a/external/libcmis/StaticLibrary_libcmis.mk b/external/libcmis/StaticLibrary_libcmis.mk
new file mode 100644
index 000000000..ebcd16607
--- /dev/null
+++ b/external/libcmis/StaticLibrary_libcmis.mk
@@ -0,0 +1,104 @@
+# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*-
+#
+# This file is part of the LibreOffice project.
+#
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+#
+
+$(eval $(call gb_StaticLibrary_StaticLibrary,libcmis))
+
+$(eval $(call gb_StaticLibrary_set_warnings_disabled,libcmis))
+
+$(eval $(call gb_StaticLibrary_set_precompiled_header,libcmis,external/libcmis/inc/pch/precompiled_libcmis))
+
+ifeq ($(COM_IS_CLANG),TRUE)
+# Avoid narrowing conversion error (even though the option is technically a warning)
+# caused by boost
+$(eval $(call gb_StaticLibrary_add_cxxflags,libcmis,\
+ -Wno-error=c++11-narrowing \
+))
+endif
+
+$(eval $(call gb_StaticLibrary_add_defs,libcmis, \
+ -DBOOST_ALL_NO_LIB \
+))
+
+$(eval $(call gb_StaticLibrary_set_include,libcmis, \
+ -I$(call gb_UnpackedTarball_get_dir,libcmis/inc) \
+ -I$(call gb_UnpackedTarball_get_dir,libcmis/src/libcmis) \
+ $$(INCLUDE) \
+))
+
+$(eval $(call gb_StaticLibrary_use_unpacked,libcmis,libcmis))
+
+$(eval $(call gb_StaticLibrary_use_externals,libcmis,\
+ boost_headers \
+ curl \
+ libxml2 \
+))
+
+$(eval $(call gb_StaticLibrary_add_generated_exception_objects,libcmis,\
+ UnpackedTarball/libcmis/src/libcmis/allowable-actions \
+ UnpackedTarball/libcmis/src/libcmis/atom-document \
+ UnpackedTarball/libcmis/src/libcmis/atom-folder \
+ UnpackedTarball/libcmis/src/libcmis/atom-object-type \
+ UnpackedTarball/libcmis/src/libcmis/atom-object \
+ UnpackedTarball/libcmis/src/libcmis/atom-session \
+ UnpackedTarball/libcmis/src/libcmis/atom-workspace \
+ UnpackedTarball/libcmis/src/libcmis/base-session \
+ UnpackedTarball/libcmis/src/libcmis/document \
+ UnpackedTarball/libcmis/src/libcmis/folder \
+ UnpackedTarball/libcmis/src/libcmis/gdrive-document \
+ UnpackedTarball/libcmis/src/libcmis/gdrive-folder \
+ UnpackedTarball/libcmis/src/libcmis/gdrive-object \
+ UnpackedTarball/libcmis/src/libcmis/gdrive-object-type \
+ UnpackedTarball/libcmis/src/libcmis/gdrive-property \
+ UnpackedTarball/libcmis/src/libcmis/gdrive-repository \
+ UnpackedTarball/libcmis/src/libcmis/gdrive-session \
+ UnpackedTarball/libcmis/src/libcmis/gdrive-utils \
+ UnpackedTarball/libcmis/src/libcmis/http-session \
+ UnpackedTarball/libcmis/src/libcmis/json-utils \
+ UnpackedTarball/libcmis/src/libcmis/oauth2-data \
+ UnpackedTarball/libcmis/src/libcmis/oauth2-handler \
+ UnpackedTarball/libcmis/src/libcmis/oauth2-providers \
+ UnpackedTarball/libcmis/src/libcmis/object \
+ UnpackedTarball/libcmis/src/libcmis/object-type \
+ UnpackedTarball/libcmis/src/libcmis/onedrive-document \
+ UnpackedTarball/libcmis/src/libcmis/onedrive-folder \
+ UnpackedTarball/libcmis/src/libcmis/onedrive-object \
+ UnpackedTarball/libcmis/src/libcmis/onedrive-object-type \
+ UnpackedTarball/libcmis/src/libcmis/onedrive-property \
+ UnpackedTarball/libcmis/src/libcmis/onedrive-repository \
+ UnpackedTarball/libcmis/src/libcmis/onedrive-session \
+ UnpackedTarball/libcmis/src/libcmis/onedrive-utils \
+ UnpackedTarball/libcmis/src/libcmis/property \
+ UnpackedTarball/libcmis/src/libcmis/property-type \
+ UnpackedTarball/libcmis/src/libcmis/rendition \
+ UnpackedTarball/libcmis/src/libcmis/repository \
+ UnpackedTarball/libcmis/src/libcmis/session-factory \
+ UnpackedTarball/libcmis/src/libcmis/sharepoint-document \
+ UnpackedTarball/libcmis/src/libcmis/sharepoint-folder \
+ UnpackedTarball/libcmis/src/libcmis/sharepoint-object \
+ UnpackedTarball/libcmis/src/libcmis/sharepoint-object-type \
+ UnpackedTarball/libcmis/src/libcmis/sharepoint-property \
+ UnpackedTarball/libcmis/src/libcmis/sharepoint-repository \
+ UnpackedTarball/libcmis/src/libcmis/sharepoint-session \
+ UnpackedTarball/libcmis/src/libcmis/sharepoint-utils \
+ UnpackedTarball/libcmis/src/libcmis/ws-document \
+ UnpackedTarball/libcmis/src/libcmis/ws-folder \
+ UnpackedTarball/libcmis/src/libcmis/ws-navigationservice \
+ UnpackedTarball/libcmis/src/libcmis/ws-object \
+ UnpackedTarball/libcmis/src/libcmis/ws-object-type \
+ UnpackedTarball/libcmis/src/libcmis/ws-objectservice \
+ UnpackedTarball/libcmis/src/libcmis/ws-relatedmultipart \
+ UnpackedTarball/libcmis/src/libcmis/ws-repositoryservice \
+ UnpackedTarball/libcmis/src/libcmis/ws-requests \
+ UnpackedTarball/libcmis/src/libcmis/ws-session \
+ UnpackedTarball/libcmis/src/libcmis/ws-soap \
+ UnpackedTarball/libcmis/src/libcmis/ws-versioningservice \
+ UnpackedTarball/libcmis/src/libcmis/xml-utils \
+))
+
+# vim: set noet sw=4 ts=4:
diff --git a/external/libcmis/UnpackedTarball_libcmis.mk b/external/libcmis/UnpackedTarball_libcmis.mk
new file mode 100644
index 000000000..c648a7b02
--- /dev/null
+++ b/external/libcmis/UnpackedTarball_libcmis.mk
@@ -0,0 +1,21 @@
+# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*-
+#
+# This file is part of the LibreOffice project.
+#
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+#
+
+$(eval $(call gb_UnpackedTarball_UnpackedTarball,libcmis))
+
+$(eval $(call gb_UnpackedTarball_set_tarball,libcmis,$(LIBCMIS_TARBALL)))
+
+$(eval $(call gb_UnpackedTarball_set_patchlevel,libcmis,1))
+
+$(eval $(call gb_UnpackedTarball_add_patches,libcmis, \
+ external/libcmis/libcmis-libxml2_compatibility.patch \
+ external/libcmis/0001-rename-class-GetObject-to-avoid-name-clash-on-Window.patch \
+))
+
+# vim: set noet sw=4 ts=4:
diff --git a/external/libcmis/inc/pch/precompiled_libcmis.cxx b/external/libcmis/inc/pch/precompiled_libcmis.cxx
new file mode 100644
index 000000000..13668b837
--- /dev/null
+++ b/external/libcmis/inc/pch/precompiled_libcmis.cxx
@@ -0,0 +1,12 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+
+#include "precompiled_libcmis.hxx"
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/external/libcmis/inc/pch/precompiled_libcmis.hxx b/external/libcmis/inc/pch/precompiled_libcmis.hxx
new file mode 100644
index 000000000..a8a4b979f
--- /dev/null
+++ b/external/libcmis/inc/pch/precompiled_libcmis.hxx
@@ -0,0 +1,70 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+
+/*
+ This file has been autogenerated by update_pch.sh. It is possible to edit it
+ manually (such as when an include file has been moved/renamed/removed). All such
+ manual changes will be rewritten by the next run of update_pch.sh (which presumably
+ also fixes all possible problems, so it's usually better to use it).
+
+ Generated on 2019-05-18 14:55:22 using:
+ ./bin/update_pch external/libcmis libcmis --cutoff=1 --exclude:system --include:module --include:local
+
+ If after updating build fails, use the following command to locate conflicting headers:
+ ./bin/update_pch_bisect ./external/libcmis/inc/pch/precompiled_libcmis.hxx "make external/libcmis.build" --find-conflicts
+*/
+
+#if PCH_LEVEL >= 1
+#include <algorithm>
+#include <cctype>
+#include <errno.h>
+#include <locale>
+#include <memory>
+#include <sstream>
+#include <stdlib.h>
+#include <string>
+#include <boost/algorithm/string.hpp>
+#include <boost/date_time.hpp>
+#include <boost/date_time/posix_time/posix_time.hpp>
+#include <boost/property_tree/json_parser.hpp>
+#include <boost/property_tree/ptree.hpp>
+#include <boost/shared_ptr.hpp>
+#include <boost/uuid/uuid_generators.hpp>
+#include <boost/uuid/uuid_io.hpp>
+#include <boost/version.hpp>
+#endif // PCH_LEVEL >= 1
+#if PCH_LEVEL >= 2
+#endif // PCH_LEVEL >= 2
+#if PCH_LEVEL >= 3
+#include <curl/curl.h>
+#include <libcmis/allowable-actions.hxx>
+#include <libcmis/document.hxx>
+#include <libcmis/exception.hxx>
+#include <libcmis/folder.hxx>
+#include <libcmis/oauth2-data.hxx>
+#include <libcmis/object-type.hxx>
+#include <libcmis/object.hxx>
+#include <libcmis/property-type.hxx>
+#include <libcmis/property.hxx>
+#include <libcmis/rendition.hxx>
+#include <libcmis/repository.hxx>
+#include <libcmis/session-factory.hxx>
+#include <libcmis/session.hxx>
+#include <libcmis/xml-utils.hxx>
+#include <libxml/HTMLparser.h>
+#include <libxml/parser.h>
+#include <libxml/tree.h>
+#include <libxml/xmlreader.h>
+#include <libxml/xmlstring.h>
+#include <libxml/xpath.h>
+#endif // PCH_LEVEL >= 3
+#if PCH_LEVEL >= 4
+#endif // PCH_LEVEL >= 4
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/external/libcmis/libcmis-libxml2_compatibility.patch b/external/libcmis/libcmis-libxml2_compatibility.patch
new file mode 100644
index 000000000..240b85b4d
--- /dev/null
+++ b/external/libcmis/libcmis-libxml2_compatibility.patch
@@ -0,0 +1,14 @@
+# -*- Mode: Diff -*-
+--- a/src/libcmis/oauth2-providers.cxx
++++ b/src/libcmis/oauth2-providers.cxx
+@@ -34,6 +34,10 @@
+
+ using namespace std;
+
++#if LIBXML_VERSION < 20621
++#define HTML_PARSE_RECOVER 0
++#endif
++
+ namespace {
+
+ // Encodes the given data according to the application/x-www-form-urlencoded format, see