summaryrefslogtreecommitdiff
path: root/graphics/FreeCAD
diff options
context:
space:
mode:
Diffstat (limited to 'graphics/FreeCAD')
-rw-r--r--graphics/FreeCAD/FreeCAD.SlackBuild48
-rw-r--r--graphics/FreeCAD/FreeCAD.desktop2
-rw-r--r--graphics/FreeCAD/FreeCAD.info8
-rw-r--r--graphics/FreeCAD/OpenCASCADE65.patch49
-rw-r--r--graphics/FreeCAD/README6
-rw-r--r--graphics/FreeCAD/boost_current.patch35
6 files changed, 90 insertions, 58 deletions
diff --git a/graphics/FreeCAD/FreeCAD.SlackBuild b/graphics/FreeCAD/FreeCAD.SlackBuild
index ad2e5b0c39..75b816f84e 100644
--- a/graphics/FreeCAD/FreeCAD.SlackBuild
+++ b/graphics/FreeCAD/FreeCAD.SlackBuild
@@ -1,22 +1,40 @@
#!/bin/sh
# Slackware build script for FreeCAD
-# Maintained by Niels Horn <niels.horn@gmail.com>
-# revision date: 2010/05/05
+
+# Copyright 2010-2011 Niels Horn, Rio de Janeiro, RJ, Brazil
+# All rights reserved.
+#
+# Redistribution and use of this script, with or without modification, is
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of this script must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ''AS IS'' AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+# revision date: 2011/08/10
PRGNAM=FreeCAD
-VERSION=0.9.2646
+VERSION=${VERSION:-0.11.3729}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
-SRCVERSION=${VERSION}.5
+SRCNAM=freecad
-# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
case "$( uname -m )" in
i?86) ARCH=i486 ;;
arm*) ARCH=arm ;;
- # Unless $ARCH is already set, use uname -m for all other archs:
*) ARCH=$( uname -m ) ;;
esac
fi
@@ -40,22 +58,22 @@ else
LIBDIRSUFFIX=""
fi
-set -e # Exit on most errors
+set -e
rm -rf $PKG
mkdir -p $TMP $PKG $OUTPUT
cd $TMP
rm -rf $PRGNAM-$VERSION
-tar xvf $CWD/$PRGNAM-$SRCVERSION.tar.gz
+tar xvf $CWD/$SRCNAM-$VERSION.tar.gz
cd $PRGNAM-$VERSION
chown -R root:root .
chmod -R u+w,go+r-w,a-s .
-# For newer boost versions (as in Slackware -current since 2009/12/17),
-# correct names of libs (w/o -mt)
-patch -p1 < $CWD/boost_current.patch
+# Patch for OpenCASCADE-6.5.x
+patch -p1 < $CWD/OpenCASCADE65.patch
-./autogen.sh
+# Fix references to old boost_*-mt libs
+sed -i "/-lboost/s/-mt\"/\"/g" configure
CFLAGS="$SLKCFLAGS" \
CXXFLAGS="$SLKCFLAGS" \
@@ -71,15 +89,15 @@ CXXFLAGS="$SLKCFLAGS" \
--with-qt4-dir=$QT4DIR \
--build=$ARCH-slackware-linux
-make
+make
make install DESTDIR=$PKG
find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \
| cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true
-# Move icon & copy desktop file
+# Copy icon & desktop file
mkdir -p $PKG/usr/share/{applications,pixmaps}
-mv $PKG/opt/$PRGNAM/share/FCIcon.xpm $PKG/usr/share/pixmaps/
+cp $PKG/opt/$PRGNAM/share/freecad.xpm $PKG/usr/share/pixmaps/
cat $CWD/$PRGNAM.desktop > $PKG/usr/share/applications/$PRGNAM.desktop
mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
diff --git a/graphics/FreeCAD/FreeCAD.desktop b/graphics/FreeCAD/FreeCAD.desktop
index 34f259a3a5..07d2a8c7fd 100644
--- a/graphics/FreeCAD/FreeCAD.desktop
+++ b/graphics/FreeCAD/FreeCAD.desktop
@@ -5,6 +5,6 @@ Name=FreeCAD
Comment=General purpose 3D CAD modeler
Categories=Graphics;
Exec=/opt/FreeCAD/bin/FreeCAD
-Icon=FCIcon
+Icon=freecad
Terminal=false
StartupNotify=false
diff --git a/graphics/FreeCAD/FreeCAD.info b/graphics/FreeCAD/FreeCAD.info
index 2cf0b334ae..c34e180b7b 100644
--- a/graphics/FreeCAD/FreeCAD.info
+++ b/graphics/FreeCAD/FreeCAD.info
@@ -1,10 +1,10 @@
PRGNAM="FreeCAD"
-VERSION="0.9.2646"
+VERSION="0.11.3729"
HOMEPAGE="http://free-cad.sourceforge.net/"
-DOWNLOAD="http://downloads.sourceforge.net/free-cad/FreeCAD-0.9.2646.5.tar.gz"
-MD5SUM="a95d59a957c9d205ed7be1e35ad648e9"
+DOWNLOAD="http://downloads.sourceforge.net/free-cad/freecad-0.11.3729.tar.gz"
+MD5SUM="cd68f52ee201c49a83a400b87686b9b9"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
MAINTAINER="Niels Horn"
EMAIL="niels.horn@gmail.com"
-APPROVED="rworkman"
+APPROVED="dsomero"
diff --git a/graphics/FreeCAD/OpenCASCADE65.patch b/graphics/FreeCAD/OpenCASCADE65.patch
new file mode 100644
index 0000000000..8fcc40842e
--- /dev/null
+++ b/graphics/FreeCAD/OpenCASCADE65.patch
@@ -0,0 +1,49 @@
+--- FreeCAD-0.11.3729/src/3rdParty/salomesmesh/src/SMESH/SMESH_MeshEditor.cpp 2010-10-17 05:59:46.000000000 -0200
++++ FreeCAD-0.11.3729_patched/src/3rdParty/salomesmesh/src/SMESH/SMESH_MeshEditor.cpp 2011-08-10 20:04:59.000000000 -0300
+@@ -2205,8 +2205,8 @@
+ if ( projector.IsDone() ) {
+ double u, v, minVal = DBL_MAX;
+ for ( int i = projector.NbExt(); i > 0; i-- )
+- if ( projector.Value( i ) < minVal ) {
+- minVal = projector.Value( i );
++ if ( projector.SquareDistance( i ) < minVal ) {
++ minVal = projector.SquareDistance( i );
+ projector.Point( i ).Parameter( u, v );
+ }
+ result.SetCoord( u, v );
+--- FreeCAD-0.11.3729/src/3rdParty/salomesmesh/src/SMESH/SMESH_Pattern.cpp 2010-10-17 05:59:46.000000000 -0200
++++ FreeCAD-0.11.3729_patched/src/3rdParty/salomesmesh/src/SMESH/SMESH_Pattern.cpp 2011-08-10 20:06:21.000000000 -0300
+@@ -436,8 +436,8 @@
+ }
+ double u, v, minVal = DBL_MAX;
+ for ( int i = theProjectorPS.NbExt(); i > 0; i-- )
+- if ( theProjectorPS.Value( i ) < minVal ) {
+- minVal = theProjectorPS.Value( i );
++ if ( theProjectorPS.SquareDistance( i ) < minVal ) {
++ minVal = theProjectorPS.SquareDistance( i );
+ theProjectorPS.Point( i ).Parameter( u, v );
+ }
+ return gp_XY( u, v );
+--- FreeCAD-0.11.3729/src/Mod/Part/App/PrimitiveFeature.cpp 2010-08-27 11:22:14.000000000 -0300
++++ FreeCAD-0.11.3729_patched/src/Mod/Part/App/PrimitiveFeature.cpp 2011-08-10 20:41:35.000000000 -0300
+@@ -141,9 +141,6 @@
+ case BRepBuilderAPI_ParametersOutOfRange:
+ error = "parameters out of range";
+ break;
+- case BRepBuilderAPI_SurfaceNotC2:
+- error = "surface not C2";
+- break;
+ default:
+ error = "unknown error";
+ break;
+--- FreeCAD-0.11.3729/src/Mod/Part/App/TopoShape.cpp 2010-11-14 06:53:08.000000000 -0200
++++ FreeCAD-0.11.3729_patched/src/Mod/Part/App/TopoShape.cpp 2011-08-10 20:43:03.000000000 -0300
+@@ -139,8 +139,6 @@
+ return "Curve projection failed";
+ case BRepBuilderAPI_ParametersOutOfRange:
+ return "Parameters out of range";
+- case BRepBuilderAPI_SurfaceNotC2:
+- return "Surface not C2-continous";
+ default:
+ return "Unknown creation error";
+ }
diff --git a/graphics/FreeCAD/README b/graphics/FreeCAD/README
index db01eb5112..e824ded5ab 100644
--- a/graphics/FreeCAD/README
+++ b/graphics/FreeCAD/README
@@ -1,5 +1,5 @@
-FreeCAD is a general purpose 3D CAD modeler, aimed at mechanical engineering
-and product design, but also fits in a wider range of uses around engineering,
-such as architecture or other engineering specialties.
+FreeCAD is a general purpose 3D CAD modeler, aimed at mechanical
+engineering and product design, but also fits in a wider range of uses
+around engineering, such as architecture or other engineering specialties.
FreeCAD requires xerces-c, Coin, SoQt, Pivy, and OpenCASCADE.
diff --git a/graphics/FreeCAD/boost_current.patch b/graphics/FreeCAD/boost_current.patch
deleted file mode 100644
index 67f5363254..0000000000
--- a/graphics/FreeCAD/boost_current.patch
+++ /dev/null
@@ -1,35 +0,0 @@
---- FreeCAD-0.9.2646/acinclude.m4 2010-01-07 10:14:08.000000000 -0200
-+++ FreeCAD-0.9.2646_new/acinclude.m4 2010-04-21 13:48:34.000000000 -0300
-@@ -418,7 +418,7 @@
- fc_boost_ac_save_libs=$LIBS
- CPPFLAGS="$CPPFLAGS -I$fc_boost_incs"
- LDFLAGS="$LDFLAGS -L$fc_boost_libs"
--LIBS="-lboost_program_options-mt"
-+LIBS="-lboost_program_options"
-
- AC_TRY_LINK([#include <boost/program_options.hpp>],
- [namespace po = boost::program_options;
-@@ -459,17 +459,17 @@
- AC_MSG_RESULT($ac_cv_boost_system)
- rm -f boost.cpp boost
-
--BOOST_FILESYSTEM_LIB="-lboost_filesystem-mt"
--BOOST_PROGOPTIONS_LIB="-lboost_program_options-mt"
--BOOST_SIGNALS_LIB="-lboost_signals-mt"
-+BOOST_FILESYSTEM_LIB="-lboost_filesystem"
-+BOOST_PROGOPTIONS_LIB="-lboost_program_options"
-+BOOST_SIGNALS_LIB="-lboost_signals"
- BOOST_SYSTEM_LIB=""
--BOOST_REGEX_LIB="-lboost_regex-mt"
-+BOOST_REGEX_LIB="-lboost_regex"
- if test x"$ac_cv_boost_system" = xyes; then
-- LIBS="-lboost_system-mt"
-+ LIBS="-lboost_system"
- AC_MSG_CHECKING(for boost system library)
- AC_TRY_LINK([#include <boost/system/error_code.hpp>],
- [ boost::system::error_code error_code; std::string message(error_code.message()); return 0; ],
-- [BOOST_SYSTEM_LIB="-lboost_system-mt"],
-+ [BOOST_SYSTEM_LIB="-lboost_system"],
- [BOOST_SYSTEM_LIB=""])
-
- if test "x$BOOST_SYSTEM_LIB" = "x"; then