rpms/freecad/devel freecad-0.13-pycxx.patch, NONE, 1.1 .cvsignore, 1.2, 1.3 freecad.spec, 1.4, 1.5 sources, 1.2, 1.3 freecad-0.12-OpenCASCADE-option.patch, 1.1, NONE freecad-0.12-pycxx.patch, 1.1, NONE freecad-0.12-rm_f2c.patch, 1.1, NONE freecad-0.12-zipios.patch, 1.1, NONE freecad-StartPage.patch, 1.1, NONE freecad-cmake_Mod_fix.patch, 1.1, NONE freecad-gcc-4.7.patch, 1.1, NONE freecad-glu.patch, 1.1, NONE freecad-system_inst.patch, 1.1, NONE

Richard Shaw hobbes1069 at rpmfusion.org
Mon Feb 18 19:20:09 CET 2013


Author: hobbes1069

Update of /cvs/nonfree/rpms/freecad/devel
In directory old02.ovh.rpmfusion.lan:/tmp/cvs-serv18976

Modified Files:
	.cvsignore freecad.spec sources 
Added Files:
	freecad-0.13-pycxx.patch 
Removed Files:
	freecad-0.12-OpenCASCADE-option.patch freecad-0.12-pycxx.patch 
	freecad-0.12-rm_f2c.patch freecad-0.12-zipios.patch 
	freecad-StartPage.patch freecad-cmake_Mod_fix.patch 
	freecad-gcc-4.7.patch freecad-glu.patch 
	freecad-system_inst.patch 
Log Message:
* Mon Feb 18 2013 Richard Shaw <hobbes1069 at gmail.com> - 0.13-1
- Update to latest upstream release.


freecad-0.13-pycxx.patch:
 FreeCAD-0.12.5284/cMake/FindPyCXX.cmake      |  107 +++++++++++++++++++++++++++
 freecad-0.13.a057590/CMakeLists.txt          |   11 ++
 freecad-0.13.a057590/src/Base/CMakeLists.txt |   18 ----
 3 files changed, 121 insertions(+), 15 deletions(-)

--- NEW FILE freecad-0.13-pycxx.patch ---
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)


Index: .cvsignore
===================================================================
RCS file: /cvs/nonfree/rpms/freecad/devel/.cvsignore,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- .cvsignore	7 Jul 2012 03:15:42 -0000	1.2
+++ .cvsignore	18 Feb 2013 18:20:09 -0000	1.3
@@ -1 +1 @@
-freecad-0.12.5284.tar.gz
+freecad-0.13.1830.tar.gz


Index: freecad.spec
===================================================================
RCS file: /cvs/nonfree/rpms/freecad/devel/freecad.spec,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- freecad.spec	23 Oct 2012 19:14:07 -0000	1.4
+++ freecad.spec	18 Feb 2013 18:20:09 -0000	1.5
@@ -1,12 +1,17 @@
 # Maintainers:  keep this list of plugins up to date
 # List plugins in %%{_libdir}/freecad/lib, less '.so' and 'Gui.so', here
-%global plugins Complete Drawing Fem FreeCAD Image Import Inspection Mesh MeshPart Part PartDesign 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
+
+# Some plugins go in the Mod folder instead of lib. Deal with those here:
+%global mod_plugins Mod/PartDesign
 
 # This revision is 0.12 final.
-%global svnrev 5284
+%global rev 1830
 
 # Use updated cmake package on EL builds.
-%if 0%{?rhel}
+# Temporary workaround for cmake/boost bug:
+# http://public.kitware.com/Bug/view.php?id=13446
+%if 0%{?el6}
 %global cmake %cmake28 -DBoost_NO_BOOST_CMAKE=ON
 %endif
 
@@ -22,8 +27,8 @@
 
 
 Name:           freecad
-Version:        0.12
-Release:        9%{?dist}
+Version:        0.13
+Release:        1%{?dist}
 Summary:        A general purpose 3D CAD modeler
 Group:          Applications/Engineering
 
@@ -31,45 +36,26 @@
 # on OCE which is considered non-free.
 License:        GPLv3+ with exception
 URL:            http://sourceforge.net/apps/mediawiki/free-cad/
-Source0:        http://downloads.sourceforge.net/free-cad/%{name}-%{version}.%{svnrev}.tar.gz
+Source0:        http://downloads.sourceforge.net/free-cad/%{name}-%{version}.%{rev}.tar.gz
 Source101:      freecad.desktop
 Source102:      freecad.1
 
