diff --git a/.gitignore b/.gitignore index 0100c04..7a885b7 100644 --- a/.gitignore +++ b/.gitignore @@ -2,3 +2,4 @@ # ignore fedpkg build artifacts /freecad-0.*.src.rpm +/freecad-0.14.3702.tar.gz diff --git a/freecad-0.13-OCE_0.13.patch b/freecad-0.13-OCE_0.13.patch deleted file mode 100644 index 97eaacd..0000000 --- a/freecad-0.13-OCE_0.13.patch +++ /dev/null @@ -1,20 +0,0 @@ -diff -Naur freecad-0.13.1830.orig/src/Mod/Part/App/TopoShapeSolidPyImp.cpp freecad-0.13.1830/src/Mod/Part/App/TopoShapeSolidPyImp.cpp ---- freecad-0.13.1830.orig/src/Mod/Part/App/TopoShapeSolidPyImp.cpp 2013-02-02 11:09:17.000000000 -0600 -+++ freecad-0.13.1830/src/Mod/Part/App/TopoShapeSolidPyImp.cpp 2013-09-23 09:33:05.009740932 -0500 -@@ -25,6 +25,7 @@ - - #include - #include -+#include - #include - #include - #include -@@ -178,7 +179,7 @@ - TopoDS_Shell shell; - const TopoDS_Shape& shape = getTopoShapePtr()->_Shape; - if (!shape.IsNull() && shape.ShapeType() == TopAbs_SOLID) -- shell = BRepTools::OuterShell(TopoDS::Solid(shape)); -+ shell = BRepClass3d::OuterShell(TopoDS::Solid(shape)); - return Py::Object(new TopoShapeShellPy(new TopoShape(shell)),true); - } - diff --git a/freecad-0.13-OCE_0.15.patch b/freecad-0.13-OCE_0.15.patch deleted file mode 100644 index 383798e..0000000 --- a/freecad-0.13-OCE_0.15.patch +++ /dev/null @@ -1,78 +0,0 @@ - .../Part/App/BRepOffsetAPI_MakePipeShellPyImp.cpp | 42 ++++++++++++++++++++-- - 1 file changed, 40 insertions(+), 2 deletions(-) - -diff --git a/src/Mod/Part/App/BRepOffsetAPI_MakePipeShellPyImp.cpp b/src/Mod/Part/App/BRepOffsetAPI_MakePipeShellPyImp.cpp -index 187bec3..bdc91c3 100644 ---- a/src/Mod/Part/App/BRepOffsetAPI_MakePipeShellPyImp.cpp -+++ b/src/Mod/Part/App/BRepOffsetAPI_MakePipeShellPyImp.cpp -@@ -29,6 +29,7 @@ - # include - # include - # include -+# include - # include - #endif - -@@ -111,6 +112,36 @@ PyObject* BRepOffsetAPI_MakePipeShellPy::setSpineSupport(PyObject *args) - - PyObject* BRepOffsetAPI_MakePipeShellPy::setAuxiliarySpine(PyObject *args) - { -+#if OCC_VERSION_HEX >= 0x060700 -+ PyObject *spine, *curv, *keep; -+ if (!PyArg_ParseTuple(args, "O!O!O!",&Part::TopoShapePy::Type,&spine -+ ,&PyBool_Type,&curv -+ ,&PyInt_Type,&keep)) -+ return 0; -+ const TopoDS_Shape& s = static_cast(spine)->getTopoShapePtr()->_Shape; -+ if (s.IsNull() || s.ShapeType() != TopAbs_WIRE) { -+ PyErr_SetString(PyExc_TypeError, "spine is not a wire"); -+ return 0; -+ } -+ -+ BRepFill_TypeOfContact typeOfCantact; -+ switch (PyLong_AsLong(keep)) { -+ case 1: -+ typeOfCantact = BRepFill_Contact; -+ break; -+ case 2: -+ typeOfCantact = BRepFill_ContactOnBorder; -+ break; -+ default: -+ typeOfCantact = BRepFill_NoContact; -+ break; -+ } -+ this->getBRepOffsetAPI_MakePipeShellPtr()->SetMode( -+ TopoDS::Wire(s), -+ PyObject_IsTrue(curv) ? Standard_True : Standard_False, -+ typeOfCantact); -+ Py_Return; -+#else - PyObject *spine, *curv, *keep; - if (!PyArg_ParseTuple(args, "O!O!O!",&Part::TopoShapePy::Type,&spine - ,&PyBool_Type,&curv -@@ -121,8 +152,13 @@ PyObject* BRepOffsetAPI_MakePipeShellPy::setAuxiliarySpine(PyObject *args) - PyErr_SetString(PyExc_TypeError, "spine is not a wire"); - return 0; - } -- this->getBRepOffsetAPI_MakePipeShellPtr()->SetMode(TopoDS::Wire(s), PyObject_IsTrue(curv), PyObject_IsTrue(keep)); -+ -+ this->getBRepOffsetAPI_MakePipeShellPtr()->SetMode( -+ TopoDS::Wire(s), -+ PyObject_IsTrue(curv) ? Standard_True : Standard_False, -+ PyObject_IsTrue(keep) ? Standard_True : Standard_False); - Py_Return; -+#endif - } - - PyObject* BRepOffsetAPI_MakePipeShellPy::add(PyObject *args) -@@ -133,7 +169,9 @@ PyObject* BRepOffsetAPI_MakePipeShellPy::add(PyObject *args) - ,&PyBool_Type,&keep)) - return 0; - const TopoDS_Shape& s = static_cast(prof)->getTopoShapePtr()->_Shape; -- this->getBRepOffsetAPI_MakePipeShellPtr()->Add(s, PyObject_IsTrue(curv), PyObject_IsTrue(keep)); -+ this->getBRepOffsetAPI_MakePipeShellPtr()->Add(s, -+ PyObject_IsTrue(curv) ? Standard_True : Standard_False, -+ PyObject_IsTrue(keep) ? Standard_True : Standard_False); - Py_Return; - } - diff --git a/freecad-0.13-pycxx.patch b/freecad-0.13-pycxx.patch deleted file mode 100644 index 25e5197..0000000 --- a/freecad-0.13-pycxx.patch +++ /dev/null @@ -1,189 +0,0 @@ -diff -Naur freecad-0.13.a057590.orig/CMakeLists.txt freecad-0.13.a057590/CMakeLists.txt ---- freecad-0.13.a057590.orig/CMakeLists.txt 2013-01-12 08:10:36.000000000 -0600 -+++ freecad-0.13.a057590/CMakeLists.txt 2013-01-17 16:04:52.117940071 -0600 -@@ -73,6 +73,13 @@ - SET(CMAKE_INSTALL_INCLUDEDIR include CACHE PATH "Output directory for header files") - SET(CMAKE_INSTALL_DOCDIR doc CACHE PATH "Output directory for documentation and license files") - -+SET(PYCXX_INCLUDE_DIR -+ "${CMAKE_CURRENT_LIST_DIR}/src" CACHE PATH -+ "Path to the directory containing PyCXX's CXX/Config.hxx include file") -+SET(PYCXX_SOURCE_DIR -+ "${CMAKE_CURRENT_LIST_DIR}/src/CXX" CACHE PATH -+ "Path to the directory containing PyCXX's cxxextensions.c source file") -+ - # used as compiler defines - SET(RESOURCEDIR "${CMAKE_INSTALL_DATADIR}") - SET(DOCDIR "${CMAKE_INSTALL_DOCDIR}") -@@ -201,6 +208,10 @@ - - find_package(ZLIB REQUIRED) - -+# -------------------------------- PyCXX -------------------------------- -+ -+ find_package(PyCXX REQUIRED) -+ - # -------------------------------- OpenCasCade -------------------------------- - - #first, look for OpenCASCADE Community Edition (OCE) -diff -Naur freecad-0.13.a057590.orig/src/Base/CMakeLists.txt freecad-0.13.a057590/src/Base/CMakeLists.txt ---- freecad-0.13.a057590.orig/src/Base/CMakeLists.txt 2013-01-12 08:10:36.000000000 -0600 -+++ freecad-0.13.a057590/src/Base/CMakeLists.txt 2013-01-17 16:06:36.985515701 -0600 -@@ -124,20 +124,6 @@ - SOURCE_GROUP("zipios" FILES ${zipios_SRCS}) - endif () - --SET(pycxx_SRCS -- ../CXX/Config.hxx -- ../CXX/cxxextensions.c -- ../CXX/cxx_extensions.cxx -- ../CXX/cxxsupport.cxx -- ../CXX/Exception.hxx -- ../CXX/Extensions.hxx -- ../CXX/IndirectPythonInterface.cxx -- ../CXX/IndirectPythonInterface.hxx -- ../CXX/Objects.hxx -- ../CXX/Version.hxx -- ../CXX/WrapPython.h --) --SOURCE_GROUP("pycxx" FILES ${pycxx_SRCS}) - - SET(FreeCADBase_XML_SRCS - AxisPy.xml -@@ -279,7 +265,6 @@ - ) - - SET(FreeCADBase_SRCS -- ${pycxx_SRCS} - ${FreeCADBase_CPP_SRCS} - ${FreeCADBase_HPP_SRCS} - ${FreeCADBase_XML_SRCS} -@@ -310,6 +295,9 @@ - list(APPEND FreeCADBase_SRCS ${zipios_SRCS}) - endif(FREECAD_USE_EXTERNAL_ZIPIOS) - -+include_directories(${PYCXX_INCLUDE_DIR}) -+list(APPEND FreeCADBase_SRCS ${PYCXX_SOURCES}) -+SOURCE_GROUP("pycxx" FILES ${PYCXX_SOURCES}) - - if(MSVC) - add_definitions(-D_PreComp_) -This patch adds an option to FreeCAD's cmake to specify an external -PyCXX. PyCXX doesn't really have a standard location, so this will try -to guess a couple of places, but best is to specify on the cmake command -line: - -cmake -DPYCXX_INCLUDE_DIR=/usr/include/python2.7 \ - -DPYCXX_SOURCE_DIR=/usr/share/python2.7/CXX - -diff -ruN FreeCAD-0.12.5284.orig/cMake/FindPyCXX.cmake FreeCAD-0.12.5284/cMake/FindPyCXX.cmake ---- FreeCAD-0.12.5284.orig/cMake/FindPyCXX.cmake 1969-12-31 18:00:00.000000000 -0600 -+++ FreeCAD-0.12.5284/cMake/FindPyCXX.cmake 2012-06-25 01:30:25.000000000 -0500 -@@ -0,0 +1,107 @@ -+# Locate PyCXX headers and source files -+ -+# This module defines -+# PYCXX_INCLUDE_DIR -+# PYCXX_SOURCE_DIR -+# PYCXX_FOUND -+# PYCXX_SOURCES -+# -+# The PYCXX_*_DIR variables can be set to tell this module where -+# the files are. -+ -+ -+# There's no standard location for PyCXX. -+# -+# The authors' example is to put it in "~\" [sic]. -+# -+# Ubuntu puts the includes into /usr/include/python2.7/CXX and sources into -+# /usr/share/python2.7/CXX. -+# -+# The Zultron Fedora RPM does the same as Ubuntu. -+ -+set(PYCXX_FOUND "YES") -+ -+# find the header directory -+if(PYCXX_INCLUDE_DIR) -+ # headers better be in there -+ if(NOT EXISTS "${PYCXX_INCLUDE_DIR}/CXX/Config.hxx") -+ if(PYCXX_FIND_REQUIRED) -+ MESSAGE(FATAL_ERROR -+ "PyCXX: could not find CXX/Config.hxx in PYCXX_INCLUDE_DIR " -+ "${PYCXX_INCLUDE_DIR}") -+ else(PYCXX_FIND_REQUIRED) -+ MESSAGE(WARNING -+ "PyCXX: could not find CXX/Config.hxx in PYCXX_INCLUDE_DIR " -+ "${PYCXX_INCLUDE_DIR}") -+ unset(PYCXX_FOUND) -+ endif(PYCXX_FIND_REQUIRED) -+ endif(NOT EXISTS "${PYCXX_INCLUDE_DIR}/CXX/Config.hxx") -+else(PYCXX_INCLUDE_DIR) -+ # check in 'standard' places -+ find_path(PYCXX_INCLUDE_DIR CXX/Config.hxx -+ ${PYTHON_INCLUDE_DIR} -+ "${CMAKE_CURRENT_LIST_DIR}/..") -+ if(NOT PYCXX_INCLUDE_DIR) -+ if(PYCXX_FIND_REQUIRED) -+ MESSAGE(FATAL_ERROR -+ "PyCXX not found; please set PYCXX_INCLUDE_DIR to " -+ "the location of CXX/Config.hxx") -+ else(PYCXX_FIND_REQUIRED) -+ MESSAGE(STATUS "PyCXX not found") -+ unset(PYCXX_FOUND) -+ endif(PYCXX_FIND_REQUIRED) -+ endif(NOT PYCXX_INCLUDE_DIR) -+endif(PYCXX_INCLUDE_DIR) -+ -+# find the sources directory -+if(PYCXX_SOURCE_DIR) -+ # source directory specified, they'd better be there -+ if(NOT EXISTS "${PYCXX_SOURCE_DIR}/cxxextensions.c") -+ if(PYCXX_FIND_REQUIRED) -+ MESSAGE(FATAL_ERROR -+ "PyCXX: cxxextensions.c not found in PYCXX_INCLUDE_DIR " -+ "${PYCXX_INCLUDE_DIR}") -+ else(PYCXX_FIND_REQUIRED) -+ MESSAGE(WARNING -+ "PyCXX: cxxextensions.c not found in PYCXX_INCLUDE_DIR " -+ "${PYCXX_INCLUDE_DIR}") -+ unset(PYCXX_FOUND) -+ endif(PYCXX_FIND_REQUIRED) -+ endif(NOT EXISTS "${PYCXX_SOURCE_DIR}/cxxextensions.c") -+else(PYCXX_SOURCE_DIR) -+ # check in 'standard' places -+ find_path(PYCXX_SOURCE_DIR cxxextensions.c -+ "${PYCXX_INCLUDE_DIR}/CXX" -+ "${PYCXX_INCLUDE_DIR}/Src" -+ "${PYTHON_INCLUDE_DIR}/CXX" -+ "${PYTHON_INCLUDE_DIR}/Src" -+ "${CMAKE_CURRENT_LIST_DIR}/../Src" -+ "${CMAKE_CURRENT_LIST_DIR}/../CXX") -+ if(NOT PYCXX_SOURCE_DIR) -+ if(PYCXX_FIND_REQUIRED) -+ MESSAGE(FATAL_ERROR -+ "PyCXX not found; please set PYCXX_SOURCE_DIR to " -+ "the location of cxxextensions.c") -+ else(PYCXX_FIND_REQUIRED) -+ MESSAGE(STATUS "PyCXX not found") -+ unset(PYCXX_FOUND) -+ endif(PYCXX_FIND_REQUIRED) -+ endif(NOT PYCXX_SOURCE_DIR) -+endif(PYCXX_SOURCE_DIR) -+ -+# see what we've got -+if(PYCXX_FOUND) -+ MESSAGE(STATUS "PyCXX found:") -+ MESSAGE(STATUS " Headers: ${PYCXX_INCLUDE_DIR}") -+ MESSAGE(STATUS " Sources: ${PYCXX_SOURCE_DIR}") -+ -+ # Build the list of sources for convenience -+ set(PYCXX_SOURCES -+ ${PYCXX_SOURCE_DIR}/cxxextensions.c -+ ${PYCXX_SOURCE_DIR}/cxx_extensions.cxx -+ ${PYCXX_SOURCE_DIR}/cxxsupport.cxx -+ ${PYCXX_SOURCE_DIR}/IndirectPythonInterface.cxx -+ ) -+else(PYCXX_FOUND) -+ MESSAGE(STATUS "PyCXX not found") -+endif(PYCXX_FOUND) diff --git a/freecad-0.13-qt4_cmake.patch b/freecad-0.13-qt4_cmake.patch deleted file mode 100644 index 0b0f139..0000000 --- a/freecad-0.13-qt4_cmake.patch +++ /dev/null @@ -1,130 +0,0 @@ -diff -Naur freecad-0.13.1830.orig/cMake/FreeCadMacros.cmake freecad-0.13.1830.qt4/cMake/FreeCadMacros.cmake ---- freecad-0.13.1830.orig/cMake/FreeCadMacros.cmake 2013-02-02 11:09:17.000000000 -0600 -+++ freecad-0.13.1830.qt4/cMake/FreeCadMacros.cmake 2014-01-13 18:32:47.637368958 -0600 -@@ -167,67 +167,48 @@ - # - #endmacro(qt4_wrap_ui) - -- --# This is a special version of the built in macro qt4_add_resources that generates .cpp files --# --#macro(fc_add_resources outfiles ) --# #QT4_EXTRACT_OPTIONS(rcc_files rcc_options ${ARGN}) --# set(ARGN ) --# foreach (it ${rcc_files}) --# get_filename_component(outfilename ${it} NAME_WE) --# get_filename_component(infile ${it} ABSOLUTE) --# get_filename_component(rc_path ${infile} PATH) --# set(outfile ${CMAKE_CURRENT_BINARY_DIR}/qrc_${outfilename}.cpp) --# # parse file for dependencies --# # all files are absolute paths or relative to the location of the qrc file --# file(READ "${infile}" _RC_FILE_CONTENTS) --# string(REGEX MATCHALL "]*>" "" _RC_FILE "${_RC_FILE}") --# string(REGEX MATCH "^/|([A-Za-z]:/)" _ABS_PATH_INDICATOR "${_RC_FILE}") --# if(NOT _ABS_PATH_INDICATOR) --# set(_RC_FILE "${rc_path}/${_RC_FILE}") --# endif(NOT _ABS_PATH_INDICATOR) --# set(_RC_DEPENDS ${_RC_DEPENDS} "${_RC_FILE}") --# endforeach(_RC_FILE) --# add_custom_command(OUTPUT ${outfile} --# COMMAND ${QT_RCC_EXECUTABLE} --# ARGS ${rcc_options} -name ${outfilename} -o ${outfile} ${infile} --# MAIN_DEPENDENCY ${infile} --# DEPENDS ${_RC_DEPENDS}) --# set(${outfiles} ${${outfiles}} ${outfile}) --# endforeach (it) --#endmacro(fc_add_resources) -- - MACRO (fc_add_resources outfiles ) -- QT4_EXTRACT_OPTIONS(rcc_files rcc_options ${ARGN}) -+ QT4_EXTRACT_OPTIONS(rcc_files rcc_options rcc_target ${ARGN}) -+ -+ foreach (it ${rcc_files}) -+ get_filename_component(outfilename ${it} NAME_WE) -+ get_filename_component(infile ${it} ABSOLUTE) -+ get_filename_component(rc_path ${infile} PATH) -+ set(outfile ${CMAKE_CURRENT_BINARY_DIR}/qrc_${outfilename}.cpp) -+ -+ set(_RC_DEPENDS) -+ if(EXISTS "${infile}") -+ # parse file for dependencies -+ # all files are absolute paths or relative to the location of the qrc file -+ file(READ "${infile}" _RC_FILE_CONTENTS) -+ string(REGEX MATCHALL "]*>" "" _RC_FILE "${_RC_FILE}") -+ if(NOT IS_ABSOLUTE "${_RC_FILE}") -+ set(_RC_FILE "${rc_path}/${_RC_FILE}") -+ endif() -+ set(_RC_DEPENDS ${_RC_DEPENDS} "${_RC_FILE}") -+ endforeach() -+ unset(_RC_FILES) -+ unset(_RC_FILE_CONTENTS) -+ # Since this cmake macro is doing the dependency scanning for these files, -+ # let's make a configured file and add it as a dependency so cmake is run -+ # again when dependencies need to be recomputed. -+ QT4_MAKE_OUTPUT_FILE("${infile}" "" "qrc.depends" out_depends) -+ configure_file("${infile}" "${out_depends}" COPY_ONLY) -+ else() -+ # The .qrc file does not exist (yet). Let's add a dependency and hope -+ # that it will be generated later -+ set(out_depends) -+ endif() - -- FOREACH (it ${rcc_files}) -- GET_FILENAME_COMPONENT(outfilename ${it} NAME_WE) -- GET_FILENAME_COMPONENT(infile ${it} ABSOLUTE) -- GET_FILENAME_COMPONENT(rc_path ${infile} PATH) -- SET(outfile ${CMAKE_CURRENT_BINARY_DIR}/qrc_${outfilename}.cpp) -- # parse file for dependencies -- # all files are absolute paths or relative to the location of the qrc file -- FILE(READ "${infile}" _RC_FILE_CONTENTS) -- STRING(REGEX MATCHALL "]*>" "" _RC_FILE "${_RC_FILE}") -- STRING(REGEX MATCH "^/|([A-Za-z]:/)" _ABS_PATH_INDICATOR "${_RC_FILE}") -- IF(NOT _ABS_PATH_INDICATOR) -- SET(_RC_FILE "${rc_path}/${_RC_FILE}") -- ENDIF(NOT _ABS_PATH_INDICATOR) -- SET(_RC_DEPENDS ${_RC_DEPENDS} "${_RC_FILE}") -- ENDFOREACH(_RC_FILE) -- ADD_CUSTOM_COMMAND(OUTPUT ${outfile} -+ add_custom_command(OUTPUT ${outfile} - COMMAND ${QT_RCC_EXECUTABLE} - ARGS ${rcc_options} -name ${outfilename} -o ${outfile} ${infile} - MAIN_DEPENDENCY ${infile} -- DEPENDS ${_RC_DEPENDS}) -- SET(${outfiles} ${${outfiles}} ${outfile}) -- ENDFOREACH (it) -+ DEPENDS ${_RC_DEPENDS} "${out_depends}" VERBATIM) -+ set(${outfiles} ${${outfiles}} ${outfile}) -+ endforeach () - - ENDMACRO (fc_add_resources) - -diff -Naur freecad-0.13.1830.orig/CMakeLists.txt freecad-0.13.1830.qt4/CMakeLists.txt ---- freecad-0.13.1830.orig/CMakeLists.txt 2014-01-10 10:56:16.648269370 -0600 -+++ freecad-0.13.1830.qt4/CMakeLists.txt 2014-01-13 18:27:18.895600935 -0600 -@@ -325,15 +325,15 @@ - macro(fc_wrap_cpp outfiles ) - # get include dirs - QT4_GET_MOC_FLAGS(moc_flags) -- QT4_EXTRACT_OPTIONS(moc_files moc_options ${ARGN}) -+ QT4_EXTRACT_OPTIONS(moc_files moc_options moc_target ${ARGN}) - # fixes bug 0000585: bug with boost 1.48 - SET(moc_options ${moc_options} -DBOOST_TT_HAS_OPERATOR_HPP_INCLUDED) - - foreach(it ${moc_files}) - get_filename_component(it ${it} ABSOLUTE) - QT4_MAKE_OUTPUT_FILE(${it} moc_ cpp outfile) -- QT4_CREATE_MOC_COMMAND(${it} ${outfile} "${moc_flags}" "${moc_options}") -- set(${outfiles} ${${outfiles}} ${outfile}) -+ QT4_CREATE_MOC_COMMAND(${it} ${outfile} "${moc_flags}" "${moc_options}" "${moc_target}") -+ list(APPEND outfiles ${outfile}) - add_file_dependencies(${it} ${outfile}) - endforeach(it) - endmacro(fc_wrap_cpp) diff --git a/freecad-0.14-Xlib_h.patch b/freecad-0.14-Xlib_h.patch new file mode 100644 index 0000000..72b6f0a --- /dev/null +++ b/freecad-0.14-Xlib_h.patch @@ -0,0 +1,11 @@ +diff -Naur freecad-0.14.3702.orig/src/Gui/CMakeLists.txt freecad-0.14.3702/src/Gui/CMakeLists.txt +--- freecad-0.14.3702.orig/src/Gui/CMakeLists.txt 2014-07-13 10:33:02.000000000 -0500 ++++ freecad-0.14.3702/src/Gui/CMakeLists.txt 2014-07-22 21:25:04.508664979 -0500 +@@ -57,6 +57,7 @@ + set(FreeCADGui_LIBS + ${FreeCADGui_LIBS} + ${SPNAV_LIBRARIES} ++ X11 + ) + ENDIF(SPNAV_FOUND) + diff --git a/freecad-0.14-smesh.patch b/freecad-0.14-smesh.patch new file mode 100644 index 0000000..cb19cab --- /dev/null +++ b/freecad-0.14-smesh.patch @@ -0,0 +1,51 @@ +diff -Naur freecad-0.14.3702.orig/CMakeLists.txt freecad-0.14.3702/CMakeLists.txt +--- freecad-0.14.3702.orig/CMakeLists.txt 2014-07-13 10:33:02.000000000 -0500 ++++ freecad-0.14.3702/CMakeLists.txt 2014-07-23 21:39:15.154360396 -0500 +@@ -474,7 +474,8 @@ + # Salome SMESH sources are under src/3rdParty now + IF(OCC_FOUND) + set(SMESH_INCLUDE_DIR ${CMAKE_SOURCE_DIR}/src/3rdParty/salomesmesh/inc) +- set(SMESH_LIBRARIES ++ set(SMESH_LIBRARIES "") ++ foreach(SMESH_LIB + StdMeshers + #MEFISTO2 + SMESH +@@ -485,6 +486,11 @@ + Driver + SMDS + ) ++ find_library(SMESH_${SMESH_LIB} ${SMESH_LIB} REQUIRED) ++ list(APPEND SMESH_LIBRARIES ${SMESH_${SMESH_LIB}}) ++ endforeach() ++ message(STATUS "Found SMESH library: ${SMESH_LIBRARIES}") ++ + set(SMESH_FOUND TRUE) + ENDIF(OCC_FOUND) + #find_package(SMESH) +diff -Naur freecad-0.14.3702.orig/src/Mod/Fem/App/CMakeLists.txt freecad-0.14.3702/src/Mod/Fem/App/CMakeLists.txt +--- freecad-0.14.3702.orig/src/Mod/Fem/App/CMakeLists.txt 2014-07-13 10:33:02.000000000 -0500 ++++ freecad-0.14.3702/src/Mod/Fem/App/CMakeLists.txt 2014-07-23 22:01:35.824497167 -0500 +@@ -39,8 +39,7 @@ + set(Fem_LIBS + Part + FreeCADApp +- StdMeshers +- SMESH ++ ${SMESH_LIBRARIES} + ) + endif(FREECAD_BUILD_FEM_NETGEN) + +diff -Naur freecad-0.14.3702.orig/src/Mod/MeshPart/App/CMakeLists.txt freecad-0.14.3702/src/Mod/MeshPart/App/CMakeLists.txt +--- freecad-0.14.3702.orig/src/Mod/MeshPart/App/CMakeLists.txt 2014-07-13 10:33:02.000000000 -0500 ++++ freecad-0.14.3702/src/Mod/MeshPart/App/CMakeLists.txt 2014-07-23 21:47:06.558048433 -0500 +@@ -39,8 +39,7 @@ + set(MeshPart_LIBS + Part + Mesh +- StdMeshers +- SMESH ++ ${SMESH_LIBRARIES} + ) + endif(FREECAD_BUILD_FEM_NETGEN) + diff --git a/freecad.spec b/freecad.spec index 25a00da..0de6133 100644 --- a/freecad.spec +++ b/freecad.spec @@ -1,12 +1,12 @@ # Maintainers: keep this list of plugins up to date # List plugins in %%{_libdir}/freecad/lib, less '.so' and 'Gui.so', here -%global plugins Assembly Complete Drawing Fem FreeCAD Image Import Inspection Mesh MeshPart Part Points QtUnit Raytracing ReverseEngineering Robot Sketcher Start Web +%global plugins Assembly Complete Drawing Fem FreeCAD Image Import Inspection Mesh MeshPart Part Points QtUnit Raytracing ReverseEngineering Robot Sketcher Start Web PartDesignGui _PartDesign # Some plugins go in the Mod folder instead of lib. Deal with those here: %global mod_plugins Mod/PartDesign # This revision is 0.13 final. -%global rev 1830 +%global rev 3702 # Use updated cmake package on EL builds. # Temporary workaround for cmake/boost bug: @@ -27,8 +27,8 @@ Name: freecad -Version: 0.13 -Release: 10%{?dist} +Version: 0.14 +Release: 1%{?dist} Summary: A general purpose 3D CAD modeler Group: Applications/Engineering @@ -39,13 +39,8 @@ Source101: freecad.desktop Source102: freecad.1 Patch0: freecad-3rdParty.patch -Patch1: freecad-0.13-pycxx.patch -# Patch to build against OCE 0.13 -Patch2: freecad-0.13-OCE_0.13.patch -# Patch to build with non-backward compatible change in QT4. -Patch3: freecad-0.13-qt4_cmake.patch -# Patch to build against OCE 0.15. -Patch4: freecad-0.13-OCE_0.15.patch +Patch1: freecad-0.14-Xlib_h.patch +Patch2: freecad-0.14-smesh.patch # Utilities @@ -84,6 +79,8 @@ BuildRequires: SoQt-devel #BuildRequires: ode-devel BuildRequires: xerces-c xerces-c-devel BuildRequires: libspnav-devel +BuildRequires: shiboken-devel +BuildRequires: python-pyside-devel #BuildRequires: opencv-devel %if ! %{bundled_smesh} BuildRequires: smesh-devel @@ -108,11 +105,10 @@ Obsoletes: %{name}-doc < 0.13-5 # python-pivy does not build on EPEL 6 ppc64. Requires: python-pivy %endif -Requires: PyQt4 +#Requires: PyQt4 Requires: hicolor-icon-theme Requires: python-matplotlib Requires: python-collada -Requires: qt-assistant # plugins and private shared libs in %%{_libdir}/freecad/lib are private; # prevent private capabilities being advertised in Provides/Requires @@ -150,12 +146,10 @@ Data files for FreeCAD %patch0 -p1 -b .3rdparty # Remove bundled pycxx if we're not using it %if ! %{bundled_pycxx} -%patch1 -p1 -b .pycxx rm -rf src/CXX %endif -%patch2 -p1 -b .port_oce -%patch3 -p1 -b .qt4_moc -%patch4 -p1 -b .oce_015 +%patch1 -p1 -b .Xlib_h +%patch2 -p1 -b .smesh %if ! %{bundled_zipios} rm -rf src/zipios++ @@ -177,11 +171,13 @@ rm -rf build && mkdir build && pushd build # Deal with cmake projects that tend to link excessively. LDFLAGS='-Wl,--as-needed -Wl,--no-undefined'; export LDFLAGS +# -DCMAKE_INSTALL_LIBDIR=%{_libdir}/%{name} \ + %cmake -DCMAKE_INSTALL_PREFIX=%{_libdir}/%{name} \ -DCMAKE_INSTALL_DATADIR=%{_datadir}/%{name} \ -DCMAKE_INSTALL_DOCDIR=%{_docdir}/%{name} \ -DCMAKE_INSTALL_INCLUDEDIR=%{_includedir} \ - -DRESOURCEDIR=%{_libdir}/freecad \ + -DRESOURCEDIR=%{_datadir}/%{name} \ -DCOIN3D_INCLUDE_DIR=%{_includedir}/Coin2 \ -DCOIN3D_DOC_PATH=%{_datadir}/Coin2/Coin \ -DFREECAD_USE_EXTERNAL_PIVY=TRUE \ @@ -301,6 +297,9 @@ fi %changelog +* Wed Jul 16 2014 Richard Shaw - 0.14-1 +- Update to latest upstream release. + * Mon Jun 23 2014 John Morris - 0.13-10 - Add Requires: qt-assistant for bz #1112045 diff --git a/sources b/sources index b5f546f..2a38388 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -13b8fddef12f5f8419dcf4adbab596eb freecad-0.13.1830.tar.gz +234747bdff47a62fd10cb902f3dd772b freecad-0.14.3702.tar.gz