- Update to version 1.0.0

- Update to version 1.0.0
  For details, see https://wiki.freecad.org/Release_notes_1.0
  The most notable improvements over the 0.21 release series are:
  * inclusion of the topological naming problem mitigation code
  * an integrated assembly workbench
  * a new materials system
  * and many UI/UX improvements
- Drop obsolete/upstream patches:
  * freecad-copy_options.patch
  * freecad-copy_options-2.patch
  * freecad-boost185.patch
  * boost_1_86_fixes.patch
  * fix_vtk_9_3_compat.patch
  * freecad-xerces_3_3_compat.patch
- Add
  * 0001-Mod-CAM-Add-missing-OpenGL-includes.patch
  * ondselsolver_fix_gcc_75_filesystem.patch

OBS-URL: https://build.opensuse.org/package/show/science/FreeCAD?expand=0&rev=181
This commit is contained in:
Dmitry Roshchin 2024-11-20 09:03:12 +00:00 committed by Git OBS Bridge
commit eb9f28bb8f
23 changed files with 1888 additions and 0 deletions

23
.gitattributes vendored Normal file
View File

@ -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

1
.gitignore vendored Normal file
View File

@ -0,0 +1 @@
.osc

View File

@ -0,0 +1,29 @@
From 00d1d5908f85054f3c149c9b6a14fd36a1eaa572 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Stefan=20Br=C3=BCns?= <stefan.bruens@rwth-aachen.de>
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

View File

@ -0,0 +1,27 @@
From a350852845a4427ec09813b8b9e9242a1d30976f Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Stefan=20Br=C3=BCns?= <stefan.bruens@rwth-aachen.de>
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

View File

@ -0,0 +1,47 @@
From 70b313a5bd282e09129d0643b96dee85f9494c41 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Stefan=20Br=C3=BCns?= <stefan.bruens@rwth-aachen.de>
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 <Inventor/SbByteBuffer.h>
#endif
+#if !defined(FC_OS_MACOSX)
+# include <GL/gl.h>
+# include <GL/glext.h>
+#endif
+
#include <Inventor/SbColor.h>
#include <Inventor/SbViewportRegion.h>
#include <Inventor/SoDB.h>
@@ -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

View File

@ -0,0 +1,31 @@
From 2e6041b656fbd3db87109ea0c116e568c7c984e8 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Stefan=20Br=C3=BCns?= <stefan.bruens@rwth-aachen.de>
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

View File

@ -0,0 +1,26 @@
From 86151d77b7182f47fee5a576388dafbfefef3487 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Stefan=20Br=C3=BCns?= <stefan.bruens@rwth-aachen.de>
Date: Tue, 19 Nov 2024 19:07:28 +0100
Subject: [PATCH] Mod/CAM Add missing OpenGL includes
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.
---
src/Mod/CAM/PathSimulator/AppGL/DlgCAMSimulator.cpp | 1 +
1 file changed, 1 insertion(+)
diff --git a/src/Mod/CAM/PathSimulator/AppGL/DlgCAMSimulator.cpp b/src/Mod/CAM/PathSimulator/AppGL/DlgCAMSimulator.cpp
index 74a5af01e..a59cbafe1 100644
--- a/src/Mod/CAM/PathSimulator/AppGL/DlgCAMSimulator.cpp
+++ b/src/Mod/CAM/PathSimulator/AppGL/DlgCAMSimulator.cpp
@@ -25,6 +25,7 @@
#include "DlgCAMSimulator.h"
#include "MillSimulation.h"
#include "Gui/View3DInventorViewer.h"
+#include <GL/gl.h>
#include <Mod/Part/App/BRepMesh.h>
#include <QDateTime>
#include <QSurfaceFormat>
--
2.47.0

3
FreeCAD-0.21.2.tar.gz Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:ceaf77cd12e8ad533d1535cc27ae4ca2a6e80778502dc9cdec906415d674b674
size 66124278

3
FreeCAD-1.0.0.tar.gz Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:b5af251615eeab3905b2aa5fbd432cf90c57b86f9ba2a50ca23c9cc1703f81d9
size 97174172

