git: 24f7f13f22ca - main - graphics/blender-lts28: add port, long term support version of blender

Dmitry Marakasov amdmi3 at FreeBSD.org
Thu May 27 11:12:58 UTC 2021


The branch main has been updated by amdmi3:

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

commit 24f7f13f22cac37ccfb3a866eda1bd5e06be6bc6
Author:     Dmitry Marakasov <amdmi3 at FreeBSD.org>
AuthorDate: 2021-05-27 11:09:25 +0000
Commit:     Dmitry Marakasov <amdmi3 at FreeBSD.org>
CommitDate: 2021-05-27 11:09:25 +0000

    graphics/blender-lts28: add port, long term support version of blender
    
    PR:             249141
    Submitted by:   FreeBSD at ShaneWare.Biz
---
 graphics/Makefile                                  |    1 +
 graphics/blender-lts28/Makefile                    |  217 ++
 graphics/blender-lts28/Makefile.options            |  127 ++
 graphics/blender-lts28/Makefile.versions           |    6 +
 graphics/blender-lts28/distinfo                    |    3 +
 graphics/blender-lts28/files/blender.in            |    6 +
 graphics/blender-lts28/files/patch-CMakeLists.txt  |   14 +
 ...tch-build__files_cmake_Modules_FindEmbree.cmake |   25 +
 ...ch-build__files_cmake_Modules_FindOpenEXR.cmake |   13 +
 ...ch-extern_audaspace_bindings_python_PySound.cpp |   11 +
 .../files/patch-intern_cycles_CMakeLists.txt       |   14 +
 .../files/patch-intern_opensubdiv_CMakeLists.txt   |   11 +
 ...exp_gltf2__io__draco__compression__extension.py |   19 +
 ...e_blender_imbuf_intern_openexr_openexr__api.cpp |   18 +
 ...der_io_alembic_intern_abc__writer__transform.cc |   11 +
 ...ch-extern_audaspace_bindings_python_PySound.cpp |   11 +
 graphics/blender-lts28/pkg-descr                   |    6 +
 graphics/blender-lts28/pkg-plist                   | 2228 ++++++++++++++++++++
 18 files changed, 2741 insertions(+)

diff --git a/graphics/Makefile b/graphics/Makefile
index 1b348882df2e..bc05bb2fe231 100644
--- a/graphics/Makefile
+++ b/graphics/Makefile
@@ -75,6 +75,7 @@
     SUBDIR += blend2d
     SUBDIR += blender
     SUBDIR += blender-doc
+    SUBDIR += blender-lts28
     SUBDIR += bmeps
     SUBDIR += bmp2html
     SUBDIR += bonzomatic
