diff --git a/0001-Use-GL_RGB32F-instead-of-GL_RGB32F_ARB.patch b/0001-Use-GL_RGB32F-instead-of-GL_RGB32F_ARB.patch new file mode 100644 index 0000000..8a0bf5f --- /dev/null +++ b/0001-Use-GL_RGB32F-instead-of-GL_RGB32F_ARB.patch @@ -0,0 +1,59 @@ +From 2293eaf9f973cdda4e638bf00d4ddbbf02f4a54e Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Stefan=20Br=C3=BCns?= +Date: Sat, 12 Jan 2019 05:44:21 +0100 +Subject: [PATCH] Use GL_RGB32F instead of GL_RGB32F_ARB + +The GL_RGB32F{_ARB,_EXT,} constant has the same value in all three +variants, but the ARB variant is only available for Desktop OpenGL and +EXT is only available for GLES. Use the non-suffix variant from OpenGL +3.0 / GLES 3. + +This allows building on platforms using GLES for Qt5, i.e. many ARM +platforms. +--- + src/Gui/SoFCOffscreenRenderer.cpp | 4 ++-- + src/Gui/View3DInventorViewer.cpp | 6 +++--- + 2 files changed, 5 insertions(+), 5 deletions(-) + +diff --git a/src/Gui/SoFCOffscreenRenderer.cpp b/src/Gui/SoFCOffscreenRenderer.cpp +index d4eb3bc1e..6e26d2176 100644 +--- a/src/Gui/SoFCOffscreenRenderer.cpp ++++ b/src/Gui/SoFCOffscreenRenderer.cpp +@@ -598,8 +598,8 @@ SoQtOffscreenRenderer::makeFrameBuffer(int width, int height, int samples) + // format and in the output image search for the above color and + // replaces it with the color requested by the user. + #if defined(HAVE_QT5_OPENGL) +- //fmt.setInternalTextureFormat(GL_RGBA32F_ARB); +- fmt.setInternalTextureFormat(GL_RGB32F_ARB); ++ //fmt.setInternalTextureFormat(GL_RGBA32F); ++ fmt.setInternalTextureFormat(GL_RGB32F); + #else + //fmt.setInternalTextureFormat(GL_RGBA); + fmt.setInternalTextureFormat(GL_RGB); +diff --git a/src/Gui/View3DInventorViewer.cpp b/src/Gui/View3DInventorViewer.cpp +index a1fee6459..21ed8a9e8 100644 +--- a/src/Gui/View3DInventorViewer.cpp ++++ b/src/Gui/View3DInventorViewer.cpp +@@ -1416,7 +1416,7 @@ QImage View3DInventorViewer::grabFramebuffer() + fboFormat.setSamples(getNumSamples()); + fboFormat.setAttachment(QOpenGLFramebufferObject::Depth); + fboFormat.setTextureTarget(GL_TEXTURE_2D); +- fboFormat.setInternalTextureFormat(GL_RGB32F_ARB); ++ fboFormat.setInternalTextureFormat(GL_RGB32F); + + QOpenGLFramebufferObject fbo(width, height, fboFormat); + renderToFramebuffer(&fbo); +@@ -1449,8 +1449,8 @@ void View3DInventorViewer::imageFromFramebuffer(int width, int height, int sampl + // format and in the output image search for the above color and + // replaces it with the color requested by the user. + #if defined(HAVE_QT5_OPENGL) +- //fboFormat.setInternalTextureFormat(GL_RGBA32F_ARB); +- fboFormat.setInternalTextureFormat(GL_RGB32F_ARB); ++ //fboFormat.setInternalTextureFormat(GL_RGBA32F); ++ fboFormat.setInternalTextureFormat(GL_RGB32F); + #else + //fboFormat.setInternalTextureFormat(GL_RGBA); + fboFormat.setInternalTextureFormat(GL_RGB); +-- +2.20.1 + diff --git a/0001-find-openmpi2-include-files.patch b/0001-find-openmpi2-include-files.patch deleted file mode 100644 index 24d6e78..0000000 --- a/0001-find-openmpi2-include-files.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/CMakeLists.txt b/CMakeLists.txt -index 3ecfe23a6..1db9bf33e 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -717,7 +717,7 @@ endif(${CMAKE_SYSTEM_NAME} MATCHES "Darwin") - add_compile_options(${OPENMPI_CFLAGS}) - link_directories(${OPENMPI_LIBRARY_DIRS}) - link_libraries(${OPENMPI_LIBRARIES}) -- find_file(MpidotH mpi.h PATHS ${OPENMPI_INCLUDE_DIRS} NO_DEFAULT_PATH) -+ find_file(MpidotH mpi.h PATHS ${OPENMPI_INCLUDE_DIRS} /usr/lib64/mpi/gcc/openmpi2/include NO_DEFAULT_PATH) - if(NOT MpidotH) - message( WARNING "mpi.h was not found. Check for error above.") - endif() diff --git a/FreeCAD-0.17.1545162057.e1db7bff8.obscpio b/FreeCAD-0.17.1545162057.e1db7bff8.obscpio index 8bb3f9e..07f21a3 100644 --- a/FreeCAD-0.17.1545162057.e1db7bff8.obscpio +++ b/FreeCAD-0.17.1545162057.e1db7bff8.obscpio @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:74d557629532bc687e84361b13686888667c14368a6fda9990f42e8a90338405 +oid sha256:75cc39c6441ad3c0d1a8dfe58910ec6a3f80c5076d4bbf624c2090d341f07f71 size 385254927 diff --git a/FreeCAD-test.changes b/FreeCAD-test.changes index dd9d773..e62a88a 100644 --- a/FreeCAD-test.changes +++ b/FreeCAD-test.changes @@ -1,3 +1,9 @@ +------------------------------------------------------------------- +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 diff --git a/FreeCAD-test.spec b/FreeCAD-test.spec index 2b3f3cb..d3643f6 100644 --- a/FreeCAD-test.spec +++ b/FreeCAD-test.spec @@ -25,6 +25,9 @@ Group: Productivity/Graphics/CAD Url: http://www.freecadweb.org/ BuildRequires: FreeCAD +# 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. diff --git a/FreeCAD.changes b/FreeCAD.changes index e59bbdd..ae7aae5 100644 --- a/FreeCAD.changes +++ b/FreeCAD.changes @@ -1,3 +1,20 @@ +------------------------------------------------------------------- +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 diff --git a/FreeCAD.spec b/FreeCAD.spec index 30f8c1b..263c5cd 100644 --- a/FreeCAD.spec +++ b/FreeCAD.spec @@ -31,8 +31,6 @@ Source2: FreeCADCmd.sh Source3: FreeCAD_shared_mimeinfo # python3 and generic compile fixes Patch1: fix-build.diff -# support for openmpi2 suse package -Patch2: 0001-find-openmpi2-include-files.patch # runtime fix, submitted upstream Patch3: fix-draft-module-with-python3.patch # PATCH-FIX-UPSTREAM -- fix-build-with-Qt5_11.diff @@ -41,16 +39,21 @@ Patch4: fix-build-with-Qt5_11.diff Patch5: get-rid-of-private-function-_PyImport_FixupBuiltin-for-__FreeCADBase__-module.patch # PATCH-FIX-UPSTREAM -- https://github.com/FreeCAD/FreeCAD/commit/b79e1bfee Patch6: get-rid-of-private-function-_PyImport_FixupBuiltin-for-FreeCAD-and-FreeCADGui-modules.patch +# PATCH-FIX-OPENSUSE - fix building on ARM with GLES Qt5 +Patch7: 0001-Use-GL_RGB32F-instead-of-GL_RGB32F_ARB.patch +# PATCH-FIX-UPSTREAM -- https://github.com/FreeCAD/FreeCAD/commit/5ff383b46.patch +Patch8: fix-gcc8-build-failure.patch + +# Test suite fails on 32bit and I don't want to debug that anymore +ExcludeArch: %ix86 %arm ppc s390 s390x + BuildRequires: Coin-devel #BuildRequires: SoQt-devel -#BuildRequires: libmed-devel # needed for FEM module, but requires older hdf5 lib +BuildRequires: hdf5-devel +BuildRequires: libmed-devel # we use upstream OpenCASCADE instead of oce atm -#BuildRequires: hdf5-1_8-devel -#BuildRequires: hdf5-1_8-openmpi-devel BuildRequires: occt-devel BuildRequires: vtk-devel -BuildRequires: vtk-java -BuildRequires: vtk-tcl #BuildRequires: smesh-devel %if 0%{?suse_version} >= 1330 @@ -79,7 +82,6 @@ BuildRequires: pkg-config %if 0%{?suse_version} >= 1330 # Qt5 & python3 -BuildRequires: openmpi2-devel BuildRequires: python3-devel BuildRequires: python3-matplotlib BuildRequires: python3-pyside2-devel @@ -142,7 +144,10 @@ Requires(postun): shared-mime-info Recommends: ccx %description -FreeCAD is a parametric 3D modeler made primarily to design real-life objects of any size. Parametric modeling allows you to easily modify your design by going back into your model history and changing its parameters. FreeCAD is open-source and highly customizable, scriptable and extensible. +FreeCAD is a parametric 3D modeler made primarily to design real-life objects +of any size. Parametric modeling allows you to easily modify your design by +going back into your model history and changing its parameters. FreeCAD is +open-source and highly customizable, scriptable and extensible. %package devel @@ -201,7 +206,7 @@ cmake \ -DFREECAD_USE_EXTERNAL_PIVY:BOOL=TRUE \ -DBUILD_MESH_PART:BOOL=ON \ -DBUILD_OPENSCAD:BOOL=ON \ - -DBUILD_FEM:BOOL=OFF \ + -DBUILD_FEM:BOOL=ON \ -DBUILD_FEM_NETGEN:BOOL=OFF \ -DFREECAD_USE_EXTERNAL_SMESH=OFF \ .. @@ -294,6 +299,8 @@ ln -s -t %{buildroot}/usr/bin %{x_prefix}/bin/FreeCADCmd %mime_database_postun %files +%license COPYING +%doc ChangeLog.txt README.md %{_bindir}/FreeCAD* %doc %{_docdir}/%{name}/ %{_libdir}/%{name} diff --git a/fix-gcc8-build-failure.patch b/fix-gcc8-build-failure.patch new file mode 100644 index 0000000..f6a791c --- /dev/null +++ b/fix-gcc8-build-failure.patch @@ -0,0 +1,22 @@ +From 5ff383b46ccb0645e890573e783f467068d2488d Mon Sep 17 00:00:00 2001 +From: wmayer +Date: Fri, 2 Nov 2018 18:57:43 +0100 +Subject: [PATCH] fix gcc8 build failure + +--- + src/3rdParty/salomesmesh/inc/StdMeshers_ProjectionUtils.hxx | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/3rdParty/salomesmesh/inc/StdMeshers_ProjectionUtils.hxx b/src/3rdParty/salomesmesh/inc/StdMeshers_ProjectionUtils.hxx +index d31e72147cd..f7f9d323149 100644 +--- a/src/3rdParty/salomesmesh/inc/StdMeshers_ProjectionUtils.hxx ++++ b/src/3rdParty/salomesmesh/inc/StdMeshers_ProjectionUtils.hxx +@@ -30,7 +30,7 @@ + + #include "SMESH_StdMeshers.hxx" + +-#include "SMDS_MeshElement.hxx" ++#include "SMDS_MeshNode.hxx" + + #include + #include