67
FreeCAD-test.changes Normal file
View File

@ -0,0 +1,67 @@
-------------------------------------------------------------------
Mon Sep 23 10:58:56 UTC 2024 - Stefan Brüns <stefan.bruens@rwth-aachen.de>
- Update to version 1.0.0
-------------------------------------------------------------------
Mon Sep 11 10:55:03 UTC 2023 - Stefan Brüns <stefan.bruens@rwth-aachen.de>
- Update to version 0.21.1
-------------------------------------------------------------------
Thu May 4 11:39:34 UTC 2023 - Dominique Leuenberger <dimstar@opensuse.org>
- 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 <stefan.bruens@rwth-aachen.de>
- Update to version 0.20.2
-------------------------------------------------------------------
Tue Aug 16 00:33:06 UTC 2022 - Stefan Brüns <stefan.bruens@rwth-aachen.de>
- Update to version 0.20.1
-------------------------------------------------------------------
Tue Jun 14 17:12:47 UTC 2022 - Stefan Brüns <stefan.bruens@rwth-aachen.de>
- Update to version 0.20
-------------------------------------------------------------------
Sun Feb 6 17:33:16 UTC 2022 - Stefan Brüns <stefan.bruens@rwth-aachen.de>
- Run unittests manually, to make test failures visible between
noisy output
- Bump version
-------------------------------------------------------------------
Wed May 6 07:02:41 UTC 2020 - Wolfgang Bauer <wbauer@tmo.at>
- Only enable gmsh BuildRequires on Tumbleweed, it's not available
in Leap 15
-------------------------------------------------------------------
Sat Jul 27 03:34:10 UTC 2019 - Stefan Brüns <stefan.bruens@rwth-aachen.de>
- 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 <adrian@suse.de>
- 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 <jengelh@inai.de>
- Use noun phrase in summary.
-------------------------------------------------------------------
Tue Aug 28 17:10:43 UTC 2018 - Adrian Schröter <adrian@suse.de>
- initial package of test package. Just for running the test suite
of installed FreeCAD rpm, so no binary rpm gets build on purpose.

64
FreeCAD-test.spec Normal file
View File

@ -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: 1.0.0
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

599
FreeCAD.changes Normal file
View File

