summary refs log tree commit diff
path: root/pkgs/applications/graphics/meshlab
diff options
context:
space:
mode:
authorPatrick Chilton <chpatrick@gmail.com>2017-12-04 14:59:25 +0100
committerBjørn Forsman <bjorn.forsman@gmail.com>2017-12-06 20:45:38 +0100
commit38e2228a3540af86e88858ca465cb07c40f102f6 (patch)
treea167e7375d53ea0a6a7d6d027cc506338a956d08 /pkgs/applications/graphics/meshlab
parent9d45624007d91142d503c58bb1923b435bb2438c (diff)
downloadnixpkgs-38e2228a3540af86e88858ca465cb07c40f102f6.tar
nixpkgs-38e2228a3540af86e88858ca465cb07c40f102f6.tar.gz
nixpkgs-38e2228a3540af86e88858ca465cb07c40f102f6.tar.bz2
nixpkgs-38e2228a3540af86e88858ca465cb07c40f102f6.tar.lz
nixpkgs-38e2228a3540af86e88858ca465cb07c40f102f6.tar.xz
nixpkgs-38e2228a3540af86e88858ca465cb07c40f102f6.tar.zst
nixpkgs-38e2228a3540af86e88858ca465cb07c40f102f6.zip
meshlab: 1.3.3 -> 2016.12
Diffstat (limited to 'pkgs/applications/graphics/meshlab')
-rw-r--r--pkgs/applications/graphics/meshlab/default.nix66
-rw-r--r--pkgs/applications/graphics/meshlab/fix-2016.02.patch88
-rw-r--r--pkgs/applications/graphics/meshlab/include-unistd.diff13
3 files changed, 128 insertions, 39 deletions
diff --git a/pkgs/applications/graphics/meshlab/default.nix b/pkgs/applications/graphics/meshlab/default.nix
index d73697673bf..1e76743eccf 100644
--- a/pkgs/applications/graphics/meshlab/default.nix
+++ b/pkgs/applications/graphics/meshlab/default.nix
@@ -1,51 +1,65 @@
-{ stdenv, fetchurl, qt4, bzip2, lib3ds, levmar, muparser, unzip, vcg }:
+{ stdenv, fetchFromGitHub, mesa_glu, qtbase, qtscript, qtxmlpatterns }:
 
