[bug#78171] gnu: Add manifold

Message ID 20250501025642.1730053-1-nomike@nomike.com
State New
Headers
Series [bug#78171] gnu: Add manifold |

Commit Message

nomike May 1, 2025, 2:56 a.m. UTC
* gnu/packages/engineering.scm (manifold): New variable

Change-Id: I13c0e5369923e5e972ee2a8b95ae892fadfd4154
---
v2 as I initially forgot to remove the "v" prefix from the version number.

 gnu/packages/engineering.scm | 32 ++++++++++++++++++++++++++++++++
 1 file changed, 32 insertions(+)
  

Comments

Nicolas Graves May 5, 2025, 11:13 a.m. UTC | #1
On 2025-05-01 04:56, nomike@nomike.com wrote:

> * gnu/packages/engineering.scm (manifold): New variable
>
> Change-Id: I13c0e5369923e5e972ee2a8b95ae892fadfd4154
> ---
> v2 as I initially forgot to remove the "v" prefix from the version number.
>
>  gnu/packages/engineering.scm | 32 ++++++++++++++++++++++++++++++++
>  1 file changed, 32 insertions(+)
>
> diff --git a/gnu/packages/engineering.scm b/gnu/packages/engineering.scm
> index f472d1127f..3d8e6780dd 100644
> --- a/gnu/packages/engineering.scm
> +++ b/gnu/packages/engineering.scm
> @@ -2917,6 +2917,38 @@ (define-public lib3mf
>      (home-page "https://3mf.io/")
>      (license license:bsd-2)))
>  
> +(define-public manifold
> +  (package
> +    (name "manifold")
> +    (version "3.0.1")
> +    (source
> +     (origin
> +       (method git-fetch)
> +       (uri (git-reference
> +             (url "https://github.com/elalish/manifold")
> +             (commit (string-append "v" version))))
> +       (file-name (git-file-name name version))
> +       (sha256
> +        (base32 "1f0k8937gk7b9100k99pmz1f17nzczpdk7797p2aijla0z29ddy1"))))
> +    (build-system cmake-build-system)
> +    (native-inputs (list))

If you don't need native-inputs, you can drop the field instead.

> +    (inputs (list tbb clipper2 assimp python-nanobind googletest))
> +    (arguments
> +     `(#:configure-flags '("-DMANIFOLD_JSBIND=OFF"))) ; can be removed when emscripten is packaged
> +    (synopsis "Geometry library for topological robustness")
> +    (description
> +     "Manifold is a geometry library dedicated to creating and operating
> +     on manifold triangle meshes.  A manifold mesh is a mesh that represents
> +     a solid object, and so is very important in manufacturing, CAD,
> +     structural analysis, etc..  Manifold also supports arbitrary vertex
> +     properties and enables mapping of materials for rendering use-cases.
> +     Our primary goal is reliability: guaranteed manifold output without
> +     caveats or edge cases. Our secondary goal is performance: efficient
                              ^ You forgot a space here.
                             
> +     algorithms that make extensive use of parallelization, or pipelining
> +     when only a single thread is available.")
> +    (home-page "https://github.com/elalish/manifold")
> +    (license license:asl2.0)))
> +
>  (define-public python-keithley2600
>    (package
>      (name "python-keithley2600")
  
Nicolas Graves May 5, 2025, 11:33 a.m. UTC | #2
On 2025-05-01 04:56, nomike@nomike.com wrote:

> * gnu/packages/engineering.scm (manifold): New variable
>
> Change-Id: I13c0e5369923e5e972ee2a8b95ae892fadfd4154
> ---
> v2 as I initially forgot to remove the "v" prefix from the version number.
>
>  gnu/packages/engineering.scm | 32 ++++++++++++++++++++++++++++++++
>  1 file changed, 32 insertions(+)
>
> diff --git a/gnu/packages/engineering.scm b/gnu/packages/engineering.scm
> index f472d1127f..3d8e6780dd 100644
> --- a/gnu/packages/engineering.scm
> +++ b/gnu/packages/engineering.scm
> @@ -2917,6 +2917,38 @@ (define-public lib3mf
>      (home-page "https://3mf.io/")
>      (license license:bsd-2)))
>  
> +(define-public manifold
> +  (package
> +    (name "manifold")
> +    (version "3.0.1")
> +    (source
> +     (origin
> +       (method git-fetch)
> +       (uri (git-reference
> +             (url "https://github.com/elalish/manifold")
> +             (commit (string-append "v" version))))
> +       (file-name (git-file-name name version))
> +       (sha256
> +        (base32 "1f0k8937gk7b9100k99pmz1f17nzczpdk7797p2aijla0z29ddy1"))))
> +    (build-system cmake-build-system)
> +    (native-inputs (list))
> +    (inputs (list tbb clipper2 assimp python-nanobind googletest))
> +    (arguments
> +     `(#:configure-flags '("-DMANIFOLD_JSBIND=OFF"))) ; can be removed when emscripten is packaged

The above line is too long.  You can move the comment in a ;; XXX: Can be...
above this line.

> +    (synopsis "Geometry library for topological robustness")
> +    (description
> +     "Manifold is a geometry library dedicated to creating and operating
> +     on manifold triangle meshes.  A manifold mesh is a mesh that represents
> +     a solid object, and so is very important in manufacturing, CAD,
> +     structural analysis, etc..  Manifold also supports arbitrary vertex
> +     properties and enables mapping of materials for rendering use-cases.
> +     Our primary goal is reliability: guaranteed manifold output without
> +     caveats or edge cases. Our secondary goal is performance: efficient
> +     algorithms that make extensive use of parallelization, or pipelining
> +     when only a single thread is available.")

This description is not right.
1) Here you add a few spaces with each line, but description is a single
string, so you shouldn't have such line blank prefix.
2) "Our primary/secondary goal" is not right for Guix descriptions.  You
could rewrite somethign like
Manifold focusses first on reliability : guaranteed [...] ; but also on
performance : efficient [...].
Or you can drop them, they don't add a lot of descriptive value.


TY Nomike! Otherwise it looks good to me.
 
> +    (home-page "https://github.com/elalish/manifold")
> +    (license license:asl2.0)))
> +
>  (define-public python-keithley2600
>    (package
>      (name "python-keithley2600")
  

Patch

diff --git a/gnu/packages/engineering.scm b/gnu/packages/engineering.scm
index f472d1127f..3d8e6780dd 100644
--- a/gnu/packages/engineering.scm
+++ b/gnu/packages/engineering.scm
@@ -2917,6 +2917,38 @@  (define-public lib3mf
     (home-page "https://3mf.io/")
     (license license:bsd-2)))
 
+(define-public manifold
+  (package
+    (name "manifold")
+    (version "3.0.1")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/elalish/manifold")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1f0k8937gk7b9100k99pmz1f17nzczpdk7797p2aijla0z29ddy1"))))
+    (build-system cmake-build-system)
+    (native-inputs (list))
+    (inputs (list tbb clipper2 assimp python-nanobind googletest))
+    (arguments
+     `(#:configure-flags '("-DMANIFOLD_JSBIND=OFF"))) ; can be removed when emscripten is packaged
+    (synopsis "Geometry library for topological robustness")
+    (description
+     "Manifold is a geometry library dedicated to creating and operating
+     on manifold triangle meshes.  A manifold mesh is a mesh that represents
+     a solid object, and so is very important in manufacturing, CAD,
+     structural analysis, etc..  Manifold also supports arbitrary vertex
+     properties and enables mapping of materials for rendering use-cases.
+     Our primary goal is reliability: guaranteed manifold output without
+     caveats or edge cases. Our secondary goal is performance: efficient
+     algorithms that make extensive use of parallelization, or pipelining
+     when only a single thread is available.")
+    (home-page "https://github.com/elalish/manifold")
+    (license license:asl2.0)))
+
 (define-public python-keithley2600
   (package
     (name "python-keithley2600")