Subject: Re: [bug#40492] [PATCH] gnu: Add meshlab

From: Ekaitz Zarraga <[email-masked]>
Date: Sat, 25 Apr 2020 19:47:03 +0000

Saluton!

> Egun on, :-)
>
> [...]
> Not really, I think CMake initially sets the RUNPATH to the build tree,
> as shown above, that’s OK. I think it changes it upon “make install”.
>
> > If I need to change that, what do I have to do?
>
> One way to fix it would be to arrange to pass ‘-Wl,-rpath,'$ORIGIN'’ on
> the link command line of the plugins.
>
> Another solution would be to add a post-install phase to move
> libmeshlab-common.so* to $output/lib, which seems more conventional,
> though perhaps upstream had good reasons not to do that.

Went for the second option because I didn't know how to make the first and
looks like it's working.

Also I think I fixed everything you pointed in the first comment.

I attach the updated patch.

Thanks for your help Ludo,

Ekaitz
From 814e44cb90b1427a9af5d6a66392c5a39910e8fd Mon Sep 17 00:00:00 2001
From: Ekaitz Zarraga <[email-masked]>
Date: Tue, 7 Apr 2020 18:56:06 +0200
Subject: [PATCH] gnu: Add meshlab.

    * gnu/packages/engineering.scm (meshlab): New variable.
---
 gnu/packages/engineering.scm | 49 ++++++++++++++++++++++++++++++++++++
 1 file changed, 49 insertions(+)

diff --git a/gnu/packages/engineering.scm b/gnu/packages/engineering.scm
index 5405db762c..dbe7faf78b 100644
--- a/gnu/packages/engineering.scm
+++ b/gnu/packages/engineering.scm
@@ -2491,3 +2491,52 @@ without any changes.  And programmers that are familiar with the magellan API
 can continue using it with a free library without the restrictions of the
 official SDK.")
     (license license:bsd-3)))
+
+(define-public meshlab
+  (let ((version "2020.04"))
+    (package
+      (name "meshlab")
+      (version version)
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                       (url "https://github.com/cnr-isti-vclab/meshlab")
+                       (commit (string-append "Meshlab-" version))
+                       (recursive? #t)))
+                (sha256
+                  (base32 "1vx9jcsnnxvzi90pcxpp7p72cqg3cm6jiivdmrxkzhr2fiz3pfvr"))))
+      (build-system cmake-build-system)
+      (native-inputs
+        `(("qtbase" ,qtbase)
+          ("qtscript" ,qtscript)
+          ("qtxmlpatterns" ,qtxmlpatterns)
+          ("mesa", mesa)
+          ("glu", glu)))
+      (arguments
+        `(#:tests? #f ; Has no tests
+          #:phases
+          (modify-phases
+            %standard-phases
+              (add-after
+                'unpack 'go-to-source-dir
+                (lambda _ (chdir "src") #t))
+              (add-after
+                'install 'move-files
+                (lambda* (#:key outputs #:allow-other-keys)
+                         (let ((lib (string-append (assoc-ref outputs "out")
+                                                   "/lib")))
+                           (rename-file
+                             (string-append lib "/meshlab/libmeshlab-common.so")
+                             (string-append lib "/libmeshlab-common.so"))
+                           #t))))))
+      (synopsis "3D triangular mesh processing and editing software")
+                (home-page "http://www.meshlab.net/")
+                (description "MeshLab is a system for the processing and
+editing of unstructured large 3D triangular meshes.  It is aimed to help the
+processing of the typical not-so-small unstructured models arising in 3D
+scanning, providing a set of tools for editing, cleaning, healing, inspecting,
+rendering and converting this kind of meshes.  These tools include MeshLab
+proper, a versatile program with a graphical user interface, and meshlabserver,
+a program that can perform mesh processing tasks in batch mode, without a
+GUI.")
+                (license license:gpl3+))))
-- 
2.26.1