From 98a18ab4dc9ae66acdcf27506278cf6e8d05d12906f253f6291c3e3a2e090931 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adrian=20Schr=C3=B6ter?= Date: Wed, 15 May 2024 08:43:59 +0000 Subject: [PATCH] Accepting request 1171944 from home:fstrba:branches:science Fix build in factory + aarch64 linking OBS-URL: https://build.opensuse.org/request/show/1171944 OBS-URL: https://build.opensuse.org/package/show/science/FreeCAD?expand=0&rev=174 --- FreeCAD-test.spec | 2 +- FreeCAD.changes | 10 ++++++++ FreeCAD.spec | 10 +++++++- freecad-boost185.patch | 22 ++++++++++++++++ freecad-copy_options-2.patch | 25 ++++++++++++++++++ freecad-copy_options.patch | 22 ++++++++++++++++ freecad-opengl.patch | 50 ++++++++++++++++++++++++++++++++++++ 7 files changed, 139 insertions(+), 2 deletions(-) create mode 100644 freecad-boost185.patch create mode 100644 freecad-copy_options-2.patch create mode 100644 freecad-copy_options.patch create mode 100644 freecad-opengl.patch diff --git a/FreeCAD-test.spec b/FreeCAD-test.spec index bbde231..145f481 100644 --- a/FreeCAD-test.spec +++ b/FreeCAD-test.spec @@ -1,7 +1,7 @@ # # spec file for package FreeCAD-test # -# Copyright (c) 2023 SUSE LLC +# 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 diff --git a/FreeCAD.changes b/FreeCAD.changes index 53d1992..d193c2b 100644 --- a/FreeCAD.changes +++ b/FreeCAD.changes @@ -1,3 +1,13 @@ +------------------------------------------------------------------- +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 diff --git a/FreeCAD.spec b/FreeCAD.spec index 433629b..807cfdd 100644 --- a/FreeCAD.spec +++ b/FreeCAD.spec @@ -1,7 +1,7 @@ # # spec file for package FreeCAD # -# Copyright (c) 2023 SUSE LLC +# 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 @@ -50,6 +50,14 @@ Patch2: 0001-Implement-math.comb-fallback-for-Python-3.6.patch 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 # Test suite fails on 32bit and I don't want to debug that anymore ExcludeArch: %ix86 %arm ppc s390 s390x 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 + )