unofficial mirror of guix-patches@gnu.org 
 help / color / mirror / code / Atom feed
* [bug#47467] [PATCH]: Fix Blender missing Voxel Remesher
@ 2021-03-29 14:17 Ekaitz Zarraga
  2021-03-29 18:17 ` [bug#47467] [PATCH]: Fix Blender missing Voxel Remesher (Follows) Ekaitz Zarraga
                   ` (2 more replies)
  0 siblings, 3 replies; 6+ messages in thread
From: Ekaitz Zarraga @ 2021-03-29 14:17 UTC (permalink / raw)
  To: 47467

[-- Attachment #1: Type: text/plain, Size: 906 bytes --]

Hi,

According to bug#47463[^1], Blender is missing a dependency that
doesn't allow to run the Voxel Remesher.

This series of patches solve that.

I have a comment on the first one. I'm not sure if I did it right.

I don't see a better way to set the `rpath` correcty. It should
find the lib by itself but the package has an executable as
ouput that doesn't find the library the package itself generates.
Removing the extra phase I added shows the RPATH is set to `lib`
instead to the absolute path of the library so the runpath check
fails to execute.

This is the best way I found to solve that but I'm sure whoever
that gets this patch knows a better way to handle that.

I tested Blender with this and it runs the Voxel Remesher as
expected.

Please, don't hesitate to send me any comment.

Thanks!


[^1]: https://lists.gnu.org/archive/html/bug-guix/2021-03/msg00647.html

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: 0001-gnu-Add-openvdb.patch --]
[-- Type: text/x-patch; name=0001-gnu-Add-openvdb.patch, Size: 2486 bytes --]

From 9a3bec5d8c19351d106d471a722e7b3d3d0350c0 Mon Sep 17 00:00:00 2001
From: Ekaitz Zarraga <ekaitz@elenq.tech>
Date: Mon, 29 Mar 2021 16:04:23 +0200
Subject: [PATCH 1/2] gnu: Add openvdb.

* gnu/packages/graphics.scm (openvdb): New variable.
---
 gnu/packages/graphics.scm | 44 +++++++++++++++++++++++++++++++++++++++
 1 file changed, 44 insertions(+)

diff --git a/gnu/packages/graphics.scm b/gnu/packages/graphics.scm
index 4a301d387a..b4df9f5c04 100644
--- a/gnu/packages/graphics.scm
+++ b/gnu/packages/graphics.scm
@@ -463,6 +463,50 @@ Embree is meant to increase performance of photo-realistic rendering
 applications.")
     (license license:asl2.0)))
 
