aboutsummaryrefslogtreecommitdiff
path: root/editors/libreoffice
diff options
context:
space:
mode:
Diffstat (limited to 'editors/libreoffice')
-rw-r--r--editors/libreoffice/Makefile22
-rw-r--r--editors/libreoffice/Makefile.common2
-rw-r--r--editors/libreoffice/distinfo8
-rw-r--r--editors/libreoffice/files/extra-collada2gltf264
-rw-r--r--editors/libreoffice/files/extra-configure.ac29
-rw-r--r--editors/libreoffice/files/patch-collada (renamed from editors/libreoffice/files/extra-collada)0
6 files changed, 307 insertions, 18 deletions
diff --git a/editors/libreoffice/Makefile b/editors/libreoffice/Makefile
index 804e8e8a8f37..ea2403884eb9 100644
--- a/editors/libreoffice/Makefile
+++ b/editors/libreoffice/Makefile
@@ -32,6 +32,7 @@ LIB_DEPENDS= libapr-1.so:${PORTSDIR}/devel/apr1 \
libcdr-0.1.so:${PORTSDIR}/graphics/libcdr01 \
libetonyek-0.1.so:${PORTSDIR}/graphics/libetonyek01 \
libfreehand-0.1.so:${PORTSDIR}/graphics/libfreehand \
+ libgltf-0.0.so:${PORTSDIR}/graphics/libgltf \
libwpg-0.3.so:${PORTSDIR}/graphics/libwpg03 \
libpng15.so:${PORTSDIR}/graphics/png \
libpoppler.so:${PORTSDIR}/graphics/poppler \
@@ -83,7 +84,9 @@ DISTFILES+= ${PORTNAME}-help-${LOVERSION}${EXTRACT_SUFX}
EXTRACT_ONLY:= ${DISTFILES}
-DISTFILES+= 1f24ab1d39f4a51faf22244c94a6203f-xmlsec1-1.2.14.tar.gz:src
+DISTFILES+= 1f24ab1d39f4a51faf22244c94a6203f-xmlsec1-1.2.14.tar.gz:src \
+ 4b87018f7fff1d054939d19920b751a0-collada2gltf-master-cb1d97788a.tar.bz2:src \
+ OpenCOLLADA-master-6509aa13af.tar.bz2:src
DIST_SUBDIR= libreoffice
WRKSRC= ${WRKDIR}/${PORTNAME}-${LOVERSION}
@@ -146,6 +149,7 @@ CONFIGURE_ARGS+= --disable-coinmp \
--with-system-libetonyek \
--with-system-libexttextcat \
--with-system-libfreehand \
+ --with-system-libgltf \
--with-system-liblangtag \
--with-system-libmspub \
--with-system-libmwaw \
@@ -183,7 +187,7 @@ OPTIONS_DEFINE= CUPS DEBUG GNOME GTK2 GTK3 JAVA KDE4 MMEDIA PGSQL SDK \
SYSTRAY TEST VERBOSE WEBDAV
OPTIONS_DEFAULT=CUPS GTK2
-JAVA_DESC= Add java support (XML Filters, macros)
+JAVA_DESC= Add Java support (XML filters, macros)
MMEDIA_DESC= Enable multimedia backend for impress
PGSQL_DESC= Build with PostgreSQL-SDBC driver
SDK_DESC= Build with SDK
@@ -301,19 +305,11 @@ EXTRA_PATCHES+= ${FILESDIR}/extra-libc++.i386:-p0
.if ${COMPILER_FEATURES:Mlibstdc++} && ${CHOSEN_COMPILER_TYPE} == clang
DISTFILES+= bae83fa5dc7f081768daace6e199adc3-glm-0.9.4.6-libreoffice.zip:src
-# XXX fdo#84008 (fixed in 4.3.3)
-CONFIGURE_ARGS+= --disable-collada \
- --disable-gltf
+EXTRA_PATCHES+= ${FILESDIR}/extra-collada2gltf \
+ ${FILESDIR}/extra-configure.ac
.else
-DISTFILES+= 4b87018f7fff1d054939d19920b751a0-collada2gltf-master-cb1d97788a.tar.bz2:src \
- OpenCOLLADA-master-6509aa13af.tar.bz2:src
BUILD_DEPENDS+= ${LOCALBASE}/include/glm/glm.hpp:${PORTSDIR}/math/glm
-LIB_DEPENDS+= libgltf-0.0.so:${PORTSDIR}/graphics/libgltf
-EXTRA_PATCHES+= ${FILESDIR}/extra-collada
-CONFIGURE_ARGS+= --enable-collada \
- --enable-gltf \
- --with-system-glm \
- --with-system-libgltf
+CONFIGURE_ARGS+= --with-system-glm
.endif
.if ${OSVERSION} < 900506
diff --git a/editors/libreoffice/Makefile.common b/editors/libreoffice/Makefile.common
index d24571788450..51b946ef1f3a 100644
--- a/editors/libreoffice/Makefile.common
+++ b/editors/libreoffice/Makefile.common
@@ -1,7 +1,7 @@
# $FreeBSD$
PORTNAME= libreoffice
-PORTVERSION= 4.3.2
+PORTVERSION= 4.3.3
RCVER= 2
#PRERELEASE= yes
LOVERSION= ${PORTVERSION}.${RCVER}
diff --git a/editors/libreoffice/distinfo b/editors/libreoffice/distinfo
index 6871b63d46ed..c008935ceeeb 100644
--- a/editors/libreoffice/distinfo
+++ b/editors/libreoffice/distinfo
@@ -48,7 +48,7 @@ SHA256 (libreoffice/eeb2c7ddf0d302fba4bfc6e97eac9624-libbase-1.1.6.zip) = 75c803
SIZE (libreoffice/eeb2c7ddf0d302fba4bfc6e97eac9624-libbase-1.1.6.zip) = 427800
SHA256 (libreoffice/f94d9870737518e3b597f9265f4e9803-libserializer-1.1.6.zip) = 05640a1f6805b2b2d7e2cb9c50db9a5cb084e3c52ab1a71ce015239b4a1d4343
SIZE (libreoffice/f94d9870737518e3b597f9265f4e9803-libserializer-1.1.6.zip) = 211919
-SHA256 (libreoffice/libreoffice-4.3.2.2.tar.xz) = e93d603a87d7feb04c1216ae988ea24618d88bd177ab3a3b2ad45b320749ffdc
-SIZE (libreoffice/libreoffice-4.3.2.2.tar.xz) = 152355836
-SHA256 (libreoffice/libreoffice-help-4.3.2.2.tar.xz) = 3ff58a2daa91a6a51317c73869250697c0820dd6db6474893fd563d6599bb82e
-SIZE (libreoffice/libreoffice-help-4.3.2.2.tar.xz) = 1851688
+SHA256 (libreoffice/libreoffice-4.3.3.2.tar.xz) = 60adfbae048e160fa4bef4bc67c7586e77ca72b437e0de52dc4b731e91cd7529
+SIZE (libreoffice/libreoffice-4.3.3.2.tar.xz) = 152744424
+SHA256 (libreoffice/libreoffice-help-4.3.3.2.tar.xz) = 5f1fbe1959ba67a5a9e99af50b10567b09e42541d7519760a7b21f8f6db3a46d
+SIZE (libreoffice/libreoffice-help-4.3.3.2.tar.xz) = 1855116
diff --git a/editors/libreoffice/files/extra-collada2gltf b/editors/libreoffice/files/extra-collada2gltf
new file mode 100644
index 000000000000..2be67e12a3c3
--- /dev/null
+++ b/editors/libreoffice/files/extra-collada2gltf
@@ -0,0 +1,264 @@
+--- external/collada2gltf/patches/kill_c++11_code.patch.1.orig 2014-10-23 07:32:50.000000000 -0400
++++ external/collada2gltf/patches/kill_c++11_code.patch.1 2014-10-31 02:10:16.000000000 -0400
+@@ -1531,8 +1531,8 @@
+
+
+ diff -ur collada2gltf.org/extensions/o3dgc-compression/GLTF-Open3DGC.cpp collada2gltf/extensions/o3dgc-compression/GLTF-Open3DGC.cpp
+---- collada2gltf.org/extensions/o3dgc-compression/GLTF-Open3DGC.cpp 2014-09-29 15:30:40.134494471 +0200
+-+++ collada2gltf/extensions/o3dgc-compression/GLTF-Open3DGC.cpp 2014-09-29 15:55:51.898551665 +0200
++--- collada2gltf.org/extensions/o3dgc-compression/GLTF-Open3DGC.cpp 2014-05-25 05:30:45.143840000 -0400
+++++ collada2gltf/extensions/o3dgc-compression/GLTF-Open3DGC.cpp 2014-10-31 01:56:34.000000000 -0400
+ @@ -138,7 +138,7 @@
+ return true;
+ }
+@@ -1563,7 +1563,7 @@
+
+ for (unsigned int i = 0 ; i < primitivesCount ; i++) {
+ - shared_ptr<GLTF::GLTFPrimitive> primitive = static_pointer_cast<GLTFPrimitive>(primitives[i]);
+-+ boost::shared_ptr<GLTF::GLTFPrimitive> primitive = static_pointer_cast<GLTFPrimitive>(primitives[i]);
+++ boost::shared_ptr<GLTF::GLTFPrimitive> primitive = boost::static_pointer_cast<GLTFPrimitive>(primitives[i]);
+ if (primitive->getPrimitive() != profile->getGLenumForString("TRIANGLES")) {
+ return false;
+ }
+@@ -1590,7 +1590,7 @@
+ for (unsigned int i = 0 ; i < primitivesCount ; i++) {
+ - shared_ptr<GLTF::GLTFPrimitive> primitive = static_pointer_cast<GLTFPrimitive>(primitives[i]);
+ - shared_ptr <GLTF::GLTFAccessor> uniqueIndices = primitive->getIndices();
+-+ boost::shared_ptr<GLTF::GLTFPrimitive> primitive = static_pointer_cast<GLTFPrimitive>(primitives[i]);
+++ boost::shared_ptr<GLTF::GLTFPrimitive> primitive = boost::static_pointer_cast<GLTFPrimitive>(primitives[i]);
+ + boost::shared_ptr <GLTF::GLTFAccessor> uniqueIndices = primitive->getIndices();
+ unsigned int indicesCount = (unsigned int)(uniqueIndices->getCount());
+ //FIXME: assumes triangles, but we are guarded from issues by canEncodeOpen3DGCMesh
+@@ -1601,7 +1601,7 @@
+ allTrianglesCount += trianglesCount;
+ - shared_ptr<GLTF::GLTFPrimitive> primitive = static_pointer_cast<GLTFPrimitive>(primitives[i]);
+ - shared_ptr <GLTF::GLTFAccessor> uniqueIndices = primitive->getIndices();
+-+ boost::shared_ptr<GLTF::GLTFPrimitive> primitive = static_pointer_cast<GLTFPrimitive>(primitives[i]);
+++ boost::shared_ptr<GLTF::GLTFPrimitive> primitive = boost::static_pointer_cast<GLTFPrimitive>(primitives[i]);
+ + boost::shared_ptr <GLTF::GLTFAccessor> uniqueIndices = primitive->getIndices();
+ unsigned int indicesCount = (unsigned int)(uniqueIndices->getCount());
+ unsigned int* indicesPtr = (unsigned int*)uniqueIndices->getBufferView()->getBufferDataByApplyingOffset();
+@@ -1620,7 +1620,7 @@
+ params.SetNumFloatAttributes(nFloatAttributes);
+ ifs.SetNumFloatAttributes(nFloatAttributes);
+ - shared_ptr<JSONObject> compressionObject = static_pointer_cast<JSONObject>(mesh->getExtensions()->createObjectIfNeeded("Open3DGC-compression"));
+-+ boost::shared_ptr<JSONObject> compressionObject = static_pointer_cast<JSONObject>(mesh->getExtensions()->createObjectIfNeeded("Open3DGC-compression"));
+++ boost::shared_ptr<JSONObject> compressionObject = boost::static_pointer_cast<JSONObject>(mesh->getExtensions()->createObjectIfNeeded("Open3DGC-compression"));
+
+ ifs.ComputeMinMax(O3DGC_SC3DMC_MAX_ALL_DIMS);
+ BinaryStream bstream(vertexCount * 8);
+@@ -4251,8 +4251,20 @@
+
+ #endif
+ diff -ur collada2gltf.org/helpers/geometryHelpers.cpp collada2gltf/helpers/geometryHelpers.cpp
+---- collada2gltf.org/helpers/geometryHelpers.cpp 2014-09-29 15:30:40.146494472 +0200
+-+++ collada2gltf/helpers/geometryHelpers.cpp 2014-09-29 16:01:12.134563781 +0200
++--- collada2gltf.org/helpers/geometryHelpers.cpp 2014-05-25 05:30:45.143840000 -0400
+++++ collada2gltf/helpers/geometryHelpers.cpp 2014-10-31 01:56:35.000000000 -0400
++@@ -121,9 +121,9 @@
++ }
++ };
++
++- typedef unordered_map<unsigned int* ,unsigned int /* index of existing n-uplet of indices */, RemappedMeshIndexesHash, RemappedMeshIndexesEq> RemappedMeshIndexesHashmap;
+++ typedef boost::unordered_map<unsigned int* ,unsigned int /* index of existing n-uplet of indices */, RemappedMeshIndexesHash, RemappedMeshIndexesEq> RemappedMeshIndexesHashmap;
++
++- typedef unordered_map<unsigned int ,unsigned int> IndicesMap;
+++ typedef boost::unordered_map<unsigned int ,unsigned int> IndicesMap;
++
++ //FIXME: this could be just an intermediate anonymous(no id) GLTFBuffer
++ class GLTFPrimitiveRemapInfos
+ @@ -193,8 +193,8 @@
+ for (size_t meshAttributeIndex = 0 ; meshAttributeIndex < count; meshAttributeIndex++) {
+ MeshAttributesBufferInfos *bufferInfos = &allBufferInfos[meshAttributeIndex];
+@@ -4372,7 +4384,7 @@
+ unsigned int* indicesInRemapping = (unsigned int*)malloc(sizeof(unsigned int) * allIndices->size());
+
+ - shared_ptr<GLTFPrimitive> sourcePrimitive = static_pointer_cast<GLTFPrimitive>(sourcePrimitives[i]);
+-+ boost::shared_ptr<GLTFPrimitive> sourcePrimitive = static_pointer_cast<GLTFPrimitive>(sourcePrimitives[i]);
+++ boost::shared_ptr<GLTFPrimitive> sourcePrimitive = boost::static_pointer_cast<GLTFPrimitive>(sourcePrimitives[i]);
+ VertexAttributeVector vertexAttributes = sourcePrimitive->getVertexAttributes();
+ for (unsigned int k = 0 ; k < allIndices->size() ; k++) {
+ GLTF::Semantic semantic = vertexAttributes[k]->getSemantic();
+@@ -4381,7 +4393,7 @@
+ }
+
+ - shared_ptr<GLTFPrimitive> targetPrimitive = static_pointer_cast<GLTFPrimitive>(targetPrimitives[i]);
+-+ boost::shared_ptr<GLTFPrimitive> targetPrimitive = static_pointer_cast<GLTFPrimitive>(targetPrimitives[i]);
+++ boost::shared_ptr<GLTFPrimitive> targetPrimitive = boost::static_pointer_cast<GLTFPrimitive>(targetPrimitives[i]);
+
+ - shared_ptr<GLTF::GLTFPrimitiveRemapInfos> primitiveRemapInfos = __BuildPrimitiveUniqueIndexes(targetPrimitive, *allIndices, remappedMeshIndexesMap, indicesInRemapping, startIndex, maxVertexAttributes, endIndex, profile);
+ + boost::shared_ptr<GLTF::GLTFPrimitiveRemapInfos> primitiveRemapInfos = __BuildPrimitiveUniqueIndexes(targetPrimitive, *allIndices, remappedMeshIndexesMap, indicesInRemapping, startIndex, maxVertexAttributes, endIndex, profile);
+@@ -4425,7 +4437,7 @@
+ IndicesVector *allIndices = allIndicesSharedPtr.get();
+ unsigned int* indicesInRemapping = (unsigned int*)calloc(sizeof(unsigned int) * (*allIndices).size(), 1);
+ - shared_ptr<GLTFPrimitive> sourcePrimitive = static_pointer_cast<GLTFPrimitive>(sourcePrimitives[i]);
+-+ boost::shared_ptr<GLTFPrimitive> sourcePrimitive = static_pointer_cast<GLTFPrimitive>(sourcePrimitives[i]);
+++ boost::shared_ptr<GLTFPrimitive> sourcePrimitive = boost::static_pointer_cast<GLTFPrimitive>(sourcePrimitives[i]);
+ VertexAttributeVector vertexAttributes = sourcePrimitive->getVertexAttributes();
+
+ for (unsigned int k = 0 ; k < (*allIndices).size() ; k++) {
+@@ -4434,7 +4446,7 @@
+ }
+
+ - shared_ptr<GLTFPrimitive> targetPrimitive = static_pointer_cast<GLTFPrimitive>(targetPrimitives[i]);
+-+ boost::shared_ptr<GLTFPrimitive> targetPrimitive = static_pointer_cast<GLTFPrimitive>(targetPrimitives[i]);
+++ boost::shared_ptr<GLTFPrimitive> targetPrimitive = boost::static_pointer_cast<GLTFPrimitive>(targetPrimitives[i]);
+ bool status = __RemapPrimitiveVertices(targetPrimitive,
+ (*allIndices),
+ originalMeshAttributes ,
+@@ -4511,7 +4523,7 @@
+
+ for (size_t i = 0 ; i < primitives.size() ; i++) {
+ - shared_ptr<GLTFPrimitive> primitive = static_pointer_cast<GLTFPrimitive>(primitives[i]);
+-+ boost::shared_ptr<GLTFPrimitive> primitive = static_pointer_cast<GLTFPrimitive>(primitives[i]);
+++ boost::shared_ptr<GLTFPrimitive> primitive = boost::static_pointer_cast<GLTFPrimitive>(primitives[i]);
+ }
+
+ if (!splitNeeded)
+@@ -4549,7 +4561,7 @@
+ + boost::shared_ptr <GLTFPrimitive> targetPrimitive;
+ //when we are done with a primitive we mark its nextIndice with a -1
+ - shared_ptr<GLTFPrimitive> primitive = static_pointer_cast<GLTFPrimitive> (primitives[i]);
+-+ boost::shared_ptr<GLTFPrimitive> primitive = static_pointer_cast<GLTFPrimitive> (primitives[i]);
+++ boost::shared_ptr<GLTFPrimitive> primitive = boost::static_pointer_cast<GLTFPrimitive> (primitives[i]);
+
+ - targetPrimitive = shared_ptr <GLTFPrimitive> (new GLTFPrimitive((*primitive)));
+ + targetPrimitive = boost::shared_ptr <GLTFPrimitive> (new GLTFPrimitive((*primitive)));
+@@ -4590,7 +4602,7 @@
+ - shared_ptr <GLTFPrimitive> refPrimitive = static_pointer_cast<GLTFPrimitive>(primitives[i]);
+ - shared_ptr <GLTFPrimitive> targetPrimitive = shared_ptr <GLTFPrimitive> (new GLTFPrimitive((*refPrimitive)));
+ + boost::shared_ptr <GLTFMesh> targetMesh = boost::shared_ptr <GLTFMesh> (new GLTFMesh());
+-+ boost::shared_ptr <GLTFPrimitive> refPrimitive = static_pointer_cast<GLTFPrimitive>(primitives[i]);
+++ boost::shared_ptr <GLTFPrimitive> refPrimitive = boost::static_pointer_cast<GLTFPrimitive>(primitives[i]);
+ + boost::shared_ptr <GLTFPrimitive> targetPrimitive = boost::shared_ptr <GLTFPrimitive> (new GLTFPrimitive((*refPrimitive)));
+
+ targetMesh->appendPrimitive(targetPrimitive);
+@@ -4612,7 +4624,7 @@
+
+ // Now for each mesh attribute in the mesh, create another one just for the primitive
+ - shared_ptr <GLTFPrimitive> primitive = static_pointer_cast<GLTFPrimitive>(primitives[i]);
+-+ boost::shared_ptr <GLTFPrimitive> primitive = static_pointer_cast<GLTFPrimitive>(primitives[i]);
+++ boost::shared_ptr <GLTFPrimitive> primitive = boost::static_pointer_cast<GLTFPrimitive>(primitives[i]);
+ VertexAttributeVector vertexAttributes = primitive->getVertexAttributes();
+ for (size_t j = 0 ; j < vertexAttributes.size() ; j++) {
+ Semantic semantic = vertexAttributes[j]->getSemantic();
+@@ -4786,8 +4798,8 @@
+ if (JSONValue::isEqualTo(value) == true)
+ return true;
+ diff -ur collada2gltf.org/JSON/JSONObject.cpp collada2gltf/JSON/JSONObject.cpp
+---- collada2gltf.org/JSON/JSONObject.cpp 2014-09-29 15:30:40.142494472 +0200
+-+++ collada2gltf/JSON/JSONObject.cpp 2014-09-29 15:48:14.562534363 +0200
++--- collada2gltf.org/JSON/JSONObject.cpp 2014-05-25 05:30:45.116840000 -0400
+++++ collada2gltf/JSON/JSONObject.cpp 2014-10-31 01:56:34.000000000 -0400
+ @@ -38,8 +38,8 @@
+ namespace GLTF
+ {
+@@ -4815,7 +4827,7 @@
+ array->_parseRapidJSONArray(currentValue);
+ this->setValue(key, array);
+ }
+-@@ -128,10 +128,10 @@
++@@ -128,30 +128,30 @@
+ {
+ }
+
+@@ -4828,8 +4840,9 @@
+ + outObject = boost::shared_ptr <GLTF::JSONObject> (new GLTF::JSONObject());
+ setValue(key, outObject);
+ } else {
+- outObject = static_pointer_cast <GLTF::JSONObject> (getValue(key));
+-@@ -139,10 +139,10 @@
++- outObject = static_pointer_cast <GLTF::JSONObject> (getValue(key));
+++ outObject = boost::static_pointer_cast <GLTF::JSONObject> (getValue(key));
++ }
+ return outObject;
+ }
+
+@@ -4842,8 +4855,10 @@
+ + outObject = boost::shared_ptr <GLTF::JSONArray> (new GLTF::JSONArray());
+ setValue(key, outObject);
+ } else {
+- outObject = static_pointer_cast <GLTF::JSONArray> (getValue(key));
+-@@ -151,7 +151,7 @@
++- outObject = static_pointer_cast <GLTF::JSONArray> (getValue(key));
+++ outObject = boost::static_pointer_cast <GLTF::JSONArray> (getValue(key));
++ }
++ return outObject;
+ }
+
+
+@@ -4863,16 +4878,18 @@
+
+ - shared_ptr <JSONObject> JSONObject::getObject(const std::string &key) {
+ - shared_ptr <JSONValue> value = this->_keyToJSONValue[key];
++- return static_pointer_cast <JSONObject> (value);
+ + boost::shared_ptr <JSONObject> JSONObject::getObject(const std::string &key) {
+ + boost::shared_ptr <JSONValue> value = this->_keyToJSONValue[key];
+- return static_pointer_cast <JSONObject> (value);
+++ return boost::static_pointer_cast <JSONObject> (value);
+ }
+
+ - shared_ptr <JSONArray> JSONObject::getArray(const std::string &key) {
+ - shared_ptr <JSONValue> value = this->_keyToJSONValue[key];
++- return static_pointer_cast <JSONArray> (value);
+ + boost::shared_ptr <JSONArray> JSONObject::getArray(const std::string &key) {
+ + boost::shared_ptr <JSONValue> value = this->_keyToJSONValue[key];
+- return static_pointer_cast <JSONArray> (value);
+++ return boost::static_pointer_cast <JSONArray> (value);
+ }
+
+ void JSONObject::setUnsignedInt32(const std::string &key, unsigned int value) {
+@@ -4883,7 +4900,7 @@
+ unsigned int JSONObject::getUnsignedInt32(const std::string &key) {
+ if (this->contains(key)) {
+ - shared_ptr <JSONNumber> number = static_pointer_cast <JSONNumber> (this->getValue(key));
+-+ boost::shared_ptr <JSONNumber> number = static_pointer_cast <JSONNumber> (this->getValue(key));
+++ boost::shared_ptr <JSONNumber> number = boost::static_pointer_cast <JSONNumber> (this->getValue(key));
+ return number->getUnsignedInt32();
+ }
+ return 0;
+@@ -4897,7 +4914,7 @@
+ bool JSONObject::getBool(const std::string &key) {
+ if (this->contains(key)) {
+ - shared_ptr <JSONNumber> number = static_pointer_cast <JSONNumber> (this->getValue(key));
+-+ boost::shared_ptr <JSONNumber> number = static_pointer_cast <JSONNumber> (this->getValue(key));
+++ boost::shared_ptr <JSONNumber> number = boost::static_pointer_cast <JSONNumber> (this->getValue(key));
+
+ return number->getBool();
+ }
+@@ -4912,7 +4929,7 @@
+ int JSONObject::getInt32(const std::string &key) {
+ if (this->contains(key)) {
+ - shared_ptr <JSONNumber> number = static_pointer_cast <JSONNumber> (this->getValue(key));
+-+ boost::shared_ptr <JSONNumber> number = static_pointer_cast <JSONNumber> (this->getValue(key));
+++ boost::shared_ptr <JSONNumber> number = boost::static_pointer_cast <JSONNumber> (this->getValue(key));
+ return number->getInt32();
+ }
+ return 0;
+@@ -4926,7 +4943,7 @@
+ double JSONObject::getDouble(const std::string &key) {
+ if (this->contains(key)) {
+ - shared_ptr <JSONNumber> number = static_pointer_cast <JSONNumber> (this->getValue(key));
+-+ boost::shared_ptr <JSONNumber> number = static_pointer_cast <JSONNumber> (this->getValue(key));
+++ boost::shared_ptr <JSONNumber> number = boost::static_pointer_cast <JSONNumber> (this->getValue(key));
+ return number->getDouble();
+ }
+ return 0;
+@@ -4940,7 +4957,7 @@
+ const std::string JSONObject::getString(const std::string &key) {
+ if (this->contains(key)) {
+ - shared_ptr <JSONString> str = static_pointer_cast <JSONString> (this->getValue(key));
+-+ boost::shared_ptr <JSONString> str = static_pointer_cast <JSONString> (this->getValue(key));
+++ boost::shared_ptr <JSONString> str = boost::static_pointer_cast <JSONString> (this->getValue(key));
+ return str->getString();
+ }
+ return "";
+@@ -4994,7 +5011,7 @@
+ JSONValueVectorRef allKeys = keysA->values();
+ for (size_t i = 0 ; i < allKeys.size() ; i++) {
+ - shared_ptr<JSONString> key = static_pointer_cast<JSONString>(allKeys[i]);
+-+ boost::shared_ptr<JSONString> key = static_pointer_cast<JSONString>(allKeys[i]);
+++ boost::shared_ptr<JSONString> key = boost::static_pointer_cast<JSONString>(allKeys[i]);
+
+ - shared_ptr<JSONValue> objA = this->getValue(key->getString());
+ - shared_ptr<JSONValue> objB = objectValue->getValue(key->getString());
diff --git a/editors/libreoffice/files/extra-configure.ac b/editors/libreoffice/files/extra-configure.ac
new file mode 100644
index 000000000000..58f39d630ac7
--- /dev/null
+++ b/editors/libreoffice/files/extra-configure.ac
@@ -0,0 +1,29 @@
+--- configure.ac.orig 2014-10-23 07:32:50.000000000 -0400
++++ configure.ac 2014-10-31 00:18:35.000000000 -0400
+@@ -6228,26 +6228,6 @@
+ # MSVC supports (a subset of) CXX11 without any switch
+ HAVE_CXX11=TRUE
+ CXXFLAGS_CXX11=
+-elif test "$GCC" = "yes"; then
+- CXXFLAGS_CXX11=
+- AC_MSG_CHECKING([whether $CXX supports C++11])
+- for flag in -std=gnu++11 -std=gnu++0x -std=c++11 -std=c++0x ; do
+- save_CXXFLAGS=$CXXFLAGS
+- CXXFLAGS="$CXXFLAGS $flag -Werror"
+- AC_LANG_PUSH([C++])
+- AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[void f() {}]])],[CXXFLAGS_CXX11=$flag])
+- AC_LANG_POP([C++])
+- CXXFLAGS=$save_CXXFLAGS
+- if test -n "$CXXFLAGS_CXX11"; then
+- HAVE_CXX11=TRUE
+- break
+- fi
+- done
+- if test "$HAVE_CXX11" = TRUE; then
+- AC_MSG_RESULT([yes ($CXXFLAGS_CXX11)])
+- else
+- AC_MSG_RESULT(no)
+- fi
+ fi
+
+ if test $CPP_LIBRARY = GLIBCXX -a "$HAVE_CXX11" = TRUE; then
diff --git a/editors/libreoffice/files/extra-collada b/editors/libreoffice/files/patch-collada
index b103bf7a63ab..b103bf7a63ab 100644
--- a/editors/libreoffice/files/extra-collada
+++ b/editors/libreoffice/files/patch-collada