From dfbcfa7130a3791dd929c3c5796d7a34313e04c2 Mon Sep 17 00:00:00 2001 From: Peder Bergebakken Sundt Date: Sat, 25 Apr 2026 18:30:48 +0200 Subject: [PATCH] Revert "python313Packages.embreex: drop" This reverts commit 711876c9053984d32c71fd768cc1dde14bc55295. --- .../python-modules/embreex/default.nix | 72 +++++++++++++++++++ .../python-modules/trimesh/default.nix | 5 +- pkgs/top-level/python-aliases.nix | 1 - pkgs/top-level/python-packages.nix | 2 + 4 files changed, 78 insertions(+), 2 deletions(-) create mode 100644 pkgs/development/python-modules/embreex/default.nix diff --git a/pkgs/development/python-modules/embreex/default.nix b/pkgs/development/python-modules/embreex/default.nix new file mode 100644 index 000000000000..38b2904a2cbf --- /dev/null +++ b/pkgs/development/python-modules/embreex/default.nix @@ -0,0 +1,72 @@ +{ + lib, + fetchFromGitHub, + fetchpatch, + buildPythonPackage, + embree2, + cython, + numpy, + setuptools, + pytestCheckHook, +}: + +buildPythonPackage rec { + pname = "embreex"; + version = "2.17.7.post6"; + pyproject = true; + + src = fetchFromGitHub { + owner = "trimesh"; + repo = "embreex"; + tag = version; + hash = "sha256-iLIfhngorSFOdkOvlCAJQXGQrVuRfBSDGzvjXOlQuHk="; + }; + + patches = [ + # https://github.com/trimesh/embreex/pull/7 + (fetchpatch { + name = "fix-use-after-free.patch"; + url = "https://github.com/trimesh/embreex/commit/c6b047285419f8986fae962e2734a01522be7ef7.patch"; + hash = "sha256-s8x2vsqbsIR3aoNUDrYs2vQttuNY8lLJ6TC7H8FMRyQ="; + }) + ]; + + build-system = [ + setuptools + numpy + cython + ]; + + dependencies = [ + numpy + ]; + + buildInputs = [ + embree2 + embree2.tbb + ]; + + pythonImportsCheck = [ + "embreex" + "embreex.mesh_construction" + "embreex.rtcore" + "embreex.rtcore_scene" + "embreex.triangles" + ]; + + preCheck = '' + # conflicts with $out + rm -rf embreex/ + ''; + + nativeCheckInputs = [ pytestCheckHook ]; + + meta = { + description = "Maintained PyEmbree fork, wrapper for Embree v2"; + homepage = "https://github.com/trimesh/embreex"; + changelog = "https://github.com/trimesh/embreex/releases/tag/${src.tag}"; + license = lib.licenses.bsd2; + maintainers = with lib.maintainers; [ pbsds ]; + inherit (embree2.meta) platforms; + }; +} diff --git a/pkgs/development/python-modules/trimesh/default.nix b/pkgs/development/python-modules/trimesh/default.nix index d2e37aa24ae4..3c2cfaed93dd 100644 --- a/pkgs/development/python-modules/trimesh/default.nix +++ b/pkgs/development/python-modules/trimesh/default.nix @@ -23,6 +23,7 @@ scipy, pillow, mapbox-earcut, + embreex, }: buildPythonPackage (finalAttrs: { @@ -59,7 +60,9 @@ buildPythonPackage (finalAttrs: { pillow # vhacdx # not packaged mapbox-earcut - # embreex # not packaged + ] + ++ lib.optionals embreex.meta.available [ + embreex ]; }; diff --git a/pkgs/top-level/python-aliases.nix b/pkgs/top-level/python-aliases.nix index ae8183aec273..82ef4faf2d21 100644 --- a/pkgs/top-level/python-aliases.nix +++ b/pkgs/top-level/python-aliases.nix @@ -192,7 +192,6 @@ mapAliases { elegy = throw "elegy has been removed because it has transitively been marked as broken since 2023."; # Added 2025-10-11 email_validator = throw "'email_validator' has been renamed to/replaced by 'email-validator'"; # Converted to throw 2025-10-29 emailthreads = throw "'emailthreads' has been removed because the upstream repository was archived in 2024"; # Added 2026-04-09 - embreex = throw "embreex has been removed, as it required embree2"; # added 2025-09-14 enocean = throw "'enocean' was removed because Home Assistant switched to 'enocean-async'"; # added 2026-03-31 eris = throw "eris has been removed due to a hostile upstream moving tags and breaking src FODs"; # Added 2025-09-01 et_xmlfile = throw "'et_xmlfile' has been renamed to/replaced by 'et-xmlfile'"; # Converted to throw 2025-10-29 diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index d66783552dc8..c88262bcc6a7 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -4994,6 +4994,8 @@ self: super: with self; { embrace = callPackage ../development/python-modules/embrace { }; + embreex = callPackage ../development/python-modules/embreex { }; + emcee = callPackage ../development/python-modules/emcee { }; emoji = callPackage ../development/python-modules/emoji { };