+
+(define-public openvdb
+  (package
+      (name "openvdb")
+      (version "8.0.1")
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                       (url "https://github.com/AcademySoftwareFoundation/openvdb/")
+                       (commit (string-append "v" version))
+                       (recursive? #t)))
+                (file-name (git-file-name name version))
+                (sha256
+                  (base32 "0qzx6l5c183k6j9zki31gg9aixf5s1j46wdi7wr1h3bz7k53syg9"))))
+      (arguments
+        `(#:phases
+          (modify-phases %standard-phases
+            (add-before 'configure 'fix-runpath
+              (lambda* (#:key outputs #:allow-other-keys)
+                (setenv
+                  "LDFLAGS"
+                  (string-append "-Wl,-rpath=" (assoc-ref outputs "out") "/lib/"))
+                #t)))))
+      (build-system cmake-build-system)
+      (native-inputs
+        `(("unzip"    ,unzip)
+          ("pkg-config",pkg-config)))
+      (inputs
+        `(("openexr"  ,openexr)
+          ("boost"    ,boost)
+          ("jemalloc" ,jemalloc)
+          ("c-blosc"  ,c-blosc)
+          ("ilmbase"  ,ilmbase)
+          ("tbb"      ,tbb)))
+      (home-page "https://www.openvdb.org/")
+      (synopsis "Sparse volume data structure and tools")
+      (description "OpenVDB is an open source C++ library comprising a novel
+hierarchical data structure and a large suite of tools for the efficient
+storage and manipulation of sparse volumetric data discretized on
+three-dimensional grids.  It was developed by DreamWorks Animation for use in
+volumetric applications typically encountered in feature film production.")
+      (license license:mpl2.0)))
+
+
 (define-public blender
   (package
     (name "blender")
-- 
2.31.0


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #3: 0002-gnu-blender-Update-dependencies.patch --]
[-- Type: text/x-patch; name=0002-gnu-blender-Update-dependencies.patch, Size: 1298 bytes --]

From 630ebdeec1b8524d09c811ac93dbbe46d31daa45 Mon Sep 17 00:00:00 2001
From: Ekaitz Zarraga <ekaitz@elenq.tech>
Date: Mon, 29 Mar 2021 16:05:04 +0200
Subject: [PATCH 2/2] gnu: blender: Update dependencies

    * gnu/packages/graphics.scm (blender): Add dependencies and flags
---
 gnu/packages/graphics.scm | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/gnu/packages/graphics.scm b/gnu/packages/graphics.scm
index b4df9f5c04..ddf6a6c2ba 100644
--- a/gnu/packages/graphics.scm
+++ b/gnu/packages/graphics.scm
@@ -534,6 +534,8 @@ volumetric applications typically encountered in feature film production.")
                "-DWITH_INSTALL_PORTABLE=OFF"
                "-DWITH_JACK=ON"
                "-DWITH_MOD_OCEANSIM=ON"
+               "-DWITH_OPENVDB=ON"
+               "-DWITH_TBB=ON"
                "-DWITH_OPENSUBDIV=ON"
                "-DWITH_PYTHON_INSTALL=OFF"
                (string-append "-DPYTHON_LIBRARY=python" ,python-version)
@@ -589,6 +591,8 @@ volumetric applications typically encountered in feature film production.")
        ("pugixml" ,pugixml)
        ("python" ,python)
        ("python-numpy" ,python-numpy)
+       ("openvdb" ,openvdb)
+       ("libxxf86vm" ,libxxf86vm)
        ("tbb" ,tbb)
        ("zlib" ,zlib)
        ("embree" ,embree)))
-- 
2.31.0


^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [bug#47467] [PATCH]: Fix Blender missing Voxel Remesher (Follows)
  2021-03-29 14:17 [bug#47467] [PATCH]: Fix Blender missing Voxel Remesher Ekaitz Zarraga
@ 2021-03-29 18:17 ` Ekaitz Zarraga
  2021-04-12 14:14 ` [bug#47467] [PATCH]: Fix Blender missing Voxel Remesher Ricardo Wurmus
  2021-04-21 15:36 ` Ekaitz Zarraga
  2 siblings, 0 replies; 6+ messages in thread
From: Ekaitz Zarraga @ 2021-03-29 18:17 UTC (permalink / raw)
  To: 47467@debbugs.gnu.org

[-- Attachment #1: Type: text/plain, Size: 113 bytes --]

Looks like Nix package I used as a reference has unneeded inputs.

This is the updated OpenVDB package.

:)

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: 0001-gnu-Add-openvdb.patch --]
[-- Type: text/x-patch; name=0001-gnu-Add-openvdb.patch, Size: 2418 bytes --]

From e868ccaee0db0b1cc267cf66cf8279f92263f1fe Mon Sep 17 00:00:00 2001
From: Ekaitz Zarraga <ekaitz@elenq.tech>
Date: Mon, 29 Mar 2021 16:04:23 +0200
Subject: [PATCH 1/2] gnu: Add openvdb.

* gnu/packages/graphics.scm (openvdb): New variable.
---
 gnu/packages/graphics.scm | 42 +++++++++++++++++++++++++++++++++++++++
 1 file changed, 42 insertions(+)

diff --git a/gnu/packages/graphics.scm b/gnu/packages/graphics.scm
index 4a301d387a..344d44fcbf 100644
--- a/gnu/packages/graphics.scm
+++ b/gnu/packages/graphics.scm
@@ -463,6 +463,48 @@ Embree is meant to increase performance of photo-realistic rendering
 applications.")
     (license license:asl2.0)))
 
