From 22b2e84417e621dc237283ffd9a49e9fa6051e1a Mon Sep 17 00:00:00 2001 From: Peder Bergebakken Sundt Date: Sun, 20 Apr 2025 16:21:12 +0200 Subject: [PATCH 1/5] embree2: set updateScript --- pkgs/development/libraries/embree/2.x.nix | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/pkgs/development/libraries/embree/2.x.nix b/pkgs/development/libraries/embree/2.x.nix index c3a0adf867e9..e199f67f7859 100644 --- a/pkgs/development/libraries/embree/2.x.nix +++ b/pkgs/development/libraries/embree/2.x.nix @@ -12,16 +12,17 @@ libpng, libpthreadstubs, libX11, + nix-update-script, }: -stdenv.mkDerivation { +stdenv.mkDerivation (finalAttrs: { pname = "embree"; version = "2.17.4"; src = fetchFromGitHub { owner = "embree"; repo = "embree"; - rev = "v2.17.4"; + tag = "v${finalAttrs.version}"; sha256 = "0q3r724r58j4b6cbyy657fsb78z7a2c7d5mwdp7552skynsn2mn9"; }; @@ -41,6 +42,16 @@ stdenv.mkDerivation { libX11 libpthreadstubs ]; + + passthru = { + updateScript = nix-update-script { + extraArgs = [ + "--version-regex" + "v(2.*)" + ]; + }; + }; + meta = with lib; { description = "High performance ray tracing kernels from Intel"; homepage = "https://embree.github.io/"; @@ -48,4 +59,4 @@ stdenv.mkDerivation { license = licenses.asl20; platforms = [ "x86_64-linux" ]; }; -} +}) From f19ed998f6d51a5318e7d3de3ef2c4968dc45ac7 Mon Sep 17 00:00:00 2001 From: Peder Bergebakken Sundt Date: Sun, 20 Apr 2025 16:22:50 +0200 Subject: [PATCH 2/5] embree2: 2.17.4 -> 2.17.7 Diff: https://github.com/embree/embree/compare/refs/tags/v2.17.4...2.17.7 --- pkgs/development/libraries/embree/2.x.nix | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/pkgs/development/libraries/embree/2.x.nix b/pkgs/development/libraries/embree/2.x.nix index e199f67f7859..00f6e3caad84 100644 --- a/pkgs/development/libraries/embree/2.x.nix +++ b/pkgs/development/libraries/embree/2.x.nix @@ -5,25 +5,26 @@ cmake, pkg-config, ispc, - tbb, + tbb_2020_3, glfw, openimageio, libjpeg, libpng, libpthreadstubs, libX11, + python3Packages, nix-update-script, }: stdenv.mkDerivation (finalAttrs: { pname = "embree"; - version = "2.17.4"; + version = "2.17.7"; src = fetchFromGitHub { owner = "embree"; repo = "embree"; tag = "v${finalAttrs.version}"; - sha256 = "0q3r724r58j4b6cbyy657fsb78z7a2c7d5mwdp7552skynsn2mn9"; + hash = "sha256-FD/ITZBJnYy1F+x4jLTVTsGsNKy/mS7OYWP06NoHZqc="; }; cmakeFlags = [ "-DEMBREE_TUTORIALS=OFF" ]; @@ -34,7 +35,8 @@ stdenv.mkDerivation (finalAttrs: { ]; buildInputs = [ ispc - tbb + # tbb_2021_0 is not backward compatible + tbb_2020_3 glfw openimageio libjpeg @@ -50,6 +52,10 @@ stdenv.mkDerivation (finalAttrs: { "v(2.*)" ]; }; + tbb = tbb_2020_3; + tests = { + inherit (python3Packages) embreex; + }; }; meta = with lib; { From 8d33ea263479e9f2c96bc1845d5382f51ddcfbd7 Mon Sep 17 00:00:00 2001 From: Peder Bergebakken Sundt Date: Mon, 21 Apr 2025 19:27:00 +0200 Subject: [PATCH 3/5] embree2: add pbsds to maintainers --- pkgs/development/libraries/embree/2.x.nix | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/pkgs/development/libraries/embree/2.x.nix b/pkgs/development/libraries/embree/2.x.nix index 00f6e3caad84..7e6ea3b65a5f 100644 --- a/pkgs/development/libraries/embree/2.x.nix +++ b/pkgs/development/libraries/embree/2.x.nix @@ -61,7 +61,10 @@ stdenv.mkDerivation (finalAttrs: { meta = with lib; { description = "High performance ray tracing kernels from Intel"; homepage = "https://embree.github.io/"; - maintainers = with maintainers; [ hodapp ]; + maintainers = with maintainers; [ + hodapp + pbsds + ]; license = licenses.asl20; platforms = [ "x86_64-linux" ]; }; From 5b705e3cdec52d7932b20b791d0f7e39b7b82e0f Mon Sep 17 00:00:00 2001 From: Peder Bergebakken Sundt Date: Sun, 20 Apr 2025 15:45:23 +0200 Subject: [PATCH 4/5] python3Packages.embreex: init at 2.17.7.post6 https://github.com/trimesh/embreex/ --- .../python-modules/embreex/default.nix | 72 +++++++++++++++++++ pkgs/top-level/python-packages.nix | 2 + 2 files changed, 74 insertions(+) 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/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 6a6a77d1ea23..0fe2cd819c26 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -4395,6 +4395,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 { }; From ed88e2ef17b28ae56f34a2dfcc9867fc5c17c8d3 Mon Sep 17 00:00:00 2001 From: Peder Bergebakken Sundt Date: Wed, 23 Apr 2025 14:13:55 +0200 Subject: [PATCH 5/5] python313Packages.trimesh: add optional-dependencies.easy --- .../python-modules/trimesh/default.nix | 41 ++++++++++++++++++- 1 file changed, 40 insertions(+), 1 deletion(-) diff --git a/pkgs/development/python-modules/trimesh/default.nix b/pkgs/development/python-modules/trimesh/default.nix index 10e2d252dc21..fb16df1046bc 100644 --- a/pkgs/development/python-modules/trimesh/default.nix +++ b/pkgs/development/python-modules/trimesh/default.nix @@ -1,5 +1,6 @@ { lib, + python, buildPythonPackage, fetchFromGitHub, setuptools, @@ -7,6 +8,7 @@ pythonOlder, numpy, lxml, + trimesh, }: buildPythonPackage rec { @@ -27,6 +29,31 @@ buildPythonPackage rec { dependencies = [ numpy ]; + optional-dependencies = with python.pkgs; { + easy = + [ + colorlog + manifold3d + charset-normalizer + lxml + jsonschema + networkx + svg-path + pycollada + shapely + xxhash + rtree + httpx + scipy + pillow + # vhacdx # not packaged + mapbox-earcut + ] + ++ lib.optionals embreex.meta.available [ + embreex + ]; + }; + nativeCheckInputs = [ lxml pytestCheckHook @@ -39,7 +66,19 @@ buildPythonPackage rec { pytestFlagsArray = [ "tests/test_minimal.py" ]; - pythonImportsCheck = [ "trimesh" ]; + pythonImportsCheck = [ + "trimesh" + "trimesh.ray" + "trimesh.path" + "trimesh.path.exchange" + "trimesh.scene" + "trimesh.voxel" + "trimesh.visual" + "trimesh.viewer" + "trimesh.exchange" + "trimesh.resources" + "trimesh.interfaces" + ]; meta = { description = "Python library for loading and using triangular meshes";