Accepting request 766666 from home:adrianSuSE:branches:science

- fix build with new gcc and Qt 5.14
  (0002-fix-compile.patch 0003-qt-5.14.patch)

OBS-URL: https://build.opensuse.org/request/show/766666
OBS-URL: https://build.opensuse.org/package/show/science/FreeCAD?expand=0&rev=97
This commit is contained in:
Adrian Schröter 2020-01-23 16:46:17 +00:00 committed by Git OBS Bridge
parent 92b1587a0c
commit 7cc20a796a
5 changed files with 369 additions and 4 deletions

278
0002-fix-compile.patch Normal file
View File

@ -0,0 +1,278 @@
diff --git a/src/3rdParty/salomesmesh/inc/Rn.h b/src/3rdParty/salomesmesh/inc/Rn.h
index 6ec871d93..e92d2275a 100644
--- a/src/3rdParty/salomesmesh/inc/Rn.h
+++ b/src/3rdParty/salomesmesh/inc/Rn.h
@@ -180,12 +180,12 @@ class R4: public R3
{
friend std::ostream& operator <<(std::ostream& f, const R4 & P )
{ f << P.x << ' ' << P.y << ' ' << P.z << ' ' << P.omega; return f; }
- friend istream& operator >>(istream& f, R4 & P)
+ friend std::istream& operator >>(std::istream& f, R4 & P)
{ f >> P.x >> P.y >> P.z >> P.omega ; return f; }
friend std::ostream& operator <<(std::ostream& f, const R4 * P )
{ f << P->x << ' ' << P->y << ' ' << P->z << ' ' << P->omega; return f; }
- friend istream& operator >>(istream& f, R4 * P)
+ friend std::istream& operator >>(std::istream& f, R4 * P)
{ f >> P->x >> P->y >> P->z >> P->omega ; return f; }
public:
diff --git a/src/Mod/Drawing/App/DrawingExport.cpp b/src/Mod/Drawing/App/DrawingExport.cpp
index 0c3c23231..550b12c25 100644
--- a/src/Mod/Drawing/App/DrawingExport.cpp
+++ b/src/Mod/Drawing/App/DrawingExport.cpp
@@ -81,6 +81,7 @@
#include <Base/Vector3D.h>
using namespace Drawing;
+using namespace std;
TopoDS_Edge DrawingOutput::asCircle(const BRepAdaptor_Curve& c) const
{
diff --git a/src/Mod/Part/App/Geometry.cpp b/src/Mod/Part/App/Geometry.cpp
index c206bfb63..8403ff29f 100644
--- a/src/Mod/Part/App/Geometry.cpp
+++ b/src/Mod/Part/App/Geometry.cpp
@@ -203,7 +203,7 @@ unsigned int Geometry::getMemSize (void) const
void Geometry::Save(Base::Writer &writer) const
{
const char c = Construction?'1':'0';
- writer.Stream() << writer.ind() << "<Construction value=\"" << c << "\"/>" << endl;
+ writer.Stream() << writer.ind() << "<Construction value=\"" << c << "\"/>" << std::endl;
}
void Geometry::Restore(Base::XMLReader &reader)
@@ -323,7 +323,7 @@ void GeomPoint::Save(Base::Writer &writer) const
<< "X=\"" << Point.x <<
"\" Y=\"" << Point.y <<
"\" Z=\"" << Point.z <<
- "\"/>" << endl;
+ "\"/>" << std::endl;
}
void GeomPoint::Restore(Base::XMLReader &reader)
@@ -793,7 +793,7 @@ void GeomBezierCurve::Save(Base::Writer& writer) const
<< writer.ind()
<< "<BezierCurve "
<< "PolesCount=\"" << poles.size() <<
- "\">" << endl;
+ "\">" << std::endl;
writer.incInd();
@@ -808,11 +808,11 @@ void GeomBezierCurve::Save(Base::Writer& writer) const
"\" Y=\"" << (*itp).y <<
"\" Z=\"" << (*itp).z <<
"\" Weight=\"" << (*itw) <<
- "\"/>" << endl;
+ "\"/>" << std::endl;
}
writer.decInd();
- writer.Stream() << writer.ind() << "</BezierCurve>" << endl ;
+ writer.Stream() << writer.ind() << "</BezierCurve>" << std::endl ;
}
void GeomBezierCurve::Restore(Base::XMLReader& reader)
@@ -1270,7 +1270,7 @@ void GeomBSplineCurve::Save(Base::Writer& writer) const
"\" KnotsCount=\"" << knots.size() <<
"\" Degree=\"" << degree <<
"\" IsPeriodic=\"" << (int) isperiodic <<
- "\">" << endl;
+ "\">" << std::endl;
writer.incInd();
@@ -1285,7 +1285,7 @@ void GeomBSplineCurve::Save(Base::Writer& writer) const
"\" Y=\"" << (*itp).y <<
"\" Z=\"" << (*itp).z <<
"\" Weight=\"" << (*itw) <<
- "\"/>" << endl;
+ "\"/>" << std::endl;
}
std::vector<double>::const_iterator itk;
@@ -1297,11 +1297,11 @@ void GeomBSplineCurve::Save(Base::Writer& writer) const
<< "<Knot "
<< "Value=\"" << (*itk)
<< "\" Mult=\"" << (*itm) <<
- "\"/>" << endl;
+ "\"/>" << std::endl;
}
writer.decInd();
- writer.Stream() << writer.ind() << "</BSplineCurve>" << endl ;
+ writer.Stream() << writer.ind() << "</BSplineCurve>" << std::endl ;
}
void GeomBSplineCurve::Restore(Base::XMLReader& reader)
@@ -1903,7 +1903,7 @@ void GeomCircle::Save(Base::Writer& writer) const
"\" NormalZ=\"" << normal.Z() <<
"\" AngleXU=\"" << AngleXU <<
"\" Radius=\"" << this->myCurve->Radius() <<
- "\"/>" << endl;
+ "\"/>" << std::endl;
}
void GeomCircle::Restore(Base::XMLReader& reader)
@@ -2132,7 +2132,7 @@ void GeomArcOfCircle::Save(Base::Writer &writer) const
"\" Radius=\"" << circle->Radius() <<
"\" StartAngle=\"" << this->myCurve->FirstParameter() <<
"\" EndAngle=\"" << this->myCurve->LastParameter() <<
- "\"/>" << endl;
+ "\"/>" << std::endl;
}
void GeomArcOfCircle::Restore(Base::XMLReader &reader)
@@ -2383,7 +2383,7 @@ void GeomEllipse::Save(Base::Writer& writer) const
<< "MajorRadius=\"" << this->myCurve->MajorRadius() << "\" "
<< "MinorRadius=\"" << this->myCurve->MinorRadius() << "\" "
<< "AngleXU=\"" << AngleXU << "\" "
- << "/>" << endl;
+ << "/>" << std::endl;
}
void GeomEllipse::Restore(Base::XMLReader& reader)
@@ -2653,7 +2653,7 @@ void GeomArcOfEllipse::Save(Base::Writer &writer) const
<< "AngleXU=\"" << AngleXU << "\" "
<< "StartAngle=\"" << this->myCurve->FirstParameter() << "\" "
<< "EndAngle=\"" << this->myCurve->LastParameter() << "\" "
- << "/>" << endl;
+ << "/>" << std::endl;
}
void GeomArcOfEllipse::Restore(Base::XMLReader &reader)
@@ -2826,7 +2826,7 @@ void GeomHyperbola::Save(Base::Writer& writer) const
<< "MajorRadius=\"" << this->myCurve->MajorRadius() << "\" "
<< "MinorRadius=\"" << this->myCurve->MinorRadius() << "\" "
<< "AngleXU=\"" << AngleXU << "\" "
- << "/>" << endl;
+ << "/>" << std::endl;
}
void GeomHyperbola::Restore(Base::XMLReader& reader)
@@ -3083,7 +3083,7 @@ void GeomArcOfHyperbola::Save(Base::Writer &writer) const
<< "AngleXU=\"" << AngleXU << "\" "
<< "StartAngle=\"" << this->myCurve->FirstParameter() << "\" "
<< "EndAngle=\"" << this->myCurve->LastParameter() << "\" "
- << "/>" << endl;
+ << "/>" << std::endl;
}
void GeomArcOfHyperbola::Restore(Base::XMLReader &reader)
@@ -3236,7 +3236,7 @@ void GeomParabola::Save(Base::Writer& writer) const
<< "NormalZ=\"" << normal.Z() << "\" "
<< "Focal=\"" << this->myCurve->Focal() << "\" "
<< "AngleXU=\"" << AngleXU << "\" "
- << "/>" << endl;
+ << "/>" << std::endl;
}
void GeomParabola::Restore(Base::XMLReader& reader)
@@ -3436,7 +3436,7 @@ void GeomArcOfParabola::Save(Base::Writer &writer) const
<< "AngleXU=\"" << AngleXU << "\" "
<< "StartAngle=\"" << this->myCurve->FirstParameter() << "\" "
<< "EndAngle=\"" << this->myCurve->LastParameter() << "\" "
- << "/>" << endl;
+ << "/>" << std::endl;
}
void GeomArcOfParabola::Restore(Base::XMLReader &reader)
@@ -3581,7 +3581,7 @@ void GeomLine::Save(Base::Writer &writer) const
"\" DirX=\"" << Dir.x <<
"\" DirY=\"" << Dir.y <<
"\" DirZ=\"" << Dir.z <<
- "\"/>" << endl;
+ "\"/>" << std::endl;
}
void GeomLine::Restore(Base::XMLReader &reader)
{
@@ -3722,7 +3722,7 @@ void GeomLineSegment::Save (Base::Writer &writer) const
"\" EndX=\"" << End.x <<
"\" EndY=\"" << End.y <<
"\" EndZ=\"" << End.z <<
- "\"/>" << endl;
+ "\"/>" << std::endl;
}
void GeomLineSegment::Restore (Base::XMLReader &reader)
diff --git a/src/Mod/Part/App/Geometry2d.cpp b/src/Mod/Part/App/Geometry2d.cpp
index fb1de909c..979465533 100644
--- a/src/Mod/Part/App/Geometry2d.cpp
+++ b/src/Mod/Part/App/Geometry2d.cpp
@@ -83,6 +83,7 @@
#include <Mod/Part/App/Geom2d/OffsetCurve2dPy.h>
using namespace Part;
+using namespace std;
extern const char* gce_ErrorStatusText(gce_ErrorType et);
diff --git a/src/Mod/Part/App/PropertyTopoShape.cpp b/src/Mod/Part/App/PropertyTopoShape.cpp
index d590a8553..892e568d4 100644
--- a/src/Mod/Part/App/PropertyTopoShape.cpp
+++ b/src/Mod/Part/App/PropertyTopoShape.cpp
@@ -281,11 +281,11 @@ static void BRepTools_Write(const TopoDS_Shape& Sh, Standard_OStream& S) {
static Standard_Boolean BRepTools_Write(const TopoDS_Shape& Sh,
const Standard_CString File)
{
- ofstream os;
+ std::ofstream os;
#if OCC_VERSION_HEX >= 0x060800
- OSD_OpenStream(os, File, ios::out);
+ OSD_OpenStream(os, File, std::ios::out);
#else
- os.open(File, ios::out);
+ os.open(File, std::ios::out);
#endif
if (!os.rdbuf()->is_open()) return Standard_False;
diff --git a/src/Mod/Raytracing/App/AppRaytracingPy.cpp b/src/Mod/Raytracing/App/AppRaytracingPy.cpp
index d48c51c97..1bb2b1b01 100644
--- a/src/Mod/Raytracing/App/AppRaytracingPy.cpp
+++ b/src/Mod/Raytracing/App/AppRaytracingPy.cpp
@@ -40,6 +40,8 @@
#include <Mod/Part/App/TopoShapePy.h>
#include <App/Application.h>
+using namespace std;
+
namespace Raytracing {
class Module : public Py::ExtensionModule<Module>
diff --git a/src/Mod/Raytracing/App/LuxFeature.cpp b/src/Mod/Raytracing/App/LuxFeature.cpp
index 930fe12b7..d1e0a0089 100644
--- a/src/Mod/Raytracing/App/LuxFeature.cpp
+++ b/src/Mod/Raytracing/App/LuxFeature.cpp
@@ -38,6 +38,7 @@
using namespace Raytracing;
+using namespace std;
PROPERTY_SOURCE(Raytracing::LuxFeature, Raytracing::RaySegment)
diff --git a/src/Mod/Raytracing/App/RayFeature.cpp b/src/Mod/Raytracing/App/RayFeature.cpp
index cdd2cb6dc..235a98685 100644
--- a/src/Mod/Raytracing/App/RayFeature.cpp
+++ b/src/Mod/Raytracing/App/RayFeature.cpp
@@ -36,6 +36,7 @@
using namespace Raytracing;
+using namespace std;
PROPERTY_SOURCE(Raytracing::RayFeature, Raytracing::RaySegment)
diff --git a/src/Mod/TechDraw/App/Geometry.cpp b/src/Mod/TechDraw/App/Geometry.cpp
index 123be7979..16e7487ee 100644
--- a/src/Mod/TechDraw/App/Geometry.cpp
+++ b/src/Mod/TechDraw/App/Geometry.cpp
@@ -75,6 +75,7 @@
using namespace TechDrawGeometry;
using namespace TechDraw;
+using namespace std;
// Collection of Geometric Features
Wire::Wire()

77
0003-qt-5.14.patch Normal file
View File

@ -0,0 +1,77 @@
commit 17ed2b196a58afbbc3cc1bb99f6eb76060171ad2
Author: howetuft <howetuft@gmail.com>
Date: Tue Dec 24 16:06:18 2019 +0100
[Cmake] Update FindPySide2Tools for PySide2 5.14 - issue #4229
Since PySide2 5.14, 'pyside2-rcc' and 'pyside2-uic' have been renamed into plain 'rcc' and 'uic'.
This leads FindPySide2Tools.cmake to no longer find rcc/uic, as reported in bug #4229 (https://www.freecadweb.org/tracker/view.php?id=4229) and prevents compilation.
FindPySide2Tools has been updated accordingly.
diff --git a/cMake/FindPySide2Tools.cmake b/cMake/FindPySide2Tools.cmake
index 9c9751488..7ca9690dc 100644
--- a/cMake/FindPySide2Tools.cmake
+++ b/cMake/FindPySide2Tools.cmake
@@ -20,8 +20,24 @@ if(WIN32 OR ${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
set(PYSIDE_BIN_DIR ${PYTHON_BIN_DIR})
endif(WIN32 OR ${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
-FIND_PROGRAM(PYSIDE2UICBINARY NAMES python2-pyside2-uic pyside2-uic pyside2-uic-${PYTHON_VERSION_MAJOR}.${PYTHON_VERSION_MINOR} HINTS ${PYSIDE_BIN_DIR})
-FIND_PROGRAM(PYSIDE2RCCBINARY NAMES pyside2-rcc pyside2-rcc-${PYTHON_VERSION_MAJOR}.${PYTHON_VERSION_MINOR} HINTS ${PYSIDE_BIN_DIR})
+# Since Qt v5.14, pyside2-uic and pyside2-rcc are directly provided by Qt5Core uic and rcc, with '-g python' option
+# We test Qt5Core version to act accordingly
+
+FIND_PACKAGE(Qt5Core)
+
+IF(Qt5Core_VERSION LESS 5.14)
+ # Legacy (< 5.14)
+ FIND_PROGRAM(PYSIDE2UICBINARY NAMES python2-pyside2-uic pyside2-uic pyside2-uic-${PYTHON_VERSION_MAJOR}.${PYTHON_VERSION_MINOR} HINTS ${PYSIDE_BIN_DIR})
+ FIND_PROGRAM(PYSIDE2RCCBINARY NAMES pyside2-rcc pyside2-rcc-${PYTHON_VERSION_MAJOR}.${PYTHON_VERSION_MINOR} HINTS ${PYSIDE_BIN_DIR})
+ set(UICOPTIONS "")
+ set(RCCOPTIONS "")
+ELSE(Qt5Core_VERSION LESS 5.14)
+ # New (>= 5.14)
+ FIND_PROGRAM(PYSIDE2UICBINARY NAMES uic-qt5 uic)
+ set(UICOPTIONS "--generator=python")
+ FIND_PROGRAM(PYSIDE2RCCBINARY NAMES rcc-qt5 rcc)
+ set(RCCOPTIONS "--generator=python" "--compress-algo=zlib" "--compress=1")
+ENDIF(Qt5Core_VERSION LESS 5.14)
MACRO(PYSIDE_WRAP_UI outfiles)
FOREACH(it ${ARGN})
@@ -33,7 +49,7 @@ MACRO(PYSIDE_WRAP_UI outfiles)
#)
if(WIN32 OR APPLE)
ADD_CUSTOM_COMMAND(OUTPUT ${outfile}
- COMMAND ${PYSIDE2UICBINARY} ${infile} -o ${outfile}
+ COMMAND ${PYSIDE2UICBINARY} ${UICOPTIONS} ${infile} -o ${outfile}
MAIN_DEPENDENCY ${infile}
)
else()
@@ -41,7 +57,7 @@ MACRO(PYSIDE_WRAP_UI outfiles)
# pyside2-uic generates in comments at beginning., which is why
# we follow the tool command with in-place sed.
ADD_CUSTOM_COMMAND(OUTPUT ${outfile}
- COMMAND "${PYSIDE2UICBINARY}" "${infile}" -o "${outfile}"
+ COMMAND "${PYSIDE2UICBINARY}" ${UICOPTIONS} "${infile}" -o "${outfile}"
COMMAND sed -i "/^# /d" "${outfile}"
MAIN_DEPENDENCY "${infile}"
)
@@ -60,7 +76,7 @@ MACRO(PYSIDE_WRAP_RC outfiles)
#)
if(WIN32 OR APPLE)
ADD_CUSTOM_COMMAND(OUTPUT ${outfile}
- COMMAND ${PYSIDE2RCCBINARY} ${infile} -o ${outfile}
+ COMMAND ${PYSIDE2RCCBINARY} ${RCCOPTIONS} ${infile} -o ${outfile}
MAIN_DEPENDENCY ${infile}
)
else()
@@ -68,7 +84,7 @@ MACRO(PYSIDE_WRAP_RC outfiles)
# pyside-rcc generates in comments at beginning, which is why
# we follow the tool command with in-place sed.
ADD_CUSTOM_COMMAND(OUTPUT "${outfile}"
- COMMAND "${PYSIDE2RCCBINARY}" "${infile}" ${PY_ATTRIBUTE} -o "${outfile}"
+ COMMAND "${PYSIDE2RCCBINARY}" ${RCCOPTIONS} "${infile}" ${PY_ATTRIBUTE} -o "${outfile}"
COMMAND sed -i "/^# /d" "${outfile}"
MAIN_DEPENDENCY "${infile}"
)

View File

@ -1,7 +1,7 @@
#
# spec file for package FreeCAD-test
#
# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany.
# Copyright (c) 2020 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@ -22,7 +22,7 @@ Release: 0
Summary: Meta source package that runs the FreeCAD testsuite when built
License: LGPL-2.0-or-later AND GPL-2.0-or-later
Group: Productivity/Graphics/CAD
Url: http://www.freecadweb.org/
URL: http://www.freecadweb.org/
BuildRequires: FreeCAD
BuildRequires: gmsh

View File

@ -1,3 +1,9 @@
-------------------------------------------------------------------
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>

View File

@ -1,7 +1,7 @@
#
# spec file for package FreeCAD
#
# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany.
# Copyright (c) 2020 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@ -32,7 +32,7 @@ Release: 0
Summary: General Purpose 3D CAD Modeler
License: LGPL-2.0-or-later AND GPL-2.0-or-later
Group: Productivity/Graphics/CAD
Url: https://www.freecadweb.org/
URL: https://www.freecadweb.org/
%if %{build_tar_ball}
Source0: %{name}-%version.tar.xz
%endif
@ -41,6 +41,10 @@ Source2: FreeCADCmd.sh
Source3: FreeCAD_shared_mimeinfo
# PATCH-FIX-UPSTREAM 0001-Fix-build-with-pyside2-shiboken2-5.12.1.patch -- Fix build with shiboken2/pyside2 >= 5.12.1
Patch1: 0001-Fix-build-with-pyside2-shiboken2-5.12.1.patch
# PATCH-FIX-UPSTREAM 0002-fix-compile.patch
Patch2: 0002-fix-compile.patch
# PATCH-FIX-OPENSUSE qt-5.14.patch
Patch3: 0003-qt-5.14.patch
# Test suite fails on 32bit and I don't want to debug that anymore
ExcludeArch: %ix86 %arm ppc s390 s390x