From 45d58611d1849d4281aa0fe9b1036c7b7dc43e77 Mon Sep 17 00:00:00 2001 From: movefasta Date: Fri, 9 Jun 2023 21:56:57 +0300 Subject: [PATCH 1/9] fix antlr4 runtime tarball fetching --- .../python-modules/unified-planning/default.nix | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/pkgs/development/python-modules/unified-planning/default.nix b/pkgs/development/python-modules/unified-planning/default.nix index aa7b822..bfff4d7 100644 --- a/pkgs/development/python-modules/unified-planning/default.nix +++ b/pkgs/development/python-modules/unified-planning/default.nix @@ -1,7 +1,6 @@ { lib , python3 , fetchFromGitHub -, fetchPypi , clingo }: let @@ -10,9 +9,9 @@ let antlr472-python3-runtime = buildPythonPackage rec { pname = "antlr4-python3-runtime"; version = "v4.7.2"; - src = fetchPypi { - inherit pname version; - hash = "sha256-Fozc7I+5FS6EqHym/SYbPVTI9jWPQqs7gTsUpxk7tQs="; + src = builtins.fetchTarball { + url = "https://files.pythonhosted.org/packages/29/14/8ac135ec7cc9db3f768e2d032776718c6b23f74e63543f0974b4873500b2/antlr4-python3-runtime-4.7.2.tar.gz"; + sha256 = "0m7axw4fys10da5bwpz39nkdji15z8jka3w11m5dx0ym0lag0qvh"; }; meta = with lib; { description = "Runtime for ANTLR"; From a5ba3dc77c3ebd6968576a4120462a80e7cc5455 Mon Sep 17 00:00:00 2001 From: movefasta Date: Sat, 10 Jun 2023 00:21:30 +0300 Subject: [PATCH 2/9] spatialmath-python package --- flake.nix | 18 +++-- .../python-modules/ansitable/default.nix | 33 +++++++++ .../python-modules/spatialmath/default.nix | 71 +++++++++++++++++++ 3 files changed, 117 insertions(+), 5 deletions(-) create mode 100644 pkgs/development/python-modules/ansitable/default.nix create mode 100644 pkgs/development/python-modules/spatialmath/default.nix diff --git a/flake.nix b/flake.nix index e929e5e..ebed3d4 100644 --- a/flake.nix +++ b/flake.nix @@ -38,7 +38,9 @@ unified-planning = pkgs.python3Packages.callPackage ./pkgs/development/python-modules/unified-planning { }; blenderproc = pkgs.python3Packages.callPackage ./blenderproc.nix { }; webdataset = pkgs.python3Packages.callPackage ./pkgs/development/python-modules/webdataset { }; + ansitable = pkgs.python3Packages.callPackage ./pkgs/development/python-modules/ansitable { }; megapose6d = pkgs.python3Packages.callPackage ./pkgs/development/python-modules/megapose6d { webdataset = webdataset; }; + spatialmath = pkgs.python3Packages.callPackage ./pkgs/development/python-modules/spatialmath { ansitable = ansitable; }; slic3r = pkgs.callPackage ./pkgs/misc/slic3r { }; in { @@ -90,18 +92,24 @@ image-transport cv-bridge example-interfaces - ]) ++ (with pkgs; [ nlohmann_json glog lua5_3_compat ]) ++ [ megapose6d ]; + ]) ++ (with pkgs; [ nlohmann_json glog lua5_3_compat ]); RMW_IMPLEMENTATION = "rmw_fastrtps_dynamic_cpp"; }; devShells.all = pkgs.mkShell { packages = [ mayo blender bpy pysdf fstl darknet slic3r ]; }; - devShells.bpy = pkgs.mkShell { packages = [ bpy pysdf pkgs.freecad blender ]; }; - devShells.up = + devShells.rbs-framework = let - my-python-packages = p: with p; [ unified-planning ]; - in + my-python-packages = p: with p; [ + bpy + pysdf + unified-planning + pybullet + scipy + spatialmath + ]; + in pkgs.mkShell { packages = [ (pkgs.python3.withPackages my-python-packages) ]; }; diff --git a/pkgs/development/python-modules/ansitable/default.nix b/pkgs/development/python-modules/ansitable/default.nix new file mode 100644 index 0000000..86e78a4 --- /dev/null +++ b/pkgs/development/python-modules/ansitable/default.nix @@ -0,0 +1,33 @@ +{ lib +, buildPythonPackage +, fetchFromGitHub +, colored +, numpy +}: + +buildPythonPackage rec { + pname = "ansitable"; + version = "0.9.7"; + format = "setuptools"; + + src = fetchFromGitHub { + owner = "petercorke"; + repo = "ansitable"; + rev = version; + hash = "sha256-LRSdnHLcmQfwSpxnd3JjaLzpECWWnzi8aWLanu9qRUI="; + }; + + propagatedBuildInputs = [ + colored + numpy + ]; + + pythonImportsCheck = [ "ansitable" ]; + + meta = with lib; { + description = "Quick, easy and pretty display of tabular data or matrices, with optional ANSI color and borders"; + homepage = "https://github.com/petercorke/ansitable"; + license = licenses.mit; + maintainers = with maintainers; [ ]; + }; +} diff --git a/pkgs/development/python-modules/spatialmath/default.nix b/pkgs/development/python-modules/spatialmath/default.nix new file mode 100644 index 0000000..9d4101a --- /dev/null +++ b/pkgs/development/python-modules/spatialmath/default.nix @@ -0,0 +1,71 @@ +{ lib +, buildPythonPackage +, fetchFromGitHub +, setuptools +, ansitable +, matplotlib +, numpy +, scipy +, typing-extensions +, coverage +, flake8 +, pytest +, pytest-timeout +, pytest-xvfb +, sympy +, sphinx +, sphinx-autodoc-typehints +, sphinx-rtd-theme +, sphinxcontrib-jsmath +}: + +buildPythonPackage rec { + pname = "spatialmath"; + version = "unstable-2023-06-07"; + format = "pyproject"; + + src = fetchFromGitHub { + owner = "petercorke"; + repo = "spatialmath-python"; + rev = "0a7761dcd563e91eb55e75d8f0b2a93198762315"; + hash = "sha256-kawe9yHX7T+Bvy7BfuKbotEjlnpynQAooBsynGJSfjo="; + }; + + nativeBuildInputs = [ + setuptools + ]; + + propagatedBuildInputs = [ + ansitable + matplotlib + numpy + scipy + typing-extensions + ]; + + passthru.optional-dependencies = { + dev = [ + coverage + flake8 + pytest + pytest-timeout + pytest-xvfb + sympy + ]; + docs = [ + sphinx + sphinx-autodoc-typehints + sphinx-rtd-theme + sphinxcontrib-jsmath + ]; + }; + + pythonImportsCheck = [ "spatialmath" ]; + + meta = with lib; { + description = "Create, manipulate and convert representations of position and orientation in 2D or 3D using Python"; + homepage = "https://github.com/petercorke/spatialmath-python"; + license = licenses.mit; + maintainers = with maintainers; [ ]; + }; +} From 8f77359e01ba886593fab30687060e4e9c39cfac Mon Sep 17 00:00:00 2001 From: movefasta Date: Sat, 10 Jun 2023 11:29:21 +0300 Subject: [PATCH 3/9] trusted keys and cache added to flake --- flake.nix | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/flake.nix b/flake.nix index ebed3d4..b9f0df7 100644 --- a/flake.nix +++ b/flake.nix @@ -111,8 +111,16 @@ ]; in pkgs.mkShell { - packages = [ (pkgs.python3.withPackages my-python-packages) ]; + packages = [ (pkgs.python3.withPackages my-python-packages) pkgs.freecad blender mayo ]; }; } ); + + nixConfig = { + extra-substituters = [ "https://ros.cachix.org" "https://robossembler.cachix.org" ]; + extra-trusted-public-keys = [ + "ros.cachix.org-1:dSyZxI8geDCJrwgvCOHDoAfOm5sV1wCPjBkKL+38Rvo=" + "robossembler.cachix.org-1:56jBJHroRQSGpZFkW8XMquuzQTjAF/XTo6MogmBM7SQ=" + ]; + }; } From 13276f1cfb25f66be8b6049443c4dd1ff4c9b96b Mon Sep 17 00:00:00 2001 From: movefasta Date: Sun, 2 Jul 2023 12:17:12 +0300 Subject: [PATCH 4/9] open3d python package from wheel --- .../python-modules/open3d/default.nix | 71 +++++++++++++++++++ 1 file changed, 71 insertions(+) create mode 100644 pkgs/development/python-modules/open3d/default.nix diff --git a/pkgs/development/python-modules/open3d/default.nix b/pkgs/development/python-modules/open3d/default.nix new file mode 100644 index 0000000..15aa342 --- /dev/null +++ b/pkgs/development/python-modules/open3d/default.nix @@ -0,0 +1,71 @@ +{ stdenv, lib, buildPythonPackage, fetchPypi, scipy, scikitlearn, numpy +, matplotlib, ipywidgets, plyfile, pandas, pyyaml, tqdm, tree, unzip, zip +, autoPatchelfHook, pytorchWithCuda, libtensorflow-bin, libusb, cudaPackages +, libGL }: + +let + addict = buildPythonPackage { + pname = "addict"; + version = "2.4.0"; + + src = fetchPypi { + pname = "addict"; + version = "2.4.0"; + sha256 = "1574sicy5ydx9pvva3lbx8qp56z9jbdwbj26aqgjhyh61q723cmk"; + }; + }; + +in buildPythonPackage { + pname = "open3d"; + version = "0.12.0"; + format = "wheel"; + + src = fetchPypi { + pname = "open3d"; + version = "0.12.0"; + format = "wheel"; + python = "cp37"; + abi = "cp37m"; + platform = "manylinux2014_x86_64"; + sha256 = "11ysnk2wni4ffg5gipi5yx0i7qa2p11rfaqgwzlp6f1z4fgfsiac"; + }; + + # sklearn dependency does not exist ofc... Why can't people + # package their shit normally. This tilts me so much. + patchPhase = '' + ${unzip}/bin/unzip ./dist/open3d-0.12.0-cp37-cp37m-manylinux2014_x86_64.whl -d tmp + rm ./dist/open3d-0.12.0-cp37-cp37m-manylinux2014_x86_64.whl + sed -i 's/sklearn/scikit-learn/g' tmp/open3d-0.12.0.dist-info/METADATA + cd tmp + ${zip}/bin/zip -0 -r ../dist/open3d-0.12.0-cp37-cp37m-manylinux2014_x86_64.whl ./* + cd ../ + ''; + + nativeBuildInputs = [ + autoPatchelfHook + ]; + + buildInputs = [ + # so deps + stdenv.cc.cc.lib + libusb.out + pytorchWithCuda + libtensorflow-bin + cudaPackages.cudatoolkit_10_1.lib + libGL + ]; + + propagatedBuildInputs = [ + # py deps + ipywidgets + tqdm + pyyaml + pandas + plyfile + scipy + scikitlearn + numpy + addict + matplotlib + ]; +} \ No newline at end of file From 0429b29a640bf52d4f8d0d986d74bc443db8af00 Mon Sep 17 00:00:00 2001 From: Igor Brylyov Date: Thu, 3 Aug 2023 21:54:16 +0300 Subject: [PATCH 5/9] add bpy module wheel --- flake.lock | 111 ++++++++--- flake.nix | 9 +- .../python-modules/bpy/default.nix | 174 ++---------------- 3 files changed, 112 insertions(+), 182 deletions(-) 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"; From af8f53361f5a746ebc8a826bbc3b0acdd09a7b40 Mon Sep 17 00:00:00 2001 From: Igor Brylyov Date: Sun, 3 Sep 2023 21:47:42 +0300 Subject: [PATCH 6/9] add direnv --- .envrc | 5 +++++ .gitignore | 4 +++- 2 files changed, 8 insertions(+), 1 deletion(-) create mode 100644 .envrc diff --git a/.envrc b/.envrc new file mode 100644 index 0000000..6d1d0a1 --- /dev/null +++ b/.envrc @@ -0,0 +1,5 @@ +if ! has nix_direnv_version || ! nix_direnv_version 2.3.0; then + source_url "https://raw.githubusercontent.com/nix-community/nix-direnv/2.3.0/direnvrc" "sha256-Dmd+j63L84wuzgyjITIfSxSD57Tx7v51DMxVZOsiUD8=" +fi +use flake + diff --git a/.gitignore b/.gitignore index e2f5dd2..deb5a3d 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,3 @@ -result \ No newline at end of file +result +*-profile* +.direnv From 97dd9385a05b1c3547ce1df181b14fca235c1e7d Mon Sep 17 00:00:00 2001 From: Igor Brylyov Date: Sun, 3 Sep 2023 21:55:45 +0300 Subject: [PATCH 7/9] Placeholder for overlay --- flake.nix | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/flake.nix b/flake.nix index 9f1a90d..1bf17c7 100644 --- a/flake.nix +++ b/flake.nix @@ -10,9 +10,16 @@ flake-utils.lib.eachDefaultSystem (system: let - pkgs = nixpkgs.legacyPackages.${system}; + pkgs = nixpkgs.legacyPackages.${system}.extend overlay; ros = ros-flake.legacyPackages.${system}; + overlay = final: prev: { + # -- PLACEHOLDER for overlay + # freecad = prev.freecad.overrideAttrs + # (old: { cmakeFlags = old.cmakeFlags ++ [ "-DBUILD_GUI=OFF" ]; }); + # cmakeFlag -BUILD_GUI=OFF for build without gui + }; + # overrided packages and attributes for nix-ros-overlay humble-overrided = ros.humble.overrideScope (final: prev: { # remove after update github:lopsided98/nixpkgs/nix-ros for https://github.com/NixOS/nixpkgs/pull/224099 From c2370b13eb3985a6d443173da0b295eb8de6403a Mon Sep 17 00:00:00 2001 From: Igor Brylyov Date: Sun, 3 Sep 2023 21:56:38 +0300 Subject: [PATCH 8/9] rbs-framework as default dev environment --- flake.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/flake.nix b/flake.nix index 1bf17c7..6c89ba5 100644 --- a/flake.nix +++ b/flake.nix @@ -107,7 +107,7 @@ packages = [ mayo blender bpy pysdf fstl darknet slic3r ]; }; - devShells.rbs-framework = + devShells.default = let my-python-packages = p: with p; [ bpy From d32e0ff9e08c584844eb8cdd8b7bc35cd94c78cc Mon Sep 17 00:00:00 2001 From: Igor Brylyov Date: Sun, 3 Sep 2023 23:24:37 +0300 Subject: [PATCH 9/9] add test-script for python debug --- flake.lock | 75 +------------------ flake.nix | 8 +- .../python-modules/test-script/default.nix | 25 +++++++ 3 files changed, 34 insertions(+), 74 deletions(-) create mode 100644 pkgs/development/python-modules/test-script/default.nix diff --git a/flake.lock b/flake.lock index bb41b35..85a3495 100644 --- a/flake.lock +++ b/flake.lock @@ -19,21 +19,6 @@ } }, "flake-utils_2": { - "locked": { - "lastModified": 1601282935, - "narHash": "sha256-WQAFV6sGGQxrRs3a+/Yj9xUYvhTpukQJIcMbIi7LCJ4=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "588973065fce51f4763287f0fda87a174d78bf48", - "type": "github" - }, - "original": { - "owner": "numtide", - "repo": "flake-utils", - "type": "github" - } - }, - "flake-utils_3": { "inputs": { "systems": "systems_2" }, @@ -51,42 +36,7 @@ "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": 1622797669, - "narHash": "sha256-xIyWeoYExzF0KNaKcqfxEX58fN4JTIQxTJWbsAujllc=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "1ca6b0a0cc38dbba0441202535c92841dd39d1ae", - "type": "github" - }, - "original": { - "id": "nixpkgs", - "ref": "nixos-unstable", - "type": "indirect" - } - }, - "nixpkgs_2": { "locked": { "lastModified": 1690924695, "narHash": "sha256-1yshNzds/qJztMoJk0Sa2xhKwSLaOAuepR6ABWbrgRU=", @@ -102,7 +52,7 @@ "type": "github" } }, - "nixpkgs_3": { + "nixpkgs_2": { "locked": { "lastModified": 1687112859, "narHash": "sha256-oJhMiKnJeb47gTxyyIgAJf+aWC4IbVmG3wgL3ZVJ0Eg=", @@ -118,34 +68,17 @@ "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", - "mach-nix": "mach-nix", - "nixpkgs": "nixpkgs_2", + "nixpkgs": "nixpkgs", "ros-flake": "ros-flake" } }, "ros-flake": { "inputs": { - "flake-utils": "flake-utils_3", - "nixpkgs": "nixpkgs_3" + "flake-utils": "flake-utils_2", + "nixpkgs": "nixpkgs_2" }, "locked": { "lastModified": 1690347395, diff --git a/flake.nix b/flake.nix index 6c89ba5..b79c81b 100644 --- a/flake.nix +++ b/flake.nix @@ -35,15 +35,17 @@ }); # robossembler custom packages; defined here for share between devShells and packages - blender = pkgs.callPackage ./pkgs/misc/blender { }; + blender = pkgs.callPackage ./pkgs/misc/blender + { inherit (pkgs.darwin.apple_sdk.frameworks) Cocoa CoreGraphics ForceFeedback OpenAL OpenGL; }; bpy = pkgs.python3Packages.callPackage ./pkgs/development/python-modules/bpy { }; pysdf = pkgs.python3Packages.callPackage ./pkgs/development/python-modules/pysdf { }; mayo = pkgs.libsForQt5.callPackage ./pkgs/misc/mayo { }; darknet = pkgs.callPackage ./pkgs/misc/darknet { }; fstl = pkgs.libsForQt5.callPackage ./pkgs/misc/fstl { }; - open3d = pkgs.callPackage ./open3d.nix { }; + open3d = pkgs.python3Packages.callPackage ./pkgs/development/python-modules/open3d { }; unified-planning = pkgs.python3Packages.callPackage ./pkgs/development/python-modules/unified-planning { }; blenderproc = pkgs.python3Packages.callPackage ./blenderproc.nix { }; + test-script = pkgs.python3Packages.callPackage ./pkgs/development/python-modules/test-script { }; webdataset = pkgs.python3Packages.callPackage ./pkgs/development/python-modules/webdataset { }; ansitable = pkgs.python3Packages.callPackage ./pkgs/development/python-modules/ansitable { }; megapose6d = pkgs.python3Packages.callPackage ./pkgs/development/python-modules/megapose6d { webdataset = webdataset; }; @@ -61,7 +63,7 @@ }; packages = { - inherit mayo blender bpy pysdf fstl darknet unified-planning slic3r megapose6d; + inherit mayo blender bpy pysdf fstl darknet unified-planning slic3r megapose6d test-script; gazebo = ros.humble.gazebo; }; diff --git a/pkgs/development/python-modules/test-script/default.nix b/pkgs/development/python-modules/test-script/default.nix new file mode 100644 index 0000000..837bdb6 --- /dev/null +++ b/pkgs/development/python-modules/test-script/default.nix @@ -0,0 +1,25 @@ +{ writers, python3Packages }: +writers.writePython3Bin "test-script" { libraries = []; } '' +import sys +import os + + +def my_function(): + arg = sys.argv[1] + number = int(arg) + if (number == 1): + os.makedirs('13') + if (number == 2): + raise Exception("error") + if (number == 3): + print(200) + print(200) + print(200) + print(200) + print(200) + print(200) + + +if __name__ == '__main__': + my_function() +'' \ No newline at end of file