diff --git a/flake.lock b/flake.lock index 5c7588a..bb41b35 100644 --- a/flake.lock +++ b/flake.lock @@ -5,11 +5,11 @@ "systems": "systems" }, "locked": { - "lastModified": 1681202837, - "narHash": "sha256-H+Rh19JDwRtpVPAWp64F+rlEtxUWBAQW28eAi3SRSzg=", + "lastModified": 1689068808, + "narHash": "sha256-6ixXo3wt24N/melDWjq70UuHQLxGV8jZvooRanIHXw0=", "owner": "numtide", "repo": "flake-utils", - "rev": "cfacdce06f30d2b68473a46042957675eebb3401", + "rev": "919d646de7be200f3bf08cb76ae1f09402b6f9b4", "type": "github" }, "original": { @@ -19,15 +19,12 @@ } }, "flake-utils_2": { - "inputs": { - "systems": "systems_2" - }, "locked": { - "lastModified": 1681202837, - "narHash": "sha256-H+Rh19JDwRtpVPAWp64F+rlEtxUWBAQW28eAi3SRSzg=", + "lastModified": 1601282935, + "narHash": "sha256-WQAFV6sGGQxrRs3a+/Yj9xUYvhTpukQJIcMbIi7LCJ4=", "owner": "numtide", "repo": "flake-utils", - "rev": "cfacdce06f30d2b68473a46042957675eebb3401", + "rev": "588973065fce51f4763287f0fda87a174d78bf48", "type": "github" }, "original": { @@ -36,13 +33,66 @@ "type": "github" } }, + "flake-utils_3": { + "inputs": { + "systems": "systems_2" + }, + "locked": { + "lastModified": 1685518550, + "narHash": "sha256-o2d0KcvaXzTrPRIo0kOLV0/QXHhDQ5DTi+OxcjO8xqY=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "a1720a10a6cfe8234c0e93907ffe81be440f4cef", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "mach-nix": { + "inputs": { + "flake-utils": "flake-utils_2", + "nixpkgs": "nixpkgs", + "pypi-deps-db": "pypi-deps-db" + }, + "locked": { + "lastModified": 1623312259, + "narHash": "sha256-RkqyGWezwVOII2LTJFKVH6UXjSXybMucbuyOjFWiSdE=", + "owner": "DavHau", + "repo": "mach-nix", + "rev": "ca166a5062e26f6852ff0a6e854fd7563a48afe4", + "type": "github" + }, + "original": { + "id": "mach-nix", + "ref": "conda-beta", + "type": "indirect" + } + }, "nixpkgs": { "locked": { - "lastModified": 1685043182, - "narHash": "sha256-eL1j47UUPVRI8itz/4EUah9cVtZtuII6m/jSE+mBn7A=", + "lastModified": 1622797669, + "narHash": "sha256-xIyWeoYExzF0KNaKcqfxEX58fN4JTIQxTJWbsAujllc=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "ba5d0dc56bddf881ca7bb62266351a9692a8d157", + "rev": "1ca6b0a0cc38dbba0441202535c92841dd39d1ae", + "type": "github" + }, + "original": { + "id": "nixpkgs", + "ref": "nixos-unstable", + "type": "indirect" + } + }, + "nixpkgs_2": { + "locked": { + "lastModified": 1690924695, + "narHash": "sha256-1yshNzds/qJztMoJk0Sa2xhKwSLaOAuepR6ABWbrgRU=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "7282565b1ca9ba7b293b899411e70167f4a7c1ff", "type": "github" }, "original": { @@ -52,13 +102,13 @@ "type": "github" } }, - "nixpkgs_2": { + "nixpkgs_3": { "locked": { - "lastModified": 1681059042, - "narHash": "sha256-f6HH1U/+YbM7vjnOOydPJt/Ia7Rn+ApCOryFNb3eGbk=", + "lastModified": 1687112859, + "narHash": "sha256-oJhMiKnJeb47gTxyyIgAJf+aWC4IbVmG3wgL3ZVJ0Eg=", "owner": "lopsided98", "repo": "nixpkgs", - "rev": "28aa66a5d7d196573aed06968b2e37ab98875511", + "rev": "f68a0d0fd7539d93c7454989f71fd1c824f3b46f", "type": "github" }, "original": { @@ -68,24 +118,41 @@ "type": "github" } }, + "pypi-deps-db": { + "flake": false, + "locked": { + "lastModified": 1622970040, + "narHash": "sha256-u//RFnae/XMIhoy83G2uH2Qu/1LiUhVCdwwY1xj4Ufs=", + "owner": "DavHau", + "repo": "pypi-deps-db", + "rev": "be6591698c67a86a69c81fef72167e38d038a9fc", + "type": "github" + }, + "original": { + "owner": "DavHau", + "repo": "pypi-deps-db", + "type": "github" + } + }, "root": { "inputs": { "flake-utils": "flake-utils", - "nixpkgs": "nixpkgs", + "mach-nix": "mach-nix", + "nixpkgs": "nixpkgs_2", "ros-flake": "ros-flake" } }, "ros-flake": { "inputs": { - "flake-utils": "flake-utils_2", - "nixpkgs": "nixpkgs_2" + "flake-utils": "flake-utils_3", + "nixpkgs": "nixpkgs_3" }, "locked": { - "lastModified": 1684512309, - "narHash": "sha256-tIfBfgVqYWJycuTMo03NH4TS29f9FGCfz1ubYKJyD2s=", + "lastModified": 1690347395, + "narHash": "sha256-FUAvjcpVyDMZ2zCqUrpGlLtRZlF3PqW2alpyi82bMa8=", "owner": "lopsided98", "repo": "nix-ros-overlay", - "rev": "24dbaec76c6e9caf2a22ffd63ffd8b15667bd7e5", + "rev": "3205dadcff4e1fbc779ce3962bafcf3e9f3e931b", "type": "github" }, "original": { diff --git a/flake.nix b/flake.nix index b9f0df7..9f1a90d 100644 --- a/flake.nix +++ b/flake.nix @@ -99,6 +99,7 @@ devShells.all = pkgs.mkShell { packages = [ mayo blender bpy pysdf fstl darknet slic3r ]; }; + devShells.rbs-framework = let my-python-packages = p: with p; [ @@ -111,7 +112,13 @@ ]; in pkgs.mkShell { - packages = [ (pkgs.python3.withPackages my-python-packages) pkgs.freecad blender mayo ]; + packages = [ (pkgs.python3.withPackages my-python-packages) pkgs.freecad mayo ]; + buildInputs = [ ]; + + # Run when the shell is started up + shellHook = '' + ${pkgs.python3}/bin/python --version + ''; }; } ); diff --git a/pkgs/development/python-modules/bpy/default.nix b/pkgs/development/python-modules/bpy/default.nix index c986768..5a5aeee 100644 --- a/pkgs/development/python-modules/bpy/default.nix +++ b/pkgs/development/python-modules/bpy/default.nix @@ -1,165 +1,21 @@ -{ config, stdenv, lib, fetchurl, fetchzip, boost, cmake, ffmpeg, gettext, glew -, ilmbase, libXi, libX11, libXext, libXrender -, libjpeg, libpng, libsamplerate, libsndfile, openexr -, libtiff, libGLU, libGL, freeglut, openal, opencolorio, openimagedenoise, openimageio2, python310Packages -, openvdb, libXxf86vm, tbb, alembic -, zlib, zstd, fftw, opensubdiv, freetype, jemalloc, ocl-icd, addOpenGLRunpath -, cudaSupport ? config.cudaSupport or false, cudaPackages ? {} -, hipSupport ? false, hip # comes with a significantly larger closure size -, colladaSupport ? true, opencollada -, makeWrapper -, pugixml, llvmPackages, SDL -, potrace -, openxr-loader -, embree, gmp, libharu -, libepoxy, brotli -, buildPythonPackage, fetchPypi, pkgs, libwebp, lzma, clang, c-blosc -}: - -with lib; -let - python = python310Packages.python; - optix = fetchzip { - # url taken from the archlinux blender PKGBUILD - url = "https://developer.download.nvidia.com/redist/optix/v7.3/OptiX-7.3.0-Include.zip"; - sha256 = "0max1j4822mchj0xpz9lqzh91zkmvsn4py0r174cvqfz8z8ykjk8"; - }; - -in - -stdenv.mkDerivation rec { +{ buildPythonPackage, fetchPypi, python3Packages, lib, autoPatchelfHook, blender, config, cudaSupport ? config.cudaSupport }: +buildPythonPackage rec { + format = "wheel"; pname = "bpy"; - version = "3.4.1"; + version = "3.6.0"; - src = fetchurl { - url = "https://download.blender.org/source/blender-${version}.tar.xz"; - hash = "sha256-JHxMEignDJAQ9HIcmFy1tiirUKvPnyZ4Ywc3FC7rkcM="; + src = fetchPypi rec { + inherit pname version format; + sha256 = "sha256-7eLJWs54SPT1oHWn2Mw6nmQ8M19FlsPBUIfZPHrl9Wo="; + dist = python; + python = "cp310"; + abi = "cp310"; + platform = "manylinux_2_28_x86_64"; }; - - nativeBuildInputs = [ cmake makeWrapper python310Packages.wrapPython llvmPackages.llvm.dev ] - ++ optionals cudaSupport [ addOpenGLRunpath ]; - buildInputs = - [ boost ffmpeg gettext glew ilmbase - freetype libjpeg libpng libsamplerate libsndfile libtiff - opencolorio openexr openimagedenoise openimageio2 python zlib pkgs.zstd.dev fftw jemalloc - pkgs.alembic - (opensubdiv.override { inherit cudaSupport; }) - tbb - embree - gmp - pugixml - potrace - libharu - libepoxy - brotli - llvmPackages.openmp SDL - clang - libwebp - lzma - openvdb c-blosc - ] - ++ optional cudaSupport cudaPackages.cudatoolkit - ++ optional colladaSupport opencollada; - pythonPath = with python310Packages; [ numpy requests ]; - - postPatch = '' - # allow usage of dynamically linked embree - rm build_files/cmake/Modules/FindEmbree.cmake - '' + - (if hipSupport then '' - substituteInPlace extern/hipew/src/hipew.c --replace '"/opt/rocm/hip/lib/libamdhip64.so"' '"${hip}/lib/libamdhip64.so"' - substituteInPlace extern/hipew/src/hipew.c --replace '"opt/rocm/hip/bin"' '"${hip}/bin"' - '' else ""); - - output = [ "out" ]; - - # TODO WITH_MEM_JEMALLOC=ON > cannot allocate memory in static TLS block - # TODO WITH_CYCLES_DEVICE_OPTIX - # TODO NANOVDB_INCLUDE_DIR - # TODO _CLANG_LIBRARIES CLANG_INCLUDE_DIR - # TODO GIT_EXECUTABLE - cmakeFlags = - [ - "-DWITH_ALEMBIC=ON" - "-DWITH_USD=OFF" - "-DWITH_MOD_OCEANSIM=ON" - "-DWITH_CODEC_FFMPEG=ON" - "-DWITH_CODEC_SNDFILE=ON" - "-DWITH_FFTW3=ON" - "-DWITH_OPENCOLORIO=ON" - "-DWITH_OPENSUBDIV=ON" - "-DPYTHON_LIBRARY=${python.libPrefix}" - "-DPYTHON_LIBPATH=${python}/lib" - "-DPYTHON_INCLUDE_DIR=${python}/include/${python.libPrefix}" - "-DPYTHON_VERSION=${python.pythonVersion}" - "-DWITH_INSTALL_PORTABLE=ON" - "-DWITH_PYTHON_INSTALL=OFF" - "-DWITH_AUDASPACE=OFF" - "-DWITH_PYTHON_MODULE=ON" - "-DWITH_MEM_JEMALLOC=OFF" - "-DWITH_PYTHON_INSTALL_NUMPY=OFF" - "-DPYTHON_NUMPY_PATH=${python310Packages.numpy}/${python.sitePackages}" - "-DPYTHON_NUMPY_INCLUDE_DIRS=${python310Packages.numpy}/${python.sitePackages}/numpy/core/include" - "-DWITH_PYTHON_INSTALL_REQUESTS=OFF" - "-DWITH_OPENVDB=ON" - "-DWITH_OPENVDB_BLOSC=ON" - "-DWITH_TBB=ON" - "-DWITH_IMAGE_HDR=ON" - "-DWITH_OPENCOLLADA=${if colladaSupport then "ON" else "OFF"}" - "-DWITH_CYCLES_EMBREE=ON" - "WITH_CYCLES_PATH_GUIDING=OFF" - "-DWITH_DOC_MANPAGE=OFF" - "-DWITH_FREESTYLE=OFF" - "-DWITH_GHOST_X11=OFF" - "-DWITH_GHOST_WAYLAND=OFF" - "-DWITH_HARU=OFF" - "-DWITH_IMAGE_DDS=OFF" - "-DWITH_IMAGE_WEBP=ON" - "-DWITH_IMAGE_HDR=ON" - "-DWITH_IMAGE_OPENEXR=ON" - "-DWITH_IMAGE_OPENJPEG=OFF" - "-DWITH_IMAGE_TIFF=ON" - "-DWITH_INPUT_NDOF=OFF" - "-DWITH_INTERNATIONAL=OFF" - "-DWITH_JACK=OFF" - "-DWITH_PULSEAUDIO=OFF" - "-DWITH_LZMA=ON" - "-DWITH_LZO=OFF" - "-DWITH_LLVM=ON" - "-DWITH_CLANG=ON" - - "-DWITH_OPENMP=ON" - "-DWITH_QUADRIFLOW=OFF" - "-DWITH_SDL=OFF" - "-DWITH_CXX11_ABI=ON" - "-DWITH_XR_OPENXR=OFF" - "-DWITH_LINKER_LLD=ON" - ] - # Clang doesn't support "-export-dynamic" - ++ optionals cudaSupport [ - "-DWITH_CYCLES_CUDA=ON" - "-DWITH_CYCLES_CUDA_BINARIES=ON" - "-DCUDA_NVCC_FLAGS=-std=c++14" - "-DWITH_CYCLES_DEVICE_OPTIX=ON" - "-DOPTIX_ROOT_DIR=${optix}" - ]; - - NIX_CFLAGS_COMPILE = "-I${ilmbase.dev}/include/OpenEXR -I${python}/include/${python.libPrefix}"; - - # Since some dependencies are built with gcc 6, we need gcc 6's - # libstdc++ in our RPATH. Sigh. - NIX_LDFLAGS = optionalString cudaSupport "-rpath ${stdenv.cc.cc.lib}/lib"; - #"${stdenv.lib.makeLibraryPath [ gnome3.libpeas gnome3.gtksourceview ]}" - - postInstall = '' - mkdir -p $out/lib/python3.10/site-packages - mkdir -p $out/nix-support - mv $out/bpy $out/lib/python3.10/site-packages/ - echo ${python} >> $out/nix-support/propagated-build-inputs - ''; - postFixup = '' - buildPythonPath $out/lib/python3.10/site-packages - ''; + propagatedBuildInputs = with python3Packages; [ requests numpy cython zstandard ]; + buildInputs = blender.buildInputs; + nativeBuildInputs = [ autoPatchelfHook ]; + autoPatchelfIgnoreMissingDeps = true; meta = with lib; { description = "3D Creation/Animation/Publishing System";