Message ID | 87blneynu0.fsf@gnu.org |
---|---|
State | Accepted |
Headers | show |
Series | [bug#40492] gnu: Add meshlab | expand |
Context | Check | Description |
---|---|---|
cbaines/applying patch | fail | View Laminar job |
On Sunday, April 26, 2020 10:49 PM, Ludovic Courtès <ludo@gnu.org> wrote: > Saluton! > > Ekaitz Zarraga ekaitz@elenq.tech skribis: > > > From 814e44cb90b1427a9af5d6a66392c5a39910e8fd Mon Sep 17 00:00:00 2001 > > From: Ekaitz Zarraga ekaitz@elenq.tech > > Date: Tue, 7 Apr 2020 18:56:06 +0200 > > Subject: [PATCH] gnu: Add meshlab. > > > > * gnu/packages/engineering.scm (meshlab): New variable. > > > > Great! I added a copyright line for you, fixed up indentation (see the > bit in the manual for how to do that automatically), and added a > comment—patch attached. > > It built for me, but then I realized I had missed something: the > external/ sub-directory contains lots of bundled copies of external > tools, and indeed, the ‘configure’ phase shows: > > --8<---------------cut here---------------start------------->8--- > -- Could NOT find Lib3ds (missing: LIB3DS_INCLUDE_DIR LIB3DS_LIBRARY) > -- Could NOT find GMP (missing: GMP_INCLUDE_DIR GMP_LIBRARY) > -- Could NOT find muparser (missing: MUPARSER_INCLUDE_DIR MUPARSER_LIBRARY) > -- Could NOT find OpenCTM (missing: OPENCTM_INCLUDE_DIR OPENCTM_LIBRARY) > -- Could NOT find Qhull (missing: QHULL_qhull_LIBRARY QHULL_qhull_INCLUDE_DIR qhull) > -- Found OpenMP_C: -fopenmp (found version "4.5") > -- Found OpenMP_CXX: -fopenmp (found version "4.5") > -- Found OpenMP: TRUE (found version "4.5") > -- - jhead - using bundled source > -- - glew - using bundled source > -- - Eigen - using bundled source > -- - newuoa - using bundled source > -- - levmar - using bundled source > -- - lib3ds - using bundled source > -- - muparser - using bundled source > -- - OpenCTM - using bundled source > -- - structure-synth - using bundled source > -- - qhull - using bundled source > --8<---------------cut here---------------end--------------->8--- > > Some of these are already packaged, so it should be a matter of adding > them to ‘inputs’. For the remaining ones, it would be extra packaging > work to do. > > The goal is to address all of these, but if we can address the majority > of these, perhaps we can commit a first version of the package with a > FIXME stating what remains to be done, if you prefer. > > Thanks, and apologies for overlooking it before! > > Ludo’. Hi, No worries, I'll try to take a look to those. We can push it with the Fixme and I'll go adding those during these days when I'm free. Thanks! PS: Should I push those to the same file under engineering? or should I create a new file for meshlab and add all its dependencies there too?
Saluton,
Ekaitz Zarraga <ekaitz@elenq.tech> skribis:
> PS: Should I push those to the same file under engineering? or should I create a new file for meshlab and add all its dependencies there too?
You can add the new packages in the file where it makes most sense,
which may or may not be engineering.scm.
Thanks for looking into it!
Ludo’.
Saluton, Did you have a change to look into this? Thanks, Ludo'. Ekaitz Zarraga <ekaitz@elenq.tech> skribis: > On Sunday, April 26, 2020 10:49 PM, Ludovic Courtès <ludo@gnu.org> wrote: > >> Saluton! >> >> Ekaitz Zarraga ekaitz@elenq.tech skribis: >> >> > From 814e44cb90b1427a9af5d6a66392c5a39910e8fd Mon Sep 17 00:00:00 2001 >> > From: Ekaitz Zarraga ekaitz@elenq.tech >> > Date: Tue, 7 Apr 2020 18:56:06 +0200 >> > Subject: [PATCH] gnu: Add meshlab. >> > >> > * gnu/packages/engineering.scm (meshlab): New variable. >> > >> >> Great! I added a copyright line for you, fixed up indentation (see the >> bit in the manual for how to do that automatically), and added a >> comment—patch attached. >> >> It built for me, but then I realized I had missed something: the >> external/ sub-directory contains lots of bundled copies of external >> tools, and indeed, the ‘configure’ phase shows: >> >> --8<---------------cut here---------------start------------->8--- >> -- Could NOT find Lib3ds (missing: LIB3DS_INCLUDE_DIR LIB3DS_LIBRARY) >> -- Could NOT find GMP (missing: GMP_INCLUDE_DIR GMP_LIBRARY) >> -- Could NOT find muparser (missing: MUPARSER_INCLUDE_DIR MUPARSER_LIBRARY) >> -- Could NOT find OpenCTM (missing: OPENCTM_INCLUDE_DIR OPENCTM_LIBRARY) >> -- Could NOT find Qhull (missing: QHULL_qhull_LIBRARY QHULL_qhull_INCLUDE_DIR qhull) >> -- Found OpenMP_C: -fopenmp (found version "4.5") >> -- Found OpenMP_CXX: -fopenmp (found version "4.5") >> -- Found OpenMP: TRUE (found version "4.5") >> -- - jhead - using bundled source >> -- - glew - using bundled source >> -- - Eigen - using bundled source >> -- - newuoa - using bundled source >> -- - levmar - using bundled source >> -- - lib3ds - using bundled source >> -- - muparser - using bundled source >> -- - OpenCTM - using bundled source >> -- - structure-synth - using bundled source >> -- - qhull - using bundled source >> --8<---------------cut here---------------end--------------->8--- >> >> Some of these are already packaged, so it should be a matter of adding >> them to ‘inputs’. For the remaining ones, it would be extra packaging >> work to do. >> >> The goal is to address all of these, but if we can address the majority >> of these, perhaps we can commit a first version of the package with a >> FIXME stating what remains to be done, if you prefer. >> >> Thanks, and apologies for overlooking it before! >> >> Ludo’. > > Hi, > > No worries, I'll try to take a look to those. > > We can push it with the Fixme and I'll go adding those during these days when I'm free. > > Thanks! > > PS: Should I push those to the same file under engineering? or should I create a new file for meshlab and add all its dependencies there too?
Saluton, Did you have a change to look into this? Thanks, Ludo'. Ekaitz Zarraga <ekaitz@elenq.tech> skribis: > On Sunday, April 26, 2020 10:49 PM, Ludovic Courtès <ludo@gnu.org> wrote: > >> Saluton! >> >> Ekaitz Zarraga ekaitz@elenq.tech skribis: >> >> > From 814e44cb90b1427a9af5d6a66392c5a39910e8fd Mon Sep 17 00:00:00 2001 >> > From: Ekaitz Zarraga ekaitz@elenq.tech >> > Date: Tue, 7 Apr 2020 18:56:06 +0200 >> > Subject: [PATCH] gnu: Add meshlab. >> > >> > * gnu/packages/engineering.scm (meshlab): New variable. >> > >> >> Great! I added a copyright line for you, fixed up indentation (see the >> bit in the manual for how to do that automatically), and added a >> comment—patch attached. >> >> It built for me, but then I realized I had missed something: the >> external/ sub-directory contains lots of bundled copies of external >> tools, and indeed, the ‘configure’ phase shows: >> >> --8<---------------cut here---------------start------------->8--- >> -- Could NOT find Lib3ds (missing: LIB3DS_INCLUDE_DIR LIB3DS_LIBRARY) >> -- Could NOT find GMP (missing: GMP_INCLUDE_DIR GMP_LIBRARY) >> -- Could NOT find muparser (missing: MUPARSER_INCLUDE_DIR MUPARSER_LIBRARY) >> -- Could NOT find OpenCTM (missing: OPENCTM_INCLUDE_DIR OPENCTM_LIBRARY) >> -- Could NOT find Qhull (missing: QHULL_qhull_LIBRARY QHULL_qhull_INCLUDE_DIR qhull) >> -- Found OpenMP_C: -fopenmp (found version "4.5") >> -- Found OpenMP_CXX: -fopenmp (found version "4.5") >> -- Found OpenMP: TRUE (found version "4.5") >> -- - jhead - using bundled source >> -- - glew - using bundled source >> -- - Eigen - using bundled source >> -- - newuoa - using bundled source >> -- - levmar - using bundled source >> -- - lib3ds - using bundled source >> -- - muparser - using bundled source >> -- - OpenCTM - using bundled source >> -- - structure-synth - using bundled source >> -- - qhull - using bundled source >> --8<---------------cut here---------------end--------------->8--- >> >> Some of these are already packaged, so it should be a matter of adding >> them to ‘inputs’. For the remaining ones, it would be extra packaging >> work to do. >> >> The goal is to address all of these, but if we can address the majority >> of these, perhaps we can commit a first version of the package with a >> FIXME stating what remains to be done, if you prefer. >> >> Thanks, and apologies for overlooking it before! >> >> Ludo’. > > Hi, > > No worries, I'll try to take a look to those. > > We can push it with the Fixme and I'll go adding those during these days when I'm free. > > Thanks! > > PS: Should I push those to the same file under engineering? or should I create a new file for meshlab and add all its dependencies there too?
‐‐‐‐‐‐‐ Original Message ‐‐‐‐‐‐‐ On Friday, May 8, 2020 4:30 PM, Ludovic Courtès <ludo@gnu.org> wrote: > Saluton, > > Did you have a change to look into this? > > Thanks, > Ludo'. > Not yet :( I'll try to get some free time these days but I've been busy. Is it possible to add it like it is with embedded libraries temporarily until we separate all of them?
Hi, > Not yet :( > > I'll try to get some free time these days but I've been busy. > Is it possible to add it like it is with embedded libraries temporarily until we separate all of them? I'm working on it. I managed to add some system provided libraries but I'm having issues with qhull and I'm trying to fix them upstream. First step, I filed an issue in meshlab: https://github.com/cnr-isti-vclab/meshlab/issues/678 Second step will be to fix the issue. Next I need to figure out what to do with the rest of the libraries. Should we package all of them? Some of them don't look interesting by themselves, maybe it's better to keep them bundled. I also have a question: Most of the libraries that are bundled in meshlab have very old versions (qhull's version is from 2003). How does Guix handle breaking changes in libraries? If meshlab doesn't support newer libraries, what do we need to do? I'll manage to correct qhull's issue and submit a new patch. Thanks!
Egun on! Ekaitz Zarraga <ekaitz@elenq.tech> skribis: > I'm working on it. I managed to add some system provided libraries but I'm having issues with qhull and I'm trying to fix them upstream. > > First step, I filed an issue in meshlab: https://github.com/cnr-isti-vclab/meshlab/issues/678 Great! > Second step will be to fix the issue. > > Next I need to figure out what to do with the rest of the libraries. Should we package all of them? Some of them don't look interesting by themselves, maybe it's better to keep them bundled. Ideally, yes. Now, if some of these libraries have no other users, we can make an exception. > I also have a question: > Most of the libraries that are bundled in meshlab have very old versions (qhull's version is from 2003). How does Guix handle breaking changes in libraries? > If meshlab doesn't support newer libraries, what do we need to do? We could still unbundle for example qhull and, if needed, package that older version that Meshlab need. In parallel, we can report the issue to the Meshlab developers so that future versions can use the current qhull. I realize this is quite some work, so you’re welcome to improve things incrementally. If you don’t manage to deal with all the bundled libraries, then you can still send an updated patch and we’ll see where we are and perhaps push the version you arrived at. Thank you! Ludo’.
Kaixo, On Monday, May 11, 2020 2:44 PM, Ludovic Courtès <ludo@gnu.org> wrote: > Egun on! > > > Second step will be to fix the issue. > > Next I need to figure out what to do with the rest of the libraries. Should we package all of them? Some of them don't look interesting by themselves, maybe it's better to keep them bundled. > > Ideally, yes. Now, if some of these libraries have no other users, we > can make an exception. Understood. Weird stuff like openkinect is not going to be used anywhere else, right? :D > > I also have a question: > > Most of the libraries that are bundled in meshlab have very old versions (qhull's version is from 2003). How does Guix handle breaking changes in libraries? > > If meshlab doesn't support newer libraries, what do we need to do? > > We could still unbundle for example qhull and, if needed, package that > older version that Meshlab need. In parallel, we can report the issue > to the Meshlab developers so that future versions can use the current > qhull. Ok! > I realize this is quite some work, so you’re welcome to improve things > incrementally. If you don’t manage to deal with all the bundled > libraries, then you can still send an updated patch and we’ll see where > we are and perhaps push the version you arrived at. I attach what I currently have. It's a working package with most recent version of Meshlab (overwrites older patch) with some of the libraries unbundled. It has some extra comments about bundled libs that may be better to remove if it's released, but I'll leave that to your opinion. I'll keep doing this because it's important for me. Meshlab is a very powerful tool and we almost have it! ty, Ekaitz
diff --git a/gnu/packages/engineering.scm b/gnu/packages/engineering.scm index 2fc2ecdd88..ee90e3b429 100644 --- a/gnu/packages/engineering.scm +++ b/gnu/packages/engineering.scm @@ -16,6 +16,7 @@ ;;; Copyright © 2019 John Soo <jsoo1@asu.edu> ;;; Copyright © 2020 Brice Waegeneire <brice@waegenei.re> ;;; Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com> +;;; Copyright © 2020 Ekaitz Zarraga <ekaitz@elenq.tech> ;;; ;;; This file is part of GNU Guix. ;;; @@ -2520,43 +2521,43 @@ official SDK.") (source (origin (method git-fetch) (uri (git-reference - (url "https://github.com/cnr-isti-vclab/meshlab") - (commit (string-append "Meshlab-" version)) - (recursive? #t))) + (url "https://github.com/cnr-isti-vclab/meshlab") + (commit (string-append "Meshlab-" version)) + (recursive? #t))) + (file-name (git-file-name name version)) (sha256 - (base32 "1vx9jcsnnxvzi90pcxpp7p72cqg3cm6jiivdmrxkzhr2fiz3pfvr")))) + (base32 "1vx9jcsnnxvzi90pcxpp7p72cqg3cm6jiivdmrxkzhr2fiz3pfvr")))) (build-system cmake-build-system) (native-inputs - `(("qtbase" ,qtbase) - ("qtscript" ,qtscript) - ("qtxmlpatterns" ,qtxmlpatterns) - ("mesa", mesa) - ("glu", glu))) + `(("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)))))) + `(#: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) + ;; The RUNPATH on plugins is set to OUT/lib. Move + ;; libmeshlab-common.so there so it can be found. + (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+)))) + (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+))))