[PATCH 0/2] Add CloudCompare 2.13

  • Open
  • quality assurance status badge
Details
2 participants
  • Andreas Enge
  • Mattia Bunel
Owner
unassigned
Submitted by
Mattia Bunel
Severity
normal

Debbugs page

Mattia Bunel wrote 5 months ago
(address . guix-patches@gnu.org)(name . Mattia Bunel)(address . mattia.bunel@ehess.fr)
cover.1729526539.git.mattia.bunel@ehess.fr
This patch series add CloudCompare, a point cloud processing software.

It's the first time I've packaged a big software package like this.
I hope it's all good, sorry if it's not.


Mattia Bunel (2):
* gnu/packages/geo.scm (libe57format): New variable.
* gnu/packages/geo.scm (cloudcompare): New variable.

gnu/packages/geo.scm | 124 +++++++++++++++++++++++++++++++++++++++++++
1 file changed, 124 insertions(+)


base-commit: 59b2a60d0041882d732e1766e28f0df5a1ef1ac1
--
2.46.2
Mattia Bunel wrote 5 months ago
[PATCH 1/2] * gnu/packages/geo.scm (libe57format): New variable.
(address . 73934@debbugs.gnu.org)(name . Mattia Bunel)(address . mattia.bunel@ehess.fr)
7567b295833caf3d10b5bc77cfce6b630d574f66.1729526539.git.mattia.bunel@ehess.fr
Change-Id: I4b1473184ed871a5b6c5a4ea8320082292846c3f
---
gnu/packages/geo.scm | 29 +++++++++++++++++++++++++++++
1 file changed, 29 insertions(+)

Toggle diff (39 lines)
diff --git a/gnu/packages/geo.scm b/gnu/packages/geo.scm
index 5d120b3c98..f96c9fb8a3 100644
--- a/gnu/packages/geo.scm
+++ b/gnu/packages/geo.scm
@@ -3600,3 +3600,32 @@ (define-public laszip
@code{LAZ} files. The @code{LAS} format is a file format designed for the
interchange and archiving of lidar point cloud data.")
(license license:asl2.0)))
+
+(define-public libe57format
+ (package
+ (name "libe57format")
+ (version "3.2.0")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/asmaloney/libE57Format")
+ (commit "v3.2.0")))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "00sj0splv4apv3kfjfwgsrizhimav3hxw51q1qz4g2fgncn092a9"))))
+ (inputs (list xerces-c))
+ (native-inputs (list googletest))
+ (build-system cmake-build-system)
+ (arguments
+ (list
+ ;; Tests use external data
+ #:configure-flags #~(list "-DE57_BUILD_TEST=NO")
+ #:build-type "Release"
+ #:tests? #f))
+ (home-page "https://github.com/asmaloney/libE57Format")
+ (synopsis "Libray for read and write E57 file format")
+ (description
+ "Library for read and write @code{E57} files. The @code{E57} format is
+designed for storing point cloud data.")
+ (license (list license:boost1.0 license:expat))))
--
2.46.2
Mattia Bunel wrote 5 months ago
[PATCH 2/2] * gnu/packages/geo.scm (cloudcompare): New variable.
(address . 73934@debbugs.gnu.org)(name . Mattia Bunel)(address . mattia.bunel@ehess.fr)
56b6c6b73adad1d0d7e424a86562b1d55160f16b.1729526539.git.mattia.bunel@ehess.fr
Change-Id: Ic8bb7f40bd28d1329a14ff7166a7f6305e25f745
---
gnu/packages/geo.scm | 95 ++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 95 insertions(+)

Toggle diff (105 lines)
diff --git a/gnu/packages/geo.scm b/gnu/packages/geo.scm
index f96c9fb8a3..27dd58093e 100644
--- a/gnu/packages/geo.scm
+++ b/gnu/packages/geo.scm
@@ -3629,3 +3629,98 @@ (define-public libe57format
"Library for read and write @code{E57} files. The @code{E57} format is
designed for storing point cloud data.")
(license (list license:boost1.0 license:expat))))
+
+(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.1")
+ (recursive? #t)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0ff2pcmqk87g1pkiaglqx771lhasmzhvnjx035ki4pzdmnvi0321"))))
+ (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 points 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 was also meant to deal with huge point clouds.")
+ (license license:gpl2)))
--
2.46.2
Andreas Enge wrote 1 months ago
Re: [bug#73934] [v2] Add CloudCompare 2.13
(name . Mattia Bunel)(address . mattia.bunel@ehess.fr)(name . Sharlatan Hellseher)(address . sharlatanus@gmail.com)(address . 73934@debbugs.gnu.org)(name . Eric Bavier)(address . bavier@posteo.net)
Z6PKO5-OVPoeJbwK@jurong
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
Andreas Enge wrote 4 weeks ago
Moreinfo
(address . control@debbugs.gnu.org)
Z7m6HXt3DV7xgeTi@jurong
tags 73934 moreinfo
thanks
Mattia Bunel wrote 3 weeks ago
Re: [bug#73934] [v2] Add CloudCompare 2.13
(name . Andreas Enge)(address . andreas@enge.fr)(name . Sharlatan Hellseher)(address . sharlatanus@gmail.com)(address . 73934@debbugs.gnu.org)(name . Eric Bavier)(address . bavier@posteo.net)
87jz9ap2l2.fsf@kaiju.mail-host-address-is-not-set
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:

Toggle quote (157 lines)
> 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
>

--
Mattia Bunel
UMR Géographie-cités, Plateforme géomatique ; EHESS
-----BEGIN PGP SIGNATURE-----

iIwEARYKADQWIQQl7gBROHTRvHTG4yC8eiooD06e4gUCZ8HHqRYcbWF0dGlhLmJ1
bmVsQGVoZXNzLmZyAAoJELx6KigPTp7imn0A/1/ZjYn/PwQxllpnkUO+9ChTjO6T
UMOmvIF7XO3PXRrTAP9k0A15zV32j0eDhzyC1vHrhX+UyrT6lE6fWoVMKtlvAQ==
=sShV
-----END PGP SIGNATURE-----

?
Your comment

Commenting via the web interface is currently disabled.

To comment on this conversation send an email to 73934@debbugs.gnu.org

To respond to this issue using the mumi CLI, first switch to it
mumi current 73934
Then, you may apply the latest patchset in this issue (with sign off)
mumi am -- -s
Or, compose a reply to this issue
mumi compose
Or, send patches to this issue
mumi send-email *.patch
You may also tag this issue. See list of standard tags. For example, to set the confirmed and easy tags
mumi command -t +confirmed -t +easy
Or, remove the moreinfo tag and set the help tag
mumi command -t -moreinfo -t +help