Hello, Currently, blender fails to export as GLTF2:
07:59:45 | WARNING: Unsupported platform openbsd6, Draco mesh compression is unavailable Python: Traceback (most recent call last): File "/usr/local/share/blender/scripts/addons/io_scene_gltf2/__init__.py", line 116, in __init__ self.is_draco_available = gltf2_io_draco_compression_extension.dll_exists() File "/usr/local/share/blender/scripts/addons/io_scene_gltf2/io/com/gltf2_io_draco_compression_extension.py", line 62, in dll_exists exists = dll_path().exists() File "/usr/local/share/blender/scripts/addons/io_scene_gltf2/io/com/gltf2_io_draco_compression_extension.py", line 54, in dll_path return path / library_name TypeError: unsupported operand type(s) for /: 'NoneType' and 'NoneType' This is because of a couple of lookups table per-OS, so simply adding "openbsd6" fixes it, even if we don't have this draco compression library (AFAICS.) I didn't try to build the package; I only applied the patch in the installed file, and it seems to work fine: I can now export as GLTF2 and do the import in games/godot. The only thing I fear is that a patch like this will be silently broken in some months when we switch to the 7.0. Avoid the sys.platform lookup would also be an option, but it won't be possible to upstream the patch then. What's the best thing to do in cases like this? Thanks, Omar Polo Index: Makefile =================================================================== RCS file: /home/cvs/ports/graphics/blender/Makefile,v retrieving revision 1.103 diff -u -p -r1.103 Makefile --- Makefile 27 Mar 2021 15:15:06 -0000 1.103 +++ Makefile 15 May 2021 07:43:41 -0000 @@ -6,6 +6,7 @@ DPB_PROPERTIES = parallel COMMENT = 3D creation software DISTNAME = blender-2.92.0 +REVISION = 0 CATEGORIES = graphics Index: patches/patch-release_scripts_addons_io_scene_gltf2_io_com_gltf2_io_draco_compression_extension_py =================================================================== RCS file: patches/patch-release_scripts_addons_io_scene_gltf2_io_com_gltf2_io_draco_compression_extension_py diff -N patches/patch-release_scripts_addons_io_scene_gltf2_io_com_gltf2_io_draco_compression_extension_py --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ patches/patch-release_scripts_addons_io_scene_gltf2_io_com_gltf2_io_draco_compression_extension_py 15 May 2021 07:50:31 -0000 @@ -0,0 +1,24 @@ +$OpenBSD$ + +Fix the GLTF2 exporter crash: even if we don't have the draco +compression library, avoid path and library_name being None. + +Index: release/scripts/addons/io_scene_gltf2/io/com/gltf2_io_draco_compression_extension.py +--- release/scripts/addons/io_scene_gltf2/io/com/gltf2_io_draco_compression_extension.py.orig ++++ release/scripts/addons/io_scene_gltf2/io/com/gltf2_io_draco_compression_extension.py +@@ -35,6 +35,7 @@ def dll_path() -> Path: + path = { + 'win32': blender_root / python_lib / 'site-packages', + 'linux': blender_root / python_lib / python_version / 'site-packages', ++ 'openbsd6': blender_root / python_lib / python_version / 'site-packages', + 'darwin': blender_root.parent / 'Resources' / python_lib / python_version / 'site-packages' + }.get(sys.platform) + else: +@@ -43,6 +44,7 @@ def dll_path() -> Path: + library_name = { + 'win32': '{}.dll'.format(lib_name), + 'linux': 'lib{}.so'.format(lib_name), ++ 'openbsd6': 'lib{}.so'.format(lib_name), + 'darwin': 'lib{}.dylib'.format(lib_name) + }.get(sys.platform) +