-# Patches 0 & 2 accepted upstream.
-# https://sourceforge.net/apps/mantisbt/free-cad/view.php?id=519
-# Fix a bunch of rpath issues and other tweaks.
-Patch0:         freecad-system_inst.patch
-# Remove bundled libs from cmake configuration.
-Patch1:         freecad-3rdParty.patch
-# Fix incomplete cmake config.
-Patch2:         freecad-StartPage.patch
-# Fixed in svn
-Patch3:         freecad-glu.patch
-# Disable unfinished modules.
-Patch4:         freecad-cmake_Mod_fix.patch
-# Unbundle zipios++
-Patch5:         freecad-0.12-zipios.patch
-# Patch for gcc 4.7
-Patch6:         freecad-gcc-4.7.patch
-# Add build option for OpenCASCADE
-Patch7:         freecad-0.12-OpenCASCADE-option.patch
-# Unbundle PyCXX
-Patch8:         freecad-0.12-pycxx.patch
-# f2c is only needed for smesh, and maybe not even there
-Patch9:         freecad-0.12-rm_f2c.patch
+Patch0:         freecad-3rdParty.patch
+Patch1:         freecad-0.13-pycxx.patch
 
 
 # Utilities
-%if (0%{?rhel} == 6)
+%if 0%{?rhel}
 BuildRequires:  cmake28
 %else
 BuildRequires:  cmake
 %endif
-BuildRequires:  doxygen graphviz swig
+BuildRequires:  doxygen swig graphviz
 BuildRequires:  gcc-gfortran
 BuildRequires:  gettext
 BuildRequires:  dos2unix
 BuildRequires:  desktop-file-utils
+BuildRequires:  tbb-devel
 # Development Libraries
 BuildRequires:  freeimage-devel
 BuildRequires:  libXmu-devel
@@ -102,11 +88,15 @@
 %if ! %{bundled_pycxx}
 BuildRequires:  python-pycxx-devel
 %endif
+BuildRequires:  libicu-devel
+BuildRequires:  python-matplotlib
 
 # Needed for plugin support and is not a soname dependency.
 Requires:       python-pivy
 Requires:       PyQt4
 Requires:       hicolor-icon-theme
+Requires:       python-matplotlib
+Requires:       python-collada
 
 # plugins and private shared libs in %%{_libdir}/freecad/lib are private;
 # prevent private capabilities being advertised in Provides/Requires
@@ -115,6 +105,8 @@
 %filter_provides_in %{_libdir}/%{name}/lib
 %filter_from_requires %{plugin_regexp}
 %filter_from_provides %{plugin_regexp}
+%filter_provides_in %{_libdir}/%{name}/Mod
+%filter_requires_in %{_libdir}/%{name}/Mod
 %filter_setup
 }
 
@@ -140,22 +132,18 @@
 
 
 %prep
-%setup -q -n FreeCAD-%{version}.%{svnrev}
-
-%patch0 -p1 -b .sysinst
-%patch1 -p1 -b .3rdparty
-%patch2 -p1 -b .startpage
-%patch3 -p1 -b .glufix
-%patch4 -p1 -b .modfix
-%patch5 -p1 -b .zipios
-%patch6 -p1 -b .gcc47
-%patch7 -p1 -b .OCC
+#setup -q -n FreeCAD-%{version}.%{svnrev}
+%setup -q -n freecad-%{version}.%{rev}
+%patch0 -p1 -b .3rdparty
 # Remove bundled pycxx if we're not using it
 %if ! %{bundled_pycxx}
-%patch8 -p1 -b .pycxx
+%patch1 -p1 -b .pycxx
 rm -rf src/CXX
 %endif
-%patch9 -p1 -b .f2c
+
+%if ! %{bundled_zipios}
+rm -rf src/zipios++
+%endif
 
 # Fix encodings
 dos2unix -k src/Mod/Test/unittestgui.py \
@@ -171,11 +159,14 @@
 rm -rf build && mkdir build && pushd build
 
 LDFLAGS='-Wl,--as-needed'; export LDFLAGS
-%cmake -DCMAKE_INSTALL_PREFIX=%{_libdir}/freecad \
+%cmake -DCMAKE_INSTALL_PREFIX=%{_libdir}/%{name} \
+       -DCMAKE_INSTALL_DATADIR=%{_datadir}/%{name} \
+       -DCMAKE_INSTALL_DOCDIR=%{_docdir}/%{name} \
+       -DCMAKE_INSTALL_INCLUDEDIR=%{_includedir} \
        -DRESOURCEDIR=%{_libdir}/freecad \
