Bug 268331 - graphics/blender: update to 3.4.1
Summary: graphics/blender: update to 3.4.1
Status: Closed FIXED
Alias: None
Product: Ports & Packages
Classification: Unclassified
Component: Individual Port(s) (show other bugs)
Version: Latest
Hardware: Any Any
: --- Affects Only Me
Assignee: Dima Panov
URL: https://www.blender.org/press/blender...
Keywords: needs-qa
Depends on: 268658
Blocks:
  Show dependency treegraph
 
Reported: 2022-12-12 14:31 UTC by Vladimir Druzenko
Modified: 2022-12-31 20:16 UTC (History)
3 users (show)

See Also:
bugzilla: maintainer-feedback? (FreeBSD)


Attachments
Maintainer update for graphics/blender (51.72 KB, patch)
2022-12-31 06:37 UTC, Shane
FreeBSD: maintainer-approval+
Details | Diff
maintainer update for graphics/blender (51.73 KB, patch)
2022-12-31 10:06 UTC, Shane
FreeBSD: maintainer-approval+
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Vladimir Druzenko freebsd_committer freebsd_triage 2022-12-12 14:31:33 UTC
Blender 3.4 Release
December 7th, 2022

What’s New

A highlight in this release is the integration of Intel’s Open Path Guiding Library, adding support for path guiding in CPU in Cycles.

The auto-masking tools in Sculpt/Paint mode are now accessible from the 3D Viewport, and support cavity, view, and area-based auto-masking. The UV editor received several updates to existing tools as well as new operators to align UV rotation, randomize islands, support for non-uniform grid, and more.

Geometry Nodes now shows an overlay in the 3D Viewport, making it easy to debug and test parts of your node tree. Many new nodes have been added to retrieve mesh and curve data, sample UV surface, Node Group assets now show in the Add menu, and so much more.

Other improvements include a new Grease Pencil outline modifier and better Fill tool, support for PBR extensions in .mtl files, animation editors improvements, major performance speed-ups and much more.
==================================================================

I started creating a patch. Do maintainer need it?
Comment 1 Vladimir Druzenko freebsd_committer freebsd_triage 2022-12-12 15:05:18 UTC
> ld-elf.so.1: /usr/lib/libomp.so: Undefined symbol "environ"


[ 21% 1092/5043] cd /tmp/work/usr/ports/graphics/blender/work/.build/intern/opencolorio && /usr/local/bin/cmake -E make_directory /tmp/work/usr/ports/graphics/blender/work/.build/intern/opencolorio && /tmp/work/usr/ports/graphics/blender/work/.build/bin/datatoc /tmp/work/usr/ports/graphics/blender/work/blender-3.4.0/intern/opencolorio/gpu_shader_display_transform_vert.glsl /tmp/work/usr/ports/graphics/blender/work/.build/intern/opencolorio/gpu_shader_display_transform_vert.glsl.c
FAILED: intern/opencolorio/gpu_shader_display_transform_vert.glsl.c /tmp/work/usr/ports/graphics/blender/work/.build/intern/opencolorio/gpu_shader_display_transform_vert.glsl.c 
cd /tmp/work/usr/ports/graphics/blender/work/.build/intern/opencolorio && /usr/local/bin/cmake -E make_directory /tmp/work/usr/ports/graphics/blender/work/.build/intern/opencolorio && /tmp/work/usr/ports/graphics/blender/work/.build/bin/datatoc /tmp/work/usr/ports/graphics/blender/work/blender-3.4.0/intern/opencolorio/gpu_shader_display_transform_vert.glsl /tmp/work/usr/ports/graphics/blender/work/.build/intern/opencolorio/gpu_shader_display_transform_vert.glsl.c
ld-elf.so.1: /usr/lib/libomp.so: Undefined symbol "environ"
[ 21% 1092/5043] cd /tmp/work/usr/ports/graphics/blender/work/.build/intern/opencolorio && /usr/local/bin/cmake -E make_directory /tmp/work/usr/ports/graphics/blender/work/.build/intern/opencolorio && /tmp/work/usr/ports/graphics/blender/work/.build/bin/datatoc /tmp/work/usr/ports/graphics/blender/work/blender-3.4.0/intern/opencolorio/gpu_shader_display_transform_frag.glsl /tmp/work/usr/ports/graphics/blender/work/.build/intern/opencolorio/gpu_shader_display_transform_frag.glsl.c
FAILED: intern/opencolorio/gpu_shader_display_transform_frag.glsl.c /tmp/work/usr/ports/graphics/blender/work/.build/intern/opencolorio/gpu_shader_display_transform_frag.glsl.c 
cd /tmp/work/usr/ports/graphics/blender/work/.build/intern/opencolorio && /usr/local/bin/cmake -E make_directory /tmp/work/usr/ports/graphics/blender/work/.build/intern/opencolorio && /tmp/work/usr/ports/graphics/blender/work/.build/bin/datatoc /tmp/work/usr/ports/graphics/blender/work/blender-3.4.0/intern/opencolorio/gpu_shader_display_transform_frag.glsl /tmp/work/usr/ports/graphics/blender/work/.build/intern/opencolorio/gpu_shader_display_transform_frag.glsl.c
ld-elf.so.1: /usr/lib/libomp.so: Undefined symbol "environ"
Comment 2 Vladimir Druzenko freebsd_committer freebsd_triage 2022-12-12 15:09:26 UTC
Probably it require graphics/opencolorio 2.2.0.
And updated other deps…
Comment 3 Shane 2022-12-14 05:47:49 UTC
Hi, I have fallen behind in updating Blender, so any progress you make will be appreciated.

