Subject: [bug#55816] [PATCH] gnu: meshlab: Update to 2022.02.

From: "Paul A. Patience" <[email-masked]>
Date: Mon, 06 Jun 2022 03:41:35 +0000

Note that the previous version no longer compiled (this one does).

* gnu/packages/engineering.scm (meshlab): Update to 2022.02.
[inputs]: Remove the no longer required qtscript and
qtxmlpatterns. Add (uncomment) qhull.
[arguments]: Use G-expressions.
<#:configure-flags>: Set the rpath to fix missing libraries (presumably
new since the previous version) detected during the 'validate-runpath'
phase.
<#:phases>: Remove trailing boolean from 'go-to-source-dir' phase.
Remove the 'move-files' phase, which was made redundant by the manually
provided rpath.
[description]: Move a word and add some commas to improve the
readability. Typeset a program name in @samp{}.
---
 gnu/packages/engineering.scm | 53 ++++++++++++++++--------------------
 1 file changed, 23 insertions(+), 30 deletions(-)

diff --git a/gnu/packages/engineering.scm b/gnu/packages/engineering.scm
index 6b11fc54f0..f782bb87fb 100644
--- a/gnu/packages/engineering.scm
+++ b/gnu/packages/engineering.scm
@@ -2740,21 +2740,19 @@ (define-public lib3ds
 (define-public meshlab
   (package
     (name "meshlab")
-    (version "2020.06")
+    (version "2022.02")
     (source (origin
               (method git-fetch)
               (uri (git-reference
                     (url "https://github.com/cnr-isti-vclab/meshlab")
-                    (commit (string-append "Meshlab-" version))
+                    (commit (string-append "MeshLab-" version))
                     (recursive? #t)))
               (file-name (git-file-name name version))
               (sha256
-               (base32 "1cgx24wxh2ah5pff51rcrk6x8qcdjpkxcdak7s4cfzmxvjlshydd"))))
+               (base32 "0dkh9qw9z2160s6gjiv0a601kp6hvl66cplvi8rfc892zcykgiwd"))))
     (build-system cmake-build-system)
     (inputs
      (list qtbase-5
-           qtscript
-           qtxmlpatterns
            mesa
            glu
            glew
@@ -2764,34 +2762,29 @@ (define-public meshlab
            libfreenect
            lib3ds
            openctm
-           ;; FIXME: Compilation fails with system qhull:
-           ;; https://github.com/cnr-isti-vclab/meshlab/issues/678
-           ;; ("qhull" ,qhull)
-           ))
+           qhull))
     (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))))))
+     (list #:tests? #f                  ; Has no tests
+           #:configure-flags
+           #~(list (string-append "-DCMAKE_MODULE_LINKER_FLAGS=-Wl,-rpath="
+                                  #$output "/lib/meshlab")
+                   (string-append "-DCMAKE_SHARED_LINKER_FLAGS=-Wl,-rpath="
+                                  #$output "/lib/meshlab")
+                   (string-append "-DCMAKE_EXE_LINKER_FLAGS=-Wl,-rpath="
+                                  #$output "/lib/meshlab"))
+           #:phases
+           #~(modify-phases %standard-phases
+               (add-after 'unpack 'go-to-source-dir
+                 (lambda _ (chdir "src"))))))
     (synopsis "3D triangular mesh processing and editing software")
     (home-page "https://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.")
+    (description "MeshLab is a system for the processing and editing of large,
+unstructured, 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 @samp{meshlabserver}, a
+program that can perform mesh processing tasks in batch mode, without a GUI.")
     (license license:gpl3+)))

 (define-public poke
--
2.36.0