summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--graphics/meshlab/meshlab.SlackBuild93
-rw-r--r--graphics/meshlab/meshlab.info12
-rw-r--r--graphics/meshlab/patches/1e2a54cee2fcb2f0fc15fd83c1014e1813eb75df.patch79
-rw-r--r--graphics/meshlab/patches/612388c42d00ab8eba1d9626a7da33a18c724d76.patch28
-rw-r--r--graphics/meshlab/patches/bzip2.patch26
-rw-r--r--graphics/meshlab/patches/lapack.patch11
-rw-r--r--graphics/meshlab/patches/levmar.patch112
-rw-r--r--graphics/meshlab/patches/mpir.patch16
-rw-r--r--graphics/meshlab/patches/muparser.patch14
-rw-r--r--graphics/meshlab/slack-desc2
10 files changed, 349 insertions, 44 deletions
diff --git a/graphics/meshlab/meshlab.SlackBuild b/graphics/meshlab/meshlab.SlackBuild
index 309d2aa3e4..9348471b81 100644
--- a/graphics/meshlab/meshlab.SlackBuild
+++ b/graphics/meshlab/meshlab.SlackBuild
@@ -23,16 +23,14 @@
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
PRGNAM=meshlab
-VERSION=${VERSION:-1.3.3}
-BUILD=${BUILD:-2}
+VERSION=${VERSION:-2016.12}
+VCGLIBVER=${VCGLIBVER:-1.0.1}
+BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
-SRCNAM=MeshLabSrc_AllInc
-SRCVER=$(echo $VERSION | sed 's/\.//g')
-
if [ -z "$ARCH" ]; then
case "$( uname -m )" in
- i?86) ARCH=i486 ;;
+ i?86) ARCH=i586 ;;
arm*) ARCH=arm ;;
*) ARCH=$( uname -m ) ;;
esac
@@ -43,8 +41,8 @@ TMP=${TMP:-/tmp/SBo}
PKG=$TMP/package-$PRGNAM
OUTPUT=${OUTPUT:-/tmp}
-if [ "$ARCH" = "i486" ]; then
- SLKCFLAGS="-O2 -march=i486 -mtune=i686"
+if [ "$ARCH" = "i586" ]; then
+ SLKCFLAGS="-O2 -march=i586 -mtune=i686"
LIBDIRSUFFIX=""
elif [ "$ARCH" = "i686" ]; then
SLKCFLAGS="-O2 -march=i686 -mtune=i686"
@@ -62,38 +60,57 @@ set -e
rm -rf $PKG
mkdir -p $TMP $PKG $OUTPUT
cd $TMP
-rm -rf $PRGNAM-$VERSION
-mkdir $PRGNAM-$VERSION
-cd $PRGNAM-$VERSION
-tar xvf $CWD/${SRCNAM}_v${SRCVER}.tgz
-chown -R root:root .
-find -L . \
- \( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 -o -perm 511 \) \
- -exec chmod 755 {} \; -o \
- \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
- -exec chmod 644 {} \;
-
-# see http://sourceforge.net/p/meshlab/bugs/342/
-patch -p1 < $CWD/plystuff.diff
-# fix silly lapack error in ancient levmar (thanks to net147 over at Arch)
-patch -p1 -d meshlab < $CWD/lapack.patch
-# use external mpir -- meshlab ships x86_64 static libs, but no src or libs for i486
-sed -i -e '/mpir/d' meshlab/src/meshlabplugins/filter_csg/filter_csg.pro
-
-# Build all the dependencies. These will be statically linked into meshlab.
-# (Horrible duplication and many out of date, but avoids version clashes)
-cd meshlab/src/external
-qmake -recursive external.pro
-make \
- CFLAGS="$SLKCFLAGS" \
- CXXFLAGS="$SLKCFLAGS"
-# Build meshlab
+rm -rf meshlab
+tar xvf $CWD/meshlab-$VERSION.tar.gz --transform="s#^meshlab-$VERSION/#meshlab/#"
+
+rm -rf vcglib
+tar xvf $CWD/vcglib-$VCGLIBVER.tar.gz --transform="s#^vcglib-$VCGLIBVER/#vcglib/#"
+
+chown -R root:root meshlab vcglib
+find -L meshlab vcglib \
+ \( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 \
+ -o -perm 511 \) -exec chmod 755 {} \; -o \
+ \( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \
+ -o -perm 440 -o -perm 400 \) -exec chmod 644 {} \;
+
+cd meshlab
+
+# patches from or via Arch
+patch -p1 < $CWD/patches/mpir.patch # use external library, see also below
+patch -p1 < $CWD/patches/bzip2.patch # use external library, see also below
+patch -p1 < $CWD/patches/muparser.patch # use external library, see also below
+patch -p1 < $CWD/patches/levmar.patch # use external library, see also below
+patch -p1 < $CWD/patches/lapack.patch # enable lapack
+# fix derpy filename
+mv src/plugins_experimental/io_TXT/io_txt.pro src/plugins_experimental/io_TXT/io_TXT.pro
+# fix from git: https://github.com/cnr-isti-vclab/meshlab/commit/1e2a54c
+patch -p1 < $CWD/patches/1e2a54cee2fcb2f0fc15fd83c1014e1813eb75df.patch
+# fix from git: https://github.com/cnr-isti-vclab/meshlab/commit/612388c
+patch -p1 < $CWD/patches/612388c42d00ab8eba1d9626a7da33a18c724d76.patch
+
+# Build the supplied dependencies (they will be statically linked into meshlab)
+cd src/external
+
+ # don't use meshlab's ancient mpir
+ rm -rf inc/ lib/ # <-- mpir in these dirs
+ # and don't use meshlab's ancient bzip2, muParser, levmar
+ sed -i \
+ -e 's/bzip2.*pro//' -e '/muparser/d' -e '/levmar/d' \
+ external.pro
+
+ qmake-qt5 -recursive external.pro \
+ CFLAGS="$SLKCFLAGS" \
+ CXXFLAGS="$SLKCFLAGS -std=c++11"
+ make
+
cd ..
-qmake -recursive meshlab_full.pro
-make \
+
+# Build meshlab itself
+qmake-qt5 -recursive meshlab_mini.pro \
CFLAGS="$SLKCFLAGS" \
- CXXFLAGS="$SLKCFLAGS -fpermissive"
+ CXXFLAGS="$SLKCFLAGS -std=c++11"
+make
mkdir -p $PKG/opt
cp -a distrib/ $PKG/opt/meshlab
@@ -118,7 +135,7 @@ cp \
mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
cp -a \
- README.txt \
+ $TMP/$PRGNAM/LICENSE.txt $TMP/$PRGNAM/README.md \
$PKG/usr/doc/$PRGNAM-$VERSION
cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
diff --git a/graphics/meshlab/meshlab.info b/graphics/meshlab/meshlab.info
index 0e02c692e1..5a1ec6b309 100644
--- a/graphics/meshlab/meshlab.info
+++ b/graphics/meshlab/meshlab.info
@@ -1,10 +1,12 @@
PRGNAM="meshlab"
-VERSION="1.3.3"
-HOMEPAGE="http://meshlab.sourceforge.net/"
-DOWNLOAD="http://downloads.sourceforge.net/meshlab/MeshLabSrc_AllInc_v133.tgz"
-MD5SUM="cbdd83d4f3ed69e7a9837c34ebae307a"
+VERSION="2016.12"
+HOMEPAGE="http://www.meshlab.net/"
+DOWNLOAD="https://github.com/cnr-isti-vclab/meshlab/archive/v2016.12/meshlab-2016.12.tar.gz \
+ https://github.com/cnr-isti-vclab/vcglib/archive/v1.0.1/vcglib-1.0.1.tar.gz"
+MD5SUM="a7f371fb142b9b1c2ff7ae5381900d42 \
+ 4fee598c1b3c4f8ceca7086fd68cf75d"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
-REQUIRES="lapack mpir"
+REQUIRES="levmar muParser mpir qt5"
MAINTAINER="David Spencer"
EMAIL="baildon.research@googlemail.com"
diff --git a/graphics/meshlab/patches/1e2a54cee2fcb2f0fc15fd83c1014e1813eb75df.patch b/graphics/meshlab/patches/1e2a54cee2fcb2f0fc15fd83c1014e1813eb75df.patch
new file mode 100644
index 0000000000..3d4638bdeb
--- /dev/null
+++ b/graphics/meshlab/patches/1e2a54cee2fcb2f0fc15fd83c1014e1813eb75df.patch
@@ -0,0 +1,79 @@
+From 1e2a54cee2fcb2f0fc15fd83c1014e1813eb75df Mon Sep 17 00:00:00 2001
+From: Guido Ranzuglia <guido.ranzuglia@isti.cnr.it>
+Date: Mon, 9 Jan 2017 17:51:01 +0100
+Subject: [PATCH] - added locale support to MeshLab&MeshLabServer -fixed "not
+ enough memory" bug in MeshLabServer
+
+---
+ src/meshlab/main.cpp | 2 ++
+ src/meshlabserver/mainserver.cpp | 21 ++++++++++++++++-----
+ 2 files changed, 18 insertions(+), 5 deletions(-)
+
+diff --git a/src/meshlab/main.cpp b/src/meshlab/main.cpp
+index eee69b9..068e8ab 100644
+--- a/src/meshlab/main.cpp
++++ b/src/meshlab/main.cpp
+@@ -24,11 +24,13 @@
+ #include <QMessageBox>
+ #include "mainwindow.h"
+ #include <QString>
++#include <clocale>
+
+ int main(int argc, char *argv[])
+ {
+
+ MeshLabApplication app(argc, argv);
++ std::setlocale(LC_ALL, "C");
+ QLocale::setDefault(QLocale::C);
+ QCoreApplication::setOrganizationName(MeshLabApplication::organization());
+ #if QT_VERSION >= 0x050100
+diff --git a/src/meshlabserver/mainserver.cpp b/src/meshlabserver/mainserver.cpp
+index ab9a7c0..28b86c3 100644
+--- a/src/meshlabserver/mainserver.cpp
++++ b/src/meshlabserver/mainserver.cpp
+@@ -29,7 +29,10 @@
+ #include <common/filterscript.h>
+ #include <common/meshlabdocumentxml.h>
+ #include <common/mlexception.h>
++#include <common/filterparameter.h>
+ #include <wrap/qt/qt_thread_safe_memory_info.h>
++#include "../meshlab/mainwindow.h"
++#include <clocale>
+
+ #include <QFileInfo>
+
+@@ -619,11 +622,11 @@ struct OutProject
+
+ int main(int argc, char *argv[])
+ {
+-
+-
+ FILE* logfp = stdout;
+ FILE* dumpfp = NULL;
+ MeshLabApplication app(argc, argv);
++ std::setlocale(LC_ALL, "C");
++ QLocale::setDefault(QLocale::C);
+ if(argc == 1)
+ {
+ commandline::usage();
+@@ -645,9 +648,17 @@ int main(int argc, char *argv[])
+ exit(-1);
+ }
+
+- QSettings st;
+- QVariant mbvar = st.value("MeshLab::System::maxGPUMemDedicatedToGeometry");
+- std::ptrdiff_t maxgpumem = (std::ptrdiff_t)mbvar.toInt() * (float)(1024 * 1024);
++ QSettings settings(MeshLabApplication::organization(),MeshLabApplication::appArchitecturalName(MeshLabApplication::HW_64BIT));
++
++ QVariant xmlgpupar = settings.value(MainWindowSetting::maximumDedicatedGPUMem());
++
++ QDomDocument doc;
++ doc.setContent(xmlgpupar.toString(), false);
++
++ QDomElement paramelem = doc.firstChild().toElement();
++ int gpumemmb = paramelem.attribute("value").toInt();
++
++ std::ptrdiff_t maxgpumem = (std::ptrdiff_t) gpumemmb * (float)(1024 * 1024);
+ vcg::QtThreadSafeMemoryInfo gpumeminfo(maxgpumem);
+
+ MeshDocument meshDocument;
diff --git a/graphics/meshlab/patches/612388c42d00ab8eba1d9626a7da33a18c724d76.patch b/graphics/meshlab/patches/612388c42d00ab8eba1d9626a7da33a18c724d76.patch
new file mode 100644
index 0000000000..d0b7abcdd2
--- /dev/null
+++ b/graphics/meshlab/patches/612388c42d00ab8eba1d9626a7da33a18c724d76.patch
@@ -0,0 +1,28 @@
+From 612388c42d00ab8eba1d9626a7da33a18c724d76 Mon Sep 17 00:00:00 2001
+From: bartoszek <bartus@yopmail.com>
+Date: Sun, 15 Jan 2017 22:19:18 +0100
+Subject: [PATCH] add missing linker flag for linux
+
+also extend post link file copying to include linux build ( linking is somewhat strange but wont work without )
+---
+ src/meshlabplugins/filter_screened_poisson/filter_screened_poisson.pro | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/src/meshlabplugins/filter_screened_poisson/filter_screened_poisson.pro b/src/meshlabplugins/filter_screened_poisson/filter_screened_poisson.pro
+index 814bd31..a93f67a 100644
+--- a/src/meshlabplugins/filter_screened_poisson/filter_screened_poisson.pro
++++ b/src/meshlabplugins/filter_screened_poisson/filter_screened_poisson.pro
+@@ -2,6 +2,7 @@ include (../../shared.pri)
+
+ macx:QMAKE_CXX = clang++-mp-3.9
+ macx:QMAKE_LFLAGS += -L/opt/local/lib/libomp -lomp
++linux:QMAKE_LFLAGS += -lgomp
+ macx:QMAKE_CXXFLAGS_RELEASE+= -O3 -DRELEASE -funroll-loops -ffast-math -Wno-sign-compare -Wno-unused-parameter
+
+ QMAKE_CXXFLAGS+=-fopenmp
+@@ -22,4 +23,4 @@ DEFINES += FOR_RELEASE
+
+ #PRE_TARGETDEPS += ./filter_screened_poisson.xml
+ macx:QMAKE_POST_LINK = "cp "$$_PRO_FILE_PWD_/$$TARGET".xml ../../distrib/plugins/"$$TARGET".xml"
+-
++linux:QMAKE_POST_LINK = "cp "$$_PRO_FILE_PWD_/$$TARGET".xml ../../distrib/plugins/"$$TARGET".xml; cd ../../distrib/plugins/ ; ln -s "$$TARGET".xml lib"$$TARGET".xml"
diff --git a/graphics/meshlab/patches/bzip2.patch b/graphics/meshlab/patches/bzip2.patch
new file mode 100644
index 0000000000..49a822aa74
--- /dev/null
+++ b/graphics/meshlab/patches/bzip2.patch
@@ -0,0 +1,26 @@
+diff -Naur -r meshlab.orig/src/meshlabplugins/edit_arc3D/edit_arc3D.pro meshlab/src/meshlabplugins/edit_arc3D/edit_arc3D.pro
+--- meshlab.orig/src/meshlabplugins/edit_arc3D/edit_arc3D.pro 2016-10-31 21:31:43.301625217 +0100
++++ meshlab/src/meshlabplugins/edit_arc3D/edit_arc3D.pro 2016-10-31 21:36:46.694965117 +0100
+@@ -35,9 +35,9 @@
+ win32-msvc2013:LIBS += ../../external/lib/win32-msvc2013/bz2.lib
+ win32-msvc2015:LIBS += ../../external/lib/win32-msvc2015/bz2.lib
+ win32-g++:LIBS += ../../external/lib/win32-gcc/libbz2.a
+-linux-g++:LIBS += ../../external/lib/linux-g++/libbz2.a
+-linux-g++-32:LIBS += ../../external/lib/linux-g++-32/libbz2.a
+-linux-g++-64:LIBS += ../../external/lib/linux-g++-64/libbz2.a
++linux-g++:LIBS += -lbz2
++linux-g++-32:LIBS += -lbz2
++linux-g++-64:LIBS += -lbz2
+ mac:LIBS += -lbz2
+
+ win32-msvc2005:INCLUDEPATH += ../../external/bzip2-1.0.5
+@@ -48,9 +48,6 @@
+ win32-msvc2015:INCLUDEPATH += ../../external/bzip2-1.0.5
+
+ win32-g++:INCLUDEPATH += ../../external/bzip2-1.0.5
+-linux-g++:INCLUDEPATH += ../../external/bzip2-1.0.5
+-linux-g++-32:INCLUDEPATH += ../../external/bzip2-1.0.5
+-linux-g++-64:INCLUDEPATH += ../../external/bzip2-1.0.5
+
+
+ CONFIG(release, debug|release) {
diff --git a/graphics/meshlab/patches/lapack.patch b/graphics/meshlab/patches/lapack.patch
new file mode 100644
index 0000000000..81c0946340
--- /dev/null
+++ b/graphics/meshlab/patches/lapack.patch
@@ -0,0 +1,11 @@
+diff -Nur meshlab.orig/src/external/levmar-2.3/lm.h meshlab/src/external/levmar-2.3/lm.h
+--- meshlab.orig/src/external/levmar-2.3/lm.h 2010-04-28 17:30:47.000000000 +1000
++++ meshlab/src/external/levmar-2.3/lm.h 2010-05-13 20:17:35.488505907 +1000
+@@ -27,7 +27,6 @@
+
+ /* specify whether to use LAPACK or not. The first option is strongly recommended */
+ #define HAVE_LAPACK /* use LAPACK */
+- #undef HAVE_LAPACK /* uncomment this to force not using LAPACK */
+
+ /* to avoid the overhead of repeated mallocs(), routines in Axb.c can be instructed to
+ * retain working memory between calls. Such a choice, however, renders these routines
diff --git a/graphics/meshlab/patches/levmar.patch b/graphics/meshlab/patches/levmar.patch
new file mode 100644
index 0000000000..a43a2aeb1e
--- /dev/null
+++ b/graphics/meshlab/patches/levmar.patch
@@ -0,0 +1,112 @@
+--- ../meshlab/src/meshlabplugins/filter_isoparametrization/filter_isoparametrization.pro 2016-10-31 00:00:30.266005497 +0100
++++ meshlab/src/meshlabplugins/filter_isoparametrization/filter_isoparametrization.pro 2016-10-31 21:55:34.158322851 +0100
+@@ -51,9 +51,9 @@
+ win32-msvc2012:LIBS += ../../external/lib/win32-msvc2012/levmar.lib
+ win32-msvc2015:LIBS += ../../external/lib/win32-msvc2015/levmar.lib
+ win32-g++:LIBS += -L../../external/lib/win32-gcc -llevmar
+-linux-g++:LIBS += -L../../external/lib/linux-g++ -llevmar
+-linux-g++-32:LIBS += -L../../external/lib/linux-g++-32 -llevmar
+-linux-g++-64:LIBS += -L../../external/lib/linux-g++-64 -llevmar
++linux-g++:LIBS += -llevmar
++linux-g++-32:LIBS += -llevmar
++linux-g++-64:LIBS += -llevmar
+ macx:LIBS += $$MACLIBDIR/liblevmar.a
+
+ # Please never ever uncomment this...
+diff -Naur -r ../meshlab/src/meshlabplugins/filter_mutualinfoxml/levmarmethods.h meshlab/src/meshlabplugins/filter_mutualinfoxml/levmarmethods.h
+--- ../meshlab/src/meshlabplugins/filter_mutualinfoxml/levmarmethods.h 2016-10-31 00:00:30.692667284 +0100
++++ meshlab/src/meshlabplugins/filter_mutualinfoxml/levmarmethods.h 2016-10-31 22:10:49.158342653 +0100
+@@ -12,7 +12,7 @@
+
+ #include <list>
+
+-#include "../../external/levmar-2.3/lm.h"
++#include <levmar/levmar.h>
+
+
+ struct LevmarCorrelation {
+diff -Naur -r ../meshlab/src/meshlabplugins/filter_mutualinfoxml/solver.h meshlab/src/meshlabplugins/filter_mutualinfoxml/solver.h
+--- ../meshlab/src/meshlabplugins/filter_mutualinfoxml/solver.h 2016-10-31 00:00:30.692667284 +0100
++++ meshlab/src/meshlabplugins/filter_mutualinfoxml/solver.h 2016-10-31 22:11:16.808343251 +0100
+@@ -5,7 +5,7 @@
+ #include "alignset.h"
+
+ #include "parameters.h"
+-#include "../../external/levmar-2.3/lm.h"
++#include <levmar/levmar.h>
+
+ #include <iostream>
+ #include <fstream>
+diff -Naur -r ../meshlab/src/plugins_experimental/edit_mutualcorrs/levmarmethods.h meshlab/src/plugins_experimental/edit_mutualcorrs/levmarmethods.h
+--- ../meshlab/src/plugins_experimental/edit_mutualcorrs/levmarmethods.h 2016-10-31 00:00:08.816250885 +0100
++++ meshlab/src/plugins_experimental/edit_mutualcorrs/levmarmethods.h 2016-10-31 22:23:35.671692575 +0100
+@@ -12,7 +12,7 @@
+
+ #include <list>
+
+-#include "../../external/levmar-2.3/lm.h"
++#include <levmar/levmar.h>
+
+
+ struct LevmarCorrelation {
+diff -Naur -r ../meshlab/src/plugins_experimental/edit_mutualcorrs/solver.h meshlab/src/plugins_experimental/edit_mutualcorrs/solver.h
+--- ../meshlab/src/plugins_experimental/edit_mutualcorrs/solver.h 2016-10-31 00:00:08.816250885 +0100
++++ meshlab/src/plugins_experimental/edit_mutualcorrs/solver.h 2016-10-31 22:24:05.935026562 +0100
+@@ -5,7 +5,7 @@
+ #include "alignset.h"
+
+ #include "parameters.h"
+-#include "../../external/levmar-2.3/lm.h"
++#include <levmar/levmar.h>
+
+ #include <iostream>
+ #include <fstream>
+diff -Naur -r ../meshlab/src/plugins_experimental/filter_mutualglobal/levmarmethods.h meshlab/src/plugins_experimental/filter_mutualglobal/levmarmethods.h
+--- ../meshlab/src/plugins_experimental/filter_mutualglobal/levmarmethods.h 2016-10-31 00:00:09.476243333 +0100
++++ meshlab/src/plugins_experimental/filter_mutualglobal/levmarmethods.h 2016-10-31 22:30:06.391701030 +0100
+@@ -12,7 +12,7 @@
+
+ #include <list>
+
+-#include "../../external/levmar-2.3/lm.h"
++#include <levmar/levmar.h>
+
+
+ struct LevmarCorrelation {
+diff -Naur -r ../meshlab/src/plugins_experimental/filter_mutualglobal/solver.h meshlab/src/plugins_experimental/filter_mutualglobal/solver.h
+--- ../meshlab/src/plugins_experimental/filter_mutualglobal/solver.h 2016-10-31 00:00:09.476243333 +0100
++++ meshlab/src/plugins_experimental/filter_mutualglobal/solver.h 2016-10-31 22:29:02.815032988 +0100
+@@ -5,7 +5,7 @@
+ #include "alignset.h"
+
+ #include "parameters.h"
+-#include "../../external/levmar-2.3/lm.h"
++#include <levmar/levmar.h>
+
+ #include <iostream>
+ #include <fstream>
+diff --git a/src/plugins_experimental/edit_mutualcorrs/edit_mutualcorrs.pro b/src/plugins_experimental/edit_mutualcorrs/edit_mutualcorrs.pro
+index 049bec6..84f6ca9 100644
+--- a/src/plugins_experimental/edit_mutualcorrs/edit_mutualcorrs.pro
++++ meshlab/src/plugins_experimental/edit_mutualcorrs/edit_mutualcorrs.pro
+@@ -1,7 +1,7 @@
+ include (../../shared.pri)
+
+
+-HEADERS = += ./alignset.h \
++HEADERS += ./alignset.h \
+ ./levmarmethods.h \
+ ./mutual.h \
+ ./parameters.h \
+@@ -29,8 +29,8 @@ FORMS = edit_mutualcorrsDialog.ui
+ win32-msvc2013: LIBS += ../../external/lib/win32-msvc2013/levmar.lib
+ win32-msvc2015: LIBS += ../../external/lib/win32-msvc2015/levmar.lib
+ win32-g++:LIBS += -L../../external -llevmar
+-linux-g++:LIBS += -L../../external/lib/linux-g++ -llevmar
+-linux-g++-32:LIBS += -L../../external/lib/linux-g++-32 -llevmar
+-linux-g++-64:LIBS += -L../../external/lib/linux-g++-64 -llevmar
++linux-g++:LIBS += -llevmar
++linux-g++-32:LIBS += -llevmar
++linux-g++-64:LIBS += -llevmar
+ macx:LIBS += $$MACLIBDIR/liblevmar.a
+
diff --git a/graphics/meshlab/patches/mpir.patch b/graphics/meshlab/patches/mpir.patch
new file mode 100644
index 0000000000..9e0829b694
--- /dev/null
+++ b/graphics/meshlab/patches/mpir.patch
@@ -0,0 +1,16 @@
+diff --git a/src/meshlabplugins/filter_csg/filter_csg.pro b/src/meshlabplugins/filter_csg/filter_csg.pro
+index 52147b1..f41385d 100644
+--- meshlab.orig/src/meshlabplugins/filter_csg/filter_csg.pro
++++ meshlab/src/meshlabplugins/filter_csg/filter_csg.pro
+@@ -20,7 +20,7 @@ win32-msvc2008:LIBS += ../../external/lib/win32-msvc2008/mpirxx.lib ../../exte
+ win32-msvc2010:LIBS += ../../external/lib/win32-msvc2008/mpirxx.lib ../../external/lib/win32-msvc2008/mpir.lib
+ win32-msvc2012:LIBS += ../../external/lib/win32-msvc2008/mpirxx.lib ../../external/lib/win32-msvc2008/mpir.lib
+ win32-msvc2015:LIBS += ../../external/lib/win32-msvc2015/mpirxx.lib ../../external/lib/win32-msvc2015/mpir.lib
+-linux-g++:INCLUDEPATH += ../../external/inc/linux-g++/mpir-2.4.0
+-linux-g++:LIBS += ../../external/lib/linux-g++/libmpirxx.a ../../external/lib/linux-g++/libmpir.a
+-linux-g++-64:INCLUDEPATH += ../../external/inc/linux-g++/mpir-2.4.0
+-linux-g++-64:LIBS += ../../external/lib/linux-g++-64/libmpirxx.a ../../external/lib/linux-g++-64/libmpir.a
++unix:LIBS += -lmpirxx -lmpir
++linux-g++-:LIBS += -lmpirxx -lmpir
++linux-g++-32:LIBS += -lmpirxx -lmpir
++linux-g++-64:LIBS += -lmpirxx -lmpir
diff --git a/graphics/meshlab/patches/muparser.patch b/graphics/meshlab/patches/muparser.patch
new file mode 100644
index 0000000000..d500a17d76
--- /dev/null
+++ b/graphics/meshlab/patches/muparser.patch
@@ -0,0 +1,14 @@
+diff -Naur ../meshlab/src/meshlabplugins/filter_func/filter_func.pro meshlab/src/meshlabplugins/filter_func/filter_func.pro
+--- ../meshlab/src/meshlabplugins/filter_func/filter_func.pro 2016-10-31 00:00:30.459336619 +0100
++++ meshlab/src/meshlabplugins/filter_func/filter_func.pro 2016-10-31 21:42:47.134972919 +0100
+@@ -19,7 +19,7 @@
+ win32-msvc2015:LIBS += ../../external/lib/win32-msvc2015/muparser.lib
+
+ macx:LIBS += $$MACLIBDIR/libmuparser.a
+-linux-g++:LIBS += ../../external/lib/linux-g++/libmuparser.a
+-linux-g++-32:LIBS += ../../external/lib/linux-g++-32/libmuparser.a
+-linux-g++-64:LIBS += ../../external/lib/linux-g++-64/libmuparser.a
++linux-g++:LIBS += -lmuparser
++linux-g++-32:LIBS += -lmuparser
++linux-g++-64:LIBS += -lmuparser
+ win32-g++:LIBS += ../../external/lib/win32-gcc/libmuparser.a
diff --git a/graphics/meshlab/slack-desc b/graphics/meshlab/slack-desc
index 1a4bda9f54..b6536e687e 100644
--- a/graphics/meshlab/slack-desc
+++ b/graphics/meshlab/slack-desc
@@ -15,5 +15,5 @@ meshlab: unstructured models arising in 3D scanning, providing a set of tools
meshlab: for editing, cleaning, healing, inspecting, rendering and converting
meshlab: this kind of mesh.
meshlab:
-meshlab: Homepage: http://meshlab.sourceforge.net/
+meshlab: Homepage: http://www.meshlab.net/
meshlab: