Accepting request 1224612 from science
OBS-URL: https://build.opensuse.org/request/show/1224612 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/FreeCAD?expand=0&rev=50
This commit is contained in:
@@ -1,3 +1,9 @@
|
|||||||
|
-------------------------------------------------------------------
|
||||||
|
Sun Nov 17 00:03:18 UTC 2024 - Stefan Brüns <stefan.bruens@rwth-aachen.de>
|
||||||
|
|
||||||
|
- Add patch for Xerces 3.3 compatibility (upstream with changes):
|
||||||
|
* freecad-xerces_3_3_compat.patch
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
Wed Sep 18 09:35:46 UTC 2024 - Stefan Brüns <stefan.bruens@rwth-aachen.de>
|
Wed Sep 18 09:35:46 UTC 2024 - Stefan Brüns <stefan.bruens@rwth-aachen.de>
|
||||||
|
|
||||||
|
@@ -60,6 +60,8 @@ Patch13: https://github.com/FreeCAD/FreeCAD/commit/91457bbdee2422c7f03726
|
|||||||
Patch14: freecad-opengl.patch
|
Patch14: freecad-opengl.patch
|
||||||
# PATCH-FIX-UPSTREAM - patch from master, modified for 0.21.1 - https://github.com/FreeCAD/FreeCAD/commit/98888241920ad04fa3c2f56bdf196debf8cfb39c.patch
|
# PATCH-FIX-UPSTREAM - patch from master, modified for 0.21.1 - https://github.com/FreeCAD/FreeCAD/commit/98888241920ad04fa3c2f56bdf196debf8cfb39c.patch
|
||||||
Patch15: boost_1_86_fixes.patch
|
Patch15: boost_1_86_fixes.patch
|
||||||
|
# PATCH-FIX-UPSTREAM - patch from master, modified for 0.21.2 - https://github.com/FreeCAD/FreeCAD/commit/7a6a82e2ca858c24d97e1f34c77777b25a9e0859.patch
|
||||||
|
Patch16: freecad-xerces_3_3_compat.patch
|
||||||
|
|
||||||
# Test suite fails on 32bit and I don't want to debug that anymore
|
# Test suite fails on 32bit and I don't want to debug that anymore
|
||||||
ExcludeArch: %ix86 %arm ppc s390 s390x
|
ExcludeArch: %ix86 %arm ppc s390 s390x
|
||||||
|
335
freecad-xerces_3_3_compat.patch
Normal file
335
freecad-xerces_3_3_compat.patch
Normal file
@@ -0,0 +1,335 @@
|
|||||||
|
diff --git a/src/App/Metadata.cpp b/src/App/Metadata.cpp
|
||||||
|
index 05d58b4..bac6822 100644
|
||||||
|
--- a/src/App/Metadata.cpp
|
||||||
|
+++ b/src/App/Metadata.cpp
|
||||||
|
@@ -58,7 +58,12 @@ directly. If you did not intend to use a system-defined macro
|
||||||
|
|
||||||
|
using namespace App;
|
||||||
|
namespace fs = boost::filesystem;
|
||||||
|
+#ifndef XERCES_CPP_NAMESPACE_BEGIN
|
||||||
|
+#define XERCES_CPP_NAMESPACE_QUALIFIER
|
||||||
|
+using namespace XERCES_CPP_NAMESPACE;
|
||||||
|
+#else
|
||||||
|
XERCES_CPP_NAMESPACE_USE
|
||||||
|
+#endif
|
||||||
|
|
||||||
|
namespace MetadataInternal
|
||||||
|
{
|
||||||
|
diff --git a/src/App/MetadataPyImp.cpp b/src/App/MetadataPyImp.cpp
|
||||||
|
index d3708ad..be478d6 100644
|
||||||
|
--- a/src/App/MetadataPyImp.cpp
|
||||||
|
+++ b/src/App/MetadataPyImp.cpp
|
||||||
|
@@ -30,7 +30,12 @@
|
||||||
|
#include "MetadataPy.cpp"
|
||||||
|
|
||||||
|
using namespace Base;
|
||||||
|
+#ifndef XERCES_CPP_NAMESPACE_BEGIN
|
||||||
|
+#define XERCES_CPP_NAMESPACE_QUALIFIER
|
||||||
|
+using namespace XERCES_CPP_NAMESPACE;
|
||||||
|
+#else
|
||||||
|
XERCES_CPP_NAMESPACE_USE
|
||||||
|
+#endif
|
||||||
|
|
||||||
|
// Returns a string which represents the object e.g. when printed in Python
|
||||||
|
std::string MetadataPy::representation() const
|
||||||
|
diff --git a/src/Base/InputSource.cpp b/src/Base/InputSource.cpp
|
||||||
|
index 0c4039a..bf73486 100644
|
||||||
|
--- a/src/Base/InputSource.cpp
|
||||||
|
+++ b/src/Base/InputSource.cpp
|
||||||
|
@@ -35,8 +35,12 @@
|
||||||
|
#include "InputSource.h"
|
||||||
|
#include "XMLTools.h"
|
||||||
|
|
||||||
|
-
|
||||||
|
+#ifndef XERCES_CPP_NAMESPACE_BEGIN
|
||||||
|
+#define XERCES_CPP_NAMESPACE_QUALIFIER
|
||||||
|
+using namespace XERCES_CPP_NAMESPACE;
|
||||||
|
+#else
|
||||||
|
XERCES_CPP_NAMESPACE_USE
|
||||||
|
+#endif
|
||||||
|
|
||||||
|
using namespace Base;
|
||||||
|
using namespace std;
|
||||||
|
diff --git a/src/Base/InputSource.h b/src/Base/InputSource.h
|
||||||
|
index 321b741..9969f6b 100644
|
||||||
|
--- a/src/Base/InputSource.h
|
||||||
|
+++ b/src/Base/InputSource.h
|
||||||
|
@@ -32,10 +32,18 @@
|
||||||
|
#include <FCGlobal.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
|
-
|
||||||
|
+#ifndef XERCES_CPP_NAMESPACE_BEGIN
|
||||||
|
+#define XERCES_CPP_NAMESPACE_QUALIFIER
|
||||||
|
+using namespace XERCES_CPP_NAMESPACE;
|
||||||
|
+namespace XERCES_CPP_NAMESPACE
|
||||||
|
+{
|
||||||
|
+class BinInputStream;
|
||||||
|
+}
|
||||||
|
+#else
|
||||||
|
XERCES_CPP_NAMESPACE_BEGIN
|
||||||
|
class BinInputStream;
|
||||||
|
XERCES_CPP_NAMESPACE_END
|
||||||
|
+#endif
|
||||||
|
|
||||||
|
namespace Base
|
||||||
|
{
|
||||||
|
diff --git a/src/Base/Parameter.cpp b/src/Base/Parameter.cpp
|
||||||
|
index 93d45a9..5af8fb7 100644
|
||||||
|
--- a/src/Base/Parameter.cpp
|
||||||
|
+++ b/src/Base/Parameter.cpp
|
||||||
|
@@ -54,11 +54,12 @@
|
||||||
|
|
||||||
|
FC_LOG_LEVEL_INIT("Parameter", true, true)
|
||||||
|
|
||||||
|
-//#ifdef XERCES_HAS_CPP_NAMESPACE
|
||||||
|
-// using namespace xercesc;
|
||||||
|
-//#endif
|
||||||
|
-
|
||||||
|
+#ifndef XERCES_CPP_NAMESPACE_BEGIN
|
||||||
|
+#define XERCES_CPP_NAMESPACE_QUALIFIER
|
||||||
|
+using namespace XERCES_CPP_NAMESPACE;
|
||||||
|
+#else
|
||||||
|
XERCES_CPP_NAMESPACE_USE
|
||||||
|
+#endif
|
||||||
|
using namespace Base;
|
||||||
|
|
||||||
|
|
||||||
|
diff --git a/src/Base/Parameter.h b/src/Base/Parameter.h
|
||||||
|
index 72a2391..71f38a7 100644
|
||||||
|
--- a/src/Base/Parameter.h
|
||||||
|
+++ b/src/Base/Parameter.h
|
||||||
|
@@ -65,7 +65,18 @@ using PyObject = struct _object;
|
||||||
|
# pragma warning( disable : 4275 )
|
||||||
|
#endif
|
||||||
|
|
||||||
|
-
|
||||||
|
+#ifndef XERCES_CPP_NAMESPACE_BEGIN
|
||||||
|
+#define XERCES_CPP_NAMESPACE_QUALIFIER
|
||||||
|
+using namespace XERCES_CPP_NAMESPACE;
|
||||||
|
+namespace XERCES_CPP_NAMESPACE
|
||||||
|
+{
|
||||||
|
+class DOMNode;
|
||||||
|
+class DOMElement;
|
||||||
|
+class DOMDocument;
|
||||||
|
+class XMLFormatTarget;
|
||||||
|
+class InputSource;
|
||||||
|
+} // namespace XERCES_CPP_NAMESPACE
|
||||||
|
+#else
|
||||||
|
XERCES_CPP_NAMESPACE_BEGIN
|
||||||
|
class DOMNode;
|
||||||
|
class DOMElement;
|
||||||
|
@@ -73,6 +84,7 @@ class DOMDocument;
|
||||||
|
class XMLFormatTarget;
|
||||||
|
class InputSource;
|
||||||
|
XERCES_CPP_NAMESPACE_END
|
||||||
|
+#endif
|
||||||
|
|
||||||
|
class ParameterManager;
|
||||||
|
|
||||||
|
diff --git a/src/Base/Reader.cpp b/src/Base/Reader.cpp
|
||||||
|
index 3231d26..8d5f889 100644
|
||||||
|
--- a/src/Base/Reader.cpp
|
||||||
|
+++ b/src/Base/Reader.cpp
|
||||||
|
@@ -45,8 +45,12 @@
|
||||||
|
#include <zipios++/zipinputstream.h>
|
||||||
|
#include <boost/iostreams/filtering_stream.hpp>
|
||||||
|
|
||||||
|
-
|
||||||
|
+#ifndef XERCES_CPP_NAMESPACE_BEGIN
|
||||||
|
+#define XERCES_CPP_NAMESPACE_QUALIFIER
|
||||||
|
+using namespace XERCES_CPP_NAMESPACE;
|
||||||
|
+#else
|
||||||
|
XERCES_CPP_NAMESPACE_USE
|
||||||
|
+#endif
|
||||||
|
|
||||||
|
using namespace std;
|
||||||
|
|
||||||
|
diff --git a/src/Base/Reader.h b/src/Base/Reader.h
|
||||||
|
index aa66f53..be6943e 100644
|
||||||
|
--- a/src/Base/Reader.h
|
||||||
|
+++ b/src/Base/Reader.h
|
||||||
|
@@ -41,11 +41,20 @@
|
||||||
|
namespace zipios {
|
||||||
|
class ZipInputStream;
|
||||||
|
}
|
||||||
|
-
|
||||||
|
+#ifndef XERCES_CPP_NAMESPACE_BEGIN
|
||||||
|
+#define XERCES_CPP_NAMESPACE_QUALIFIER
|
||||||
|
+using namespace XERCES_CPP_NAMESPACE;
|
||||||
|
+namespace XERCES_CPP_NAMESPACE
|
||||||
|
+{
|
||||||
|
+class DefaultHandler;
|
||||||
|
+class SAX2XMLReader;
|
||||||
|
+} // namespace XERCES_CPP_NAMESPACE
|
||||||
|
+#else
|
||||||
|
XERCES_CPP_NAMESPACE_BEGIN
|
||||||
|
class DefaultHandler;
|
||||||
|
class SAX2XMLReader;
|
||||||
|
XERCES_CPP_NAMESPACE_END
|
||||||
|
+#endif
|
||||||
|
|
||||||
|
namespace Base
|
||||||
|
{
|
||||||
|
diff --git a/src/Base/XMLTools.cpp b/src/Base/XMLTools.cpp
|
||||||
|
index 84b5a8e..7fe8d14 100644
|
||||||
|
--- a/src/Base/XMLTools.cpp
|
||||||
|
+++ b/src/Base/XMLTools.cpp
|
||||||
|
@@ -26,15 +26,21 @@
|
||||||
|
#include "XMLTools.h"
|
||||||
|
|
||||||
|
using namespace Base;
|
||||||
|
+
|
||||||
|
+#ifndef XERCES_CPP_NAMESPACE_BEGIN
|
||||||
|
+#define XERCES_CPP_NAMESPACE_QUALIFIER
|
||||||
|
+using namespace XERCES_CPP_NAMESPACE;
|
||||||
|
+#else
|
||||||
|
+XERCES_CPP_NAMESPACE_USE
|
||||||
|
+#endif
|
||||||
|
|
||||||
|
-std::unique_ptr<XERCES_CPP_NAMESPACE::XMLTranscoder> XMLTools::transcoder;
|
||||||
|
+std::unique_ptr<XMLTranscoder> XMLTools::transcoder;
|
||||||
|
|
||||||
|
void XMLTools::initialize()
|
||||||
|
{
|
||||||
|
- XERCES_CPP_NAMESPACE_USE;
|
||||||
|
if (!transcoder.get()) {
|
||||||
|
XMLTransService::Codes res;
|
||||||
|
- transcoder.reset(XERCES_CPP_NAMESPACE_QUALIFIER XMLPlatformUtils::fgTransService->makeNewTranscoderFor(XERCES_CPP_NAMESPACE_QUALIFIER XMLRecognizer::UTF_8, res, 4096, XERCES_CPP_NAMESPACE_QUALIFIER XMLPlatformUtils::fgMemoryManager));
|
||||||
|
+ transcoder.reset(XMLPlatformUtils::fgTransService->makeNewTranscoderFor(XMLRecognizer::UTF_8, res, 4096, XMLPlatformUtils::fgMemoryManager));
|
||||||
|
if (res != XMLTransService::Ok)
|
||||||
|
throw Base::UnicodeError("Can\'t create transcoder");
|
||||||
|
}
|
||||||
|
@@ -44,7 +50,6 @@ std::string XMLTools::toStdString(const XMLCh* const toTranscode)
|
||||||
|
{
|
||||||
|
std::string str;
|
||||||
|
|
||||||
|
- XERCES_CPP_NAMESPACE_USE;
|
||||||
|
initialize();
|
||||||
|
|
||||||
|
//char outBuff[128];
|
||||||
|
@@ -75,7 +80,6 @@ std::basic_string<XMLCh> XMLTools::toXMLString(const char* const fromTranscode)
|
||||||
|
if (!fromTranscode)
|
||||||
|
return str;
|
||||||
|
|
||||||
|
- XERCES_CPP_NAMESPACE_USE;
|
||||||
|
initialize();
|
||||||
|
|
||||||
|
static XMLCh outBuff[128];
|
||||||
|
diff --git a/src/Base/XMLTools.h b/src/Base/XMLTools.h
|
||||||
|
index d0dc66c..1a0e083 100644
|
||||||
|
--- a/src/Base/XMLTools.h
|
||||||
|
+++ b/src/Base/XMLTools.h
|
||||||
|
@@ -31,12 +31,22 @@
|
||||||
|
|
||||||
|
#include <Base/Exception.h>
|
||||||
|
|
||||||
|
-
|
||||||
|
+#ifndef XERCES_CPP_NAMESPACE_BEGIN
|
||||||
|
+#define XERCES_CPP_NAMESPACE_QUALIFIER
|
||||||
|
+using namespace XERCES_CPP_NAMESPACE;
|
||||||
|
+namespace XERCES_CPP_NAMESPACE
|
||||||
|
+{
|
||||||
|
+class DOMNode;
|
||||||
|
+class DOMElement;
|
||||||
|
+class DOMDocument;
|
||||||
|
+} // namespace XERCES_CPP_NAMESPACE
|
||||||
|
+#else
|
||||||
|
XERCES_CPP_NAMESPACE_BEGIN
|
||||||
|
class DOMNode;
|
||||||
|
class DOMElement;
|
||||||
|
class DOMDocument;
|
||||||
|
XERCES_CPP_NAMESPACE_END
|
||||||
|
+#endif
|
||||||
|
|
||||||
|
// Helper class
|
||||||
|
class BaseExport XMLTools
|
||||||
|
diff --git a/src/Mod/Mesh/App/Core/IO/Reader3MF.cpp b/src/Mod/Mesh/App/Core/IO/Reader3MF.cpp
|
||||||
|
index 5dbe53d..a7e7742 100644
|
||||||
|
--- a/src/Mod/Mesh/App/Core/IO/Reader3MF.cpp
|
||||||
|
+++ b/src/Mod/Mesh/App/Core/IO/Reader3MF.cpp
|
||||||
|
@@ -41,7 +41,12 @@
|
||||||
|
|
||||||
|
|
||||||
|
using namespace MeshCore;
|
||||||
|
+#ifndef XERCES_CPP_NAMESPACE_BEGIN
|
||||||
|
+#define XERCES_CPP_NAMESPACE_QUALIFIER
|
||||||
|
+using namespace XERCES_CPP_NAMESPACE;
|
||||||
|
+#else
|
||||||
|
XERCES_CPP_NAMESPACE_USE
|
||||||
|
+#endif
|
||||||
|
|
||||||
|
Reader3MF::Reader3MF(std::istream &str)
|
||||||
|
{
|
||||||
|
diff --git a/src/Mod/Mesh/App/Core/IO/Reader3MF.h b/src/Mod/Mesh/App/Core/IO/Reader3MF.h
|
||||||
|
index 439e70d..7f54495 100644
|
||||||
|
--- a/src/Mod/Mesh/App/Core/IO/Reader3MF.h
|
||||||
|
+++ b/src/Mod/Mesh/App/Core/IO/Reader3MF.h
|
||||||
|
@@ -31,10 +31,20 @@
|
||||||
|
#include <Mod/Mesh/App/Core/MeshKernel.h>
|
||||||
|
#include <Mod/Mesh/MeshGlobal.h>
|
||||||
|
|
||||||
|
+#ifndef XERCES_CPP_NAMESPACE_BEGIN
|
||||||
|
+#define XERCES_CPP_NAMESPACE_QUALIFIER
|
||||||
|
+using namespace XERCES_CPP_NAMESPACE;
|
||||||
|
+namespace XERCES_CPP_NAMESPACE
|
||||||
|
+{
|
||||||
|
+class DOMDocument;
|
||||||
|
+class DOMNodeList;
|
||||||
|
+} // namespace XERCES_CPP_NAMESPACE
|
||||||
|
+#else
|
||||||
|
XERCES_CPP_NAMESPACE_BEGIN
|
||||||
|
class DOMDocument;
|
||||||
|
class DOMNodeList;
|
||||||
|
XERCES_CPP_NAMESPACE_END
|
||||||
|
+#endif
|
||||||
|
|
||||||
|
namespace MeshCore
|
||||||
|
{
|
||||||
|
diff --git a/tests/src/App/Metadata.cpp b/tests/src/App/Metadata.cpp
|
||||||
|
index fa045cc..b91e4ad 100644
|
||||||
|
--- a/tests/src/App/Metadata.cpp
|
||||||
|
+++ b/tests/src/App/Metadata.cpp
|
||||||
|
@@ -24,6 +24,7 @@
|
||||||
|
#include "gtest/gtest.h"
|
||||||
|
|
||||||
|
#include "App/Metadata.h"
|
||||||
|
+#include <xercesc/util/PlatformUtils.hpp>
|
||||||
|
|
||||||
|
// NOLINTBEGIN(readability-named-parameter)
|
||||||
|
|
||||||
|
@@ -192,11 +193,11 @@ class MetadataTest: public ::testing::Test
|
||||||
|
protected:
|
||||||
|
void SetUp() override
|
||||||
|
{
|
||||||
|
- xercesc_3_2::XMLPlatformUtils::Initialize();
|
||||||
|
+ XERCES_CPP_NAMESPACE::XMLPlatformUtils::Initialize();
|
||||||
|
}
|
||||||
|
void TearDown() override
|
||||||
|
{
|
||||||
|
- xercesc_3_2::XMLPlatformUtils::Terminate();
|
||||||
|
+ XERCES_CPP_NAMESPACE::XMLPlatformUtils::Terminate();
|
||||||
|
}
|
||||||
|
std::string GivenSimpleMetadataXMLString()
|
||||||
|
{
|
||||||
|
diff --git a/tests/src/Base/Reader.cpp b/tests/src/Base/Reader.cpp
|
||||||
|
index 64fbc92..2329a05 100644
|
||||||
|
--- a/tests/src/Base/Reader.cpp
|
||||||
|
+++ b/tests/src/Base/Reader.cpp
|
||||||
|
@@ -8,6 +8,7 @@
|
||||||
|
#include <filesystem>
|
||||||
|
#include <fmt/format.h>
|
||||||
|
#include <fstream>
|
||||||
|
+#include <xercesc/util/PlatformUtils.hpp>
|
||||||
|
|
||||||
|
namespace fs = std::filesystem;
|
||||||
|
|
||||||
|
@@ -16,7 +17,7 @@ class ReaderTest: public ::testing::Test
|
||||||
|
protected:
|
||||||
|
void SetUp() override
|
||||||
|
{
|
||||||
|
- xercesc_3_2::XMLPlatformUtils::Initialize();
|
||||||
|
+ XERCES_CPP_NAMESPACE::XMLPlatformUtils::Initialize();
|
||||||
|
_tempDir = fs::temp_directory_path();
|
||||||
|
std::string filename = "unit_test_Reader.xml";
|
||||||
|
_tempFile = _tempDir / filename;
|
Reference in New Issue
Block a user