-stdenv.mkDerivation rec {
-  name = "meshlab-1.3.3";
+let
+  meshlabRev = "5700f5474c8f90696a8925e2a209a0a8ab506662";
+  vcglibRev = "a8e87662b63ee9f4ded5d4699b28d74183040803";
+in stdenv.mkDerivation {
+  name = "meshlab-2016.12";
 
-  src = fetchurl {
-    url = "mirror://sourceforge/meshlab/meshlab/MeshLab%20v1.3.3/MeshLabSrc_AllInc_v133.tgz";
-    sha256 = "03wqaibfbfag2w1zi1a5z6h546r9d7pg2sjl5pwg24w7yp8rr0n9";
-  };
+  srcs =
+    [
+      (fetchFromGitHub {
+        owner = "cnr-isti-vclab";
+        repo = "meshlab";
+        rev = meshlabRev;
+        sha256 = "0srrp7zhi86dsg4zsx1615gr26barz38zdl8s03zq6vm1dgzl3cc";
+        name = "meshlab-${meshlabRev}";
+      })
+      (fetchFromGitHub {
+        owner = "cnr-isti-vclab";
+        repo = "vcglib";
+        rev = vcglibRev;
+        sha256 = "0jh8jc8rn7rci8qr3q03q574fk2hsc3rllysck41j8xkr3rmxz2f";
+        name = "vcglib-${vcglibRev}";
+      })
+    ];
 
-  # I don't know why I need this; without this, the rpath set at the beginning of the
-  # buildPhase gets removed from the 'meshlab' binary
-  dontPatchELF = true;
+  sourceRoot = "meshlab-${meshlabRev}";
 
-  patches = [ ./include-unistd.diff ];
+  patches = [ ./fix-2016.02.patch ];
 
   hardeningDisable = [ "format" ];
+  enableParallelBuilding = true;
 
   buildPhase = ''
-    mkdir -p "$out/include"
+    # MeshLab has ../vcglib hardcoded everywhere, so move the source dir
+    mv ../vcglib-${vcglibRev} ../vcglib
+
+    cd src
     export NIX_LDFLAGS="-rpath $out/opt/meshlab $NIX_LDFLAGS"
-    cd meshlab/src
+
     pushd external
     qmake -recursive external.pro
-    make
+    buildPhase
     popd
     qmake -recursive meshlab_full.pro
-    make
+    buildPhase
   '';
 
   installPhase = ''
-    mkdir -p $out/opt/meshlab $out/bin $out/lib
-    pushd distrib
-    cp -R * $out/opt/meshlab
-    popd
+    mkdir -p $out/opt/meshlab $out/bin
+    cp -Rv distrib/* $out/opt/meshlab
     ln -s $out/opt/meshlab/meshlab $out/bin/meshlab
+    ln -s $out/opt/meshlab/meshlabserver $out/bin/meshlabserver
   '';
 
-  sourceRoot = ".";
-
-  buildInputs = [ qt4 unzip vcg ];
+  buildInputs = [ mesa_glu qtbase qtscript qtxmlpatterns ];
 
   meta = {
-    description = "System for the processing and editing of unstructured 3D triangular meshes";
-    homepage = http://meshlab.sourceforge.net/;
-    license = stdenv.lib.licenses.gpl2Plus;
+    description = "A system for processing and editing 3D triangular meshes.";
+    homepage = http://www.meshlab.net/;
+    license = stdenv.lib.licenses.gpl3;
     maintainers = with stdenv.lib.maintainers; [viric];
     platforms = with stdenv.lib.platforms; linux;
-    broken = true;
   };
 }
diff --git a/pkgs/applications/graphics/meshlab/fix-2016.02.patch b/pkgs/applications/graphics/meshlab/fix-2016.02.patch
new file mode 100644
index 00000000000..ebccccc00a2
--- /dev/null
+++ b/pkgs/applications/graphics/meshlab/fix-2016.02.patch
@@ -0,0 +1,88 @@
+From 0fd17cd2b6d57e8a2a981a70115c2565ee076d0f Mon Sep 17 00:00:00 2001
+From: Marco Callieri <callieri@isti.cnr.it>
+Date: Mon, 9 Jan 2017 16:06:14 +0100
+Subject: [PATCH 1/3] resolved ambiguity for abs overloads
+
+
+diff --git a/src/meshlabplugins/edit_quality/eqhandle.cpp b/src/meshlabplugins/edit_quality/eqhandle.cpp
+index 364d53bf..ef3d4a2d 100644
+--- a/src/meshlabplugins/edit_quality/eqhandle.cpp
++++ b/src/meshlabplugins/edit_quality/eqhandle.cpp
+@@ -83,7 +83,7 @@ void EqHandle::mouseMoveEvent(QGraphicsSceneMouseEvent *event)
+ 	setCursor(Qt::OpenHandCursor);
+ 
+ 	QPointF newPos = event->scenePos();
+-	qreal handleOffset = abs(newPos.x()-pos().x());
++	qreal handleOffset = std::fabs(newPos.x()-pos().x());
+ 
+ 	if (handleOffset >= std::numeric_limits<float>::epsilon())
+ 	{
+-- 
+2.15.0
+
+
+From 33cfd5801e59b6c9e34360c75112e6dcb88d807b Mon Sep 17 00:00:00 2001
+From: Marco Callieri <callieri@isti.cnr.it>
+Date: Tue, 10 Jan 2017 10:05:05 +0100
+Subject: [PATCH 2/3] again, fabs ambiguity
+
+
+diff --git a/src/meshlabplugins/edit_quality/eqhandle.cpp b/src/meshlabplugins/edit_quality/eqhandle.cpp
+index ef3d4a2d..d29f8c45 100644
+--- a/src/meshlabplugins/edit_quality/eqhandle.cpp
++++ b/src/meshlabplugins/edit_quality/eqhandle.cpp
+@@ -30,6 +30,7 @@ FIRST RELEASE
+ #include "eqhandle.h"
+ #include <QMouseEvent>
+ #include <QGraphicsSceneMouseEvent>
++#include <math.h>
+ 
+ EqHandle::EqHandle(CHART_INFO *environment_info, QColor color, QPointF position, 
+ 				   EQUALIZER_HANDLE_TYPE type, EqHandle** handles, qreal* midHandlePercentilePosition, QDoubleSpinBox* spinbox,
+@@ -83,7 +84,7 @@ void EqHandle::mouseMoveEvent(QGraphicsSceneMouseEvent *event)
+ 	setCursor(Qt::OpenHandCursor);
+ 
+ 	QPointF newPos = event->scenePos();
+-	qreal handleOffset = std::fabs(newPos.x()-pos().x());
++	qreal handleOffset = fabs(newPos.x()-pos().x());
+ 
+ 	if (handleOffset >= std::numeric_limits<float>::epsilon())
+ 	{
+-- 
+2.15.0
+
+
+From d717e44f4134ebee03322a6a2a56fce626084a3c Mon Sep 17 00:00:00 2001
+From: Patrick Chilton <chpatrick@gmail.com>
+Date: Mon, 4 Dec 2017 21:27:23 +0100
+Subject: [PATCH 3/3] io_TXT -> io_txt
+
+
+diff --git a/src/meshlab_full.pro b/src/meshlab_full.pro
+index 6ea7f1db..2a95c127 100644
+--- a/src/meshlab_full.pro
++++ b/src/meshlab_full.pro
+@@ -16,7 +16,7 @@ SUBDIRS       = common \
+                 meshlabplugins/io_x3d \
+                 meshlabplugins/io_expe \
+                 meshlabplugins/io_pdb \
+-                plugins_experimental/io_TXT \
++                plugins_experimental/io_txt \
+ # Filter plugins
+                 meshlabplugins/filter_aging \
+                 meshlabplugins/filter_ao \
+diff --git a/src/plugins_experimental/io_TXT/io_txt.cpp b/src/plugins_experimental/io_txt/io_txt.cpp
+similarity index 100%
+rename from src/plugins_experimental/io_TXT/io_txt.cpp
+rename to src/plugins_experimental/io_txt/io_txt.cpp
+diff --git a/src/plugins_experimental/io_TXT/io_txt.h b/src/plugins_experimental/io_txt/io_txt.h
+similarity index 100%
+rename from src/plugins_experimental/io_TXT/io_txt.h
+rename to src/plugins_experimental/io_txt/io_txt.h
+diff --git a/src/plugins_experimental/io_TXT/io_txt.pro b/src/plugins_experimental/io_txt/io_txt.pro
+similarity index 100%
+rename from src/plugins_experimental/io_TXT/io_txt.pro
+rename to src/plugins_experimental/io_txt/io_txt.pro
+-- 
+2.15.0
+
diff --git a/pkgs/applications/graphics/meshlab/include-unistd.diff b/pkgs/applications/graphics/meshlab/include-unistd.diff
deleted file mode 100644
index 74f28a4d211..00000000000
--- a/pkgs/applications/graphics/meshlab/include-unistd.diff
+++ /dev/null
@@ -1,13 +0,0 @@
-*** old/vcglib/wrap/ply/plystuff.h	2013-02-09 00:00:04.110705851 -0500
---- new/vcglib/wrap/ply/plystuff.h	2013-02-09 15:20:53.482205183 -0500
-***************
-*** 75,80 ****
---- 75,81 ----
-  #define pb_close  _close
-  #define DIR_SEP "\\"
-  #else
-+ #include <unistd.h>
-  #define pb_mkdir(n)  mkdir(n,0755)
-  #define pb_access access
-  #define pb_stat   stat
-