commit 6e9c46650cf354d5cfdab6dcd652c8eceb82f485d5d748663c94b8f9d904e9d4 Author: Stefan Brüns Date: Sun Nov 17 01:33:13 2024 +0000 - Add patch for Xerces 3.3 compatibility (upstream with changes): * freecad-xerces_3_3_compat.patch OBS-URL: https://build.opensuse.org/package/show/science/FreeCAD?expand=0&rev=178 diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..9b03811 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,23 @@ +## Default LFS +*.7z filter=lfs diff=lfs merge=lfs -text +*.bsp filter=lfs diff=lfs merge=lfs -text +*.bz2 filter=lfs diff=lfs merge=lfs -text +*.gem filter=lfs diff=lfs merge=lfs -text +*.gz filter=lfs diff=lfs merge=lfs -text +*.jar filter=lfs diff=lfs merge=lfs -text +*.lz filter=lfs diff=lfs merge=lfs -text +*.lzma filter=lfs diff=lfs merge=lfs -text +*.obscpio filter=lfs diff=lfs merge=lfs -text +*.oxt filter=lfs diff=lfs merge=lfs -text +*.pdf filter=lfs diff=lfs merge=lfs -text +*.png filter=lfs diff=lfs merge=lfs -text +*.rpm filter=lfs diff=lfs merge=lfs -text +*.tbz filter=lfs diff=lfs merge=lfs -text +*.tbz2 filter=lfs diff=lfs merge=lfs -text +*.tgz filter=lfs diff=lfs merge=lfs -text +*.ttf filter=lfs diff=lfs merge=lfs -text +*.txz filter=lfs diff=lfs merge=lfs -text +*.whl filter=lfs diff=lfs merge=lfs -text +*.xz filter=lfs diff=lfs merge=lfs -text +*.zip filter=lfs diff=lfs merge=lfs -text +*.zst filter=lfs diff=lfs merge=lfs -text diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..57affb6 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.osc diff --git a/0001-Avoid-catching-SIGSEGV-defer-to-system-services.patch b/0001-Avoid-catching-SIGSEGV-defer-to-system-services.patch new file mode 100644 index 0000000..59634b9 --- /dev/null +++ b/0001-Avoid-catching-SIGSEGV-defer-to-system-services.patch @@ -0,0 +1,29 @@ +From 00d1d5908f85054f3c149c9b6a14fd36a1eaa572 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Stefan=20Br=C3=BCns?= +Date: Sun, 20 Mar 2022 04:22:24 +0100 +Subject: [PATCH] Avoid catching SIGSEGV, defer to system services + +The current implementation ignores the basic signal handler requirement +to only call signal safe functions, e.g. backtrace_symbols and +abi::__cxa_demangle. This causes deadlocks when the handler is called +from malloc/free and similar. +--- + src/App/Application.cpp | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/App/Application.cpp b/src/App/Application.cpp +index 7f93db5775..58e3b1f90f 100644 +--- a/src/App/Application.cpp ++++ b/src/App/Application.cpp +@@ -1860,7 +1860,7 @@ void Application::init(int argc, char ** argv) + std::set_terminate(unhandled_exception_handler); + ::set_unexpected(unexpection_error_handler); + #elif defined(FC_OS_LINUX) +- std::signal(SIGSEGV,segmentation_fault_handler); ++ // std::signal(SIGSEGV,segmentation_fault_handler); + #endif + #if defined(FC_SE_TRANSLATOR) + _set_se_translator(my_se_translator_filter); +-- +2.35.1 + diff --git a/0001-Fix-variable-name-for-OpenGL-library.patch b/0001-Fix-variable-name-for-OpenGL-library.patch new file mode 100644 index 0000000..bd48f07 --- /dev/null +++ b/0001-Fix-variable-name-for-OpenGL-library.patch @@ -0,0 +1,27 @@ +From a350852845a4427ec09813b8b9e9242a1d30976f Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Stefan=20Br=C3=BCns?= +Date: Wed, 1 Mar 2023 02:42:56 +0100 +Subject: [PATCH] Fix variable name for OpenGL library + +In case Qt is build with GLES libraries, it does not implicitly add +the OpenGL library, and Quarter is not linked to the GL library. +--- + src/Gui/Quarter/CMakeLists.txt | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/Gui/Quarter/CMakeLists.txt b/src/Gui/Quarter/CMakeLists.txt +index 45ee147fdd..e840e151d0 100644 +--- a/src/Gui/Quarter/CMakeLists.txt ++++ b/src/Gui/Quarter/CMakeLists.txt +@@ -30,7 +30,7 @@ IF (Spacenav_FOUND) + ENDIF(Spacenav_FOUND) + + +-SET(AllLibs ${Coin_LIBRARY} ${QT_LIBRARIES} ${OPENGL_LIBRARY} ${Extra_libraries}) ++SET(AllLibs ${Coin_LIBRARY} ${QT_LIBRARIES} ${OPENGL_gl_LIBRARY} ${Extra_libraries}) + + + +-- +2.39.1 + diff --git a/0001-Gui-Quarter-Add-missing-OpenGL-includes.patch b/0001-Gui-Quarter-Add-missing-OpenGL-includes.patch new file mode 100644 index 0000000..8ff6501 --- /dev/null +++ b/0001-Gui-Quarter-Add-missing-OpenGL-includes.patch @@ -0,0 +1,47 @@ +From 70b313a5bd282e09129d0643b96dee85f9494c41 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Stefan=20Br=C3=BCns?= +Date: Tue, 14 Jun 2022 20:49:08 +0200 +Subject: [PATCH] [Gui] Quarter: Add missing OpenGL includes + +QuarterWidget directly uses e.g. glPushAttrib/glPopAttrib, and thus should +include the relevant headers. + +The headers are required on e.g. ARM platforms where Qt is build with GLES +instead of Desktop GL, and does not implicitly include the headers. + +This fixes a regression introduced with commit 9654786c670b ("[Gui] +Quarter: remove unused includes"). +--- + src/Gui/Quarter/QuarterWidget.cpp | 9 +++++---- + 1 file changed, 5 insertions(+), 4 deletions(-) + +diff --git a/src/Gui/Quarter/QuarterWidget.cpp b/src/Gui/Quarter/QuarterWidget.cpp +index 5e1f89e04d..18f418e19e 100644 +--- a/src/Gui/Quarter/QuarterWidget.cpp ++++ b/src/Gui/Quarter/QuarterWidget.cpp +@@ -72,6 +72,11 @@ + #include + #endif + ++#if !defined(FC_OS_MACOSX) ++# include ++# include ++#endif ++ + #include + #include + #include +@@ -131,10 +136,6 @@ using namespace SIM::Coin3D::Quarter; + + #define PRIVATE(obj) obj->pimpl + +-#ifndef GL_MULTISAMPLE_BIT_EXT +-#define GL_MULTISAMPLE_BIT_EXT 0x20000000 +-#endif +- + //We need to avoid buffer swapping when initializing a QPainter on this widget + class CustomGLWidget : public QOpenGLWidget { + public: +-- +2.36.1 + diff --git a/0001-Implement-math.comb-fallback-for-Python-3.6.patch b/0001-Implement-math.comb-fallback-for-Python-3.6.patch new file mode 100644 index 0000000..4dc4363 --- /dev/null +++ b/0001-Implement-math.comb-fallback-for-Python-3.6.patch @@ -0,0 +1,31 @@ +From 2e6041b656fbd3db87109ea0c116e568c7c984e8 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Stefan=20Br=C3=BCns?= +Date: Thu, 10 Aug 2023 15:48:55 +0200 +Subject: [PATCH] Implement math.comb fallback for Python 3.6 + +--- + src/Mod/PartDesign/fcgear/involute.py | 8 +++++++- + 1 file changed, 7 insertions(+), 1 deletion(-) + +diff --git a/src/Mod/PartDesign/fcgear/involute.py b/src/Mod/PartDesign/fcgear/involute.py +index 15df79f..307ff6b 100644 +--- a/src/Mod/PartDesign/fcgear/involute.py ++++ b/src/Mod/PartDesign/fcgear/involute.py +@@ -24,7 +24,13 @@ + # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 + + from math import cos, sin, tan, pi, acos, asin, atan, sqrt, radians +-from math import comb as binom ++try: ++ from math import comb as binom ++except ImportError: ++ from math import factorial ++ def binom(n, k): ++ return 0 if k > n else \ ++ factorial(n) / (factorial(k) * factorial(n - k)) + + + def CreateExternalGear(w, m, Z, phi, +-- +2.41.0 + diff --git a/FreeCAD-0.21.2.tar.gz b/FreeCAD-0.21.2.tar.gz new file mode 100644 index 0000000..9ec20ee --- /dev/null +++ b/FreeCAD-0.21.2.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ceaf77cd12e8ad533d1535cc27ae4ca2a6e80778502dc9cdec906415d674b674 +size 66124278 diff --git a/FreeCAD-test.changes b/FreeCAD-test.changes new file mode 100644 index 0000000..52ecc2f --- /dev/null +++ b/FreeCAD-test.changes @@ -0,0 +1,62 @@ +------------------------------------------------------------------- +Mon Sep 11 10:55:03 UTC 2023 - Stefan Brüns + +- Update to version 0.21.1 + +------------------------------------------------------------------- +Thu May 4 11:39:34 UTC 2023 - Dominique Leuenberger + +- Add _multibuild to define 2nd spec file as additional flavor. + Eliminates the need for source package links in OBS. + +------------------------------------------------------------------- +Tue Dec 6 19:57:11 UTC 2022 - Stefan Brüns + +- Update to version 0.20.2 + +------------------------------------------------------------------- +Tue Aug 16 00:33:06 UTC 2022 - Stefan Brüns + +- Update to version 0.20.1 + +------------------------------------------------------------------- +Tue Jun 14 17:12:47 UTC 2022 - Stefan Brüns + +- Update to version 0.20 + +------------------------------------------------------------------- +Sun Feb 6 17:33:16 UTC 2022 - Stefan Brüns + +- Run unittests manually, to make test failures visible between + noisy output +- Bump version + +------------------------------------------------------------------- +Wed May 6 07:02:41 UTC 2020 - Wolfgang Bauer + +- Only enable gmsh BuildRequires on Tumbleweed, it's not available + in Leap 15 + +------------------------------------------------------------------- +Sat Jul 27 03:34:10 UTC 2019 - Stefan Brüns + +- Fix inverted logic when evaluating test suite exit code +- Add gmsh mesher to BuildRequires, increase FEM test coverage + +------------------------------------------------------------------- +Tue Feb 12 21:10:12 UTC 2019 - Adrian Schröter + +- disable builds for 32bit and s390x, test suite fails and it makes no + sense to use FreeCAD on small systems or mainframes... + +------------------------------------------------------------------- +Wed Sep 5 14:50:23 UTC 2018 - Jan Engelhardt + +- Use noun phrase in summary. + +------------------------------------------------------------------- +Tue Aug 28 17:10:43 UTC 2018 - Adrian Schröter + +- initial package of test package. Just for running the test suite + of installed FreeCAD rpm, so no binary rpm gets build on purpose. + diff --git a/FreeCAD-test.spec b/FreeCAD-test.spec new file mode 100644 index 0000000..145f481 --- /dev/null +++ b/FreeCAD-test.spec @@ -0,0 +1,64 @@ +# +# spec file for package FreeCAD-test +# +# Copyright (c) 2024 SUSE LLC +# +# All modifications and additions to the file contributed by third parties +# remain the property of their copyright owners, unless otherwise agreed +# upon. The license for this file, and modifications and additions to the +# file, is the same license as for the pristine package itself (unless the +# license for the pristine package is not an Open Source License, in which +# case the license is the MIT License). An "Open Source License" is a +# license that conforms to the Open Source Definition (Version 1.9) +# published by the Open Source Initiative. + +# Please submit bugfixes or comments via https://bugs.opensuse.org/ +# + + +Name: FreeCAD-test +Version: 0.21.2 +Release: 0 +Summary: Meta source package that runs the FreeCAD testsuite when built +License: GPL-2.0-or-later AND LGPL-2.0-or-later +Group: Productivity/Graphics/CAD +URL: https://www.freecadweb.org/ +BuildRequires: FreeCAD = %{version} +%if 0%{?suse_version} > 1500 +BuildRequires: gmsh +%endif + +# Test suite fails on 32bit and I don't want to debug that anymore +ExcludeArch: %ix86 %arm ppc s390 s390x + +%description +This is just executing the test suite at build time. + +%build +export LC_ALL="C.utf-8" +export PYTHONPATH=%{_libdir}/FreeCAD/lib +python3 -c "\ +import FreeCAD +import unittest +print(FreeCAD.__unit_test__, file=sys.stderr) +results = {} +for name in FreeCAD.__unit_test__: + suite = unittest.TestSuite() + suite.addTest(unittest.defaultTestLoader.loadTestsFromName(name)) + print(\"Running: {}\".format(name), file=sys.stderr) + r = unittest.TextTestRunner() + res = r.run(suite) + results[name] = res + +totalerrors = 0 +totalfailures = 0 +for [name,res] in results.items(): + print(name, file=sys.stderr) + print(res, file=sys.stderr) + totalerrors += len(res.errors) + totalfailures += len(res.failures) + +exit((totalerrors + totalfailures) > 0) +" + +%changelog diff --git a/FreeCAD.changes b/FreeCAD.changes new file mode 100644 index 0000000..6b17328 --- /dev/null +++ b/FreeCAD.changes @@ -0,0 +1,572 @@ +------------------------------------------------------------------- +Wed Sep 18 09:35:46 UTC 2024 - Stefan Brüns + +- Add patch for Boost 1.86 compatibility (upstream with changes): + * boost_1_86_fixes.patch + +------------------------------------------------------------------- +Sat May 4 17:46:05 UTC 2024 - Fridrich Strba + +- Add freecad-boost185.patch + * Upstream fix for #13549: smesh doesn't compile with boost 1.85 +- Add freecad-copy_options.patch and freecad-copy_options-2.patch + * Upstream fix: c++20 deprecate copy_option +- Add freecad-opengl.patch: use both OPENGL_LIBRARY and OPENGL_gl_LIBRARY, + fixing undefined references on aarch64 architecture + +------------------------------------------------------------------- +Mon Jan 1 00:46:54 UTC 2024 - Stefan Brüns + +- Update to version 0.21.2: + * Bugfix release, for details see + https://github.com/FreeCAD/FreeCAD/releases/tag/0.21.2 + +------------------------------------------------------------------- +Sun Dec 31 01:05:56 UTC 2023 - Stefan Brüns + +- Fix build with VTK 9.3.0, add fix_vtk_9_3_compat.patch + +------------------------------------------------------------------- +Mon Sep 11 10:52:51 UTC 2023 - Stefan Brüns + +- Update to version 0.21.1: + * Bugfix release, for details see + https://github.com/FreeCAD/FreeCAD/releases/tag/0.21.1 + +------------------------------------------------------------------- +Wed Aug 10 15:42:59 UTC 2023 - Stefan Brüns + +- Disable AddonManager extension on Leap 15.x, as it requires + Python >= 3.8 +- Add 0001-Implement-math.comb-fallback-for-Python-3.6.patch +- Minor packaging cleanups + +------------------------------------------------------------------- +Tue Aug 8 15:49:02 UTC 2023 - Stefan Brüns + +- Update to version 0.21.0: + * Lots of bugfixes and new features, for details see + https://wiki.freecad.org/Release_notes_0.21 and + https://github.com/FreeCAD/FreeCAD/releases/tag/0.21.0 +- Drop upstream patches: + * 0001-Fix-build-with-NG-6.2.2201-include-BRepMesh_Incremen.patch + * 0001-Part-OCCError.h-remove-unneeded-includes.patch + * 0001-Drawing-add-missing-include.patch + * 0001-FEM-add-missing-include.patch + * 0001-Revert-unused-parameter-warning-change.patch + * 0001-FEM-femmesh-fix-AttributeError-module-numpy-has-no-a.patch + * 0001-Fix-build-with-gcc13.patch + +------------------------------------------------------------------- +Tue Aug 8 12:01:48 UTC 2023 - Stefan Brüns + +- Fix build on aarch64, correctly link OpenGL, add + 0001-Fix-variable-name-for-OpenGL-library.patch + +------------------------------------------------------------------- +Mon Mar 27 09:49:49 UTC 2023 - Adrian Schröter + +- Fix build with gcc 13 + 0001-Fix-build-with-gcc13.patch + +------------------------------------------------------------------- +Thu Jan 26 00:01:42 UTC 2023 - Stefan Brüns + +- Fix build after numpy 1.24 API changes, add + 0001-FEM-femmesh-fix-AttributeError-module-numpy-has-no-a.patch + +------------------------------------------------------------------- +Fri Dec 30 00:55:38 UTC 2022 - Stefan Brüns + +- Fix build with OpenCASCADE 7.7.0, add + * 0001-Part-OCCError.h-remove-unneeded-includes.patch + * 0001-Drawing-add-missing-include.patch + * 0001-FEM-add-missing-include.patch + * 0001-Revert-unused-parameter-warning-change.patch + +------------------------------------------------------------------- +Tue Dec 6 19:57:11 UTC 2022 - Stefan Brüns + +- Update to version 0.20.2: + * Lots of bugfixes and new features, for details see + https://wiki.freecad.org/Release_notes_0.20.2 and + https://github.com/FreeCAD/FreeCAD/releases/tag/0.20.2 + +------------------------------------------------------------------- +Tue Aug 16 00:33:06 UTC 2022 - Stefan Brüns + +- Update to version 0.20.1: + * Lots of bugfixes and new features, for details see + https://wiki.freecad.org/Release_notes_0.20.1 and + https://github.com/FreeCAD/FreeCAD/releases/tag/0.20.1 + +------------------------------------------------------------------- +Mon Aug 15 22:06:33 UTC 2022 - Stefan Brüns + +- Fix build with Netgen 6.2.2201 and later, add + 0001-Fix-build-with-NG-6.2.2201-include-BRepMesh_Incremen.patch + +------------------------------------------------------------------- +Tue Jun 14 17:12:11 UTC 2022 - Stefan Brüns + +- Update to version 0.20: + * Lots of bugfixes and new features, for details see + https://wiki.freecad.org/Release_notes_0.20 and + https://github.com/FreeCAD/FreeCAD/releases/tag/0.20 +- Drop upstream patches: + * fix_unittestgui_tkinter_py3.patch + * fix-smesh-vtk9.patch + * 0001-Test-remove-not-needed-u-before-py3-unicode-string.patch + * 0001-Test-fix-exception-handling-in-tests-for-units.patch + * 0001-Test-Provide-more-useful-information-when-unit-trans.patch + * 0002-Base-Fix-wrong-character-encoding-for-micro-siemens.patch + * 0001-improve-search-for-VTK-9.patch +- Add 0001-Gui-Quarter-Add-missing-OpenGL-includes.patch +- Add 0001-Avoid-catching-SIGSEGV-defer-to-system-services.patch + +------------------------------------------------------------------- +Wed Mar 16 18:15:57 UTC 2022 - Stefan Brüns + +- Remove VTK::Java/java-devel dependency, add + 0001-improve-search-for-VTK-9.patch + +------------------------------------------------------------------- +Thu Mar 10 20:13:02 UTC 2022 - Stefan Brüns + +- Use current Coin4 instead of Coin (3). + +------------------------------------------------------------------- +Fri Mar 4 18:16:46 UTC 2022 - Stefan Brüns + +- Add some unit test fixes: + * 0001-Test-remove-not-needed-u-before-py3-unicode-string.patch + * 0001-Test-fix-exception-handling-in-tests-for-units.patch + * 0001-Test-Provide-more-useful-information-when-unit-trans.patch + * 0002-Base-Fix-wrong-character-encoding-for-micro-siemens.patch + +------------------------------------------------------------------- +Thu Mar 3 17:42:20 UTC 2022 - Stefan Brüns + +- Update to version 0.19.4: + * Lots of bugfixes, for details see + https://github.com/FreeCAD/FreeCAD/releases/tag/0.19.4 + +------------------------------------------------------------------- +Sun Feb 6 17:31:23 UTC 2022 - Stefan Brüns + +- Pre-generate parsetab.py for ply.yacc in OpenSCAD and FEM Mods: + https://tracker.freecadweb.org/view.php?id=4840 + +------------------------------------------------------------------- +Fri Jan 14 17:27:24 UTC 2022 - Stefan Brüns + +- Update to version 0.19.3: + * Lots of bugfixes, for details see + https://github.com/FreeCAD/FreeCAD/releases/tag/0.19.3 + +------------------------------------------------------------------- +Sun Jun 27 21:27:22 UTC 2021 - Christophe Giboudeaux + +- Replace the QtWebKit build dependency with QtWebEngine. + +------------------------------------------------------------------- +Tue Apr 27 23:14:50 UTC 2021 - Stefan Brüns + +- Update to version 0.19.2: + * Various bug fixes, no changelog provided + +------------------------------------------------------------------- +Mon Mar 22 11:57:09 UTC 2021 - Stefan Brüns + +- Update to version 0.19.1: + * Lots of new features, bug fixes and improvements, see + https://wiki.freecadweb.org/Release_notes_0.19 +- Drop upstream patches: + * 0001-Fix-build-with-pyside2-shiboken2-5.12.1.patch + * 0003-qt-5.14.patch + * update-swigpyrunin-for-python-3.8.patch + * 0001-fem-use-time.process_time-instead-of-removed-time.cl.patch + * fix_qt_5.15_build.patch + * 0001-boost-1.73.0-The-practice-of-declaring-the-Bind-plac.patch + * 0001-Fix-ODR-violation-correct-Ui_TaskSketcherGeneral-nam.patch + * 0001-Gui-skip-ci-fix-Wodr.patch + * 0001-Part-Import-skip-ci-disable-use-of-Message_ProgressI.patch + * 0001-import-Hotfix-for-build-failure-from-bad-debug-code.patch + * 0001-partdesign-fix-failing-tapered-hole-test.patch + * 0001-add-missing-std-namespace-to-build-on-Debian-10.patch +- Rebase fix-smesh-vtk9.patch + +------------------------------------------------------------------- +Tue Feb 23 19:05:09 UTC 2021 - Stefan Brüns + +- Fix build and tests with OCCT 7.5, add + 0001-Part-Import-skip-ci-disable-use-of-Message_ProgressI.patch + 0001-import-Hotfix-for-build-failure-from-bad-debug-code.patch + 0001-partdesign-fix-failing-tapered-hole-test.patch +- Add 0001-add-missing-std-namespace-to-build-on-Debian-10.patch +- Cleanup specfile: + * Use system PyCXX, drop unused libboost_python3 + * Drop some unused dependencies + * Remove ChangeLog.txt, not updated since version 0.14 + +------------------------------------------------------------------- +Mon Jan 4 22:02:50 UTC 2021 - Stefan Brüns + +- Fix build with latest GCC, add 0001-Gui-skip-ci-fix-Wodr.patch +- Force-enable C++17, Boost 1.75 requires C++14 at least + +------------------------------------------------------------------- +Sat Nov 28 14:08:01 UTC 2020 - Stefan Brüns + +- Update to version 0.18.5: + * Fix addon manager to adapt to GitHub infrastructure changes. + * Add 0001-Fix-ODR-violation-correct-Ui_TaskSketcherGeneral-nam.patch + * Rebase 0001-boost-1.73.0-The-practice-of-declaring-the-Bind-plac.patch +- Reenable workbenches dependent on Mesher (e.g. Path, FEM): + * Add fix-smesh-vtk9.patch + +------------------------------------------------------------------- +Sat Sep 19 01:37:12 UTC 2020 - Stefan Brüns + +- Fix build with boost 1.73 and later, add + 0001-boost-1.73.0-The-practice-of-declaring-the-Bind-plac.patch +- Cleanup some build dependencies. + +------------------------------------------------------------------- +Thu Jul 23 11:43:21 UTC 2020 - Adrian Schröter + +- temporary disable FEM module until VTK 9 support arrives + +------------------------------------------------------------------- +Sun Jun 7 15:48:17 UTC 2020 - Stefan Brüns + +- Fix build with Qt 5.15, add fix_qt_5.15_build.patch + +------------------------------------------------------------------- +Wed Mar 18 09:34:33 UTC 2020 - Yunhe Guo + +- Allow install with lowercase package name: zypper install freecad + +------------------------------------------------------------------- +Mon Mar 16 22:24:32 UTC 2020 - Stefan Brüns + +- More spec file cleanup, removed duplicate files +- Use upstream provided desktop files, mimeinfo, etc + +------------------------------------------------------------------- +Sun Mar 15 18:13:15 UTC 2020 - Stefan Brüns + +- Fix runtime errors with Python 3.8: + * 0001-fem-use-time.process_time-instead-of-removed-time.cl.patch +- Fix last python2 she-bang remainders, fix imports: + * fix_unittestgui_tkinter_py3.patch +- Remove unnecessary opencv build dependency +- update to current 0.18 branch: + * Fem: fix segmentation fault when opening contraint transform + panel. Fix Python code + * Part: the number of domains returned by TopoShape::getDomains + must match with number of faces + * apply fixes from master when building with occt 7.4 + + Drop 0002-fix-compile.patch + +------------------------------------------------------------------- +Sat Mar 14 15:12:29 UTC 2020 - Stefan Brüns + +- Fix build with Python 3.8: + Add update-swigpyrunin-for-python-3.8.patch +- Spec file cleanup + * Drop xpm FreeCAD icon + * Install PNGs/SVG icons in correct paths + * Remove obsolete update_mime_database calls in %post + * Remove obsolete conditionals for Leap 42.x + +------------------------------------------------------------------- +Sat Jan 25 11:03:06 UTC 2020 - Hans-Peter Jansen + +- make 0003-qt-5.14.patch do what it is advertising + * fix conditional in order to locate rcc/uic properly + +------------------------------------------------------------------- +Fri Jan 24 09:02:08 UTC 2020 - Adrian Schröter + +- update to current 0.18 branch: + * fixes #0004182: Segfault when clicking constraints from a + different viewport [skip ci] + * [Draft] ImportDXF 0.18 Bug upgrading from 0.16. See discussion + https://forum.freecadweb.org/viewtopic.php?f=3&t=41879 + * fixes #0004233: Access violation and file corruption on undo + duplicate sketch + * FEM: py3 fix in selection widget + * FEM: selection widgets, add some error prints + * FEM: equations, fix reset edit mode + * [AddonManager] 0.18 Improve Non GitPython Error Handling. + Previous output when clicking Macros tab caused errors in + Report View with no Macros loaded at all. + * fix encoding problem when clicking a link on StartPage if + application is installed into a directory with non-ASCII characters + * [Arch] ArchMaterial 0.18 Fix Crash + +------------------------------------------------------------------- +Thu Jan 23 16:41:29 UTC 2020 - Adrian Schröter + +- fix build with new gcc and Qt 5.14 + (0002-fix-compile.patch 0003-qt-5.14.patch) + +------------------------------------------------------------------- +Wed Oct 30 16:06:43 UTC 2019 - Adrian Schröter + +- Update to final 0.18.4 + * pre-select name filter in import/export file dialog + +------------------------------------------------------------------- +Tue Oct 22 06:46:22 UTC 2019 - Adrian Schröter + +- update to current 0.18 branch, esp for Qt >= 5.9 fixes + * [TD]Fix slow GC of QGIPrimPath + * [Spreadsheet] Excel File Import fix Py3 bug + * [Path] Fix xrange bug with Py3 + * fix print preview function for >= Qt 5.9 + * Backport: startwb files restored in 0.18.3 to display thumbs correctly + * 0.18.x displays the example files within in the Start WB without their + respective thumbs. This PR restores that functionality + * Fixed problems with 'pythonopen' + * Correction of drill speed calculation + * Material: py2 fix in depreciated mat file parser (back port from 0.19) + * [TD]Fix #4017 Crash on bad hatch scale + +------------------------------------------------------------------- +Thu Jul 18 11:01:30 UTC 2019 - Adrian Schröter + +- Update to 0.18.3 + * AddonManager: Skip non-github addons + * Sketcher: Fix Carbon copy leads to unsolvable sketch + * Sketcher: Fix carbon copy construction points + * fixes #0003993: Memory leak with Python3 + * code simplification in PythonWrapper + * issue #0003984: Creating a Path Job object fails with 'PySide2.QtWidgets.QDialog' object has no attribute 'templateGroup' + * Fixes bug #4008: removes phantom path cause + * Fix crash in case encoding of Python paths fails + * [Material] Respect unicode filenames Fixes #4027 + * BrowserView: fix QWebEngine crash + * Py3: no __builtin__ module available + * fixes 0004010: Box Selection + Part -> MakeCompound will crash FreeCAD + * FEM: solver elmer tasks, Py3 decode fix + * make OpenSCAD utilities working again with Py2 + +------------------------------------------------------------------- +Fri Jul 12 22:23:09 UTC 2019 - Stefan Brüns + +- Remove MPI dependencies, as these are not used for the built package, + but adversely affect build times and rebuilds. + Proper MPI integration needs more work and has to ensure the base version + of FreeCAD can be used without prior manual setup of an MPI environment. + Remove 0001-find-openmpi2-include-files.patch, mpicc/mpicxx would + pick up the correct include path by themselfs. +- Sort BuildRequires: again + +------------------------------------------------------------------- +Thu Jun 13 12:25:02 UTC 2019 - Christophe Giboudeaux + +- Add 0001-Fix-build-with-pyside2-shiboken2-5.12.1.patch to fix + build with recent shiboken2/pyside2 releases. + +------------------------------------------------------------------- +Sun May 12 07:21:14 UTC 2019 - Adrian Schröter + +- Update to 0.18.2 + * replace insecure use of eval() with proper use of units + * py3/py2: use exec as function + * Arch: Fixed error in roof - Fixes #3864 + * Draft: Fixed 0.18.1 bug in DXF importer + * Py3 fix: correctly convert a Python str to const char* + * Py3 fix reading/writing from/to OBJ file + * fixes 0003913: libspnav crash on linux wayland during startup + +------------------------------------------------------------------- +Fri Apr 5 11:56:11 UTC 2019 - Adrian Schröter + +- Update to 0.18.1 + * FEM module fixes + * crash fixes + * Qt5 bugs with external display + +------------------------------------------------------------------- +Mon Mar 25 08:01:35 UTC 2019 - Adrian Schröter + +- add missing requires to six and vtk python modules (found via test suite) + +------------------------------------------------------------------- +Mon Mar 18 12:34:53 UTC 2019 - Adrian Schröter + +- Update to release 0.18 + * NetGen FEM enabled + * 0001-find-openmpi2-include-files.patch added for openmpi2 support +- Obsolete patches: + * 0001-Convert-deprecated-boost-signal-to-signals2.patch + * 0001-Use-GL_RGB32F-instead-of-GL_RGB32F_ARB.patch + * 0002-move-from-deprecated-boost.signals-to-boost.signals2.patch + * 0003-fix-blocking-of-SelectionObserver.patch + * fix-build-with-Qt5_11.diff + * fix-build.diff + * fix-draft-module-with-python3.patch + * fix-gcc8-build-failure.patch + * get-rid-of-private-function-_PyImport_FixupBuiltin-for-FreeCAD-and-FreeCADGui-modules.patch + * get-rid-of-private-function-_PyImport_FixupBuiltin-for-__FreeCADBase__-module.patch + + +------------------------------------------------------------------- +Thu Mar 14 03:36:03 UTC 2019 - Stefan Brüns + +- Add support for Boost::Signals2, Boost::Signals has been deprecated + since Boost 1.54 and removed in 1.69: + * 0001-Convert-deprecated-boost-signal-to-signals2.patch + * 0002-move-from-deprecated-boost.signals-to-boost.signals2.patch + * 0003-fix-blocking-of-SelectionObserver.patch +- Add explicit double-conversion-devel BuildRequires + +------------------------------------------------------------------- +Sat Mar 9 15:10:24 UTC 2019 - Stefan Brüns + +- Update URL: to use https:// +- Reorder BuildRequires alphabetically, remove duplicates + +------------------------------------------------------------------- +Fri Feb 15 09:48:24 UTC 2019 - Jan Engelhardt + +- Generalize description, and strip info that is already in + the metadata. + +------------------------------------------------------------------- +Thu Feb 14 23:21:01 UTC 2019 - Stefan Brüns + +- Fix build with GCC 8, add fix-gcc8-build-failure.patch +- Add 0001-Use-GL_RGB32F-instead-of-GL_RGB32F_ARB.patch, fix building + on AArch64. +- Remove openmpi build dependencies, erroneously required for VTK + previously. + Drop 0001-find-openmpi2-include-files.patch + +------------------------------------------------------------------- +Tue Feb 12 21:10:12 UTC 2019 - Adrian Schröter + +- enable FEM module +- disable builds for 32bit and s390x, test suite fails and it makes no + sense to use FreeCAD on small systems or mainframes... + +------------------------------------------------------------------- +Mon Feb 4 08:28:22 UTC 2019 - Adrian Schröter + +- update to current branch: + - Spreadsheet: Fixed issue #3361. + +------------------------------------------------------------------- +Fri Feb 1 09:42:55 UTC 2019 - wbauer@tmo.at + +- Add upstream patches to fix build with python 3.7: + * get-rid-of-private-function-_PyImport_FixupBuiltin-for-__FreeCADBase__-module.patch + * get-rid-of-private-function-_PyImport_FixupBuiltin-for-FreeCAD-and-FreeCADGui-modules.patch + +------------------------------------------------------------------- +Wed Sep 5 14:50:23 UTC 2018 - Jan Engelhardt + +- Use noun phrase in summary. + +------------------------------------------------------------------- +Tue Aug 28 11:56:17 UTC 2018 - Adrian Schröter + +- fix missing dependency to numpy, found via the.. +- added testsuite run via extra spec file + +------------------------------------------------------------------- +Sat Aug 11 12:29:12 UTC 2018 - adrian@suse.de + +- update branch again +- fix dependencies of Qt4 build (Leap 42.3) + +------------------------------------------------------------------- +Thu Jul 26 07:42:15 UTC 2018 - adrian@suse.de + +- update to current branch, obsoletes branch_update.patch + +------------------------------------------------------------------- +Mon Jun 18 19:36:22 UTC 2018 - stefan.bruens@rwth-aachen.de + +- Fix BuildRequires, TW no longer has libboost_python-devel but + libboost_python3-devel, and for Leap 15.0 this linked libpython3.6m + and libboost_python-py2_7 into the same binary. + +------------------------------------------------------------------- +Sun May 20 08:12:30 UTC 2018 - christophe@krop.fr + +- Add fix-build-with-Qt5_11.diff. Fixes build with the upcoming + Qt 5.11. +- Switch to %autosetup + +------------------------------------------------------------------- +Tue May 8 06:33:56 UTC 2018 - adrian@suse.de + +- temporary disable FEM module + * it works fine, but requires hdf5 version 1.8 via med-tools, + which currently conflicts in openSUSE distro. +- Fix draft module crash + (got merged upstream for 0.18 fix-draft-module-with-python3.patch) + +------------------------------------------------------------------- +Fri Apr 27 12:55:30 UTC 2018 - adrian@suse.de + +- apply current 0.17 branch (branch_update.patch) + In first place for occt 7.2 fixes + +------------------------------------------------------------------- +Tue Apr 17 06:46:23 UTC 2018 - adrian@suse.de + +- fix crash in Draft module with python 3 + +------------------------------------------------------------------- +Mon Apr 16 06:51:06 UTC 2018 - adrian@suse.de + +- cleanup python qt deps (pyside2 only now) + +------------------------------------------------------------------- +Tue Apr 10 11:33:35 UTC 2018 - adrian@suse.de + +- update to version 0.17 + 2 years of work: https://www.freecadweb.org/wiki/Release_notes_0.17 +- switching to Qt5 + (fix-build.diff 0001-find-openmpi2-include-files.patch) + (the old 0.16 fork had obsolete temporary patches remove-qtwebkit.patch and + remove-webgui.patch) + +------------------------------------------------------------------- +Thu Jan 4 15:36:57 UTC 2018 - wbauer@tmo.at + +- Add remove-qtwebkit.patch and remove-webgui.patch (taken from + Arch Linux) to fix build without QtWebKit +- Build without QtWebKit on Tumbleweed and SLE/Leap 15 as + libQtWebKit4 is about to be dropped (boo#1070901) + +------------------------------------------------------------------- +Fri Dec 15 07:13:05 UTC 2017 - adrian@suse.de + +- fix build for factory (boost dependencies) + +------------------------------------------------------------------- +Wed Nov 8 08:09:39 UTC 2017 - aloisio@gmx.com + +- Update to 0.16.6712 (contains backports from trunk) +- Some cleanup + +------------------------------------------------------------------- +Sun Sep 10 08:23:34 UTC 2017 - rbrown@suse.com + +- Correct python-CXX requires +- add python-pyside requires, needed for welcome splash + +------------------------------------------------------------------- +Mon Jun 13 06:46:23 UTC 2016 - adrian@suse.de + +- FreeCAD 0.16 +- create on the base of the work from various home projects + (esp by wkazubski and torhans) +- use rpath instead of modifying ldconfig for our own libs + diff --git a/FreeCAD.spec b/FreeCAD.spec new file mode 100644 index 0000000..bef1df4 --- /dev/null +++ b/FreeCAD.spec @@ -0,0 +1,307 @@ +# +# spec file for package FreeCAD +# +# Copyright (c) 2024 SUSE LLC +# +# All modifications and additions to the file contributed by third parties +# remain the property of their copyright owners, unless otherwise agreed +# upon. The license for this file, and modifications and additions to the +# file, is the same license as for the pristine package itself (unless the +# license for the pristine package is not an Open Source License, in which +# case the license is the MIT License). An "Open Source License" is a +# license that conforms to the Open Source Definition (Version 1.9) +# published by the Open Source Initiative. + +# Please submit bugfixes or comments via https://bugs.opensuse.org/ +# + + +%define x_prefix %{_libdir}/%{name} + +%if 0%{?suse_version} > 1500 +%bcond_without boost_signals2 +# The AddonManager requires Python >= 3.8 +%bcond_without fc_addonmanager +# zipios not yet in TW +%bcond_with zipios +%else +%bcond_with boost_signals2 +%bcond_with fc_addonmanager +%bcond_with zipios +%endif +%bcond_with smesh_external +%bcond_without smesh + +Name: FreeCAD +Version: 0.21.2 +Release: 0 +Summary: General Purpose 3D CAD Modeler +License: GPL-2.0-or-later AND LGPL-2.0-or-later +Group: Productivity/Graphics/CAD +URL: https://www.freecadweb.org/ +Source0: https://github.com/FreeCAD/FreeCAD/archive/refs/tags/%{version}.tar.gz#/%{name}-%{version}.tar.gz +# PATCH-FIX-UPSTREAM +Patch0: 0001-Gui-Quarter-Add-missing-OpenGL-includes.patch +# PATCH-FIX-OPENSUSE +Patch1: 0001-Avoid-catching-SIGSEGV-defer-to-system-services.patch +# PATCH-FIX-OPENSUSE +Patch2: 0001-Implement-math.comb-fallback-for-Python-3.6.patch +# PATCH-FIX-UPSTREAM +Patch9: 0001-Fix-variable-name-for-OpenGL-library.patch +# PATCH-FIX-UPSTREAM +Patch10: https://github.com/FreeCAD/FreeCAD/commit/d0fb2b8b29fe0428d9dd8aa790b0d6e45c8a9516.patch#/fix_vtk_9_3_compat.patch +# PATCH-FIX-UPSTREAM +Patch11: https://github.com/FreeCAD/FreeCAD/commit/f555a25f9e67e628e8075fc8599d7c11807eaddd.patch#/freecad-boost185.patch +# PATCH-FIX-UPSTREAM +Patch12: https://github.com/FreeCAD/FreeCAD/commit/aa54ba73df4d42878130c99688be35acf10725a0.patch#/freecad-copy_options.patch +# PATCH-FIX-UPSTREAM +Patch13: https://github.com/FreeCAD/FreeCAD/commit/91457bbdee2422c7f0372688cf72d021cf222073.patch#/freecad-copy_options-2.patch +# PATCH-FIX-OPENSUSE +Patch14: freecad-opengl.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 +# 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 +ExcludeArch: %ix86 %arm ppc s390 s390x + +BuildRequires: libboost_filesystem-devel >= 1.55 +BuildRequires: libboost_graph-devel >= 1.55 +BuildRequires: libboost_program_options-devel >= 1.55 +BuildRequires: libboost_regex-devel >= 1.55 +%if %{without boost_signals2} +BuildRequires: libboost_signals-devel >= 1.55 +%endif +BuildRequires: libboost_serialization-devel >= 1.55 +BuildRequires: libboost_system-devel >= 1.55 +BuildRequires: libboost_thread-devel >= 1.55 + +BuildRequires: cmake +BuildRequires: double-conversion-devel +BuildRequires: eigen3-devel +BuildRequires: fdupes +BuildRequires: fmt-devel +BuildRequires: glew-devel +BuildRequires: hdf5-devel +BuildRequires: hicolor-icon-theme +%if %{with smesh_external} +# We use the internal smesh version with fixes atm +BuildRequires: smesh-devel +%endif +BuildRequires: libXerces-c-devel +BuildRequires: libXi-devel +BuildRequires: libmed-devel +BuildRequires: libspnav-devel +BuildRequires: make +BuildRequires: netgen-devel +BuildRequires: occt-devel +BuildRequires: pkg-config +BuildRequires: proj-devel +BuildRequires: sqlite3-devel + +# Qt5 & python3 +BuildRequires: python3-devel >= 3.6.9 +BuildRequires: python3-matplotlib +BuildRequires: python3-pivy >= 0.6.8 +BuildRequires: python3-ply +BuildRequires: python3-pybind11-devel +BuildRequires: python3-pycxx-devel +BuildRequires: python3-pyside2-devel +BuildRequires: python3-vtk +BuildRequires: python3-xml +BuildRequires: cmake(GTest) +%if %{with zipios} +BuildRequires: cmake(ZipIos) +%endif +BuildRequires: cmake(coin) +BuildRequires: pkgconfig(Qt5Concurrent) +BuildRequires: pkgconfig(Qt5OpenGL) +BuildRequires: pkgconfig(Qt5PrintSupport) +BuildRequires: pkgconfig(Qt5ScriptTools) +BuildRequires: pkgconfig(Qt5Svg) +BuildRequires: pkgconfig(Qt5UiTools) +BuildRequires: pkgconfig(Qt5WebEngineWidgets) +BuildRequires: pkgconfig(Qt5X11Extras) +BuildRequires: pkgconfig(Qt5XmlPatterns) +BuildRequires: pkgconfig(liblzma) +Requires: python3-numpy +Requires: python3-pyside2 +Requires: python3-vtk +# For Arch & Draft workbench +Requires: python3-pivy +# For FEM workbench +Requires: python3-PyYAML +Requires: python3-matplotlib-qt5 +Requires: python3-ply +Requires: python3-six + +BuildRequires: swig +BuildRequires: update-desktop-files +BuildRequires: vtk-devel +BuildRequires: zlib-devel + +Recommends: ccx + +Provides: freecad + +%description +FreeCAD is a parametric 3D modeler made primarily to design real-life objects +of any size. Parametric modeling allows modifying designs by +going back into the model history and changing its parameters. FreeCAD is +customizable and scriptable. + +%package devel +Summary: Development Files for %{name} +Group: Development/Libraries/C and C++ +Requires: %{name} = %{version} + +%description devel +This package contains the files needed for development with FreeCAD. + +%prep +%setup -q +%autopatch -p1 + +# Use system gtest - https://github.com/FreeCAD/FreeCAD/issues/10126 +sed -i -e 's/add_subdirectory(lib)/find_package(GTest)/' \ + -e 's/ gtest_main/ GTest::gtest_main/' \ + -e 's/ gmock_main/ GTest::gmock_main/' \ + tests/CMakeLists.txt +# Lower Python minimum version for Leap +sed -i -e 's/3.8/3.6/' cMake/FreeCAD_Helpers/SetupPython.cmake +# Use boost::filesystem - https://github.com/FreeCAD/FreeCAD/issues/10127 +sed -i -e 's/std::filesystem/boost::filesystem/' \ + -e '/include/ s@@@' \ + -e '/std::.fstream/ s@_tempFile@_tempFile.string()@' \ + tests/src/Base/Reader.cpp + +# fix env-script-interpreter +sed -i '1 s@#!.*@#!%{__python3}@' \ + src/Mod/AddonManager/AddonManager.py \ + src/Mod/Mesh/App/MeshTestsApp.py \ + src/Mod/Part/parttests/ColorPerFaceTest.py \ + src/Mod/Part/parttests/TopoShapeListTest.py \ + src/Mod/Robot/KukaExporter.py \ + src/Mod/Robot/MovieTool.py \ + src/Mod/Spreadsheet/importXLSX.py \ + src/Mod/TechDraw/TDTest/D*Test.py \ + src/Mod/Test/testmakeWireString.py \ + src/Mod/Test/unittestgui.py + +# Fix "wrong-script-end-of-line-encoding" rpmlint warning +sed -i 's/\r$//' src/Mod/Mesh/App/MeshTestsApp.py +sed -i 's/\r$//' src/Mod/Part/MakeBottle.py +sed -i 's/\r$//' src/Mod/PartDesign/Scripts/FilletArc.py +sed -i 's/\r$//' src/Mod/PartDesign/Scripts/Parallelepiped.py +sed -i 's/\r$//' src/Mod/PartDesign/Scripts/Spring.py +sed -i 's/\r$//' src/Mod/Robot/MovieTool.py +sed -i 's/\r$//' src/Mod/Robot/KukaExporter.py +sed -i 's/\r$//' src/Mod/Test/unittestgui.py + +# Remove 3rd party libs +rm src/3rdparty/Pivy -fr +rm src/3rdparty/Pivy-0.5 -fr + +# Remove bundled gtest +rm tests/lib -fr + +# Resources are looked up relative to the binaries location, +# so all these need the same prefix, see src/App/Application.cpp +%build +%cmake \ + -DCMAKE_INSTALL_PREFIX=%{x_prefix} \ + -DCMAKE_INSTALL_LIBDIR=%{x_prefix}/lib \ + -DCMAKE_INSTALL_BINDIR=%{x_prefix}/bin \ + -DCMAKE_INSTALL_DATAROOTDIR=%{_datadir} \ + -DCMAKE_INSTALL_DATADIR=%{_datadir}/%{name} \ + -DCMAKE_INSTALL_DOCDIR=%{_docdir}/%{name} \ + -DCMAKE_INSTALL_INCLUDEDIR=%{_includedir}/%{name} \ + -DCMAKE_SKIP_RPATH:BOOL=OFF \ + -DCMAKE_SKIP_INSTALL_RPATH:BOOL=OFF \ + -DCMAKE_INSTALL_RPATH_USE_LINK_PATH=ON \ + -DOCC_INCLUDE_DIR=%{_includedir}/opencascade \ + -DRESOURCEDIR=%{_datadir}/%{name} \ + -DPYTHON_EXECUTABLE=/usr/bin/python3 \ + -DPYTHON_INCLUDE_DIR=%{python3_sysconfig_path include} \ + -DSHIBOKEN_INCLUDE_DIR=/usr/include/shiboken2/ \ + -DPYSIDE_INCLUDE_DIR=/usr/include/PySide2/ \ + -DPYBIND11_FINDPYTHON:BOOL=ON \ + -DFREECAD_USE_PYBIND11:BOOL=ON \ + -DBUILD_ENABLE_CXX_STD:STRING="C++17" \ + -DFREECAD_QT_MAJOR_VERSION=5 \ + -DFREECAD_USE_QT_DIALOG:BOOL=OFF \ + -DFREECAD_USE_EXTERNAL_FMT:BOOL=TRUE \ + -DFREECAD_USE_EXTERNAL_PIVY:BOOL=TRUE \ + -DBUILD_OPENSCAD:BOOL=ON \ + -DBUILD_FLAT_MESH:BOOL=ON \ + -DFREECAD_USE_EXTERNAL_SMESH=%{?with_smesh_external:ON}%{!?with_smesh_external:OFF} \ + -DFREECAD_USE_EXTERNAL_ZIPIOS=%{?with_zipios:ON}%{!?with_zipios:OFF} \ + -DBUILD_SMESH:BOOL=ON \ + -DBUILD_MESH_PART:BOOL=ON \ + -DBUILD_FEM:BOOL=%{?with_smesh:ON}%{!?with_smesh:OFF} \ + -DBUILD_FEM_NETGEN:BOOL=ON \ + -DBUILD_FEM_VTK:BOOL=ON \ + -DBUILD_ADDONMGR:BOOL=%{?with_fc_addonmanager:ON}%{!?with_fc_addonmanager:OFF} \ + -Wno-dev \ + .. + +%cmake_build + +%install +%cmake_install + +# Fix "non-executable-script" rpmlint warning +# Run after install, as CMake "install(FILES...) sets rw- permissions +%if %{with fc_addonmanager} +chmod 755 %{buildroot}%{_libdir}/FreeCAD/Mod/AddonManager/AddonManager.py +%endif +chmod 755 %{buildroot}%{_libdir}/FreeCAD/Mod/Robot/KukaExporter.py \ + %{buildroot}%{_libdir}/FreeCAD/Mod/Robot/MovieTool.py \ + %{buildroot}%{_libdir}/FreeCAD/Mod/Spreadsheet/importXLSX.py \ + %{buildroot}%{_libdir}/FreeCAD/Mod/TechDraw/TDTest/D*Test.py \ + %{buildroot}%{_libdir}/FreeCAD/Mod/Test/testmakeWireString.py \ + %{buildroot}%{_libdir}/FreeCAD/Mod/Mesh/MeshTestsApp.py \ + %{buildroot}%{_libdir}/FreeCAD/Mod/Part/parttests/ColorPerFaceTest.py \ + %{buildroot}%{_libdir}/FreeCAD/Mod/Part/parttests/TopoShapeListTest.py \ + %{buildroot}%{_libdir}/FreeCAD/Mod/Test/unittestgui.py + +%suse_update_desktop_file -r org.freecadweb.FreeCAD Education Engineering + +# Remove unneeded files +find %{buildroot} -type f -name "*.la" -delete -print +rm -Rf %{buildroot}%{_datadir}/pixmaps +rm %{buildroot}%{x_prefix}/include/E57Format/E57Export.h +# Broken +rm -Rf %{buildroot}%{_datadir}/thumbnailers + +# Link binaries +mkdir -p %{buildroot}/usr/bin +ln -s -t %{buildroot}/usr/bin %{x_prefix}/bin/FreeCAD +ln -s -t %{buildroot}/usr/bin %{x_prefix}/bin/FreeCADCmd + +%fdupes %{buildroot}/%{_libdir} +%fdupes %{buildroot}/%{_datadir} + +%check +%ctest --test-dir tests/src/Qt +./build/tests/Tests_run +./build/tests/Sketcher_tests_run + +%post -p /sbin/ldconfig + +%postun -p /sbin/ldconfig + +%files +%license LICENSE +%doc README.md +%{_bindir}/FreeCAD{,Cmd} +%doc %{_docdir}/%{name}/ +%{_libdir}/%{name} +%{_datadir}/%{name}/ +%{_datadir}/applications/*.desktop +%{_datadir}/icons/hicolor/*/*/*.{png,svg} +%{_datadir}/metainfo/*.xml +%{_datadir}/mime/packages/*.xml + +%changelog diff --git a/_constraints b/_constraints new file mode 100644 index 0000000..9f6c4db --- /dev/null +++ b/_constraints @@ -0,0 +1,11 @@ + + + + + 14 + + + 6 + + + diff --git a/_multibuild b/_multibuild new file mode 100644 index 0000000..60a4538 --- /dev/null +++ b/_multibuild @@ -0,0 +1,4 @@ + + FreeCAD-test + + diff --git a/boost_1_86_fixes.patch b/boost_1_86_fixes.patch new file mode 100644 index 0000000..1c2f4c5 --- /dev/null +++ b/boost_1_86_fixes.patch @@ -0,0 +1,90 @@ +From 98888241920ad04fa3c2f56bdf196debf8cfb39c Mon Sep 17 00:00:00 2001 +From: wmayer +Date: Thu, 22 Aug 2024 17:00:03 +0200 +Subject: [PATCH] Building: Boost dependency errors + +Fixes #15999 +--- + src/Mod/Part/App/Geometry.cpp | 1 + + src/Mod/Part/App/PreCompiled.h | 1 + + src/Mod/Sketcher/App/Constraint.cpp | 1 + + src/Mod/Sketcher/App/PreCompiled.h | 1 + + src/Mod/TechDraw/App/CenterLine.cpp | 1 + + src/Mod/TechDraw/App/Cosmetic.cpp | 1 + + src/Mod/TechDraw/App/CosmeticVertex.cpp | 1 + + src/Mod/TechDraw/App/Geometry.cpp | 1 + + src/Mod/TechDraw/App/PreCompiled.h | 1 + + 9 files changed, 9 insertions(+) + +diff --git a/src/Mod/Part/App/Geometry.cpp b/src/Mod/Part/App/Geometry.cpp +index 046d2624d6d3..307fddb0aab1 100644 +--- a/src/Mod/Part/App/Geometry.cpp ++++ b/src/Mod/Part/App/Geometry.cpp +@@ -102,6 +102,7 @@ + # include + # endif + ++# include + # include + # include + #endif //_PreComp_ +diff --git a/src/Mod/Sketcher/App/Constraint.cpp b/src/Mod/Sketcher/App/Constraint.cpp +index 1ee3e53753a9..b802e36d5864 100644 +--- a/src/Mod/Sketcher/App/Constraint.cpp ++++ b/src/Mod/Sketcher/App/Constraint.cpp +@@ -23,6 +23,7 @@ + #include "PreCompiled.h" + #ifndef _PreComp_ + #include ++#include + #include + #endif + +diff --git a/src/Mod/TechDraw/App/CenterLine.cpp b/src/Mod/TechDraw/App/CenterLine.cpp +index eac348ce0b2a..21a39e2b9b94 100644 +--- a/src/Mod/TechDraw/App/CenterLine.cpp ++++ b/src/Mod/TechDraw/App/CenterLine.cpp +@@ -23,6 +23,7 @@ + + #include "PreCompiled.h" + #ifndef _PreComp_ ++ #include + #include + #include + #include +diff --git a/src/Mod/TechDraw/App/Cosmetic.cpp b/src/Mod/TechDraw/App/Cosmetic.cpp +index c2e9fe24a446..6dc50ec5c9af 100644 +--- a/src/Mod/TechDraw/App/Cosmetic.cpp ++++ b/src/Mod/TechDraw/App/Cosmetic.cpp +@@ -24,6 +24,7 @@ + #include "PreCompiled.h" + #ifndef _PreComp_ + # include ++# include + # include + # include + #endif +diff --git a/src/Mod/TechDraw/App/CosmeticVertex.cpp b/src/Mod/TechDraw/App/CosmeticVertex.cpp +index 24401e78d259..e2ffe27b474c 100644 +--- a/src/Mod/TechDraw/App/CosmeticVertex.cpp ++++ b/src/Mod/TechDraw/App/CosmeticVertex.cpp +@@ -25,6 +25,7 @@ + + #include "PreCompiled.h" + #ifndef _PreComp_ ++ #include + #include + #include + #endif // _PreComp_ +diff --git a/src/Mod/TechDraw/App/Geometry.cpp b/src/Mod/TechDraw/App/Geometry.cpp +index 504bea6d07c0..43510f4da365 100644 +--- a/src/Mod/TechDraw/App/Geometry.cpp ++++ b/src/Mod/TechDraw/App/Geometry.cpp +@@ -24,6 +24,7 @@ + + #ifndef _PreComp_ + # include ++# include + # include + # include + diff --git a/fix_vtk_9_3_compat.patch b/fix_vtk_9_3_compat.patch new file mode 100644 index 0000000..e079180 --- /dev/null +++ b/fix_vtk_9_3_compat.patch @@ -0,0 +1,43 @@ +From d0fb2b8b29fe0428d9dd8aa790b0d6e45c8a9516 Mon Sep 17 00:00:00 2001 +From: Adrian Insaurralde Avalos +Date: Wed, 22 Nov 2023 16:42:06 -0300 +Subject: [PATCH] 3rdPart/salomesmesh - fix for vtk 9.3 compatibility + +minimum required version is 7.1 +--- + src/3rdParty/salomesmesh/inc/SMESH_SMDS.hxx | 4 ---- + src/3rdParty/salomesmesh/src/SMDS/SMDS_UnstructuredGrid.cpp | 5 +++++ + 2 files changed, 5 insertions(+), 4 deletions(-) + +diff --git a/src/3rdParty/salomesmesh/inc/SMESH_SMDS.hxx b/src/3rdParty/salomesmesh/inc/SMESH_SMDS.hxx +index 7f89573efd0d..47a52fe585fe 100644 +--- a/src/3rdParty/salomesmesh/inc/SMESH_SMDS.hxx ++++ b/src/3rdParty/salomesmesh/inc/SMESH_SMDS.hxx +@@ -39,10 +39,6 @@ + #define SMDS_EXPORT + #endif + +-#ifdef VTK_HAS_MTIME_TYPE + #define VTK_MTIME_TYPE vtkMTimeType +-#else +-#define VTK_MTIME_TYPE unsigned long +-#endif + + #endif +diff --git a/src/3rdParty/salomesmesh/src/SMDS/SMDS_UnstructuredGrid.cpp b/src/3rdParty/salomesmesh/src/SMDS/SMDS_UnstructuredGrid.cpp +index 7e3de0070a02..e9895d615717 100644 +--- a/src/3rdParty/salomesmesh/src/SMDS/SMDS_UnstructuredGrid.cpp ++++ b/src/3rdParty/salomesmesh/src/SMDS/SMDS_UnstructuredGrid.cpp +@@ -1026,7 +1026,12 @@ void SMDS_UnstructuredGrid::BuildLinks() + GetLinks()->Allocate(this->GetNumberOfPoints()); + GetLinks()->Register(this); + //FIXME: vtk9 ++ #if VTK_VERSION_NUMBER < VTK_VERSION_CHECK(9,3,0) + GetLinks()->BuildLinks(this); ++ #else ++ GetLinks()->SetDataSet(this); ++ GetLinks()->BuildLinks(); ++ #endif + GetLinks()->Delete(); + #else + this->Links = SMDS_CellLinks::New(); diff --git a/freecad-boost185.patch b/freecad-boost185.patch new file mode 100644 index 0000000..4fb3a97 --- /dev/null +++ b/freecad-boost185.patch @@ -0,0 +1,22 @@ +From f555a25f9e67e628e8075fc8599d7c11807eaddd Mon Sep 17 00:00:00 2001 +From: wmayer +Date: Sun, 21 Apr 2024 08:36:16 +0200 +Subject: [PATCH] Fixes #13549: smesh doesn't compile with boost 1.85 + +--- + src/3rdParty/salomesmesh/src/SMESH/DriverGMF.cpp | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/3rdParty/salomesmesh/src/SMESH/DriverGMF.cpp b/src/3rdParty/salomesmesh/src/SMESH/DriverGMF.cpp +index d72ff2363f39..f108cbbcb2cf 100644 +--- a/src/3rdParty/salomesmesh/src/SMESH/DriverGMF.cpp ++++ b/src/3rdParty/salomesmesh/src/SMESH/DriverGMF.cpp +@@ -55,7 +55,7 @@ namespace DriverGMF + + bool isExtensionCorrect( const std::string& fileName ) + { +- std::string ext = boost::filesystem::extension(fileName); ++ std::string ext = boost::filesystem::path(fileName).extension().string(); + switch ( ext.size() ) { + case 5: return ( ext == ".mesh" || ext == ".solb" ); + case 6: return ( ext == ".meshb" ); diff --git a/freecad-copy_options-2.patch b/freecad-copy_options-2.patch new file mode 100644 index 0000000..ae600f1 --- /dev/null +++ b/freecad-copy_options-2.patch @@ -0,0 +1,25 @@ +From 91457bbdee2422c7f0372688cf72d021cf222073 Mon Sep 17 00:00:00 2001 +From: ppphp +Date: Sat, 30 Mar 2024 19:17:56 +0800 +Subject: [PATCH] add version check macro for compatibility + +--- + src/Gui/PreferencePackManager.cpp | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/src/Gui/PreferencePackManager.cpp b/src/Gui/PreferencePackManager.cpp +index e1773a436852..dfc54240c00c 100644 +--- a/src/Gui/PreferencePackManager.cpp ++++ b/src/Gui/PreferencePackManager.cpp +@@ -224,7 +224,11 @@ void Gui::PreferencePackManager::importConfig(const std::string& packName, + auto savedPreferencePacksDirectory = + fs::path(App::Application::getUserAppDataDir()) / "SavedPreferencePacks"; + auto cfgFilename = savedPreferencePacksDirectory / packName / (packName + ".cfg"); ++#if BOOST_VERSION >= 107400 + fs::copy_file(path, cfgFilename, fs::copy_options::overwrite_existing); ++#else ++ fs::copy_file(path, cfgFilename, fs::copy_option::overwrite_if_exists); ++#endif + rescan(); + } + diff --git a/freecad-copy_options.patch b/freecad-copy_options.patch new file mode 100644 index 0000000..6881dbd --- /dev/null +++ b/freecad-copy_options.patch @@ -0,0 +1,22 @@ +From aa54ba73df4d42878130c99688be35acf10725a0 Mon Sep 17 00:00:00 2001 +From: ppphp +Date: Sat, 30 Mar 2024 13:52:32 +0800 +Subject: [PATCH] fix: c++20 deprecate copy_option + +--- + src/Gui/PreferencePackManager.cpp | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/Gui/PreferencePackManager.cpp b/src/Gui/PreferencePackManager.cpp +index e0e6184a3147..e1773a436852 100644 +--- a/src/Gui/PreferencePackManager.cpp ++++ b/src/Gui/PreferencePackManager.cpp +@@ -224,7 +224,7 @@ void Gui::PreferencePackManager::importConfig(const std::string& packName, + auto savedPreferencePacksDirectory = + fs::path(App::Application::getUserAppDataDir()) / "SavedPreferencePacks"; + auto cfgFilename = savedPreferencePacksDirectory / packName / (packName + ".cfg"); +- fs::copy_file(path, cfgFilename, fs::copy_option::overwrite_if_exists); ++ fs::copy_file(path, cfgFilename, fs::copy_options::overwrite_existing); + rescan(); + } + diff --git a/freecad-opengl.patch b/freecad-opengl.patch new file mode 100644 index 0000000..1d5b6e0 --- /dev/null +++ b/freecad-opengl.patch @@ -0,0 +1,50 @@ +--- a/cMake/FreeCAD_Helpers/PrintFinalReport.cmake ++++ b/cMake/FreeCAD_Helpers/PrintFinalReport.cmake +@@ -187,7 +187,7 @@ macro(PrintFinalReport) + else() + simple(Freetype "disabled") + endif() +- simple(OpenGL_Lib [${OPENGL_gl_LIBRARY}]) ++ simple(OpenGL_Lib [${OPENGL_gl_LIBRARY}][${OPENGL_LIBRARY}]) + simple(OpenGLU_Lib [${OPENGL_glu_LIBRARY}]) + simple(OpenGLU_Incl [${OPENGL_INCLUDE_DIR}]) + simple(Coin3D "${COIN3D_VERSION} [${COIN3D_LIBRARIES}] [${COIN3D_INCLUDE_DIRS}]") +--- a/src/Gui/CMakeLists.txt ++++ b/src/Gui/CMakeLists.txt +@@ -68,6 +68,7 @@ if(MSVC) + FreeCADApp + ${COIN3D_LIBRARIES} + ${OPENGL_gl_LIBRARY} ++ ${OPENGL_LIBRARY} + ) + + if(FREECAD_USE_3DCONNEXION) +@@ -82,6 +83,7 @@ else(MSVC) + ${COIN3D_LIBRARIES} + ${Boost_LIBRARIES} + ${OPENGL_gl_LIBRARY} ++ ${OPENGL_LIBRARY} + ${3DCONNEXION_LINKFLAGS} + ) + endif(MSVC) +--- a/src/Gui/Quarter/CMakeLists.txt ++++ b/src/Gui/Quarter/CMakeLists.txt +@@ -23,7 +23,7 @@ IF (Spacenav_FOUND) + ENDIF(Spacenav_FOUND) + + +-SET(AllLibs ${Coin_LIBRARY} ${QT_LIBRARIES} ${OPENGL_gl_LIBRARY} ${Extra_libraries}) ++SET(AllLibs ${Coin_LIBRARY} ${QT_LIBRARIES} ${OPENGL_gl_LIBRARY} ${OPENGL_LIBRARY} ${Extra_libraries}) + + + +--- a/src/Mod/Mesh/Gui/CMakeLists.txt ++++ b/src/Mod/Mesh/Gui/CMakeLists.txt +@@ -17,6 +17,7 @@ endif(MSVC) + set(MeshGui_LIBS + ${Boost_LIBRARIES} + ${OPENGL_glu_LIBRARY} ++ ${OPENGL_LIBRARY} + Mesh + FreeCADGui + ) diff --git a/freecad-xerces_3_3_compat.patch b/freecad-xerces_3_3_compat.patch new file mode 100644 index 0000000..2894e2e --- /dev/null +++ b/freecad-xerces_3_3_compat.patch @@ -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 + #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 + #include + +- ++#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 XMLTools::transcoder; ++std::unique_ptr 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 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 + +- ++#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 + #include + ++#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 + + // 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 + #include + #include ++#include + + 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;