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-all
mailing list