AFGBPBXIJET6S27JFQ7UQDKBAODRCVJBEWW5N4TZ2ZIDSVQBYPUAC
PFSULKO2UMPEOU7JLZ7PJJISS64V76UBXVABJHEEDOALOIKHP2NAC
ZSLDJYRQQMMYEG3N6NQDTLTXM2JI65I63ODUPXWDX6R63JZN4UCAC
42G2NQSSEKZREY7WY36V6WUVATOPTOWJ6F2UKT5ZRMIGDF5YVX2AC
E3R2D3EM2YX3SBY73K6WBGTRMJZBGM2J5IJMNGOLQSCV72PXARFAC
5I556HBJYJKJECF26RN5U7APFOEDJZYR35BO5HX6SI2BKIWJVDZAC
N5MTDBGC3LLTCPBZYJHXOAJLKDEZ42CEILC47D44MNFQBVNFEWLQC
T2II7GNR6NLS54LQ2YJ62LHEU7A5HO2VSULDRLPPAIPI3IAFXYFAC
KDQ7HKSV7FE3GDNMYIYEBORQXSS4HFHZLHK27TAGMNYXYRMSF5OAC
6XHFU57227LFUCZND5ECPHX2Y6KHKHIQWERBXPFYMO4PF2K7V2ZAC
4XBZI2SJPOLF7XJVKW7EQJR57EZWT7AAFRNZ3P7LVFTDN6XW63AQC
QSHUFJ7JXIOKKRU24UE5B5E754FLPXUMBUXKQLE3IPBRFXC4XFCQC
FNSZAZBASSCLH25DVNXUNM265YTGXAZLOKSKSNTIGLAXJIUXTOTAC
TR5EONGJ7BYYID7FKU2AQIXBS72PSMDWNUPRYRHEMQM2BEVG7TXAC
3F433IRVJXPY2NXLJH2MK2IEMWSAT6G33RDND2I5WCWZ2YGBXYAAC
--- blender-3.3.3/source/blender/io/alembic/CMakeLists.txt.orig 2023-02-17 16:56:11.252109270 +0100
+++ blender-3.3.3/source/blender/io/alembic/CMakeLists.txt 2023-02-17 21:03:13.638150916 +0100
@@ -21,6 +21,7 @@
set(INC_SYS
${ALEMBIC_INCLUDE_DIRS}
${BOOST_INCLUDE_DIR}
+ ${PYTHON_INCLUDE_DIR}
${OPENEXR_INCLUDE_DIRS}
)
--- blender-3.3.3/source/blender/io/usd/CMakeLists.txt.orig 2023-02-18 09:18:24.547600307 +0100
+++ blender-3.3.3/source/blender/io/usd/CMakeLists.txt 2023-02-18 09:18:50.595462877 +0100
@@ -54,6 +54,7 @@
set(INC_SYS
${USD_INCLUDE_DIRS}
${BOOST_INCLUDE_DIR}
+ ${PYTHON_INCLUDE_DIR}
${TBB_INCLUDE_DIR}
)
--- blender-3.3.3/source/blender/io/alembic/CMakeLists.txt.orig 2023-02-17 16:56:11.252109270 +0100
+++ blender-3.3.3/source/blender/io/alembic/CMakeLists.txt 2023-02-17 21:03:13.638150916 +0100
@@ -21,6 +21,7 @@
set(INC_SYS
${ALEMBIC_INCLUDE_DIRS}
${BOOST_INCLUDE_DIR}
+ ${PYTHON_INCLUDE_DIR}
${OPENEXR_INCLUDE_DIRS}
)
--- blender-3.3.3/source/blender/io/usd/CMakeLists.txt.orig 2023-02-18 09:18:24.547600307 +0100
+++ blender-3.3.3/source/blender/io/usd/CMakeLists.txt 2023-02-18 09:18:50.595462877 +0100
@@ -54,5 +54,6 @@
set(INC_SYS
${USD_INCLUDE_DIRS}
${BOOST_INCLUDE_DIR}
+ ${PYTHON_INCLUDE_DIR}
${TBB_INCLUDE_DIR}
)
--- blender-3.4.1/build_files/cmake/platform/platform_unix.cmake.orig 2023-02-23 06:34:25.079892639 +0100
+++ blender-3.4.1/build_files/cmake/platform/platform_unix.cmake 2023-02-23 06:35:24.184660737 +0100
@@ -365,7 +365,7 @@
set(Boost_USE_STATIC_LIBS ON)
endif()
set(Boost_USE_MULTITHREADED ON)
- set(__boost_packages filesystem regex thread date_time)
+ set(__boost_packages filesystem regex thread date_time python)
if(WITH_CYCLES AND WITH_CYCLES_OSL)
if(NOT (${OSL_LIBRARY_VERSION_MAJOR} EQUAL "1" AND ${OSL_LIBRARY_VERSION_MINOR} LESS "6"))
list(APPEND __boost_packages wave)
--- blender-3.4.1/release/scripts/startup/bl_ui/space_view3d_toolbar.py.orig 2023-02-23 20:40:39.889617867 +0100
+++ blender-3.4.1/release/scripts/startup/bl_ui/space_view3d_toolbar.py 2023-02-23 21:05:42.698898588 +0100
@@ -469,68 +469,69 @@
have_image = False
- match getattr(mode_settings, self.canvas_source_attr_name):
- case 'MATERIAL':
- if len(ob.material_slots) > 1:
- layout.template_list(
- "MATERIAL_UL_matslots", "layers",
- ob, "material_slots",
- ob, "active_material_index", rows=2,
- )
- mat = ob.active_material
- if mat and mat.texture_paint_images:
- row = layout.row()
- row.template_list(
- "TEXTURE_UL_texpaintslots", "",
- mat, "texture_paint_slots",
- mat, "paint_active_slot", rows=2,
- )
-
- if mat.texture_paint_slots:
- slot = mat.texture_paint_slots[mat.paint_active_slot]
- else:
- slot = None
+ source_type = getattr(mode_settings, self.canvas_source_attr_name)
- have_image = slot is not None
- else:
- row = layout.row()
-
- box = row.box()
- box.label(text="No Textures")
-
- sub = row.column(align=True)
- sub.operator_menu_enum("paint.add_texture_paint_slot", "type", icon='ADD', text="")
+ if source_type == 'MATERIAL':
+ if len(ob.material_slots) > 1:
+ layout.template_list(
+ "MATERIAL_UL_matslots", "layers",
+ ob, "material_slots",
+ ob, "active_material_index", rows=2,
+ )
+ mat = ob.active_material
+ if mat and mat.texture_paint_images:
+ row = layout.row()
+ row.template_list(
+ "TEXTURE_UL_texpaintslots", "",
+ mat, "texture_paint_slots",
+ mat, "paint_active_slot", rows=2,
+ )
- case 'IMAGE':
- mesh = ob.data
- uv_text = mesh.uv_layers.active.name if mesh.uv_layers.active else ""
- layout.template_ID(mode_settings, self.canvas_image_attr_name, new="image.new", open="image.open")
- if settings.missing_uvs:
- layout.operator("paint.add_simple_uvs", icon='ADD', text="Add UVs")
+ if mat.texture_paint_slots:
+ slot = mat.texture_paint_slots[mat.paint_active_slot]
else:
- layout.menu("VIEW3D_MT_tools_projectpaint_uvlayer", text=uv_text, translate=False)
- have_image = getattr(settings, self.canvas_image_attr_name) is not None
+ slot = None
- self.draw_image_interpolation(layout=layout, mode_settings=mode_settings)
+ have_image = slot is not None
+ else:
+ row = layout.row()
- case 'COLOR_ATTRIBUTE':
- mesh = ob.data
+ box = row.box()
+ box.label(text="No Textures")
- row = layout.row()
- col = row.column()
- col.template_list(
- "MESH_UL_color_attributes_selector",
- "color_attributes",
- mesh,
- "color_attributes",
- mesh.color_attributes,
- "active_color_index",
- rows=3,
- )
+ sub = row.column(align=True)
+ sub.operator_menu_enum("paint.add_texture_paint_slot", "type", icon='ADD', text="")
- col = row.column(align=True)
- col.operator("geometry.color_attribute_add", icon='ADD', text="")
- col.operator("geometry.color_attribute_remove", icon='REMOVE', text="")
+ elif source_type == 'IMAGE':
+ mesh = ob.data
+ uv_text = mesh.uv_layers.active.name if mesh.uv_layers.active else ""
+ layout.template_ID(mode_settings, self.canvas_image_attr_name, new="image.new", open="image.open")
+ if settings.missing_uvs:
+ layout.operator("paint.add_simple_uvs", icon='ADD', text="Add UVs")
+ else:
+ layout.menu("VIEW3D_MT_tools_projectpaint_uvlayer", text=uv_text, translate=False)
+ have_image = getattr(settings, self.canvas_image_attr_name) is not None
+
+ self.draw_image_interpolation(layout=layout, mode_settings=mode_settings)
+
+ elif source_type == 'COLOR_ATTRIBUTE':
+ mesh = ob.data
+
+ row = layout.row()
+ col = row.column()
+ col.template_list(
+ "MESH_UL_color_attributes_selector",
+ "color_attributes",
+ mesh,
+ "color_attributes",
+ mesh.color_attributes,
+ "active_color_index",
+ rows=3,
+ )
+
+ col = row.column(align=True)
+ col.operator("geometry.color_attribute_add", icon='ADD', text="")
+ col.operator("geometry.color_attribute_remove", icon='REMOVE', text="")
if settings.missing_uvs:
layout.separator()
(define-public blender
(define blender-translations-3.4
;; because translations are in a separate repo
;; (will disappear in 3.5: moved to Blender repo)
(package
(name "blender-translations")
(version "3.4.1")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://projects.blender.org/blender/blender-translations")
;; use the commit referenced by blender repo in v3.4.1
(commit "e398d3c4969a37ae2ecff388344dd780bc1cfe82")))
(file-name (git-file-name name version))
(sha256
(base32
"04f1vs4f592s9fxawb3fj8gnvhp2c759cgnm4cgn7mvmjg7fj8ly"))))
(build-system copy-build-system)
(home-page "https://blender.org/")
(synopsis "All languages translation files for Blender")
(description
"Blender is a 3D graphics creation suite. It supports the entirety of
the 3D pipeline—modeling, rigging, animation, simulation, rendering,
compositing and motion tracking, even video editing and game creation. The
application can be customized via its API for Python scripting.")
(license license:gpl2+)))
(define-public blender-3.4
(search-patches "vfx/patches/blender-fix-python-includes.patch"
"vfx/patches/blender-allow-python-3.9.patch"))))
(search-patches
;; make python3.9 work until Guix has python3.10
"vfx/patches/blender-allow-python-3.9.patch"
;; fix Python includes and unresolved symbols
"vfx/patches/blender-fix-cmake-for-python.patch"))))
"-DWITH_FFTW3=ON"
"-DWITH_IMAGE_OPENJPEG=ON"
"-DWITH_INPUT_NDOF=ON"
"-DWITH_INSTALL_PORTABLE=OFF"
"-DWITH_JACK=ON"
"-DWITH_MOD_OCEANSIM=ON"
"-DWITH_OPENVDB=ON"
;; (string-append "-DOPENVDB_INCLUDE_DIR="
;; (assoc-ref %build-inputs "openvdb")
;; "/include")
;; (string-append "-DOPENVDB_LIBRARY="
;; (assoc-ref %build-inputs "openvdb")
;; "/lib")
"-DWITH_OPENSUBDIV=ON"
"-DWITH_USD=ON"
"-DWITH_INSTALL_PORTABLE=OFF" ; no FHS installation (use CMAKE_INSTALL_PREFIX)
"-DWITH_PYTHON_INSTALL=OFF" ; Don't copy system python into the blender install folder
"-DWITH_DRACO=OFF" ; Can't enable Draco without copying system python into the blender install folder
"-DWITH_PYTHON_INSTALL=OFF" ; don't copy system python into the blender install folder
"-DWITH_DRACO=OFF" ; can't enable Draco without copying system python into the blender install folder
(add-after 'set-paths 'add-ilmbase-include-path
(lambda* (#:key inputs #:allow-other-keys)
;; OpenEXR propagates ilmbase, but its include files do not
;; appear in the C_INCLUDE_PATH, so we need to add
;; "$ilmbase/include/OpenEXR/" to the C_INCLUDE_PATH to satisfy
;; the dependency on "half.h" and "Iex.h".
(let ((headers (string-append
(assoc-ref inputs "ilmbase")
"/include/OpenEXR")))
(setenv "C_INCLUDE_PATH"
(string-append headers ":"
(or (getenv "C_INCLUDE_PATH") "")))
(setenv "CPLUS_INCLUDE_PATH"
(string-append headers ":"
(or (getenv "CPLUS_INCLUDE_PATH") ""))))))))))
(add-after 'configure 'link-translations
;; integrate external translation files into the sources
(lambda* (#:key inputs #:allow-other-keys)
(let ((translations (assoc-ref inputs "blender-translations"))
(locale-folder "../blender/release/datafiles/locale"))
(rmdir locale-folder)
(symlink translations locale-folder)
#t)))))))
(add-after 'set-paths 'add-ilmbase-include-path
(lambda* (#:key inputs #:allow-other-keys)
;; OpenEXR 2 propagates ilmbase, but its include files do not
;; appear in the C_INCLUDE_PATH.
(let ((headers (string-append
(assoc-ref inputs "ilmbase")
"/include/OpenEXR")))
(setenv "C_INCLUDE_PATH"
(string-append headers ":"
(or (getenv "C_INCLUDE_PATH") "")))
(setenv "CPLUS_INCLUDE_PATH"
(string-append headers ":"
(or (getenv "CPLUS_INCLUDE_PATH") ""))))))
;; (add-after 'set-paths 'add-ilmbase-include-path
;; (lambda* (#:key inputs #:allow-other-keys)
;; ;; OpenEXR 2 propagates ilmbase, but its include files do not
;; ;; appear in the C_INCLUDE_PATH.
;; (let ((headers (string-append
;; (assoc-ref inputs "ilmbase")
;; "/include/OpenEXR")))
;; (setenv "C_INCLUDE_PATH"
;; (string-append headers ":"
;; (or (getenv "C_INCLUDE_PATH") "")))
;; (setenv "CPLUS_INCLUDE_PATH"
;; (string-append headers ":"
;; (or (getenv "CPLUS_INCLUDE_PATH") ""))))))