-       -DDOCDIR=%{_docdir}/%{name} \
        -DCOIN3D_INCLUDE_DIR=%{_includedir}/Coin2 \
        -DCOIN3D_DOC_PATH=%{_datadir}/Coin2/Coin \
+       -DFREECAD_USE_EXTERNAL_PIVY=TRUE \
 %if %{occ}
        -DUSE_OCC=TRUE \
 %endif
@@ -183,7 +174,7 @@
        -DSMESH_INCLUDE_DIR=%{_includedir} \
 %endif
 %if ! %{bundled_zipios}
-       -DUSE_EXTERNAL_ZIPIOS=TRUE \
+       -DFREECAD_USE_EXTERNAL_ZIPIOS=TRUE \
 %endif
 %if ! %{bundled_pycxx}
        -DPYCXX_INCLUDE_DIR=$(pkg-config --variable=includedir PyCXX) \
@@ -193,6 +184,8 @@
 
 make %{?_smp_mflags}
 
+make doc
+
 
 %install
 pushd build
@@ -207,7 +200,7 @@
 popd
 
 # Fix problems with unittestgui.py
-chmod +x %{buildroot}%{_libdir}/%{name}/Mod/Test/unittestgui.py
+#chmod +x %{buildroot}%{_libdir}/%{name}/Mod/Test/unittestgui.py
 
 # Install desktop file
 desktop-file-install                                   \
@@ -278,9 +271,9 @@
 %{_datadir}/icons/hicolor/scalable/apps/%{name}.svg
 %dir %{_libdir}/%{name}
 %{_libdir}/%{name}/bin/
-%{_libdir}/%{name}/data/
 %{_libdir}/%{name}/lib/
 %{_libdir}/%{name}/Mod/
+%{_datadir}/%{name}/
 %{_mandir}/man1/*.1.gz
 
 %files doc
@@ -288,9 +281,14 @@
 
 
 %changelog
+* Mon Feb 18 2013 Richard Shaw <hobbes1069 at gmail.com> - 0.13-1
+- Update to latest upstream release.
+
 * Sat Oct 20 2012 John Morris <john at zultron.com> - 0.12-9
 - Use cmake28 package on el6
 - Remove COIN3D_DOC_PATH cmake def (one less warning during build)
+- Add PyQt as requirement.
+- Add libicu-devel as build requirement.
 
 * Wed Sep 26 2012 Richard Shaw <hobbes1069 at gmail.com> - 0.12-8
 - Rebuild for boost 1.50.
@@ -305,6 +303,12 @@
 * Mon Jun 25 2012  <john at zultron.com> - 0.12-6
 - Filter out automatically generated Provides/Requires of private libraries
 - freecad.desktop not passing 'desktop-file-validate'; fixed
+- Remove BuildRequires: tbb-devel and gts-devel
+- Update license tag to GPLv3+ only.
+- Add missing license files to %%doc.
+- Add missing build requirement for hicolor-icon-theme.
+- Fix excessive linking issue.
+- Other minor spec updates.
 
 * Mon Jun 25 2012  <john at zultron.com> - 0.12-5
 - New patch to unbundle PyCXX


Index: sources
===================================================================
RCS file: /cvs/nonfree/rpms/freecad/devel/sources,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- sources	7 Jul 2012 03:15:42 -0000	1.2
+++ sources	18 Feb 2013 18:20:09 -0000	1.3
@@ -1 +1 @@
-fcd91286c578a219491ffebb2111bddf  freecad-0.12.5284.tar.gz
+13b8fddef12f5f8419dcf4adbab596eb  freecad-0.13.1830.tar.gz


--- freecad-0.12-OpenCASCADE-option.patch DELETED ---


--- freecad-0.12-pycxx.patch DELETED ---


--- freecad-0.12-rm_f2c.patch DELETED ---


--- freecad-0.12-zipios.patch DELETED ---


--- freecad-StartPage.patch DELETED ---


--- freecad-cmake_Mod_fix.patch DELETED ---


--- freecad-gcc-4.7.patch DELETED ---


--- freecad-glu.patch DELETED ---


--- freecad-system_inst.patch DELETED ---


More information about the rpmfusion-commits mailing list