[bug#73934,v2] Add CloudCompare 2.13
Commit Message
Hello,
Thanks for your corrections to these two patches, and for integrating
the ~libe57format~ package.
For the ~cloudcompare~ package, I was also surprised by the joint use
of qt6 and qt5. I've just checked, it's an error on my part, the package
does compile with ~qtlocation-5~ input. I am attaching a corrected
version of this package.
As for the rest, I agree with you. It be better to replace the
submodules and external dependencies integrated in the sources. But I
don't really know how to do that. I did find some examples in other
packages, but it seems necessary to patch the ~cmake~ files, which I don't
really know how to do.
Mattia
Andreas Enge <andreas@enge.fr> writes:
> Hello Mattia,
>
> apologies for the exceptionally long delay in treating your patches,
> which are very nice and well prepared.
>
> I have slightly adapted libe57format. For the license, I kept only
> boost1.0, as this is given in the licence file and also in a few headers
> I checked. I have tried to make the tests work - it is possible to add
> the external test data in a separate origin, but even then there are
> complaints about googletest not working. So I have updated the
> explanations, removed the googletest native input and kept the tests
> disabled.
>
> This one is pushed.
>
> For cloudcompare, please find a v2 attached. The git tag did not
> correspond to the version, and the licence is gpl2+ ("or later").
>
> I wonder whether the recursive git download is the way to go, or whether
> it does not pull bundled libraries that we had better unbundle? A few of
> the submodules contain "extern" in their name. For instance, it looks as
> if there is a second copy of libe57format that is downloaded.
>
> I also wonder whether the mixture of qt@5 and qt@6 packages is a good
> idea.
>
> In any case, the package compiles, and the binary starts.
>
> What do you think?
>
> Andreas
>
> From 5a42727e4625470406a47650e525a1667f9b7514 Mon Sep 17 00:00:00 2001
> Message-ID: <5a42727e4625470406a47650e525a1667f9b7514.1738786951.git.andreas@enge.fr>
> From: Mattia Bunel <mattia.bunel@ehess.fr>
> Date: Wed, 5 Feb 2025 20:01:36 +0100
> Subject: [PATCH] gnu: Add cloudcompare.
>
> * gnu/packages/geo.scm (cloudcompare): New variable.
>
> Change-Id: If7ec6bc74ade4df662e5e66eda13979efa53161b
> Signed-off-by: Andreas Enge <andreas@enge.fr>
> ---
> gnu/packages/geo.scm | 96 ++++++++++++++++++++++++++++++++++++++++++++
> 1 file changed, 96 insertions(+)
>
> diff --git a/gnu/packages/geo.scm b/gnu/packages/geo.scm
> index 368ea01ca17..0dd5ca921cc 100644
> --- a/gnu/packages/geo.scm
> +++ b/gnu/packages/geo.scm
> @@ -3725,3 +3725,99 @@ (define-public libe57format
> attributes associated with 3D point data (color and intensity),
> and 2D images (photos taken using a 3D imaging system).")
> (license license:boost1.0)))
> +
> +(define-public cloudcompare
> + (package
> + (name "cloudcompare")
> + (version "2.13.2")
> + (source
> + (origin
> + (method git-fetch)
> + (uri (git-reference
> + (url "https://github.com/CloudCompare/CloudCompare")
> + (commit "v2.13.2")
> + (recursive? #t)))
> + (file-name (git-file-name name version))
> + (sha256
> + (base32 "0wck05zbfkw7cg8h6fjiinjzrsk55858qg0k2m5rmr9dfdzjbzbb"))))
> + (inputs (list qtbase-5
> + qtsvg-5
> + qtlocation
> + qttools-5
> + gdal
> + laszip
> + xerces-c
> + libe57format
> + zlib))
> + (build-system cmake-build-system)
> + (arguments
> + (list
> + #:configure-flags #~(list
> + ;; Options
> + "-DOPTION_BUILD_CCVIEWER=NO"
> + "-DBUILD_TESTING=ON"
> + "-DOPTION_USE_SHAPE_LIB=YES"
> + "-DOPTION_USE_DXF_LIB=YES"
> + "-DOPTION_USE_GDAL=YES"
> + ;; Shaders
> + ;; At least a shader is needed
> + "-DPLUGIN_GL_QEDL=YES"
> + "-DPLUGIN_GL_QSSAO=YES"
> + ;; IO
> + "-DPLUGIN_IO_QCORE=YES"
> + "-DPLUGIN_IO_QADDITIONAL=NO"
> + "-DPLUGIN_IO_QCSV_MATRIX=NO"
> + ;; No guix package for DRACO
> + "-DPLUGIN_IO_QDRACO=NO"
> + "-DPLUGIN_IO_QE57=YES"
> + ;; No guix package for FBX
> + "-DPLUGIN_IO_QFBX=NO"
> + ;; laszip will replace PDAL in CloudCompare 2.13
> + "-DPLUGIN_IO_QLAS=YES"
> + "-DPLUGIN_IO_QPDAL=NO"
> + "-DPLUGIN_IO_QPHOTOSCAN=YES"
> + ;; No guix package for Riegl RDBlib
> + "-DPLUGIN_IO_QRDB=NO"
> + "-DPLUGIN_IO_QSTEP=NO"
> + ;; Plugins
> + "-DPLUGIN_STANDARD_QANIMATION=YES"
> + "-DQANIMATION_WITH_FFMPEG_SUPPORT=NO"
> + "-DPLUGIN_STANDARD_QBROOM=YES"
> + ;; Compilation error
> + "-DPLUGIN_STANDARD_QCANUPO=YES"
> + "-DPLUGIN_STANDARD_QCLOUDLAYERS=YES"
> + "-DPLUGIN_STANDARD_QCOLORIMETRIC_SEGMENTER=YES"
> + "-DPLUGIN_STANDARD_QCOMPASS=YES"
> + ;; Only for Windows at the moment
> + "-DPLUGIN_STANDARD_QCORK=NO"
> + "-DPLUGIN_STANDARD_QCSF=YES"
> + "-DPLUGIN_STANDARD_QFACETS=YES"
> + ;; Error with eigen
> + "-DPLUGIN_STANDARD_QHOUGH_NORMALS=NO"
> + "-DPLUGIN_STANDARD_QHPR=YES"
> + ;; Need qtWebSocket engine
> + "-DPLUGIN_STANDARD_QJSONRPC=NO"
> + "-DPLUGIN_STANDARD_QM3C2=YES"
> + ;; Need PCL lib
> + "-DPLUGIN_STANDARD_MASONRY_QAUTO_SEG=NO"
> + "-DPLUGIN_STANDARD_MASONRY_QMANUAL_SEG=NO"
> + "-DPLUGIN_STANDARD_QPCL=NO"
> + ;; Need CGAL
> + "-DPLUGIN_STANDARD_QMESH_BOOLEAN=NO"
> + "-DPLUGIN_STANDARD_QMPLANE=YES"
> + "-DPLUGIN_STANDARD_QPCV=NO"
> + "-DPLUGIN_STANDARD_QPOISSON_RECON=YES"
> + "-DPLUGIN_STANDARD_QRANSAC_SD=YES"
> + "-DPLUGIN_STANDARD_QSRA=YES")
> + #:build-type "Release"
> + #:tests? #f))
> + (home-page "https://cloudcompare.org/")
> + (synopsis "Point cloud processing software")
> + (description
> + "CloudCompare is a 3D point cloud (and triangular mesh) processing
> +software. It was originally designed to perform comparison between two
> +3D point clouds (such as the ones obtained with a laser scanner) or between
> +a point cloud and a triangular mesh. It relies on an octree structure that
> +is highly optimized for this particular use-case. It is also meant to deal
> +with huge point clouds.")
> + (license license:gpl2+)))
>
> base-commit: cc2b236e3777c0f7c758805289f42b3932668c57
> prerequisite-patch-id: 0289950ff5d75c0e49094995eef252869b9b875f
> --
> 2.48.1
>
Comments
Hello Mattia,
thanks for the updated patch!
Am Fri, Feb 28, 2025 at 03:26:49PM +0100 schrieb Mattia Bunel:
> As for the rest, I agree with you. It be better to replace the
> submodules and external dependencies integrated in the sources. But I
> don't really know how to do that. I did find some examples in other
> packages, but it seems necessary to patch the ~cmake~ files, which I don't
> really know how to do.
I also did not see an easy way to do so, so I have just kept this part as is
and have added a comment.
I have changed the source code field to "compute" the tag from the
version number. And I could run tests with "xvfb-run", which simulates
an X server.
The commit is pushed, enjoy!
Andreas
From 179250234c0fa4fbb62b879d7601cb351f0bd41b Mon Sep 17 00:00:00 2001
Message-ID: <179250234c0fa4fbb62b879d7601cb351f0bd41b.1740752522.git.mattia.bunel@ehess.fr>
From: Mattia Bunel <mattia.bunel@ehess.fr>
Date: Wed, 5 Feb 2025 20:01:36 +0100
Subject: [PATCH] gnu: Add cloudcompare.
* gnu/packages/geo.scm (cloudcompare): New variable.
---
gnu/packages/geo.scm | 96 ++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 96 insertions(+)
@@ -4001,3 +4001,99 @@ (define-public libe57format
attributes associated with 3D point data (color and intensity),
and 2D images (photos taken using a 3D imaging system).")
(license license:boost1.0)))
+
+(define-public cloudcompare
+ (package
+ (name "cloudcompare")
+ (version "2.13.2")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/CloudCompare/CloudCompare")
+ (commit "v2.13.2")
+ (recursive? #t)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0wck05zbfkw7cg8h6fjiinjzrsk55858qg0k2m5rmr9dfdzjbzbb"))))
+ (inputs (list qtbase-5
+ qtsvg-5
+ qtlocation-5
+ qttools-5
+ gdal
+ laszip
+ xerces-c
+ libe57format
+ zlib))
+ (build-system cmake-build-system)
+ (arguments
+ (list
+ #:configure-flags #~(list
+ ;; Options
+ "-DOPTION_BUILD_CCVIEWER=NO"
+ "-DBUILD_TESTING=ON"
+ "-DOPTION_USE_SHAPE_LIB=YES"
+ "-DOPTION_USE_DXF_LIB=YES"
+ "-DOPTION_USE_GDAL=YES"
+ ;; Shaders
+ ;; At least a shader is needed
+ "-DPLUGIN_GL_QEDL=YES"
+ "-DPLUGIN_GL_QSSAO=YES"
+ ;; IO
+ "-DPLUGIN_IO_QCORE=YES"
+ "-DPLUGIN_IO_QADDITIONAL=NO"
+ "-DPLUGIN_IO_QCSV_MATRIX=NO"
+ ;; No guix package for DRACO
+ "-DPLUGIN_IO_QDRACO=NO"
+ "-DPLUGIN_IO_QE57=YES"
+ ;; No guix package for FBX
+ "-DPLUGIN_IO_QFBX=NO"
+ ;; laszip will replace PDAL in CloudCompare 2.13
+ "-DPLUGIN_IO_QLAS=YES"
+ "-DPLUGIN_IO_QPDAL=NO"
+ "-DPLUGIN_IO_QPHOTOSCAN=YES"
+ ;; No guix package for Riegl RDBlib
+ "-DPLUGIN_IO_QRDB=NO"
+ "-DPLUGIN_IO_QSTEP=NO"
+ ;; Plugins
+ "-DPLUGIN_STANDARD_QANIMATION=YES"
+ "-DQANIMATION_WITH_FFMPEG_SUPPORT=NO"
+ "-DPLUGIN_STANDARD_QBROOM=YES"
+ ;; Compilation error
+ "-DPLUGIN_STANDARD_QCANUPO=YES"
+ "-DPLUGIN_STANDARD_QCLOUDLAYERS=YES"
+ "-DPLUGIN_STANDARD_QCOLORIMETRIC_SEGMENTER=YES"
+ "-DPLUGIN_STANDARD_QCOMPASS=YES"
+ ;; Only for Windows at the moment
+ "-DPLUGIN_STANDARD_QCORK=NO"
+ "-DPLUGIN_STANDARD_QCSF=YES"
+ "-DPLUGIN_STANDARD_QFACETS=YES"
+ ;; Error with eigen
+ "-DPLUGIN_STANDARD_QHOUGH_NORMALS=NO"
+ "-DPLUGIN_STANDARD_QHPR=YES"
+ ;; Need qtWebSocket engine
+ "-DPLUGIN_STANDARD_QJSONRPC=NO"
+ "-DPLUGIN_STANDARD_QM3C2=YES"
+ ;; Need PCL lib
+ "-DPLUGIN_STANDARD_MASONRY_QAUTO_SEG=NO"
+ "-DPLUGIN_STANDARD_MASONRY_QMANUAL_SEG=NO"
+ "-DPLUGIN_STANDARD_QPCL=NO"
+ ;; Need CGAL
+ "-DPLUGIN_STANDARD_QMESH_BOOLEAN=NO"
+ "-DPLUGIN_STANDARD_QMPLANE=YES"
+ "-DPLUGIN_STANDARD_QPCV=NO"
+ "-DPLUGIN_STANDARD_QPOISSON_RECON=YES"
+ "-DPLUGIN_STANDARD_QRANSAC_SD=YES"
+ "-DPLUGIN_STANDARD_QSRA=YES")
+ #:build-type "Release"
+ #:tests? #f))
+ (home-page "https://cloudcompare.org/")
+ (synopsis "Point cloud processing software")
+ (description
+ "CloudCompare is a 3D point cloud (and triangular mesh) processing
+software. It was originally designed to perform comparison between two
+3D point clouds (such as the ones obtained with a laser scanner) or between
+a point cloud and a triangular mesh. It relies on an octree structure that
+is highly optimized for this particular use-case. It is also meant to deal
+with huge point clouds.")
+ (license license:gpl2+)))
base-commit: a76708a872e65230931f3c5c3b079d0a39d5cb84
--
2.48.1