+
+(define-public openvdb
+  (package
+      (name "openvdb")
+      (version "8.0.1")
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                       (url "https://github.com/AcademySoftwareFoundation/openvdb/")
+                       (commit (string-append "v" version))
+                       (recursive? #t)))
+                (file-name (git-file-name name version))
+                (sha256
+                  (base32 "0qzx6l5c183k6j9zki31gg9aixf5s1j46wdi7wr1h3bz7k53syg9"))))
+      (arguments
+        `(#:phases
+          (modify-phases %standard-phases
+            (add-before 'configure 'fix-runpath
+              (lambda* (#:key outputs #:allow-other-keys)
+                (setenv
+                  "LDFLAGS"
+                  (string-append "-Wl,-rpath=" (assoc-ref outputs "out") "/lib/"))
+                #t)))))
+      (build-system cmake-build-system)
+      (native-inputs
+        `(("pkg-config",pkg-config)))
+      (inputs
+        `(("boost"    ,boost)
+          ("zlib"     ,zlib)
+          ("c-blosc"  ,c-blosc)
+          ("ilmbase"  ,ilmbase)
+          ("tbb"      ,tbb)))
+      (home-page "https://www.openvdb.org/")
+      (synopsis "Sparse volume data structure and tools")
+      (description "OpenVDB is an open source C++ library comprising a novel
+hierarchical data structure and a large suite of tools for the efficient
+storage and manipulation of sparse volumetric data discretized on
+three-dimensional grids.  It was developed by DreamWorks Animation for use in
+volumetric applications typically encountered in feature film production.")
+      (license license:mpl2.0)))
+
+
 (define-public blender
   (package
     (name "blender")
-- 
2.31.0


^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [bug#47467] [PATCH]: Fix Blender missing Voxel Remesher
  2021-03-29 14:17 [bug#47467] [PATCH]: Fix Blender missing Voxel Remesher Ekaitz Zarraga
  2021-03-29 18:17 ` [bug#47467] [PATCH]: Fix Blender missing Voxel Remesher (Follows) Ekaitz Zarraga
@ 2021-04-12 14:14 ` Ricardo Wurmus
  2021-04-21 15:36 ` Ekaitz Zarraga
  2 siblings, 0 replies; 6+ messages in thread
From: Ricardo Wurmus @ 2021-04-12 14:14 UTC (permalink / raw)
  To: 47467

I pushed a slightly modified version of your openvdb addition to the
“master” branch.

As for the second patch, I think it would be good to leave off the
addition of libxxf86vm, because it seems that it’s unrelated to enabling
the voxel remesher feature.

If you could confirm that, I’d be happy to apply a modified second
patch.  The commit message for that second patch should list the actual
changes like this:

--8<---------------cut here---------------start------------->8---
gnu: blender: Add and enable support for OpenVDB and TBB.

* gnu/packages/graphics.scm (blender)[arguments]: Enable OpenVDB and TBB.
[inputs]: Add openvdb.
--8<---------------cut here---------------end--------------->8---

Thanks for working on this!

-- 
Ricardo




^ permalink raw reply	[flat|nested] 6+ messages in thread

* [bug#47467] [PATCH]: Fix Blender missing Voxel Remesher
  2021-03-29 14:17 [bug#47467] [PATCH]: Fix Blender missing Voxel Remesher Ekaitz Zarraga
  2021-03-29 18:17 ` [bug#47467] [PATCH]: Fix Blender missing Voxel Remesher (Follows) Ekaitz Zarraga
  2021-04-12 14:14 ` [bug#47467] [PATCH]: Fix Blender missing Voxel Remesher Ricardo Wurmus
@ 2021-04-21 15:36 ` Ekaitz Zarraga
  2021-04-21 16:03   ` Ekaitz Zarraga
  2 siblings, 1 reply; 6+ messages in thread
From: Ekaitz Zarraga @ 2021-04-21 15:36 UTC (permalink / raw)
  To: 47467@debbugs.gnu.org, Ricardo Wurmus

Hi,

Sorry for the delay.

As I told Ricardo on IRC, I'm going to review all the inputs of
the package Blender because the official installation guide
proposes some inputs that we are not including specifically.

Until I do that, I'm compiling blender with the minimum changes
to make the voxel remesher work and I'll append the minimum patch
to this issue when it compiles (1h or so) and I test it.

Thanks for your time,
Ekaitz




^ permalink raw reply	[flat|nested] 6+ messages in thread

* [bug#47467] [PATCH]: Fix Blender missing Voxel Remesher
  2021-04-21 15:36 ` Ekaitz Zarraga
@ 2021-04-21 16:03   ` Ekaitz Zarraga
  2021-04-21 16:19     ` bug#47467: " Leo Famulari
  0 siblings, 1 reply; 6+ messages in thread
From: Ekaitz Zarraga @ 2021-04-21 16:03 UTC (permalink / raw)
  To: 47467@debbugs.gnu.org, Ricardo Wurmus

[-- Attachment #1: Type: text/plain, Size: 116 bytes --]

This is the new patch with the minimum changes.
I tested it and the voxel remesher works without issues.

Cheers!

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: 0001-gnu-blender-Update-dependencies.patch --]
[-- Type: text/x-patch; name=0001-gnu-blender-Update-dependencies.patch, Size: 1225 bytes --]

From 4c3705efbd24a63614ecfa964c661a503c8001a9 Mon Sep 17 00:00:00 2001
From: Ekaitz Zarraga <ekaitz@elenq.tech>
Date: Wed, 21 Apr 2021 17:59:32 +0200
Subject: [PATCH] gnu: blender: Update dependencies

    * gnu/packages/graphics.scm (blender):
    [inputs]: Add openvdb
    [arguments]: Add configure flags for openvdb
---
 gnu/packages/graphics.scm | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/gnu/packages/graphics.scm b/gnu/packages/graphics.scm
index f9f19cc28d..ef3be67b25 100644
--- a/gnu/packages/graphics.scm
+++ b/gnu/packages/graphics.scm
@@ -527,6 +527,7 @@ typically encountered in feature film production.")
                "-DWITH_INSTALL_PORTABLE=OFF"
                "-DWITH_JACK=ON"
                "-DWITH_MOD_OCEANSIM=ON"
+               "-DWITH_OPENVDB=ON"
                "-DWITH_OPENSUBDIV=ON"
                "-DWITH_PYTHON_INSTALL=OFF"
                (string-append "-DPYTHON_LIBRARY=python" ,python-version)
@@ -582,6 +583,7 @@ typically encountered in feature film production.")
        ("pugixml" ,pugixml)
        ("python" ,python)
        ("python-numpy" ,python-numpy)
+       ("openvdb" ,openvdb)
        ("tbb" ,tbb)
        ("zlib" ,zlib)
        ("embree" ,embree)))
-- 
2.31.0


^ permalink raw reply related	[flat|nested] 6+ messages in thread

* bug#47467: [PATCH]: Fix Blender missing Voxel Remesher
  2021-04-21 16:03   ` Ekaitz Zarraga
@ 2021-04-21 16:19     ` Leo Famulari
  0 siblings, 0 replies; 6+ messages in thread
From: Leo Famulari @ 2021-04-21 16:19 UTC (permalink / raw)
  To: Ekaitz Zarraga; +Cc: Ricardo Wurmus, 47467@debbugs.gnu.org

On Wed, Apr 21, 2021 at 04:03:20PM +0000, Ekaitz Zarraga wrote:
> This is the new patch with the minimum changes.
> I tested it and the voxel remesher works without issues.

Thanks!

> From 4c3705efbd24a63614ecfa964c661a503c8001a9 Mon Sep 17 00:00:00 2001
> From: Ekaitz Zarraga <ekaitz@elenq.tech>
> Date: Wed, 21 Apr 2021 17:59:32 +0200
> Subject: [PATCH] gnu: blender: Update dependencies
> 
>     * gnu/packages/graphics.scm (blender):
>     [inputs]: Add openvdb
>     [arguments]: Add configure flags for openvdb

I pushed as 823752646f4992efdd4162724b46e04dda8b660a after rewriting the
commit message to 1) have a descriptive title, 2) use complete sentences
and 3) Describe the changes in terms of code. As well as re-indenting.




^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2021-04-21 16:20 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-03-29 14:17 [bug#47467] [PATCH]: Fix Blender missing Voxel Remesher Ekaitz Zarraga
2021-03-29 18:17 ` [bug#47467] [PATCH]: Fix Blender missing Voxel Remesher (Follows) Ekaitz Zarraga
2021-04-12 14:14 ` [bug#47467] [PATCH]: Fix Blender missing Voxel Remesher Ricardo Wurmus
2021-04-21 15:36 ` Ekaitz Zarraga
2021-04-21 16:03   ` Ekaitz Zarraga
2021-04-21 16:19     ` bug#47467: " Leo Famulari

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/guix.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).