@ -0,0 +1,599 @@
-------------------------------------------------------------------
Tue Nov 19 17:58:13 UTC 2024 - Stefan Brüns <stefan.bruens@rwth-aachen.de>
- Update to version 1.0.0
For details, see https://wiki.freecad.org/Release_notes_1.0
The most notable improvements over the 0.21 release series are:
* inclusion of the topological naming problem mitigation code
* an integrated assembly workbench
* a new materials system
* and many UI/UX improvements
- Drop obsolete/upstream patches:
* freecad-copy_options.patch
* freecad-copy_options-2.patch
* freecad-boost185.patch
* boost_1_86_fixes.patch
* fix_vtk_9_3_compat.patch
* freecad-xerces_3_3_compat.patch
- Add
* 0001-Mod-CAM-Add-missing-OpenGL-includes.patch
* ondselsolver_fix_gcc_75_filesystem.patch
-------------------------------------------------------------------
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>
- 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 <fstrba@suse.com>
- 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 <stefan.bruens@rwth-aachen.de>
- 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 <stefan.bruens@rwth-aachen.de>
- 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 <stefan.bruens@rwth-aachen.de>
- 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 <stefan.bruens@rwth-aachen.de>
- 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 <stefan.bruens@rwth-aachen.de>
- 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 <stefan.bruens@rwth-aachen.de>
- 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 <adrian@suse.de>
- Fix build with gcc 13
0001-Fix-build-with-gcc13.patch
-------------------------------------------------------------------
Thu Jan 26 00:01:42 UTC 2023 - Stefan Brüns <stefan.bruens@rwth-aachen.de>
- 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 <stefan.bruens@rwth-aachen.de>
- 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 <stefan.bruens@rwth-aachen.de>
- 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 <stefan.bruens@rwth-aachen.de>
- 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 <stefan.bruens@rwth-aachen.de>
- 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 <stefan.bruens@rwth-aachen.de>
- 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 <stefan.bruens@rwth-aachen.de>
- 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 <stefan.bruens@rwth-aachen.de>
- Use current Coin4 instead of Coin (3).
-------------------------------------------------------------------
Fri Mar 4 18:16:46 UTC 2022 - Stefan Brüns <stefan.bruens@rwth-aachen.de>
- 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 <stefan.bruens@rwth-aachen.de>
- 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 <stefan.bruens@rwth-aachen.de>
- 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 <stefan.bruens@rwth-aachen.de>
- 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 <christophe@krop.fr>
- Replace the QtWebKit build dependency with QtWebEngine.
-------------------------------------------------------------------
Tue Apr 27 23:14:50 UTC 2021 - Stefan Brüns <stefan.bruens@rwth-aachen.de>
- Update to version 0.19.2:
* Various bug fixes, no changelog provided
-------------------------------------------------------------------
Mon Mar 22 11:57:09 UTC 2021 - Stefan Brüns <stefan.bruens@rwth-aachen.de>
- 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 <stefan.bruens@rwth-aachen.de>
- 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 <stefan.bruens@rwth-aachen.de>
- 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 <stefan.bruens@rwth-aachen.de>
- 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 <stefan.bruens@rwth-aachen.de>
- 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 <adrian@suse.de>
- temporary disable FEM module until VTK 9 support arrives
-------------------------------------------------------------------
Sun Jun 7 15:48:17 UTC 2020 - Stefan Brüns <stefan.bruens@rwth-aachen.de>
- Fix build with Qt 5.15, add fix_qt_5.15_build.patch
-------------------------------------------------------------------
Wed Mar 18 09:34:33 UTC 2020 - Yunhe Guo <i@guoyunhe.me>
- Allow install with lowercase package name: zypper install freecad
-------------------------------------------------------------------
Mon Mar 16 22:24:32 UTC 2020 - Stefan Brüns <stefan.bruens@rwth-aachen.de>
- 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 <stefan.bruens@rwth-aachen.de>
- 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 <stefan.bruens@rwth-aachen.de>
- 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 <hpj@urpla.net>
- 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 <adrian@suse.de>
- 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 <adrian@suse.de>
- 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 <adrian@suse.de>
- 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 <adrian@suse.de>
- 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 <adrian@suse.de>
- 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 <stefan.bruens@rwth-aachen.de>
- 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 <christophe@krop.fr>
- 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 <adrian@suse.de>
- 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 <adrian@suse.de>
- 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 <adrian@suse.de>
- add missing requires to six and vtk python modules (found via test suite)
-------------------------------------------------------------------
Mon Mar 18 12:34:53 UTC 2019 - Adrian Schröter <adrian@suse.de>
- 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 <stefan.bruens@rwth-aachen.de>
- 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 <stefan.bruens@rwth-aachen.de>
- Update URL: to use https://
- Reorder BuildRequires alphabetically, remove duplicates
-------------------------------------------------------------------
Fri Feb 15 09:48:24 UTC 2019 - Jan Engelhardt <jengelh@inai.de>
- Generalize description, and strip info that is already in
the metadata.
-------------------------------------------------------------------
Thu Feb 14 23:21:01 UTC 2019 - Stefan Brüns <stefan.bruens@rwth-aachen.de>
- 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 <adrian@suse.de>
- 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 <adrian@suse.de>
- 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 <jengelh@inai.de>
- Use noun phrase in summary.
-------------------------------------------------------------------
Tue Aug 28 11:56:17 UTC 2018 - Adrian Schröter <adrian@suse.de>
- 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

315
FreeCAD.spec Normal file
View File