diff --git a/graphics/blender-lts28/Makefile b/graphics/blender-lts28/Makefile
new file mode 100644
index 000000000000..1787067f48c0
--- /dev/null
+++ b/graphics/blender-lts28/Makefile
@@ -0,0 +1,217 @@
+PORTNAME=	blender
+DISTVERSION=	2.83.15
+CATEGORIES=	graphics multimedia
+MASTER_SITES=	http://download.blender.org/source/ \
+		http://mirror.cs.umn.edu/blender.org/source/ \
+		http://public.planetmirror.com/pub/blender/source/
+# long term support v2.8x
+PKGNAMESUFFIX=	-lts28
+
+MAINTAINER=	FreeBSD at Shaneware.biz
+COMMENT=	3D modeling/rendering/animation package - LTS
+
+LICENSE=	GPLv3+
+LICENSE_FILE=	${WRKSRC}/doc/license/GPL3-license.txt
+
+BUILD_DEPENDS=	${PYNUMPY}
+LIB_DEPENDS=	libpng.so:graphics/png \
+		libfreetype.so:print/freetype2 \
+		libboost_regex.so:devel/boost-libs
+RUN_DEPENDS=	${PYNUMPY}
+# libboost_regex.so just acts as a placeholder; several boost
+# libraries are used, if either of the most common options in blender
+# are set. We will pull boost in just to be on the safe side.
+
+USES=		cmake compiler:c++14-lang gl jpeg python:3.7 shebangfix \
+		tar:xz xorg
+USE_XORG=	x11 xext xfixes xmu xrender
+USE_GL=		gl glu glew
+
+INSTALLS_ICONS=	yes
+CMAKE_OFF=	WITH_IMAGE_OPENJPEG WITH_PYTHON_INSTALL \
+		WITH_PYTHON_INSTALL_NUMPY WITH_INSTALL_PORTABLE \
+		WITH_CYCLES_LOGGING
+
+SUB_FILES=	blender
+SHEBANG_FILES=	release/bin/blender-thumbnailer.py \
+		release/scripts/modules/bl_i18n_utils/merge_po.py \
+		release/scripts/modules/bl_i18n_utils/utils_rtl.py \
+		release/scripts/modules/blend_render_info.py
+CFLAGS+=	${CFLAGS_${CHOSEN_COMPILER_TYPE}}
+CFLAGS_gcc=	-Wno-float-conversion
+CFLAGS_i386=	-march=i586
+CXXFLAGS_i386=	-march=i586
+# Use LLVM linker where available
+.if exists(/usr/bin/ld.lld) && (${/usr/bin/ld:L:tA} != /usr/bin/ld.lld)
+LDFLAGS+=	-fuse-ld=lld
+.endif
+
+# prevent conflict with other blender versions
+DATADIR=	${PREFIX}/share/${PORTNAME}${PKGNAMESUFFIX}
+DOCSDIR=	${PREFIX}/share/doc/${PORTNAME}${PKGNAMESUFFIX}
+PLIST_SUB+=	VER=${DISTVERSION:R} SUFFIX=${PKGNAMESUFFIX}
+OPTIONS_SUB=	yes
+
+.include "${.CURDIR}/Makefile.options"
+
+ALEMBIC_CMAKE_BOOL=		WITH_ALEMBIC
+ALEMBIC_LIB_DEPENDS=		libAlembic.so:graphics/alembic
+# note that this needs to be set to match alembics hdf5 option
+ALEMBIC_HDF5_REQUIRES=		ALEMBIC
+ALEMBIC_HDF5_CMAKE_BOOL=	WITH_ALEMBIC_HDF5
+ALEMBIC_HDF5_LIB_DEPENDS=	libhdf5.so:science/hdf5
+AVI_CMAKE_BOOL=			WITH_CODEC_AVI
+BULLET_CMAKE_BOOL=		WITH_BULLET
+CAMERATRACK_CMAKE_BOOL=		WITH_LIBMV
+CAMERATRACK_LIB_DEPENDS=	libunwind.so:devel/libunwind
+CAMERATRACK_ONLY_FOR_ARCHS=	i386 amd64
+CAMERATRACK_ONLY_FOR_ARCHS_REASON=	libunwind only supports x86/amd64
+CINEON_CMAKE_BOOL=		WITH_IMAGE_CINEON
+COLLADA_CMAKE_BOOL=		WITH_OPENCOLLADA
+COLLADA_LIB_DEPENDS=		libOpenCOLLADABaseUtils.so:graphics/opencollada \
+				libpcre.so:devel/pcre
+COLLADA_USE=			GNOME=libxml2
+COLLADA_USES=			gnome
+COMPOSITOR_CMAKE_BOOL=		WITH_COMPOSITOR
+CYCLES_IMPLIES=			OPENIMAGEIO
+CYCLES_CMAKE_BOOL=		WITH_CYCLES
+CYCLES_LIB_DEPENDS=		libpugixml.so:textproc/pugixml
+CYCLESEMBR_IMPLIES=		CYCLES
+CYCLESEMBR_CMAKE_BOOL=		WITH_CYCLES_EMBREE
+CYCLESEMBR_LIB_DEPENDS=		libembree3.so:graphics/embree
+CYCLESEMBR_ONLY_FOR_ARCHS=	amd64
+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}" \
+				-DOSL_ROOT_DIR:STRING="${LOCALBASE}/share/openshadinglanguage/"
+CYCLESOSL_BUILD_DEPENDS=	llvm-config${LLVM_VER}:devel/llvm${LLVM_VER}
+CYCLESOSL_LIB_DEPENDS=		liboslcomp.so:graphics/openshadinglanguage
+CYCLESOSL_RUN_DEPENDS=		llvm-config${LLVM_VER}:devel/llvm${LLVM_VER}
+DDS_CMAKE_BOOL=			WITH_IMAGE_DDS
+DRACO_CMAKE_BOOL=		WITH_DRACO
+FFMPEG_CMAKE_BOOL=		WITH_CODEC_FFMPEG
+FFMPEG_LDFLAGS=			-L${PREFIX}/lib -lflite -lflite_cmu_us_kal -lflite_cmulex -lflite_usenglish
+FFMPEG_LIB_DEPENDS=		libavutil.so:multimedia/ffmpeg \
+				libflite_cmu_us_kal.so:audio/flite
+FFTW3_CMAKE_BOOL=		WITH_FFTW3
+FFTW3_LIB_DEPENDS=		libfftw3.so:math/fftw3
+FRAMESERVER_CMAKE_BOOL=		WITH_IMAGE_FRAMESERVER
+FREESTYLE_CMAKE_BOOL=		WITH_FREESTYLE
+HDR_CMAKE_BOOL=			WITH_IMAGE_HDR
+HEADLESS_PREVENTS=		MENU XINPUT XF86VMODE
+HEADLESS_PREVENTS_MSG=		X11 options can't be used in headless mode
+HEADLESS_CMAKE_BOOL=		WITH_HEADLESS
+INPUT_NDOF_CMAKE_BOOL=		WITH_INPUT_NDOF
+JACK_CMAKE_BOOL=		WITH_JACK
+JACK_LIB_DEPENDS=		libjack.so:audio/jack
+LZO_CMAKE_BOOL=			WITH_LZO
+LZMA_CMAKE_BOOL=		WITH_LZMA
+MENU_USES=			desktop-file-utils
+MOD_BOOLEAN_CMAKE_BOOL=		WITH_MOD_BOOLEAN
+MOD_FLUID_CMAKE_BOOL=		WITH_MOD_FLUID
+MOD_OCEANSIM_IMPLIES=		FFTW3
+MOD_OCEANSIM_CMAKE_BOOL=	WITH_MOD_OCEANSIM
+MOD_REMESH_CMAKE_BOOL=		WITH_MOD_REMESH
+MOD_SMOKE_CMAKE_BOOL=		WITH_MOD_SMOKE
+NLS_CMAKE_BOOL=			WITH_INTERNATIONAL
+# Use iconv:wchar_t to force the usage of iconv from ports.
+# libboost_locale.so uses libiconv_open, while we only provide
+# iconv_open in 10.x+
+NLS_USES=			gettext iconv:lib,wchar_t
+OPENAL_CMAKE_BOOL=		WITH_OPENAL
+OPENAL_USES=			openal:al,alut
+OPENCOLORIO_CMAKE_BOOL=		WITH_OPENCOLORIO
+OPENCOLORIO_LIB_DEPENDS=	libOpenColorIO.so:graphics/opencolorio \
+				libyaml-cpp03.so:devel/yaml-cpp03 \
+				libtinyxml.so:textproc/tinyxml
+OPENEXR_CMAKE_BOOL=		WITH_IMAGE_OPENEXR
+OPENEXR_CFLAGS=			-I${LOCALBASE}/include/Imath
+OPENEXR_LIB_DEPENDS=		libImath.so:math/Imath \
+				libOpenEXR.so:graphics/openexr
+OPENIMAGEIO_IMPLIES=		OPENEXR TIFF
+OPENIMAGEIO_CMAKE_BOOL=		WITH_OPENIMAGEIO
+OPENIMAGEIO_LIB_DEPENDS=	libOpenImageIO.so:graphics/openimageio
+OPENIMAGEDN_CMAKE_BOOL=		WITH_OPENIMAGEDENOISE
+OPENIMAGEDN_LIB_DEPENDS=	libOpenImageDenoise.so:graphics/oidn
+OPENIMAGEDN_ONLY_FOR_ARCHS=	amd64
+OPENIMAGEDN_ONLY_FOR_ARCHS_REASON=	oidn only supports amd64
+# openmp usually works on amd64
+OPENMP_CMAKE_BOOL=		WITH_OPENMP
+OPENSUBDIV_CMAKE_BOOL=		WITH_OPENSUBDIV
+OPENSUBDIV_LIB_DEPENDS=		libosdCPU.so:graphics/opensubdiv
+OPENVDB_CMAKE_BOOL=		WITH_OPENVDB WITH_OPENVDB_BLOSC
+OPENVDB_LIB_DEPENDS=		libblosc.so:archivers/c-blosc \
+				libopenvdb.so:misc/openvdb \
+				libtbb.so:devel/onetbb
+RAYOPTIMIZATION_CMAKE_BOOL=	WITH_RAYOPTIMIZATION
+SDL_CMAKE_BOOL=			WITH_SDL
+SDL_USE=			SDL=sdl2
+SDL_USES=			sdl
+SNDFILE_CMAKE_BOOL=		WITH_CODEC_SNDFILE
+SNDFILE_LIB_DEPENDS=		libsndfile.so:audio/libsndfile
+TBB_CMAKE_BOOL=			WITH_TBB
+TBB_LIB_DEPENDS=		libtbb.so:devel/onetbb
+TIFF_CMAKE_BOOL=		WITH_IMAGE_TIFF
+TIFF_LIB_DEPENDS=		libtiff.so:graphics/tiff
+XINPUT_CMAKE_BOOL=		WITH_X11_XINPUT
+XINPUT_USE=			XORG=xi
+XF86VMODE_CMAKE_BOOL=		WITH_X11_XF86VMODE
+XF86VMODE_USE=			XORG=xi,xxf86vm
+
+.if defined(WITH_DEBUG)
+CMAKE_ARGS+=		-DWITH_GHOST_DEBUG:BOOL=ON
+.endif
+
+.include <bsd.port.options.mk>
+
+.if ${LLVM_DEFAULT:M[678]0}
+LLVM_VER=	90
+.else
+LLVM_VER=	${LLVM_DEFAULT}
+.endif
+
+post-patch-OPENCOLORIO-on:
+	@${REINPLACE_CMD} -e 's|yaml-cpp|&03|' \
+		${PATCH_WRKSRC}/build_files/cmake/Modules/FindOpenColorIO.cmake
+
+post-build:
+	@(cd ${WRKSRC}/doc/manpage && \
+		${PYTHON_CMD} blender.1.py \
+			${INSTALL_WRKSRC}/bin/blender \
+			${INSTALL_WRKSRC}/bin/${PORTNAME}.1)
+
+post-install:
+	${INSTALL_MAN} ${INSTALL_WRKSRC}/bin/${PORTNAME}.1 \
+		${STAGEDIR}${MAN1PREFIX}/man/man1
+	# rename files to prevent conflict with other blender versions
+	${MV} ${STAGEDIR}${PREFIX}/share/blender \
+		${STAGEDIR}${PREFIX}/share/blender${PKGNAMESUFFIX}
+	${MV} ${STAGEDIR}${PREFIX}/share/doc/blender \
+		${STAGEDIR}${PREFIX}/share/doc/blender${PKGNAMESUFFIX}
+	${MV} ${STAGEDIR}${PREFIX}/bin/blender \
+		${STAGEDIR}${PREFIX}/bin/blender-bin${PKGNAMESUFFIX}
+	${INSTALL_SCRIPT} ${WRKDIR}/blender ${STAGEDIR}/${PREFIX}/bin/blender${PKGNAMESUFFIX}
+	${MV} ${STAGEDIR}${PREFIX}/bin/blender-thumbnailer.py \
+		${STAGEDIR}${PREFIX}/bin/blender${PKGNAMESUFFIX}-thumbnailer.py
+	${MV} ${STAGEDIR}${PREFIX}/man/man1/blender.1 \
+		${STAGEDIR}${PREFIX}/man/man1/blender${PKGNAMESUFFIX}.1
+	${MV} ${STAGEDIR}${PREFIX}/share/applications/blender.desktop \
+		${STAGEDIR}${PREFIX}/share/applications/blender${PKGNAMESUFFIX}.desktop
+	${MV} ${STAGEDIR}${PREFIX}/share/icons/hicolor/scalable/apps/blender.svg \
+		${STAGEDIR}${PREFIX}/share/icons/hicolor/scalable/apps/blender${PKGNAMESUFFIX}.svg
+	${MV} ${STAGEDIR}${PREFIX}/share/icons/hicolor/symbolic/apps/blender-symbolic.svg \
+		${STAGEDIR}${PREFIX}/share/icons/hicolor/symbolic/apps/blender${PKGNAMESUFFIX}-symbolic.svg
+
+post-install-DRACO-on:
+	# move draco pylib into site-packages
+	${MKDIR} ${STAGEDIR}/${PYTHON_SITELIBDIR}/
+	${INSTALL_LIB} ${INSTALL_WRKSRC}/lib/libextern_draco.so ${STAGEDIR}/${PYTHON_SITELIBDIR}/
+	${STRIP_CMD} ${STAGEDIR}/${PYTHON_SITELIBDIR}/libextern_draco.so
+	@${RM} -R ${STAGEDIR}/${DATADIR}/${DISTVERSION:R}/python
+
+post-install-MENU-on:
+	@-update-desktop-database -q
+
+.include <bsd.port.mk>
diff --git a/graphics/blender-lts28/Makefile.options b/graphics/blender-lts28/Makefile.options
new file mode 100644
index 000000000000..c868ab2a26aa
--- /dev/null
+++ b/graphics/blender-lts28/Makefile.options
@@ -0,0 +1,127 @@
+OPTIONS_DEFINE=		\
+	ALEMBIC		\
+	ALEMBIC_HDF5	\
+	AVI		\
+	BULLET 		\
+	CAMERATRACK 	\
+	CINEON 		\
+	COLLADA		\
+	COMPOSITOR 	\
+	CYCLES 		\
+	CYCLESEMBR	\
+	CYCLESOSL 	\
+	DDS 		\
+	DRACO		\
+	FFMPEG 		\
+	FFTW3 		\
+	FRAMESERVER	\
+	FREESTYLE	\
+	HDR 		\
+	HEADLESS 	\
+	INPUT_NDOF	\
+	JACK 		\
+	LZO		\
+	LZMA		\
+	MENU 		\
+	MOD_BOOLEAN 	\
+	MOD_FLUID	\
+	MOD_OCEANSIM 	\
+	MOD_REMESH	\
+	MOD_SMOKE	\
+	NLS 		\
+	OPENAL 		\
+	OPENCOLORIO 	\
+	OPENEXR 	\
+	OPENIMAGEIO	\
+	OPENIMAGEDN	\
+	OPENMP 		\
+	OPENSUBDIV	\
+	OPENVDB		\
+	RAYOPTIMIZATION	\
+	SDL		\
+	SNDFILE		\
+	TBB		\
+	TIFF		\
+	XINPUT		\
+	XF86VMODE
+
+OPTIONS_DEFAULT=	\
+	ALEMBIC		\
+	ALEMBIC_HDF5	\
+	AVI		\
+	BULLET		\
+	CINEON		\
+	COLLADA		\
+	COMPOSITOR	\
+	CYCLES		\
+	DDS		\
+	DRACO		\
+	FFMPEG 		\
+	FFTW3		\
+	FRAMESERVER	\
+	FREESTYLE	\
+	HDR		\
+	INPUT_NDOF	\
+	LZO		\
+	LZMA		\
+	MENU		\
+	MOD_BOOLEAN	\
+	MOD_FLUID	\
+	MOD_OCEANSIM	\
+	MOD_REMESH	\
+	MOD_SMOKE	\
+	OPENAL		\
+	OPENCOLORIO	\
+	OPENEXR		\
+	OPENIMAGEIO	\
+	OPENSUBDIV	\
+	RAYOPTIMIZATION	\
+	SDL		\
+	TBB		\
+	TIFF		\
+	XINPUT		\
+	XF86VMODE
+
+# disabled until tbb support
+# OPENVDB
+
+OPTIONS_DEFAULT_amd64=	CAMERATRACK CYCLESEMBR OPENIMAGEDN
+
+ALEMBIC_DESC=		Enable Alembic file support
+ALEMBIC_HDF5_DESC=	Enable Alembic hdf5 file support
+AVI_DESC=		Enable Blender's own AVI file support
+BULLET_DESC=		Bullet physics engine
+CINEON_DESC=		CINEON and DPX graphics format support
+CAMERATRACK_DESC=	Camera tracking support
+COLLADA_DESC=		Enable read/write support for COLLADA files
+COMPOSITOR_DESC=	Use the tile-based nodal compositor
+CYCLES_DESC=		Cycles render engine support
+CYCLESEMBR_DESC=	Embree support (amd64 only)
+CYCLESOSL_DESC=		Shading support for the cycles render engine
+DDS_DESC=		DDS graphics format support
+# this is required to support gltf import/export
+DRACO_DESC=		Install draco python module
+FFTW3_DESC=		Use fftw for smoke and audio effects
+FRAMESERVER_DESC=	Image FrameServer support for rendering
+FREESTYLE_DESC=		Enable advanced edges rendering
+HDR_DESC=		Generic high dynamic-range (HDR) support
+HEADLESS_DESC=		Disable user interface (for render-farms)
+INPUT_NDOF_DESC=	Enable NDOF input device support
+LZO_DESC=		Fast compression support
+LZMA_DESC=		Best compression support
+MENU_DESC=		Install desktop menu
+MOD_BOOLEAN_DESC=	Boolean modifier support
+MOD_FLUID_DESC=		Fluid simulation support
+MOD_OCEANSIM_DESC=	Ocean simulation support
+MOD_REMESH_DESC=	Remesh modifier support
+MOD_SMOKE_DESC=		Smoke simulation support
+OPENCOLORIO_DESC=	OpenColorIO-based color management support
+OPENIMAGEIO_DESC=	OpenImageIO image processing support
+OPENIMAGEDN_DESC=	OpenImageDenoise support
+OPENSUBDIV_DESC=	Use the OpenSubDiv library for surface subdivision
+OPENVDB_DESC=		Use openVDB library for volumetric data
+RAYOPTIMIZATION_DESC=	Enable SSE optimizatons for raytracing
+SDL_DESC=		Audio and Joystick support using SDL
+TBB_DESC=		Enable use of Intel's tbb
+XINPUT_DESC=		X11 Xinput (tablet) support
+XF86VMODE_DESC=		X11 video mode switching support
diff --git a/graphics/blender-lts28/Makefile.versions b/graphics/blender-lts28/Makefile.versions
new file mode 100644
index 000000000000..06093b484487
--- /dev/null
+++ b/graphics/blender-lts28/Makefile.versions
@@ -0,0 +1,6 @@
+# $FreeBSD$
+
+# Versions of Blender and its python dependency for use by depending ports, like add-ons
+
+BLENDER_BL_VERSION=	2.83.15
+BLENDER_PY_VERSION=	3.7
diff --git a/graphics/blender-lts28/distinfo b/graphics/blender-lts28/distinfo
new file mode 100644
index 000000000000..6c326a07462e
--- /dev/null
+++ b/graphics/blender-lts28/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1621577075
+SHA256 (blender-2.83.15.tar.xz) = 98362f5c57772cc117a50dc5df2ce68a9fab540534323b099812e5f13fc5c3d9
+SIZE (blender-2.83.15.tar.xz) = 39125740
diff --git a/graphics/blender-lts28/files/blender.in b/graphics/blender-lts28/files/blender.in
new file mode 100644
index 000000000000..a4583ae6e8c9
--- /dev/null
+++ b/graphics/blender-lts28/files/blender.in
@@ -0,0 +1,6 @@
+#!/bin/sh
+
+export BLENDER_SYSTEM_SCRIPTS=%%DATADIR%%/2.83/scripts
+export BLENDER_SYSTEM_DATAFILES=%%DATADIR%%/2.83/datafiles
+
+exec %%PREFIX%%/bin/blender-bin-lts28 "$@"
diff --git a/graphics/blender-lts28/files/patch-CMakeLists.txt b/graphics/blender-lts28/files/patch-CMakeLists.txt
new file mode 100644
index 000000000000..ee48fd245d84
--- /dev/null
+++ b/graphics/blender-lts28/files/patch-CMakeLists.txt
@@ -0,0 +1,14 @@
+--- CMakeLists.txt.orig	2019-07-31 13:12:04 UTC
++++ CMakeLists.txt
+@@ -647,11 +647,6 @@ if(NOT WITH_PYTHON)
+   set(WITH_DRACO OFF)
+ endif()
+ 
+-if(WITH_DRACO AND NOT WITH_PYTHON_INSTALL)
+-  message(STATUS "WITH_DRACO requires WITH_PYTHON_INSTALL to be ON, disabling WITH_DRACO for now")
+-  set(WITH_DRACO OFF)
+-endif()
+-
+ # enable boost for cycles, audaspace or i18n
+ # otherwise if the user disabled
+ if(NOT WITH_BOOST)
diff --git a/graphics/blender-lts28/files/patch-build__files_cmake_Modules_FindEmbree.cmake b/graphics/blender-lts28/files/patch-build__files_cmake_Modules_FindEmbree.cmake
new file mode 100644
index 000000000000..a76937d6bdc3
--- /dev/null
+++ b/graphics/blender-lts28/files/patch-build__files_cmake_Modules_FindEmbree.cmake
@@ -0,0 +1,25 @@
+--- build_files/cmake/Modules/FindEmbree.cmake.orig	2019-08-12 17:21:01 UTC
++++ build_files/cmake/Modules/FindEmbree.cmake
+@@ -48,14 +48,14 @@ FIND_PATH(EMBREE_INCLUDE_DIR
+ 
+ SET(_embree_FIND_COMPONENTS
+   embree3
+-  embree_avx
+-  embree_avx2
+-  embree_sse42
+-  lexers
+-  math
+-  simd
+-  sys
+-  tasking
++#  embree_avx
++#  embree_avx2
++#  embree_sse42
++#  lexers
++#  math
++#  simd
++#  sys
++#  tasking
+ )
+ 
+ SET(_embree_LIBRARIES)
diff --git a/graphics/blender-lts28/files/patch-build__files_cmake_Modules_FindOpenEXR.cmake b/graphics/blender-lts28/files/patch-build__files_cmake_Modules_FindOpenEXR.cmake
new file mode 100644
index 000000000000..ea60a8073ad9
--- /dev/null
+++ b/graphics/blender-lts28/files/patch-build__files_cmake_Modules_FindOpenEXR.cmake
@@ -0,0 +1,13 @@
+--- build_files/cmake/Modules/FindOpenEXR.cmake.orig	2020-09-25 06:53:19 UTC
++++ build_files/cmake/Modules/FindOpenEXR.cmake
+@@ -34,9 +34,8 @@ ENDIF()
+ SET(_openexr_libs_ver_init "2.0")
+ 
+ SET(_openexr_FIND_COMPONENTS
+-  Half
+   Iex
+-  IlmImf
++  OpenEXR
+   IlmThread
+   Imath
+ )
diff --git a/graphics/blender-lts28/files/patch-extern_audaspace_bindings_python_PySound.cpp b/graphics/blender-lts28/files/patch-extern_audaspace_bindings_python_PySound.cpp
new file mode 100644
index 000000000000..cd35e1098a1b
--- /dev/null
+++ b/graphics/blender-lts28/files/patch-extern_audaspace_bindings_python_PySound.cpp
@@ -0,0 +1,11 @@
+--- extern/audaspace/bindings/python/PySound.cpp.orig	2020-09-02 11:06:51 UTC
++++ extern/audaspace/bindings/python/PySound.cpp
+@@ -2015,7 +2015,7 @@ AUD_API Sound* checkSound(PyObject* sound)
+ 
+ bool initializeSound()
+ {
+-	import_array();
++	import_array1(false);
+ 
+ 	return PyType_Ready(&SoundType) >= 0;
+ }
diff --git a/graphics/blender-lts28/files/patch-intern_cycles_CMakeLists.txt b/graphics/blender-lts28/files/patch-intern_cycles_CMakeLists.txt
new file mode 100644
index 000000000000..0c94a20879db
--- /dev/null
+++ b/graphics/blender-lts28/files/patch-intern_cycles_CMakeLists.txt
@@ -0,0 +1,14 @@
+--- intern/cycles/CMakeLists.txt.orig	2019-07-31 13:03:30 UTC
++++ intern/cycles/CMakeLists.txt
+@@ -260,9 +260,9 @@ if(WITH_CYCLES_DEBUG)
+   add_definitions(-DWITH_CYCLES_DEBUG)
+ endif()
+ 
+-if(NOT OPENIMAGEIO_PUGIXML_FOUND)
++#if(NOT OPENIMAGEIO_PUGIXML_FOUND)
+   add_definitions(-DWITH_SYSTEM_PUGIXML)
+-endif()
++#endif()
+ 
+ include_directories(
+   SYSTEM
diff --git a/graphics/blender-lts28/files/patch-intern_opensubdiv_CMakeLists.txt b/graphics/blender-lts28/files/patch-intern_opensubdiv_CMakeLists.txt
new file mode 100644
index 000000000000..bf4f9f74c848
--- /dev/null
+++ b/graphics/blender-lts28/files/patch-intern_opensubdiv_CMakeLists.txt
@@ -0,0 +1,11 @@
+--- intern/opensubdiv/CMakeLists.txt.orig	2019-07-24 17:11:39 UTC
++++ intern/opensubdiv/CMakeLists.txt
+@@ -83,7 +83,7 @@ if(WITH_OPENSUBDIV)
+     internal/opensubdiv_util.h
+   )
+ 
+-  OPENSUBDIV_DEFINE_COMPONENT(OPENSUBDIV_HAS_OPENMP)
++#  OPENSUBDIV_DEFINE_COMPONENT(OPENSUBDIV_HAS_OPENMP)
+   # TODO(sergey): OpenCL is not tested and totally unstable atm.
+   # OPENSUBDIV_DEFINE_COMPONENT(OPENSUBDIV_HAS_OPENCL)
+   # TODO(sergey): CUDA stays disabled for util it's ported to drievr API.
diff --git a/graphics/blender-lts28/files/patch-release_scripts_addons_io__scene__gltf2_io_exp_gltf2__io__draco__compression__extension.py b/graphics/blender-lts28/files/patch-release_scripts_addons_io__scene__gltf2_io_exp_gltf2__io__draco__compression__extension.py
new file mode 100644
index 000000000000..c481ef4a91bf
--- /dev/null
+++ b/graphics/blender-lts28/files/patch-release_scripts_addons_io__scene__gltf2_io_exp_gltf2__io__draco__compression__extension.py
@@ -0,0 +1,19 @@
+--- release/scripts/addons/io_scene_gltf2/io/exp/gltf2_io_draco_compression_extension.py.orig	2019-07-31 06:38:16 UTC
++++ release/scripts/addons/io_scene_gltf2/io/exp/gltf2_io_draco_compression_extension.py
+@@ -13,6 +13,7 @@
+ # limitations under the License.
+ 
+ import bpy
++import site
+ import sys
+ from ctypes import *
+ from pathlib import Path
+@@ -35,7 +36,7 @@ def dll_path() -> Path:
+         'darwin': blender_root.parent/'Resources'/python_lib/'python3.7'/'site-packages'/'lib{}.dylib'.format(lib_name)
+     }
+ 
+-    path = paths.get(sys.platform)
++    path = Path('{}/lib{}.so'.format(site.getsitepackages()[0], lib_name))
+     return path if path is not None else ''
+ 
+ 
diff --git a/graphics/blender-lts28/files/patch-source_blender_imbuf_intern_openexr_openexr__api.cpp b/graphics/blender-lts28/files/patch-source_blender_imbuf_intern_openexr_openexr__api.cpp
new file mode 100644
index 000000000000..6d744f7258d8
--- /dev/null
+++ b/graphics/blender-lts28/files/patch-source_blender_imbuf_intern_openexr_openexr__api.cpp
@@ -0,0 +1,18 @@
+--- source/blender/imbuf/intern/openexr/openexr_api.cpp.orig	2020-11-25 08:31:32 UTC
++++ source/blender/imbuf/intern/openexr/openexr_api.cpp
+@@ -38,6 +38,7 @@
+ #include <ImfChannelList.h>
+ #include <ImfCompression.h>
+ #include <ImfCompressionAttribute.h>
++#include <ImfFrameBuffer.h>
+ #include <ImfIO.h>
+ #include <ImfInputFile.h>
+ #include <ImfOutputFile.h>
+@@ -94,6 +95,7 @@ _CRTIMP void __cdecl _invalid_parameter_noinfo(void)
+ 
+ using namespace Imf;
+ using namespace Imath;
++typedef uint64_t Int64;
+ 
+ extern "C" {
+ /* prototype */
diff --git a/graphics/blender-lts28/files/patch-source_blender_io_alembic_intern_abc__writer__transform.cc b/graphics/blender-lts28/files/patch-source_blender_io_alembic_intern_abc__writer__transform.cc
new file mode 100644
index 000000000000..98ab215006c4
--- /dev/null
+++ b/graphics/blender-lts28/files/patch-source_blender_io_alembic_intern_abc__writer__transform.cc
@@ -0,0 +1,11 @@
+--- source/blender/io/alembic/intern/abc_writer_transform.cc.orig	2021-05-17 18:04:27 UTC
++++ source/blender/io/alembic/intern/abc_writer_transform.cc
+@@ -21,7 +21,7 @@
+ #include "abc_writer_transform.h"
+ #include "abc_util.h"
+ 
+-#include <OpenEXR/ImathBoxAlgo.h>
++#include <Imath/ImathBoxAlgo.h>
+ 
+ extern "C" {
+ #include "DNA_object_types.h"
diff --git a/graphics/blender-lts28/files/tmp-patch-extern_audaspace_bindings_python_PySound.cpp b/graphics/blender-lts28/files/tmp-patch-extern_audaspace_bindings_python_PySound.cpp
new file mode 100644
index 000000000000..cd35e1098a1b
--- /dev/null
+++ b/graphics/blender-lts28/files/tmp-patch-extern_audaspace_bindings_python_PySound.cpp
@@ -0,0 +1,11 @@
+--- extern/audaspace/bindings/python/PySound.cpp.orig	2020-09-02 11:06:51 UTC
++++ extern/audaspace/bindings/python/PySound.cpp
+@@ -2015,7 +2015,7 @@ AUD_API Sound* checkSound(PyObject* sound)
+ 
+ bool initializeSound()
+ {
+-	import_array();
++	import_array1(false);
+ 
+ 	return PyType_Ready(&SoundType) >= 0;
+ }
diff --git a/graphics/blender-lts28/pkg-descr b/graphics/blender-lts28/pkg-descr
new file mode 100644
index 000000000000..8aa06af1bf52
--- /dev/null
+++ b/graphics/blender-lts28/pkg-descr
@@ -0,0 +1,6 @@
+Blender is a free and fully functional 3D
+modeling/rendering/animation/gaming package.
+
+The blender LTS releases provide two years official support.
+
+WWW: https://www.blender.org
diff --git a/graphics/blender-lts28/pkg-plist b/graphics/blender-lts28/pkg-plist
new file mode 100644
index 000000000000..0a1c476fee51
--- /dev/null
+++ b/graphics/blender-lts28/pkg-plist
@@ -0,0 +1,2228 @@
+bin/blender%%SUFFIX%%
+bin/blender-bin%%SUFFIX%%
+bin/blender%%SUFFIX%%-thumbnailer.py
+%%DRACO%%%%PYTHON_SITELIBDIR%%/libextern_draco.so
+man/man1/blender%%SUFFIX%%.1.gz
+share/applications/blender%%SUFFIX%%.desktop
+%%OPENCOLORIO%%%%DATADIR%%/%%VER%%/datafiles/colormanagement/config.ocio
+%%OPENCOLORIO%%%%DATADIR%%/%%VER%%/datafiles/colormanagement/filmic/filmic_desat65cube.spi3d
+%%OPENCOLORIO%%%%DATADIR%%/%%VER%%/datafiles/colormanagement/filmic/filmic_false_color.spi3d
+%%OPENCOLORIO%%%%DATADIR%%/%%VER%%/datafiles/colormanagement/filmic/filmic_to_0-35_1-30.spi1d
+%%OPENCOLORIO%%%%DATADIR%%/%%VER%%/datafiles/colormanagement/filmic/filmic_to_0-48_1-09.spi1d
+%%OPENCOLORIO%%%%DATADIR%%/%%VER%%/datafiles/colormanagement/filmic/filmic_to_0-60_1-04.spi1d
+%%OPENCOLORIO%%%%DATADIR%%/%%VER%%/datafiles/colormanagement/filmic/filmic_to_0-70_1-03.spi1d
+%%OPENCOLORIO%%%%DATADIR%%/%%VER%%/datafiles/colormanagement/filmic/filmic_to_0-85_1-011.spi1d
+%%OPENCOLORIO%%%%DATADIR%%/%%VER%%/datafiles/colormanagement/filmic/filmic_to_0.99_1-0075.spi1d
+%%OPENCOLORIO%%%%DATADIR%%/%%VER%%/datafiles/colormanagement/filmic/filmic_to_1.20_1-00.spi1d
+%%OPENCOLORIO%%%%DATADIR%%/%%VER%%/datafiles/colormanagement/luts/aces_to_xyz.spimtx
+%%OPENCOLORIO%%%%DATADIR%%/%%VER%%/datafiles/colormanagement/luts/dci_xyz.spi1d
+%%OPENCOLORIO%%%%DATADIR%%/%%VER%%/datafiles/colormanagement/luts/lg10.spi1d
+%%OPENCOLORIO%%%%DATADIR%%/%%VER%%/datafiles/colormanagement/luts/rec709.spi1d
+%%OPENCOLORIO%%%%DATADIR%%/%%VER%%/datafiles/colormanagement/luts/rec709_to_aces.spimtx
+%%OPENCOLORIO%%%%DATADIR%%/%%VER%%/datafiles/colormanagement/luts/srgb.spi1d
+%%OPENCOLORIO%%%%DATADIR%%/%%VER%%/datafiles/colormanagement/luts/srgb_inv.spi1d
+%%OPENCOLORIO%%%%DATADIR%%/%%VER%%/datafiles/colormanagement/luts/srgb_to_xyz.spimtx
+%%OPENCOLORIO%%%%DATADIR%%/%%VER%%/datafiles/colormanagement/luts/vd16.spi1d
+%%NLS%%%%DATADIR%%/%%VER%%/datafiles/fonts/bmonofont-i18n.ttf
+%%NLS%%%%DATADIR%%/%%VER%%/datafiles/fonts/droidsans.ttf
+%%DATADIR%%/%%VER%%/datafiles/icons/brush.gpencil_draw.draw.dat
+%%DATADIR%%/%%VER%%/datafiles/icons/brush.gpencil_draw.erase.dat
+%%DATADIR%%/%%VER%%/datafiles/icons/brush.gpencil_draw.fill.dat
+%%DATADIR%%/%%VER%%/datafiles/icons/brush.gpencil_draw.tint.dat
+%%DATADIR%%/%%VER%%/datafiles/icons/brush.paint_texture.airbrush.dat
+%%DATADIR%%/%%VER%%/datafiles/icons/brush.paint_texture.clone.dat
+%%DATADIR%%/%%VER%%/datafiles/icons/brush.paint_texture.draw.dat
+%%DATADIR%%/%%VER%%/datafiles/icons/brush.paint_texture.fill.dat
+%%DATADIR%%/%%VER%%/datafiles/icons/brush.paint_texture.mask.dat
+%%DATADIR%%/%%VER%%/datafiles/icons/brush.paint_texture.masklort.dat
+%%DATADIR%%/%%VER%%/datafiles/icons/brush.paint_texture.multiply.dat
+%%DATADIR%%/%%VER%%/datafiles/icons/brush.paint_texture.smear.dat
+%%DATADIR%%/%%VER%%/datafiles/icons/brush.paint_texture.soften.dat
+%%DATADIR%%/%%VER%%/datafiles/icons/brush.paint_vertex.alpha.dat
+%%DATADIR%%/%%VER%%/datafiles/icons/brush.paint_vertex.average.dat
+%%DATADIR%%/%%VER%%/datafiles/icons/brush.paint_vertex.blur.dat
+%%DATADIR%%/%%VER%%/datafiles/icons/brush.paint_vertex.draw.dat
+%%DATADIR%%/%%VER%%/datafiles/icons/brush.paint_vertex.replace.dat
+%%DATADIR%%/%%VER%%/datafiles/icons/brush.paint_vertex.smear.dat
+%%DATADIR%%/%%VER%%/datafiles/icons/brush.paint_weight.average.dat
+%%DATADIR%%/%%VER%%/datafiles/icons/brush.paint_weight.blur.dat
+%%DATADIR%%/%%VER%%/datafiles/icons/brush.paint_weight.draw.dat
+%%DATADIR%%/%%VER%%/datafiles/icons/brush.paint_weight.mix.dat
+%%DATADIR%%/%%VER%%/datafiles/icons/brush.paint_weight.smear.dat
+%%DATADIR%%/%%VER%%/datafiles/icons/brush.particle.add.dat
+%%DATADIR%%/%%VER%%/datafiles/icons/brush.particle.comb.dat
+%%DATADIR%%/%%VER%%/datafiles/icons/brush.particle.cut.dat
+%%DATADIR%%/%%VER%%/datafiles/icons/brush.particle.length.dat
+%%DATADIR%%/%%VER%%/datafiles/icons/brush.particle.puff.dat
+%%DATADIR%%/%%VER%%/datafiles/icons/brush.particle.smooth.dat
+%%DATADIR%%/%%VER%%/datafiles/icons/brush.particle.weight.dat
+%%DATADIR%%/%%VER%%/datafiles/icons/brush.sculpt.blob.dat
+%%DATADIR%%/%%VER%%/datafiles/icons/brush.sculpt.clay.dat
+%%DATADIR%%/%%VER%%/datafiles/icons/brush.sculpt.clay_strips.dat
+%%DATADIR%%/%%VER%%/datafiles/icons/brush.sculpt.clay_thumb.dat
+%%DATADIR%%/%%VER%%/datafiles/icons/brush.sculpt.cloth.dat
+%%DATADIR%%/%%VER%%/datafiles/icons/brush.sculpt.crease.dat
+%%DATADIR%%/%%VER%%/datafiles/icons/brush.sculpt.draw.dat
+%%DATADIR%%/%%VER%%/datafiles/icons/brush.sculpt.draw_face_sets.dat
+%%DATADIR%%/%%VER%%/datafiles/icons/brush.sculpt.draw_sharp.dat
+%%DATADIR%%/%%VER%%/datafiles/icons/brush.sculpt.elastic_deform.dat
+%%DATADIR%%/%%VER%%/datafiles/icons/brush.sculpt.fill.dat
+%%DATADIR%%/%%VER%%/datafiles/icons/brush.sculpt.flatten.dat
+%%DATADIR%%/%%VER%%/datafiles/icons/brush.sculpt.grab.dat
+%%DATADIR%%/%%VER%%/datafiles/icons/brush.sculpt.inflate.dat
+%%DATADIR%%/%%VER%%/datafiles/icons/brush.sculpt.layer.dat
+%%DATADIR%%/%%VER%%/datafiles/icons/brush.sculpt.mask.dat
+%%DATADIR%%/%%VER%%/datafiles/icons/brush.sculpt.multiplane_scrape.dat
+%%DATADIR%%/%%VER%%/datafiles/icons/brush.sculpt.nudge.dat
+%%DATADIR%%/%%VER%%/datafiles/icons/brush.sculpt.pinch.dat
+%%DATADIR%%/%%VER%%/datafiles/icons/brush.sculpt.pose.dat
+%%DATADIR%%/%%VER%%/datafiles/icons/brush.sculpt.rotate.dat
+%%DATADIR%%/%%VER%%/datafiles/icons/brush.sculpt.scrape.dat
+%%DATADIR%%/%%VER%%/datafiles/icons/brush.sculpt.simplify.dat
+%%DATADIR%%/%%VER%%/datafiles/icons/brush.sculpt.smooth.dat
+%%DATADIR%%/%%VER%%/datafiles/icons/brush.sculpt.snake_hook.dat
+%%DATADIR%%/%%VER%%/datafiles/icons/brush.sculpt.thumb.dat
+%%DATADIR%%/%%VER%%/datafiles/icons/brush.sculpt.topology.dat
+%%DATADIR%%/%%VER%%/datafiles/icons/brush.uv_sculpt.grab.dat
+%%DATADIR%%/%%VER%%/datafiles/icons/brush.uv_sculpt.pinch.dat
+%%DATADIR%%/%%VER%%/datafiles/icons/brush.uv_sculpt.relax.dat
+%%DATADIR%%/%%VER%%/datafiles/icons/none.dat
+%%DATADIR%%/%%VER%%/datafiles/icons/ops.armature.bone.roll.dat
+%%DATADIR%%/%%VER%%/datafiles/icons/ops.armature.extrude_cursor.dat
+%%DATADIR%%/%%VER%%/datafiles/icons/ops.armature.extrude_move.dat
+%%DATADIR%%/%%VER%%/datafiles/icons/ops.curve.draw.dat
+%%DATADIR%%/%%VER%%/datafiles/icons/ops.curve.extrude_cursor.dat
+%%DATADIR%%/%%VER%%/datafiles/icons/ops.curve.extrude_move.dat
+%%DATADIR%%/%%VER%%/datafiles/icons/ops.curve.radius.dat
+%%DATADIR%%/%%VER%%/datafiles/icons/ops.curve.vertex_random.dat
+%%DATADIR%%/%%VER%%/datafiles/icons/ops.generic.cursor.dat
+%%DATADIR%%/%%VER%%/datafiles/icons/ops.generic.select.dat
+%%DATADIR%%/%%VER%%/datafiles/icons/ops.generic.select_box.dat
+%%DATADIR%%/%%VER%%/datafiles/icons/ops.generic.select_circle.dat
+%%DATADIR%%/%%VER%%/datafiles/icons/ops.generic.select_lasso.dat
+%%DATADIR%%/%%VER%%/datafiles/icons/ops.gpencil.draw.dat
+%%DATADIR%%/%%VER%%/datafiles/icons/ops.gpencil.draw.eraser.dat
+%%DATADIR%%/%%VER%%/datafiles/icons/ops.gpencil.draw.line.dat
+%%DATADIR%%/%%VER%%/datafiles/icons/ops.gpencil.draw.poly.dat
+%%DATADIR%%/%%VER%%/datafiles/icons/ops.gpencil.edit_bend.dat
+%%DATADIR%%/%%VER%%/datafiles/icons/ops.gpencil.edit_mirror.dat
+%%DATADIR%%/%%VER%%/datafiles/icons/ops.gpencil.edit_shear.dat
+%%DATADIR%%/%%VER%%/datafiles/icons/ops.gpencil.edit_to_sphere.dat
+%%DATADIR%%/%%VER%%/datafiles/icons/ops.gpencil.extrude_move.dat
+%%DATADIR%%/%%VER%%/datafiles/icons/ops.gpencil.primitive_arc.dat
+%%DATADIR%%/%%VER%%/datafiles/icons/ops.gpencil.primitive_box.dat
+%%DATADIR%%/%%VER%%/datafiles/icons/ops.gpencil.primitive_circle.dat
+%%DATADIR%%/%%VER%%/datafiles/icons/ops.gpencil.primitive_curve.dat
+%%DATADIR%%/%%VER%%/datafiles/icons/ops.gpencil.primitive_line.dat
+%%DATADIR%%/%%VER%%/datafiles/icons/ops.gpencil.primitive_polyline.dat
+%%DATADIR%%/%%VER%%/datafiles/icons/ops.gpencil.radius.dat
+%%DATADIR%%/%%VER%%/datafiles/icons/ops.gpencil.sculpt_clone.dat
+%%DATADIR%%/%%VER%%/datafiles/icons/ops.gpencil.sculpt_grab.dat
+%%DATADIR%%/%%VER%%/datafiles/icons/ops.gpencil.sculpt_pinch.dat
+%%DATADIR%%/%%VER%%/datafiles/icons/ops.gpencil.sculpt_push.dat
+%%DATADIR%%/%%VER%%/datafiles/icons/ops.gpencil.sculpt_randomize.dat
+%%DATADIR%%/%%VER%%/datafiles/icons/ops.gpencil.sculpt_smooth.dat
+%%DATADIR%%/%%VER%%/datafiles/icons/ops.gpencil.sculpt_strength.dat
+%%DATADIR%%/%%VER%%/datafiles/icons/ops.gpencil.sculpt_thickness.dat
+%%DATADIR%%/%%VER%%/datafiles/icons/ops.gpencil.sculpt_twist.dat
+%%DATADIR%%/%%VER%%/datafiles/icons/ops.gpencil.sculpt_weight.dat
+%%DATADIR%%/%%VER%%/datafiles/icons/ops.gpencil.stroke_cutter.dat
+%%DATADIR%%/%%VER%%/datafiles/icons/ops.gpencil.transform_fill.dat
+%%DATADIR%%/%%VER%%/datafiles/icons/ops.mesh.bevel.dat
+%%DATADIR%%/%%VER%%/datafiles/icons/ops.mesh.bisect.dat
+%%DATADIR%%/%%VER%%/datafiles/icons/ops.mesh.dupli_extrude_cursor.dat
+%%DATADIR%%/%%VER%%/datafiles/icons/ops.mesh.extrude_faces_move.dat
+%%DATADIR%%/%%VER%%/datafiles/icons/ops.mesh.extrude_region_move.dat
+%%DATADIR%%/%%VER%%/datafiles/icons/ops.mesh.extrude_region_shrink_fatten.dat
+%%DATADIR%%/%%VER%%/datafiles/icons/ops.mesh.inset.dat
+%%DATADIR%%/%%VER%%/datafiles/icons/ops.mesh.knife_tool.dat
+%%DATADIR%%/%%VER%%/datafiles/icons/ops.mesh.loopcut_slide.dat
+%%DATADIR%%/%%VER%%/datafiles/icons/ops.mesh.offset_edge_loops_slide.dat
+%%DATADIR%%/%%VER%%/datafiles/icons/ops.mesh.polybuild_hover.dat
+%%DATADIR%%/%%VER%%/datafiles/icons/ops.mesh.primitive_cone_add_gizmo.dat
+%%DATADIR%%/%%VER%%/datafiles/icons/ops.mesh.primitive_cube_add_gizmo.dat
+%%DATADIR%%/%%VER%%/datafiles/icons/ops.mesh.primitive_cylinder_add_gizmo.dat
+%%DATADIR%%/%%VER%%/datafiles/icons/ops.mesh.primitive_grid_add_gizmo.dat
+%%DATADIR%%/%%VER%%/datafiles/icons/ops.mesh.primitive_sphere_add_gizmo.dat
+%%DATADIR%%/%%VER%%/datafiles/icons/ops.mesh.primitive_torus_add_gizmo.dat
+%%DATADIR%%/%%VER%%/datafiles/icons/ops.mesh.rip.dat
+%%DATADIR%%/%%VER%%/datafiles/icons/ops.mesh.rip_edge.dat
+%%DATADIR%%/%%VER%%/datafiles/icons/ops.mesh.spin.dat
+%%DATADIR%%/%%VER%%/datafiles/icons/ops.mesh.spin.duplicate.dat
+%%DATADIR%%/%%VER%%/datafiles/icons/ops.mesh.vertices_smooth.dat
+%%DATADIR%%/%%VER%%/datafiles/icons/ops.node.links_cut.dat
+%%DATADIR%%/%%VER%%/datafiles/icons/ops.paint.eyedropper_add.dat
+%%DATADIR%%/%%VER%%/datafiles/icons/ops.paint.vertex_color_fill.dat
+%%DATADIR%%/%%VER%%/datafiles/icons/ops.paint.weight_fill.dat
+%%DATADIR%%/%%VER%%/datafiles/icons/ops.paint.weight_gradient.dat
+%%DATADIR%%/%%VER%%/datafiles/icons/ops.paint.weight_sample.dat
+%%DATADIR%%/%%VER%%/datafiles/icons/ops.paint.weight_sample_group.dat
+%%DATADIR%%/%%VER%%/datafiles/icons/ops.pose.breakdowner.dat
+%%DATADIR%%/%%VER%%/datafiles/icons/ops.pose.push.dat
+%%DATADIR%%/%%VER%%/datafiles/icons/ops.pose.relax.dat
+%%DATADIR%%/%%VER%%/datafiles/icons/ops.sculpt.border_hide.dat
+%%DATADIR%%/%%VER%%/datafiles/icons/ops.sculpt.border_mask.dat
+%%DATADIR%%/%%VER%%/datafiles/icons/ops.sculpt.lasso_mask.dat
+%%DATADIR%%/%%VER%%/datafiles/icons/ops.sculpt.mesh_filter.dat
+%%DATADIR%%/%%VER%%/datafiles/icons/ops.sequencer.blade.dat
+%%DATADIR%%/%%VER%%/datafiles/icons/ops.transform.bone_envelope.dat
+%%DATADIR%%/%%VER%%/datafiles/icons/ops.transform.bone_size.dat
+%%DATADIR%%/%%VER%%/datafiles/icons/ops.transform.edge_slide.dat
+%%DATADIR%%/%%VER%%/datafiles/icons/ops.transform.push_pull.dat
+%%DATADIR%%/%%VER%%/datafiles/icons/ops.transform.resize.cage.dat
+%%DATADIR%%/%%VER%%/datafiles/icons/ops.transform.resize.dat
+%%DATADIR%%/%%VER%%/datafiles/icons/ops.transform.rotate.dat
+%%DATADIR%%/%%VER%%/datafiles/icons/ops.transform.shear.dat
+%%DATADIR%%/%%VER%%/datafiles/icons/ops.transform.shrink_fatten.dat
+%%DATADIR%%/%%VER%%/datafiles/icons/ops.transform.tilt.dat
+%%DATADIR%%/%%VER%%/datafiles/icons/ops.transform.tosphere.dat
+%%DATADIR%%/%%VER%%/datafiles/icons/ops.transform.transform.dat
+%%DATADIR%%/%%VER%%/datafiles/icons/ops.transform.translate.dat
+%%DATADIR%%/%%VER%%/datafiles/icons/ops.transform.vert_slide.dat
+%%DATADIR%%/%%VER%%/datafiles/icons/ops.transform.vertex_random.dat
+%%DATADIR%%/%%VER%%/datafiles/icons/ops.view3d.ruler.dat
+%%NLS%%%%DATADIR%%/%%VER%%/datafiles/locale/ab/LC_MESSAGES/blender.mo
+%%NLS%%%%DATADIR%%/%%VER%%/datafiles/locale/ar/LC_MESSAGES/blender.mo
+%%NLS%%%%DATADIR%%/%%VER%%/datafiles/locale/ca/LC_MESSAGES/blender.mo
+%%NLS%%%%DATADIR%%/%%VER%%/datafiles/locale/cs/LC_MESSAGES/blender.mo
+%%NLS%%%%DATADIR%%/%%VER%%/datafiles/locale/de/LC_MESSAGES/blender.mo
+%%NLS%%%%DATADIR%%/%%VER%%/datafiles/locale/eo/LC_MESSAGES/blender.mo
+%%NLS%%%%DATADIR%%/%%VER%%/datafiles/locale/es/LC_MESSAGES/blender.mo
+%%NLS%%%%DATADIR%%/%%VER%%/datafiles/locale/es_ES/LC_MESSAGES/blender.mo
+%%NLS%%%%DATADIR%%/%%VER%%/datafiles/locale/eu/LC_MESSAGES/blender.mo
+%%NLS%%%%DATADIR%%/%%VER%%/datafiles/locale/fa/LC_MESSAGES/blender.mo
+%%NLS%%%%DATADIR%%/%%VER%%/datafiles/locale/fr/LC_MESSAGES/blender.mo
+%%NLS%%%%DATADIR%%/%%VER%%/datafiles/locale/ha/LC_MESSAGES/blender.mo
+%%NLS%%%%DATADIR%%/%%VER%%/datafiles/locale/he/LC_MESSAGES/blender.mo
+%%NLS%%%%DATADIR%%/%%VER%%/datafiles/locale/hi/LC_MESSAGES/blender.mo
+%%NLS%%%%DATADIR%%/%%VER%%/datafiles/locale/hr/LC_MESSAGES/blender.mo
+%%NLS%%%%DATADIR%%/%%VER%%/datafiles/locale/hu/LC_MESSAGES/blender.mo
+%%NLS%%%%DATADIR%%/%%VER%%/datafiles/locale/id/LC_MESSAGES/blender.mo
+%%NLS%%%%DATADIR%%/%%VER%%/datafiles/locale/it/LC_MESSAGES/blender.mo
+%%NLS%%%%DATADIR%%/%%VER%%/datafiles/locale/ja/LC_MESSAGES/blender.mo
+%%NLS%%%%DATADIR%%/%%VER%%/datafiles/locale/ko/LC_MESSAGES/blender.mo
+%%NLS%%%%DATADIR%%/%%VER%%/datafiles/locale/ky/LC_MESSAGES/blender.mo
+%%NLS%%%%DATADIR%%/%%VER%%/datafiles/locale/languages
+%%NLS%%%%DATADIR%%/%%VER%%/datafiles/locale/nl/LC_MESSAGES/blender.mo
+%%NLS%%%%DATADIR%%/%%VER%%/datafiles/locale/pl/LC_MESSAGES/blender.mo
+%%NLS%%%%DATADIR%%/%%VER%%/datafiles/locale/pt/LC_MESSAGES/blender.mo
+%%NLS%%%%DATADIR%%/%%VER%%/datafiles/locale/pt_BR/LC_MESSAGES/blender.mo
+%%NLS%%%%DATADIR%%/%%VER%%/datafiles/locale/ru/LC_MESSAGES/blender.mo
+%%NLS%%%%DATADIR%%/%%VER%%/datafiles/locale/sk/LC_MESSAGES/blender.mo
+%%NLS%%%%DATADIR%%/%%VER%%/datafiles/locale/sr/LC_MESSAGES/blender.mo
+%%NLS%%%%DATADIR%%/%%VER%%/datafiles/locale/sr at latin/LC_MESSAGES/blender.mo
+%%NLS%%%%DATADIR%%/%%VER%%/datafiles/locale/sv/LC_MESSAGES/blender.mo
+%%NLS%%%%DATADIR%%/%%VER%%/datafiles/locale/th/LC_MESSAGES/blender.mo
+%%NLS%%%%DATADIR%%/%%VER%%/datafiles/locale/tr/LC_MESSAGES/blender.mo
+%%NLS%%%%DATADIR%%/%%VER%%/datafiles/locale/uk/LC_MESSAGES/blender.mo
+%%NLS%%%%DATADIR%%/%%VER%%/datafiles/locale/vi/LC_MESSAGES/blender.mo
+%%NLS%%%%DATADIR%%/%%VER%%/datafiles/locale/zh_CN/LC_MESSAGES/blender.mo
+%%NLS%%%%DATADIR%%/%%VER%%/datafiles/locale/zh_TW/LC_MESSAGES/blender.mo
+%%DATADIR%%/%%VER%%/datafiles/studiolights/matcap/basic_1.exr
+%%DATADIR%%/%%VER%%/datafiles/studiolights/matcap/basic_2.exr
+%%DATADIR%%/%%VER%%/datafiles/studiolights/matcap/basic_dark.exr
+%%DATADIR%%/%%VER%%/datafiles/studiolights/matcap/basic_side.exr
+%%DATADIR%%/%%VER%%/datafiles/studiolights/matcap/ceramic_dark.exr
+%%DATADIR%%/%%VER%%/datafiles/studiolights/matcap/ceramic_lightbulb.exr
+%%DATADIR%%/%%VER%%/datafiles/studiolights/matcap/check_normal+y.exr
+%%DATADIR%%/%%VER%%/datafiles/studiolights/matcap/check_rim_dark.exr
+%%DATADIR%%/%%VER%%/datafiles/studiolights/matcap/check_rim_light.exr
+%%DATADIR%%/%%VER%%/datafiles/studiolights/matcap/clay_brown.exr
+%%DATADIR%%/%%VER%%/datafiles/studiolights/matcap/clay_muddy.exr
+%%DATADIR%%/%%VER%%/datafiles/studiolights/matcap/clay_studio.exr
+%%DATADIR%%/%%VER%%/datafiles/studiolights/matcap/jade.exr
+%%DATADIR%%/%%VER%%/datafiles/studiolights/matcap/license.txt
+%%DATADIR%%/%%VER%%/datafiles/studiolights/matcap/metal_anisotropic.exr
+%%DATADIR%%/%%VER%%/datafiles/studiolights/matcap/metal_carpaint.exr
+%%DATADIR%%/%%VER%%/datafiles/studiolights/matcap/metal_lead.exr
+%%DATADIR%%/%%VER%%/datafiles/studiolights/matcap/metal_shiny.exr
+%%DATADIR%%/%%VER%%/datafiles/studiolights/matcap/pearl.exr
+%%DATADIR%%/%%VER%%/datafiles/studiolights/matcap/reflection_check_horizontal.exr
+%%DATADIR%%/%%VER%%/datafiles/studiolights/matcap/reflection_check_vertical.exr
+%%DATADIR%%/%%VER%%/datafiles/studiolights/matcap/resin.exr
+%%DATADIR%%/%%VER%%/datafiles/studiolights/matcap/skin.exr
+%%DATADIR%%/%%VER%%/datafiles/studiolights/matcap/toon.exr
+%%DATADIR%%/%%VER%%/datafiles/studiolights/studio/basic.sl
+%%DATADIR%%/%%VER%%/datafiles/studiolights/studio/outdoor.sl
+%%DATADIR%%/%%VER%%/datafiles/studiolights/studio/rim.sl
+%%DATADIR%%/%%VER%%/datafiles/studiolights/studio/studio.sl
+%%DATADIR%%/%%VER%%/datafiles/studiolights/world/city.exr
+%%DATADIR%%/%%VER%%/datafiles/studiolights/world/courtyard.exr
+%%DATADIR%%/%%VER%%/datafiles/studiolights/world/forest.exr
+%%DATADIR%%/%%VER%%/datafiles/studiolights/world/interior.exr
+%%DATADIR%%/%%VER%%/datafiles/studiolights/world/license.txt
+%%DATADIR%%/%%VER%%/datafiles/studiolights/world/night.exr
+%%DATADIR%%/%%VER%%/datafiles/studiolights/world/studio.exr
+%%DATADIR%%/%%VER%%/datafiles/studiolights/world/sunrise.exr
+%%DATADIR%%/%%VER%%/datafiles/studiolights/world/sunset.exr
+%%DATADIR%%/%%VER%%/scripts/addons/add_camera_rigs/__init__.py
+%%DATADIR%%/%%VER%%/scripts/addons/add_camera_rigs/build_rigs.py
+%%DATADIR%%/%%VER%%/scripts/addons/add_camera_rigs/composition_guides_menu.py
+%%DATADIR%%/%%VER%%/scripts/addons/add_camera_rigs/create_widgets.py
+%%DATADIR%%/%%VER%%/scripts/addons/add_camera_rigs/operators.py
+%%DATADIR%%/%%VER%%/scripts/addons/add_camera_rigs/prefs.py
+%%DATADIR%%/%%VER%%/scripts/addons/add_camera_rigs/ui_panels.py
+%%DATADIR%%/%%VER%%/scripts/addons/add_curve_extra_objects/__init__.py
+%%DATADIR%%/%%VER%%/scripts/addons/add_curve_extra_objects/add_curve_aceous_galore.py
+%%DATADIR%%/%%VER%%/scripts/addons/add_curve_extra_objects/add_curve_braid.py
+%%DATADIR%%/%%VER%%/scripts/addons/add_curve_extra_objects/add_curve_celtic_links.py
+%%DATADIR%%/%%VER%%/scripts/addons/add_curve_extra_objects/add_curve_curly.py
+%%DATADIR%%/%%VER%%/scripts/addons/add_curve_extra_objects/add_curve_simple.py
+%%DATADIR%%/%%VER%%/scripts/addons/add_curve_extra_objects/add_curve_spirals.py
+%%DATADIR%%/%%VER%%/scripts/addons/add_curve_extra_objects/add_curve_spirofit_bouncespline.py
+%%DATADIR%%/%%VER%%/scripts/addons/add_curve_extra_objects/add_curve_torus_knots.py
+%%DATADIR%%/%%VER%%/scripts/addons/add_curve_extra_objects/add_surface_plane_cone.py
+%%DATADIR%%/%%VER%%/scripts/addons/add_curve_extra_objects/beveltaper_curve.py
+%%DATADIR%%/%%VER%%/scripts/addons/add_curve_ivygen.py
+%%DATADIR%%/%%VER%%/scripts/addons/add_curve_sapling/__init__.py
+%%DATADIR%%/%%VER%%/scripts/addons/add_curve_sapling/presets/callistemon.py
+%%DATADIR%%/%%VER%%/scripts/addons/add_curve_sapling/presets/douglas_fir.py
+%%DATADIR%%/%%VER%%/scripts/addons/add_curve_sapling/presets/japanese_maple.py
+%%DATADIR%%/%%VER%%/scripts/addons/add_curve_sapling/presets/quaking_aspen.py
+%%DATADIR%%/%%VER%%/scripts/addons/add_curve_sapling/presets/small_maple.py
+%%DATADIR%%/%%VER%%/scripts/addons/add_curve_sapling/presets/small_pine.py
+%%DATADIR%%/%%VER%%/scripts/addons/add_curve_sapling/presets/weeping_willow.py
+%%DATADIR%%/%%VER%%/scripts/addons/add_curve_sapling/presets/white_birch.py
+%%DATADIR%%/%%VER%%/scripts/addons/add_curve_sapling/presets/willow.py
+%%DATADIR%%/%%VER%%/scripts/addons/add_curve_sapling/utils.py
+%%DATADIR%%/%%VER%%/scripts/addons/add_mesh_BoltFactory/Boltfactory.py
+%%DATADIR%%/%%VER%%/scripts/addons/add_mesh_BoltFactory/__init__.py
+%%DATADIR%%/%%VER%%/scripts/addons/add_mesh_BoltFactory/createMesh.py
+%%DATADIR%%/%%VER%%/scripts/addons/add_mesh_discombobulator/__init__.py
+%%DATADIR%%/%%VER%%/scripts/addons/add_mesh_discombobulator/mesh_discombobulator.py
+%%DATADIR%%/%%VER%%/scripts/addons/add_mesh_extra_objects/Blocks.py
+%%DATADIR%%/%%VER%%/scripts/addons/add_mesh_extra_objects/Wallfactory.py
+%%DATADIR%%/%%VER%%/scripts/addons/add_mesh_extra_objects/__init__.py
+%%DATADIR%%/%%VER%%/scripts/addons/add_mesh_extra_objects/add_empty_as_parent.py
+%%DATADIR%%/%%VER%%/scripts/addons/add_mesh_extra_objects/add_mesh_3d_function_surface.py
+%%DATADIR%%/%%VER%%/scripts/addons/add_mesh_extra_objects/add_mesh_beam_builder.py
+%%DATADIR%%/%%VER%%/scripts/addons/add_mesh_extra_objects/add_mesh_gears.py
+%%DATADIR%%/%%VER%%/scripts/addons/add_mesh_extra_objects/add_mesh_gemstones.py
+%%DATADIR%%/%%VER%%/scripts/addons/add_mesh_extra_objects/add_mesh_honeycomb.py
+%%DATADIR%%/%%VER%%/scripts/addons/add_mesh_extra_objects/add_mesh_menger_sponge.py
+%%DATADIR%%/%%VER%%/scripts/addons/add_mesh_extra_objects/add_mesh_pipe_joint.py
+%%DATADIR%%/%%VER%%/scripts/addons/add_mesh_extra_objects/add_mesh_pyramid.py
+%%DATADIR%%/%%VER%%/scripts/addons/add_mesh_extra_objects/add_mesh_rocks/__init__.py
+%%DATADIR%%/%%VER%%/scripts/addons/add_mesh_extra_objects/add_mesh_rocks/add_mesh_rocks.xml
+%%DATADIR%%/%%VER%%/scripts/addons/add_mesh_extra_objects/add_mesh_rocks/factory.xml
+%%DATADIR%%/%%VER%%/scripts/addons/add_mesh_extra_objects/add_mesh_rocks/randomize_texture.py
+%%DATADIR%%/%%VER%%/scripts/addons/add_mesh_extra_objects/add_mesh_rocks/rockgen.py
+%%DATADIR%%/%%VER%%/scripts/addons/add_mesh_extra_objects/add_mesh_rocks/settings.py
+%%DATADIR%%/%%VER%%/scripts/addons/add_mesh_extra_objects/add_mesh_rocks/utils.py
+%%DATADIR%%/%%VER%%/scripts/addons/add_mesh_extra_objects/add_mesh_round_brilliant.py
+%%DATADIR%%/%%VER%%/scripts/addons/add_mesh_extra_objects/add_mesh_round_cube.py
+%%DATADIR%%/%%VER%%/scripts/addons/add_mesh_extra_objects/add_mesh_solid.py
+%%DATADIR%%/%%VER%%/scripts/addons/add_mesh_extra_objects/add_mesh_star.py
+%%DATADIR%%/%%VER%%/scripts/addons/add_mesh_extra_objects/add_mesh_supertoroid.py
+%%DATADIR%%/%%VER%%/scripts/addons/add_mesh_extra_objects/add_mesh_teapot.py
+%%DATADIR%%/%%VER%%/scripts/addons/add_mesh_extra_objects/add_mesh_torusknot.py
+%%DATADIR%%/%%VER%%/scripts/addons/add_mesh_extra_objects/add_mesh_triangles.py
+%%DATADIR%%/%%VER%%/scripts/addons/add_mesh_extra_objects/add_mesh_twisted_torus.py
+%%DATADIR%%/%%VER%%/scripts/addons/add_mesh_extra_objects/add_mesh_vertex.py
+%%DATADIR%%/%%VER%%/scripts/addons/add_mesh_geodesic_domes/__init__.py
+%%DATADIR%%/%%VER%%/scripts/addons/add_mesh_geodesic_domes/add_shape_geodesic.py
+%%DATADIR%%/%%VER%%/scripts/addons/add_mesh_geodesic_domes/forms_271.py
+%%DATADIR%%/%%VER%%/scripts/addons/add_mesh_geodesic_domes/geodesic_classes_271.py
+%%DATADIR%%/%%VER%%/scripts/addons/add_mesh_geodesic_domes/third_domes_panel_271.py
*** 1902 LINES SKIPPED ***


More information about the dev-commits-ports-main mailing list