]> git.pld-linux.org Git - packages/freecad.git/commitdiff
- initial, from fc
authorArkadiusz Miśkiewicz <arekm@maven.pl>
Thu, 30 Apr 2015 15:45:57 +0000 (17:45 +0200)
committerArkadiusz Miśkiewicz <arekm@maven.pl>
Thu, 30 Apr 2015 15:45:57 +0000 (17:45 +0200)
freecad-0.14-DraftSnap.patch [new file with mode: 0644]
freecad-0.14-Xlib_h.patch [new file with mode: 0644]
freecad-0.14-smesh.patch [new file with mode: 0644]
freecad-3rdParty.patch [new file with mode: 0644]
freecad.1 [new file with mode: 0644]
freecad.appdata.xml [new file with mode: 0644]
freecad.desktop [new file with mode: 0644]
freecad.sharedmimeinfo [new file with mode: 0644]
freecad.spec [new file with mode: 0644]

diff --git a/freecad-0.14-DraftSnap.patch b/freecad-0.14-DraftSnap.patch
new file mode 100644 (file)
index 0000000..e2d881d
--- /dev/null
@@ -0,0 +1,25 @@
+From 328bdcf6363f1107447858c2dd939ecae1005f47 Mon Sep 17 00:00:00 2001
+From: Yorik van Havre <yorik@uncreated.net>
+Date: Thu, 18 Sep 2014 19:39:37 -0300
+Subject: [PATCH] Draft: small fix in trackers - fixes #1757
+
+---
+ src/Mod/Draft/DraftSnap.py | 5 ++++-
+ 1 file changed, 4 insertions(+), 1 deletion(-)
+
+diff --git a/src/Mod/Draft/DraftSnap.py b/src/Mod/Draft/DraftSnap.py
+index ac57d43..af53881 100644
+--- a/src/Mod/Draft/DraftSnap.py
++++ b/src/Mod/Draft/DraftSnap.py
+@@ -575,7 +575,10 @@ def snapToPolar(self,point,last):
+                             vecs.extend([v,v.negative()])
+                 for v in vecs:
+                     if not DraftVecUtils.isNull(v):
+-                        de = Part.Line(last,last.add(v)).toShape()  
++                        try:
++                            de = Part.Line(last,last.add(v)).toShape()
++                        except:
++                            return point,None
+                         np = self.getPerpendicular(de,point)
+                         if ((self.radius == 0) and (point.sub(last).getAngle(v) < 0.087)) \
+                         or ((np.sub(point)).Length < self.radius):
diff --git a/freecad-0.14-Xlib_h.patch b/freecad-0.14-Xlib_h.patch
new file mode 100644 (file)
index 0000000..72b6f0a
--- /dev/null
@@ -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 (file)
index 0000000..1608005
--- /dev/null
@@ -0,0 +1,162 @@
+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-11-30 16:28:11.540834321 -0600
+@@ -117,6 +117,7 @@
+ OPTION(FREECAD_MAINTAINERS_BUILD "Build FreeCAD for Maintainers, with Docu and 3rd party libs. On Windows the Installer is build." OFF)
+ OPTION(FREECAD_USE_EXTERNAL_ZIPIOS "Use system installed zipios++ instead of the bundled." OFF)
+ OPTION(FREECAD_USE_EXTERNAL_PIVY "Use system installed python-pivy instead of the bundled." OFF)
++OPTION(FREECAD_USE_EXTERNAL_SMESH "Use system installed smesh instead of the bundled." OFF)
+ OPTION(FREECAD_BUILD_DEBIAN "Prepare for a build of a Debian package" OFF)
+ OPTION(FREECAD_BUILD_CAM "Build the FreeCAD CAM module and the needed libs, be aware, unfinished code!" OFF)
+@@ -165,6 +166,7 @@
+ if (FREECAD_BUILD_DEBIAN)
+     set(FREECAD_USE_EXTERNAL_ZIPIOS ON)
+     set(FREECAD_USE_EXTERNAL_PIVY ON)
++    set(FREECAD_USE_EXTERNAL_SMESH ON)
+ endif (FREECAD_BUILD_DEBIAN)
+ # ==============================================================================
+@@ -348,10 +350,6 @@
+         message(SEND_ERROR  "Could not find libpack in specified location:" ${FREECAD_LIBPACK_DIR})
+     ENDIF(FREECAD_LIBPACK_CHECKFILE6X)
+-# -------------------------------- PyCXX --------------------------------
+-
+-    find_package(PyCXX REQUIRED)
+-
+ # -------------------------------- Swig ----------------------------------
+     find_package(SWIG)
+@@ -473,24 +471,29 @@
+     # 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
+-        StdMeshers
+-        #MEFISTO2
+-        SMESH
+-        DriverUNV
+-        SMESHDS
+-        DriverSTL
+-        DriverDAT
+-        Driver
+-        SMDS
+-    )
+-    set(SMESH_FOUND TRUE)
+-    ENDIF(OCC_FOUND)
+-    #find_package(SMESH)
+-    #IF(NOT SMESH_FOUND)
+-    #    MESSAGE("Salome SMESH was not found!")
+-    #ENDIF(NOT SMESH_FOUND)
++    if(NOT FREECAD_USE_EXTERNAL_SMESH)
++        set(SMESH_INCLUDE_DIR ${CMAKE_SOURCE_DIR}/src/3rdParty/salomesmesh/inc)
++    else()
++        include_directories(${SMESH_INCLUDE_DIR})
++        set(SMESH_LIBRARIES "")
++        foreach(SMESH_LIB
++            StdMeshers
++            #MEFISTO2
++            SMESH
++            DriverUNV
++            SMESHDS
++            DriverSTL
++            DriverDAT
++            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}")
++    endif()
++        set(SMESH_FOUND TRUE)
++        ENDIF(OCC_FOUND)
+     
+ # -------------------------------- Netgen --------------------------------
+diff -Naur freecad-0.14.3702.orig/src/3rdParty/CMakeLists.txt freecad-0.14.3702/src/3rdParty/CMakeLists.txt
+--- freecad-0.14.3702.orig/src/3rdParty/CMakeLists.txt 2014-07-13 10:33:02.000000000 -0500
++++ freecad-0.14.3702/src/3rdParty/CMakeLists.txt      2014-07-26 21:31:55.617168862 -0500
+@@ -34,8 +34,8 @@
+     endif (FREECAD_LIBPACK_CHECKFILE6X)
+ endif(FREECAD_BUILD_GUI AND NOT FREECAD_USE_EXTERNAL_PIVY)
+-# Build SalomeMesh for all Platforms since heavily patched
+-if (FREECAD_BUILD_SMESH)
++if(NOT FREECAD_USE_EXTERNAL_SMESH)
++    # Build SalomeMesh for all Platforms since heavily patched
+     add_subdirectory(salomesmesh)
+-endif(FREECAD_BUILD_SMESH)
++endif(NOT FREECAD_USE_EXTERNAL_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-12-15 14:23:39.548135756 -0600
+@@ -21,7 +21,7 @@
+     ${PYTHON_INCLUDE_PATH}
+     ${ZLIB_INCLUDE_DIR}
+     ${XERCESC_INCLUDE_DIR}
+-    ${CMAKE_SOURCE_DIR}/src/3rdParty/salomesmesh/inc 
++    ${SMESH_INCLUDE_DIR}
+ )
+ link_directories(${OCC_LIBRARY_DIR})
+@@ -34,6 +34,8 @@
+         StdMeshers
+         NETGENPlugin
+         SMESH
++        SMDS
++        SMESHDS
+     )
+ else(FREECAD_BUILD_FEM_NETGEN)
+     set(Fem_LIBS
+@@ -41,6 +43,8 @@
+         FreeCADApp
+         StdMeshers
+         SMESH
++        SMDS
++        SMESHDS
+     )
+ endif(FREECAD_BUILD_FEM_NETGEN)
+diff -Naur freecad-0.14.3702.orig/src/Mod/Fem/Gui/CMakeLists.txt freecad-0.14.3702/src/Mod/Fem/Gui/CMakeLists.txt
+--- freecad-0.14.3702.orig/src/Mod/Fem/Gui/CMakeLists.txt      2014-07-13 10:33:02.000000000 -0500
++++ freecad-0.14.3702/src/Mod/Fem/Gui/CMakeLists.txt   2014-12-15 11:16:24.706617437 -0600
+@@ -20,7 +20,7 @@
+     ${SOQT_INCLUDE_DIR}
+     ${PYTHON_INCLUDE_PATH}
+     ${XERCESC_INCLUDE_DIR}
+-    ${CMAKE_SOURCE_DIR}/src/3rdParty/salomesmesh/inc
++    ${SMESH_INCLUDE_DIR}
+ )
+ link_directories(${OCC_LIBRARY_DIR})
+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-12-15 12:55:44.292060698 -0600
+@@ -14,7 +14,6 @@
+ include_directories(
+     ${CMAKE_SOURCE_DIR}/src
+-    ${CMAKE_SOURCE_DIR}/src/3rdParty/salomesmesh/inc
+     ${Boost_INCLUDE_DIRS}
+     ${OCC_INCLUDE_DIR}
+     ${ZLIB_INCLUDE_DIR}
+@@ -34,6 +33,7 @@
+         StdMeshers
+         NETGENPlugin
+         SMESH
++        SMDS
+     )
+ else(FREECAD_BUILD_FEM_NETGEN)
+     set(MeshPart_LIBS
+@@ -41,6 +41,7 @@
+         Mesh
+         StdMeshers
+         SMESH
++        SMDS
+     )
+ endif(FREECAD_BUILD_FEM_NETGEN)
diff --git a/freecad-3rdParty.patch b/freecad-3rdParty.patch
new file mode 100644 (file)
index 0000000..ce12641
--- /dev/null
@@ -0,0 +1,10 @@
+diff -Naur freecad-0.12-svn5325.orig/src/CMakeLists.txt freecad-0.12-svn5325/src/CMakeLists.txt
+--- freecad-0.12-svn5325.orig/src/CMakeLists.txt       2011-03-03 09:57:25.000000000 -0600
++++ freecad-0.12-svn5325/src/CMakeLists.txt    2011-12-21 10:58:18.396896819 -0600
+@@ -1,6 +1,5 @@
+ add_subdirectory(Build)
+-add_subdirectory(3rdParty)
+ add_subdirectory(Base)
+ add_subdirectory(App)
+ add_subdirectory(Main)
diff --git a/freecad.1 b/freecad.1
new file mode 100644 (file)
index 0000000..191f221
--- /dev/null
+++ b/freecad.1
@@ -0,0 +1,73 @@
+.\"                                      Hey, EMACS: -*- nroff -*-
+.\" First parameter, NAME, should be all caps
+.\" Second parameter, SECTION, should be 1-8, maybe w/ subsection
+.\" other parameters are allowed: see man(7), man(1)
+.TH FREECAD 1 "July  25, 2007" freecad "Linux User's Manual"
+.\" Please adjust this date whenever revising the manpage.
+.\"
+.\" Some roff macros, for reference:
+.\" .nh        disable hyphenation
+.\" .hy        enable hyphenation
+.\" .ad l      left justify
+.\" .ad b      justify to both left and right margins
+.\" .nf        disable filling
+.\" .fi        enable filling
+.\" .br        insert line break
+.\" .sp <n>    insert n+1 empty lines
+.\" for manpage-specific macros, see man(7)
+.SH NAME
+freecad \- An extensible Open Source CAx program for Unix/X11
+.SH SYNOPSIS
+.B freecad
+.RI [ options ] " files"
+.br
+.B freecadcmd
+.RI [ options ] " files"
+.SH DESCRIPTION
+.B FreeCAD
+is an Open Source CAx RAD based on OpenCasCade, Qt and Python. It features 
+some key concepts like macro recording, workbenches, ability to run as a 
+server and dynamically loadable application extensions and it is designed 
+to be platform independent.
+.\" TeX users may be more comfortable with the \fB<whatever>\fP and
+.\" \fI<whatever>\fP escape sequences to invode bold face and italics, 
+.\" respectively.
+.SH USAGE
+\fBfreecad\fR starts with a GUI while \fBfreecadcmd\fR is only a pure command line version that starts a Python interpreter.
+.SH OPTIONS
+These programs follow the usual GNU command line syntax, with long
+options starting with two dashes (`-').
+A summary of the options supported by \fBfreecad\fR is included below.
+.SS "Generic options"
+.TP
+\fB\-h, \-\-help\fR
+Show summary of options.
+.TP
+\fB\-v, \-\-version\fR
+Show version of program.
+.TP
+\fB\-c, \-\-console\fR
+Start in console mode.
+.TP
+\fB\-\-response\-file\fR \fIarg\fR
+Can be specified with '@name', too.
+
+.SS "Configuration"
+.TP
+\fB\-l, \-\-write\-log\fR
+Write a log file.
+.TP
+\fB\-t, \-\-run\-test\fR \fIarg\fR
+Test level.
+.TP
+\fB\-M, \-\-module\-path\fR \fIarg\fR
+Additional module path.
+.TP
+\fB\-P, \-\-python\-path\fR \fIarg\fR
+Additional Python path.
+.SH SEE ALSO
+To get more information about \fBFreeCAD\fR, please visit \fIhttp://juergen\-riegel.net/FreeCAD/Docu/index.php/Main_Page\fR
+.SH BUGS
+To report a bug, please visit \fIhttp://free-cad.sf.net/\fR
+.SH AUTHOR
+This manual page was written by Werner Mayer.
diff --git a/freecad.appdata.xml b/freecad.appdata.xml
new file mode 100644 (file)
index 0000000..6580e94
--- /dev/null
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<application>
+ <id type="desktop">freecad.desktop</id>
+ <licence>LGPL</licence>
+ <name>FreeCAD</name>
+ <summary>An open source parametric 3D CAD modeler</summary>
+ <description>
+  <p>FreeCAD is a parametric 3D modeler. Parametric modeling 
+  allows you to easily modify your design by going back into 
+  your model history and changing its parameters. FreeCAD is 
+  open source (LGPL license) and completely modular, allowing 
+  for very advanced extension and customization.</p>
+  <p>FreeCAD is multiplatfom, and reads and writes many open 
+  file formats such as STEP, IGES, STL and others.</p>
+ </description>
+ <screenshots>
+  <screenshot type="default" width="800" height="600">http://www.freecadweb.org/wiki/index.php?title=File:FreeCAD011.png</screenshot>
+ </screenshots>
+ <url type="homepage">http://www.freecadweb.org</url>
+ <updatecontact>yorik@uncreated.net</updatecontact>
+</application>
diff --git a/freecad.desktop b/freecad.desktop
new file mode 100644 (file)
index 0000000..d45e539
--- /dev/null
@@ -0,0 +1,17 @@
+[Desktop Entry]
+Version=1.0
+Name=FreeCAD
+Name[de]=FreeCAD
+Comment=Feature based Parametric Modeler
+Comment[de]=Feature-basierter parametrischer Modellierer
+GenericName=CAD Application
+GenericName[de]=CAD-Anwendung
+Exec=/usr/bin/FreeCAD %F
+Path=/usr/@lib@/freecad
+Terminal=false
+Type=Application
+Icon=freecad
+Categories=Graphics;Science;Education;Engineering;
+StartupNotify=true
+GenericName[de_DE]=Feature-basierter parametrischer Modellierer
+MimeType=application/x-extension-fcstd;
diff --git a/freecad.sharedmimeinfo b/freecad.sharedmimeinfo
new file mode 100644 (file)
index 0000000..6d5e93e
--- /dev/null
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<mime-info xmlns='http://www.freedesktop.org/standards/shared-mime-info'>
+       <mime-type type="application/x-extension-fcstd">
+               <!-- <sub-class-of type="application/zip"/> -->
+               <comment>FreeCAD document files</comment>
+               <glob pattern="*.fcstd"/>
+       </mime-type>
+</mime-info>
diff --git a/freecad.spec b/freecad.spec
new file mode 100644 (file)
index 0000000..cdc71a0
--- /dev/null
@@ -0,0 +1,334 @@
+# 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 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 3702
+
+# Temporary workaround for cmake/boost bug:
+# http://public.kitware.com/Bug/view.php?id=13446
+%if 0%{?rhel} && 0%{?rhel} <= 6
+%global cmake %cmake -DBoost_NO_BOOST_CMAKE=ON
+%endif
+
+# Some configuration options for other environments
+# rpmbuild --with=occ:  Compile using OpenCASCADE instead of OCE
+%global occ %{?_with_occ:1} %{?!_with_occ: 0}
+# rpmbuild --with=bundled_zipios:  use bundled version of zipios++
+%global bundled_zipios %{?_with_bundled_zipios:1} %{?!_with_bundled_zipios: 0}
+# rpmbuild --with=bundled_pycxx:  use bundled version of pycxx
+%global bundled_pycxx %{?_with_bundled_pycxx:1} %{?!_with_bundled_pycxx: 0}
+# rpmbuild --with=bundled_smesh:  use bundled version of Salome's Mesh
+%global bundled_smesh %{?_with_bundled_smesh:1} %{?!_with_bundled_smesh: 0}
+
+
+Summary:       A general purpose 3D CAD modeler
+Name:          freecad
+Version:       0.14
+Release:       0.1
+Group:         Applications/Engineering
+
+License:       GPL v2+
+URL:           http://sourceforge.net/apps/mediawiki/free-cad/
+Source0:       http://downloads.sourceforge.net/free-cad/%{name}-%{version}.%{rev}.tar.gz
+# Source0-md5: 234747bdff47a62fd10cb902f3dd772b
+Source101:     %{name}.desktop
+Source102:     %{name}.1
+Source103:     %{name}.appdata.xml
+Source104:     %{name}.sharedmimeinfo
+
+Patch0:                %{name}-3rdParty.patch
+Patch1:                %{name}-0.14-Xlib_h.patch
+Patch2:                %{name}-0.14-smesh.patch
+# http://www.freecadweb.org/tracker/view.php?id=1757
+Patch3:                %{name}-0.14-DraftSnap.patch
+#Patch4: %{name}-0.14-disable_auto_dxf_dl.patch
+
+
+# Utilities
+BuildRequires: cmake
+BuildRequires: desktop-file-utils
+BuildRequires: dos2unix
+BuildRequires: doxygen
+BuildRequires: gcc-gfortran
+BuildRequires: gettext
+BuildRequires: graphviz
+BuildRequires: swig
+%ifnarch ppc64
+BuildRequires: tbb-devel
+%endif
+# Development Libraries
+BuildRequires: freeimage-devel
+BuildRequires: mesa-libGLU-devel
+BuildRequires: xorg-lib-libXmu-devel
+%if %{occ}
+BuildRequires: OpenCASCADE-devel
+%else
+BuildRequires: OCE-devel
+%endif
+# Not yet in Fedora
+# https://bugzilla.redhat.com/show_bug.cgi?id=665733
+BuildRequires: Coin2-devel
+#BuildRequires:  Coin3-devel
+BuildRequires: SoQt-devel
+BuildRequires: boost-devel
+BuildRequires: eigen3-devel
+BuildRequires: python-devel
+BuildRequires: qt-devel
+BuildRequires: qt-webkit-devel
+# Not used yet.
+BuildRequires: libspnav-devel
+#BuildRequires:  ode-devel
+#BuildRequires:  opencv-devel
+BuildRequires: python-pyside-devel
+BuildRequires: shiboken-devel
+BuildRequires: xerces-c
+BuildRequires: xerces-c-devel
+%if ! %{bundled_smesh}
+BuildRequires: smesh-devel
+%endif
+BuildRequires: netgen-mesher-devel
+%if ! %{bundled_zipios}
+BuildRequires: zipios++-devel
+%endif
+%if ! %{bundled_pycxx}
+BuildRequires: python-pycxx-devel
+%endif
+BuildRequires: libicu-devel
+BuildRequires: python-matplotlib
+
+# For appdata
+%if 0%{?fedora}
+BuildRequires: libappstream-glib
+%endif
+
+# Packages separated because they are noarch, but not optional so require them
+# here.
+Requires:      %{name}-data = %{version}-%{release}
+# Obsolete old doc package since it's required for functionality.
+Obsoletes:     freecad-doc < 0.13-5
+
+# Needed for plugin support and is not a soname dependency.
+%if ! 0%{?rhel} <= 6 && "%{_arch}" != "ppc64"
+# python-pivy does not build on EPEL 6 ppc64.
+Requires:      python-pivy
+%endif
+Requires:      hicolor-icon-theme
+Requires:      python-collada
+Requires:      python-matplotlib
+Requires:      python-pyside
+
+# plugins and private shared libs in %%{_libdir}/freecad/lib are private;
+# prevent private capabilities being advertised in Provides/Requires
+%define plugin_regexp /^\\\(libFreeCAD.*%(for i in %{plugins}; do echo -n "\\\|$i\\\|$iGui"; done)\\\)\\\(\\\|Gui\\\)\\.so/d
+%{?filter_setup:
+%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
+}
+
+
+%description
+FreeCAD is a general purpose Open Source 3D CAD/MCAD/CAx/CAE/PLM
+modeler, aimed directly at mechanical engineering and product design
+but also fits a wider range of uses in engineering, such as
+architecture or other engineering specialties. It is a feature-based
+parametric modeler with a modular software architecture which makes it
+easy to provide additional functionality without modifying the core
+system.
+
+
+%package data
+Summary:       Data files for FreeCAD
+Requires:      %{name} = %{version}-%{release}
+BuildArch:     noarch
+
+%description data
+Data files for FreeCAD
+
+
+%prep
+%setup -q -n %{name}-%{version}.%{rev}
+%patch0 -p1 -b .3rdparty
+# Remove bundled pycxx if we're not using it
+%if ! %{bundled_pycxx}
+rm -rf src/CXX
+%endif
+%patch1 -p1 -b .Xlib_h
+%patch2 -p1 -b .smesh
+%patch3 -p1 -b .draftsnap
+# Patch comes from upstream/master, doesn't apply cleanly to 0.14.
+#patch4 -p1 -b .no_dxf_dl
+
+%if ! %{bundled_zipios}
+rm -rf src/zipios++
+%endif
+
+# Fix encodings
+dos2unix -k src/Mod/Test/unittestgui.py \
+            ChangeLog.txt \
+            copying.lib \
+            data/License.txt
+
+# Removed bundled libraries
+rm -rf src/3rdParty
+
+
+%build
+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"
+
+%cmake -DCMAKE_INSTALL_PREFIX=%{_libdir}/%{name} \
+          -DCMAKE_INSTALL_DATADIR=%{_datadir}/%{name} \
+          -DCMAKE_INSTALL_DOCDIR=%{_docdir}/%{name} \
+          -DCMAKE_INSTALL_INCLUDEDIR=%{_includedir} \
+          -DRESOURCEDIR=%{_datadir}/%{name} \
+          -DCOIN3D_INCLUDE_DIR=%{_includedir}/Coin2 \
+          -DCOIN3D_DOC_PATH=%{_datadir}/Coin2/Coin \
+          -DFREECAD_USE_EXTERNAL_PIVY=TRUE \
+%if %{occ}
+          -DUSE_OCC=TRUE \
+%endif
+%if ! %{bundled_smesh}
+          -DFREECAD_USE_EXTERNAL_SMESH=TRUE \
+          -DSMESH_INCLUDE_DIR=%{_includedir}/smesh \
+%endif
+%if ! %{bundled_zipios}
+          -DFREECAD_USE_EXTERNAL_ZIPIOS=TRUE \
+%endif
+%if ! %{bundled_pycxx}
+          -DPYCXX_INCLUDE_DIR=$(pkg-config --variable=includedir PyCXX) \
+          -DPYCXX_SOURCE_DIR=$(pkg-config --variable=srcdir PyCXX) \
+%endif
+          ../
+
+%{__make} %{?_smp_mflags}
+
+%{__make} doc
+
+
+%install
+rm -rf $RPM_BUILD_ROOT
+pushd build
+%{__make} install \
+       DESTDIR=$RPM_BUILD_ROOT
+popd
+
+# Symlink binaries to %{_bindir}
+install -d $RPM_BUILD_ROOT%{_bindir}
+pushd $RPM_BUILD_ROOT%{_bindir}
+ln -s ../%{_lib}/freecad/bin/FreeCAD .
+ln -s ../%{_lib}/freecad/bin/FreeCADCmd .
+popd
+
+# Fix problems with unittestgui.py
+#chmod +x $RPM_BUILD_ROOT%{_libdir}/%{name}/Mod/Test/unittestgui.py
+
+# Install desktop file
+desktop-file-install                                   \
+    --dir=$RPM_BUILD_ROOT%{_desktopdir}         \
+    %{SOURCE101}
+sed -i 's,@lib@,%{_lib},g' $RPM_BUILD_ROOT%{_desktopdir}/%{name}.desktop
+
+# Install desktop icon
+install -pD src/Gui/Icons/%{name}.svg \
+    $RPM_BUILD_ROOT%{_datadir}/icons/hicolor/scalable/apps/%{name}.svg
+
+# Install man page
+install -pD %{SOURCE102} \
+    $RPM_BUILD_ROOT%{_mandir}/man1/%{name}.1
+
+# Symlink manpage to other binary names
+pushd $RPM_BUILD_ROOT%{_mandir}/man1
+ln -sf %{name}.1.gz FreeCAD.1.gz
+ln -sf %{name}.1.gz FreeCADCmd.1.gz
+popd
+
+# Remove obsolete Start_Page.html
+rm -f $RPM_BUILD_ROOT%{_docdir}/%{name}/Start_Page.html
+
+# Install MimeType file
+install -d $RPM_BUILD_ROOT%{_datadir}/mime/packages
+install -pm 0644 %{SOURCE104} $RPM_BUILD_ROOT%{_datadir}/mime/packages/%{name}.xml
+
+# Install appdata file
+install -d $RPM_BUILD_ROOT%{_datadir}/appdata
+install -pm 0644 %{SOURCE103} $RPM_BUILD_ROOT%{_datadir}/appdata/
+
+# Bug maintainers to keep %%{plugins} macro up to date.
+#
+# Make sure there are no plugins that need to be added to plugins macro
+new_plugins=`ls $RPM_BUILD_ROOT%{_libdir}/freecad/lib | sed -e  '%{plugin_regexp}'`
+if [ -n "$new_plugins" ]; then
+    echo -e "\n\n\n**** ERROR:\n" \
+        "\nPlugins not caught by regexp:  " $new_plugins \
+        "\n\nPlugins in %{_libdir}/freecad/lib do not exist in" \
+         "\nspecfile %%{plugins} macro.  Please add these to" \
+         "\n%%{plugins} macro at top of specfile and rebuild.\n****\n" 1>&2
+    exit 1
+fi
+# Make sure there are no entries in the plugins macro that don't match plugins
+for p in %{plugins}; do
+    if [ -z "`ls $RPM_BUILD_ROOT%{_libdir}/freecad/lib/$p*.so`" ]; then
+        set +x
+        echo -e "\n\n\n**** ERROR:\n" \
+             "\nExtra entry in %%{plugins} macro with no matching plugin:" \
+             "'$p'.\n\nPlease remove from %%{plugins} macro at top of" \
+             "\nspecfile and rebuild.\n****\n" 1>&2
+        exit 1
+    fi
+done
+
+
+
+%check
+%{?fedora:appstream-util validate-relax --nonet \
+    %{buildroot}/%{_datadir}/appdata/*.appdata.xml}
+
+
+%post
+/bin/%update_icon_cache_post hicolor &>/dev/null || :
+%{_bindir}/%update_desktop_database
+%{_bindir}/update-mime-database %{_datadir}/mime &> /dev/null || :
+
+%postun
+if [ $1 -eq 0 ] ; then
+    /bin/%update_icon_cache_post hicolor &>/dev/null
+    %{_bindir}/gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || :
+fi
+%{_bindir}/%update_desktop_database
+%{_bindir}/update-mime-database %{_datadir}/mime &> /dev/null || :
+
+%posttrans
+%{_bindir}/gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || :
+
+%clean
+rm -rf $RPM_BUILD_ROOT
+
+%files
+%defattr(644,root,root,755)
+%doc ChangeLog.txt copying.lib data/License.txt
+%exclude %{_docdir}/freecad/freecad.*
+%attr(755,root,root) %{_bindir}/*
+%{_datadir}/appdata/*.appdata.xml
+%{_desktopdir}/%{name}.desktop
+%{_iconsdir}/hicolor/scalable/apps/%{name}.svg
+%{_datadir}/mime/packages/%{name}.xml
+%dir %{_libdir}/%{name}
+%{_libdir}/%{name}/bin/
+%{_libdir}/%{name}/lib/
+%{_libdir}/%{name}/Mod/
+%{_mandir}/man1/*.1*
+
+%files data
+%defattr(644,root,root,755)
+%{_datadir}/%{name}/
+%{_docdir}/%{name}/freecad.q*
This page took 0.077762 seconds and 4 git commands to generate.