@ -0,0 +1,315 @@
#
# 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
%bcond_with ondselsolver
%else
%bcond_with boost_signals2
%bcond_with fc_addonmanager
%bcond_with zipios
%bcond_with ondselsolver
%endif
%bcond_with smesh_external
%bcond_without smesh
%bcond_with cmake_trace
Name: FreeCAD
Version: 1.0.0
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.freecad.org/
Source0: https://github.com/FreeCAD/FreeCAD/releases/download/%{version}/freecad_source.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-OPENSUSE
Patch3: 0001-Mod-CAM-Add-missing-OpenGL-includes.patch
# PATCH-FIX-UPSTREAM
Patch9: 0001-Fix-variable-name-for-OpenGL-library.patch
# PATCH-FIX-OPENSUSE
Patch14: freecad-opengl.patch
# PATCH-FIX-UPSTREAM
Patch50: https://github.com/Ondsel-Development/OndselSolver/commit/2e3659c4bce3e6885269e0cb3d640261b2a91108.patch#/ondselsolver_fix_gcc_75_filesystem.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
%if 0%{?suse_version} > 1550
%ifarch x86_64 %{x86_64}
BuildRequires: libquadmath-devel
%endif
%endif
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: cmake(yaml-cpp)
%if %{with ondselsolver}
BuildRequires: pkgconfig(OndselSolver)
%endif
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: 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
%autosetup -c -N
%autopatch -p1 -M 49
# Run manually, have to inject the 3rdParty path
cat %{P:50} | patch --verbose -d src/3rdParty/OndselSolver -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 \
tests/src/Mod/*/CMakeLists.txt
# Lower Python minimum version for Leap
sed -i -e 's/3.8/3.6/' cMake/FreeCAD_Helpers/SetupPython.cmake
# 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
# Make sure system version is used
%if %{with ondselsolver}
rm src/3rdParty/OndselSolver -fr
%endif
# 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=lib \
-DCMAKE_INSTALL_BINDIR=bin \
-DCMAKE_INSTALL_DATAROOTDIR="../../share/" \
-DCMAKE_INSTALL_DATADIR="../../share/%{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 \
-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} \
-DFREECAD_USE_EXTERNAL_ONDSELSOLVER=%{?with_ondselsolver:ON}%{!?with_ondselsolver: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
# Remove unneeded files
find %{buildroot} -type f -name "*.la" -delete -print
rm -Rf %{buildroot}%{_datadir}/pixmaps
rm %{buildroot}%{x_prefix}/include/E57Format/E57Export.h
rm -Rf %{buildroot}%{_includedir}/%{name}/OndselSolver
rm %{buildroot}%{_datadir}/pkgconfig/OndselSolver.pc
rmdir %{buildroot}%{_datadir}/pkgconfig
rmdir %{buildroot}%{x_prefix}/include/E57Format
# 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
export QT_QPA_PLATFORM=offscreen
%ctest --test-dir tests
%post -p /sbin/ldconfig
%postun -p /sbin/ldconfig
%files
%license LICENSE
%doc README.md
%{_bindir}/FreeCAD{,Cmd}
%doc %{_docdir}/%{name}/
%{_libdir}/%{name}
%if %{python3_version_nodots} < 310
%{python_sitearch}/freecad
%else
%{python_sitelib}/freecad
%endif
%{_datadir}/%{name}/
%{_datadir}/applications/*.desktop
%{_datadir}/icons/hicolor/*/*/*.{png,svg}
%{_datadir}/metainfo/*.xml
%{_datadir}/mime/packages/*.xml
%changelog

11
_constraints Normal file
View File

@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<constraints>
<hardware>
<disk>
<size unit="G">14</size>
</disk>
<memory>
<size unit="G">6</size>
</memory>
</hardware>
</constraints>

4
_multibuild Normal file
View File

@ -0,0 +1,4 @@
<multibuild>
<package>FreeCAD-test</package>
</multibuild>

90
boost_1_86_fixes.patch Normal file
View File

@ -0,0 +1,90 @@
From 98888241920ad04fa3c2f56bdf196debf8cfb39c Mon Sep 17 00:00:00 2001
From: wmayer <wmayer@freecad.org>
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 <GeomAdaptor_HCurve.hxx>
# endif
+# include <boost/random.hpp>
# include <cmath>
# include <ctime>
#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 <QDateTime>
+#include <boost/random.hpp>
#include <cmath>
#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 <boost/random.hpp>
#include <boost/uuid/uuid_io.hpp>
#include <boost/uuid/uuid_generators.hpp>
#include <BRepBuilderAPI_MakeEdge.hxx>
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 <BRepBuilderAPI_MakeEdge.hxx>
+# include <boost/random.hpp>
# include <boost/uuid/uuid_generators.hpp>
# include <boost/uuid/uuid_io.hpp>
#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 <boost/random.hpp>
#include <boost/uuid/uuid_generators.hpp>
#include <boost/uuid/uuid_io.hpp>
#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 <cmath>
+# include <boost/random.hpp>
# include <boost/uuid/uuid_generators.hpp>
# include <boost/uuid/uuid_io.hpp>

43
fix_vtk_9_3_compat.patch Normal file
View File

@ -0,0 +1,43 @@
From d0fb2b8b29fe0428d9dd8aa790b0d6e45c8a9516 Mon Sep 17 00:00:00 2001
From: Adrian Insaurralde Avalos <adrianinsaval@gmail.com>
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();

22
freecad-boost185.patch Normal file
View File

@ -0,0 +1,22 @@
From f555a25f9e67e628e8075fc8599d7c11807eaddd Mon Sep 17 00:00:00 2001
From: wmayer <wmayer@users.sourceforge.net>
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" );

View File

@ -0,0 +1,25 @@
From 91457bbdee2422c7f0372688cf72d021cf222073 Mon Sep 17 00:00:00 2001
From: ppphp <kevinniub@gmail.com>
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();
}

View File

@ -0,0 +1,22 @@
From aa54ba73df4d42878130c99688be35acf10725a0 Mon Sep 17 00:00:00 2001
From: ppphp <kevinniub@gmail.com>
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();
}

50
freecad-opengl.patch Normal file
View File

@ -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
)

View 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;

View File

@ -0,0 +1,51 @@
From 2e3659c4bce3e6885269e0cb3d640261b2a91108 Mon Sep 17 00:00:00 2001
From: huguesdpdn <huguesdpdn.aerospace@gmail.com>
Date: Mon, 4 Nov 2024 16:00:12 +0100
Subject: [PATCH] Fix compilation under gcc7.5 (#81)
* Correct typo in individual license file name
* Fix compilation under GCC 7.5 for Ubuntu
---
OndselSolver/ASMTAssembly.cpp | 5 +++++
OndselSolverMain/OndselSolver.cpp | 1 -
2 files changed, 5 insertions(+), 1 deletion(-)
diff --git a/OndselSolver/ASMTAssembly.cpp b/OndselSolver/ASMTAssembly.cpp
index 9daf755..0f3dd1d 100644
--- a/OndselSolver/ASMTAssembly.cpp
+++ b/OndselSolver/ASMTAssembly.cpp
@@ -62,7 +62,9 @@
#include "ASMTRotationLimit.h"
#include "ASMTTranslationLimit.h"
#include "ExternalSystem.h"
+#if __GNUC__ >= 8
#include <filesystem>
+#endif
using namespace MbD;
@@ -359,8 +361,11 @@ void MbD::ASMTAssembly::runSinglePendulum()
std::shared_ptr<ASMTAssembly> MbD::ASMTAssembly::assemblyFromFile(const std::string& fileName)
{
+ // https://stackoverflow.com/a/45867491
+ #if __GNUC__ >= 8
std::filesystem::path currentPath = std::filesystem::current_path();
std::cout << "Current directory: " << currentPath << std::endl;
+ #endif
std::ifstream stream(fileName);
if (stream.fail()) {
diff --git a/OndselSolverMain/OndselSolver.cpp b/OndselSolverMain/OndselSolver.cpp
index d4b82d9..97ab5b9 100644
--- a/OndselSolverMain/OndselSolver.cpp
+++ b/OndselSolverMain/OndselSolver.cpp
@@ -12,7 +12,6 @@
* @brief Program to assemble a piston crank system.
*********************************************************************/
-#include <filesystem>
#include "../OndselSolver/CADSystem.h"
#include "../OndselSolver/CREATE.h"
#include "../OndselSolver/GESpMatParPvPrecise.h"