The official blender builds use ocio 2.1.1 so I doubt using 2.2 will help.

I have had trouble linking with omp in the past, first check if graphics/opensubdiv has omp enabled. You will most likely have more luck if you start with all blender deps built with omp disabled - do you have the blender omp option enabled?
Comment 4 Vladimir Druzenko freebsd_committer freebsd_triage 2022-12-14 09:57:03 UTC
(In reply to Shane from comment #3)
graphics/opensubdiv was with OPENMP, rebuild it without, but got the same error during build blender. :-(
Comment 5 Vladimir Druzenko freebsd_committer freebsd_triage 2022-12-14 10:25:12 UTC
Turn off OPENMP for blender too and got different error in same place:
> ld-elf.so.1: /lib/libc.so.7: Undefined symbol "environ"


[ 21% 1091/5043] cd /tmp/work/usr/ports/graphics/blender/work/.build/intern/opencolorio && /usr/local/bin/cmake -E make_directory /tmp/work/usr/ports/graphics/blender/work/.build/intern/opencolorio && /tmp/work/usr/ports/graphics/blender/work/.build/bin/datatoc /tmp/work/usr/ports/graphics/blender/work/blender-3.4.0/intern/opencolorio/gpu_shader_display_transform_vert.glsl /tmp/work/usr/ports/graphics/blender/work/.build/intern/opencolorio/gpu_shader_display_transform_vert.glsl.c
FAILED: intern/opencolorio/gpu_shader_display_transform_vert.glsl.c /tmp/work/usr/ports/graphics/blender/work/.build/intern/opencolorio/gpu_shader_display_transform_vert.glsl.c 
cd /tmp/work/usr/ports/graphics/blender/work/.build/intern/opencolorio && /usr/local/bin/cmake -E make_directory /tmp/work/usr/ports/graphics/blender/work/.build/intern/opencolorio && /tmp/work/usr/ports/graphics/blender/work/.build/bin/datatoc /tmp/work/usr/ports/graphics/blender/work/blender-3.4.0/intern/opencolorio/gpu_shader_display_transform_vert.glsl /tmp/work/usr/ports/graphics/blender/work/.build/intern/opencolorio/gpu_shader_display_transform_vert.glsl.c
ld-elf.so.1: /lib/libc.so.7: Undefined symbol "environ"
Comment 6 Vladimir Druzenko freebsd_committer freebsd_triage 2022-12-14 10:54:49 UTC
# /tmp/work/usr/ports/graphics/blender/work/.build/bin/datatoc 
ld-elf.so.1: /lib/libc.so.7: Undefined symbol "environ"

What is datatoc?
Comment 7 Shane 2022-12-15 01:53:10 UTC
datatoc is a Blender build tool data-to-c it reads binary files and generates a c-file with the files encoded into c variables, allows icons etc to be compiled into the blender binary.

https://developer.blender.org/diffusion/B/browse/master/source/blender/datatoc/

https://blender.stackexchange.com/a/90847/935
Comment 8 Dima Panov freebsd_committer freebsd_triage 2022-12-23 12:19:00 UTC
Take the issue for future changes.


BTW, blender 3.3 also claims about undefined "environ" even with opencolorio, openimageio and openshadinglanguage updated (but blender 3.2 builds fine with new open*)

Also, opencolorio 2.2 needs cmake stuff from zstd (see https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=267652)
Comment 9 Shane 2022-12-31 06:37:31 UTC
Created attachment 239143 [details]
Maintainer update for graphics/blender
Comment 10 Shane 2022-12-31 06:39:30 UTC
Comment on attachment 239143 [details]
Maintainer update for graphics/blender

Update graphics/blender to 3.4.1

Includes new options to support wayland and potrace

New OPENPGL option requires new port in bug #268658
Comment 11 Vladimir Druzenko freebsd_committer freebsd_triage 2022-12-31 09:24:12 UTC
(In reply to Shane from comment #10)
> +  /usr/local/llvm%%LLVM_VER%%/lib/libclangSupport.a
Maybe
+  ${LOCALBASE}/llvm%%LLVM_VER%%/lib/libclangSupport.a
?
Comment 12 Shane 2022-12-31 10:06:28 UTC
Created attachment 239145 [details]
maintainer update for graphics/blender

Yes I should have got that. Being in cmake we use CMAKE_INSTALL_PREFIX instead of another reinplace make var.
Comment 13 Vladimir Druzenko freebsd_committer freebsd_triage 2022-12-31 10:32:59 UTC
BTW, Have you tried "posting" FreeBSD related patches to upstream?
Comment 14 commit-hook freebsd_committer freebsd_triage 2022-12-31 15:01:17 UTC
A commit in branch main references this bug:

URL: https://cgit.FreeBSD.org/ports/commit/?id=d052c016bd9385650e30a54eccc12eddfc067659

commit d052c016bd9385650e30a54eccc12eddfc067659
Author:     Dima Panov <fluffy@FreeBSD.org>
AuthorDate: 2022-12-31 14:57:44 +0000
Commit:     Dima Panov <fluffy@FreeBSD.org>
CommitDate: 2022-12-31 15:00:04 +0000

    graphics/blender: update to 3.4.1 release (+)

    Includes new options to support wayland and potrace

    PR:     268331

 graphics/blender/Makefile                          |  32 ++--
 graphics/blender/Makefile.options                  |  12 +-
 graphics/blender/Makefile.versions                 |   2 +-
 graphics/blender/distinfo                          |   6 +-
 graphics/blender/files/patch-CMakeLists.txt        |   6 +-
 .../files/patch-extern_sdlew_CMakeLists.txt (new)  |  11 ++
 ...h-intern_cycles_kernel_osl_CMakeLists.txt (new) |  10 ++
 .../patch-intern_opensubdiv_CMakeLists.txt (gone)  |  11 --
 .../patch-source_creator_symbols__unix.map (new)   |  12 ++
 graphics/blender/pkg-plist                         | 192 ++++++++++++++-------
 10 files changed, 205 insertions(+), 89 deletions(-)
Comment 15 Vladimir Druzenko freebsd_committer freebsd_triage 2022-12-31 17:47:45 UTC
13.1-p5 amd64.

$ pkg info -q | grep llvm
llvm-15,1
llvm13-13.0.1_3
llvm15-15.0.6_1

===>  Extracting for blender-3.4.1
=> SHA256 Checksum OK for blender-3.4.1.tar.xz.
===>  Patching for blender-3.4.1
===>  Applying FreeBSD patches for blender-3.4.1 from /usr/ports/graphics/blender/files
/usr/bin/sed -i.bak -e 's|%%LLVM_VER%%||g'  /tmp/work/usr/ports/graphics/blender/work/blender-3.4.1/intern/cycles/kernel/osl/CMakeLists.txt
===>   blender-3.4.1 depends on package: py310-numpy>=1.16,1<1.24,1 - found
===>   blender-3.4.1 depends on executable: llvm-config - found
===>   blender-3.4.1 depends on file: /usr/local/bin/cmake - found
===>   blender-3.4.1 depends on executable: ninja - found
===>   blender-3.4.1 depends on executable: llvm-config15 - found
… cut …
===>  Building for blender-3.4.1
ninja: error: '/usr/local/llvm/lib/libclangSupport.a', needed by 'bin/blender', missing and no known rule to make it
===> Compilation failed unexpectedly.

Error is from here: graphics/blender/files/patch-intern_cycles_kernel_osl_CMakeLists.txt:
${CMAKE_INSTALL_PREFIX}/llvm%%LLVM_VER%%/lib/libclangSupport.a 

Probably patch for graphics/blender/Makefile:
 post-patch:
-        ${REINPLACE_CMD} -e 's|%%LLVM_VER%%|${LLVM_VERS}|g' \
+        ${REINPLACE_CMD} -e 's|%%LLVM_VER%%|${LLVM_VERSION}|g' \
                 ${WRKSRC}/intern/cycles/kernel/osl/CMakeLists.txt

Build in progress…
Comment 16 Dima Panov freebsd_committer freebsd_triage 2022-12-31 18:33:37 UTC
(In reply to VVD from comment #15)
Oh, indeed, after switching to USES=llvm we need to adjust LLVM_VER to LLVM_VERSION as it is defined in Mk/Uses/llvm.mk

I'll push it asap


--- a/graphics/blender/Makefile
+++ b/graphics/blender/Makefile
@@ -80,11 +80,11 @@ CYCLESEMBR_ONLY_FOR_ARCHS_REASON=   embree only supports amd64
 CYCLESOSL_IMPLIES=             CYCLES
 CYCLESOSL_CMAKE_BOOL=          WITH_CYCLES_OSL WITH_LLVM
 CYCLESOSL_CMAKE_ON=            -DLLVM_STATIC:BOOL=OFF \
-                               -DLLVM_CONFIG:STRING="${LOCALBASE}/bin/llvm-config${LLVM_VER}" \
+                               -DLLVM_CONFIG:STRING="${LOCALBASE}/bin/llvm-config${LLVM_VERSION}" \
                                -DOSL_SHADER_DIR:STRING="${LOCALBASE}/share/openshadinglanguage/shaders"
-CYCLESOSL_BUILD_DEPENDS=       llvm-config${LLVM_VER}:devel/llvm${LLVM_VER}
+CYCLESOSL_BUILD_DEPENDS=       llvm-config${LLVM_VERSION}:devel/llvm${LLVM_VERSION}
 CYCLESOSL_LIB_DEPENDS=         liboslcomp.so:graphics/openshadinglanguage
-CYCLESOSL_RUN_DEPENDS=         llvm-config${LLVM_VER}:devel/llvm${LLVM_VER}
+CYCLESOSL_RUN_DEPENDS=         llvm-config${LLVM_VERSION}:devel/llvm${LLVM_VERSION}
 DDS_CMAKE_BOOL=                        WITH_IMAGE_DDS
 DRACO_CMAKE_BOOL=              WITH_DRACO
 DRACO_USE=                     LDCONFIG=${PYTHON_SITELIBDIR}
@@ -198,7 +198,7 @@ CMAKE_ARGS+=        -DWITH_CPU_SSE:BOOL=OFF
 .endif

 post-patch:
-       ${REINPLACE_CMD} -e 's|%%LLVM_VER%%|${LLVM_VER}|g' \
+       ${REINPLACE_CMD} -e 's|%%LLVM_VER%%|${LLVM_VERSION}|g' \
                ${WRKSRC}/intern/cycles/kernel/osl/CMakeLists.txt

 post-build:
Comment 17 commit-hook freebsd_committer freebsd_triage 2022-12-31 18:36:47 UTC
A commit in branch main references this bug:

URL: https://cgit.FreeBSD.org/ports/commit/?id=444f09a0db09c0295b8f230c2dac3da8ffcf2e7c

commit 444f09a0db09c0295b8f230c2dac3da8ffcf2e7c
Author:     Dima Panov <fluffy@FreeBSD.org>
AuthorDate: 2022-12-31 18:34:41 +0000
Commit:     Dima Panov <fluffy@FreeBSD.org>
CommitDate: 2022-12-31 18:36:26 +0000

    graphics/blender: adjust variable name LLVM_VER => LLVM_VERSION after transition to USES=llvm (+)

    Reported by:    VVD
    PR:             268331

 graphics/blender/Makefile | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)
Comment 18 Vladimir Druzenko freebsd_committer freebsd_triage 2022-12-31 20:16:40 UTC
Thanks!