From 47eeaa60675710ebc8b6b5780a1ffe25ae0419a3 Mon Sep 17 00:00:00 2001 From: Igor Brylyov Date: Fri, 19 Apr 2024 19:42:36 +0300 Subject: [PATCH 1/3] FreeCAD Robossembler Workbench as python module --- flake.nix | 2 + .../freecad.robossembler/default.nix | 38 +++++++++++++++++++ .../python-modules/rcg-pipeline/default.nix | 6 +-- 3 files changed, 42 insertions(+), 4 deletions(-) create mode 100644 pkgs/development/python-modules/freecad.robossembler/default.nix diff --git a/flake.nix b/flake.nix index dd15bcd..15ac36c 100644 --- a/flake.nix +++ b/flake.nix @@ -133,6 +133,7 @@ megapose6d = pkgs.python3Packages.callPackage ./pkgs/development/python-modules/megapose6d { inherit webdataset; }; spatialmath = pkgs.python3Packages.callPackage ./pkgs/development/python-modules/spatialmath { inherit ansitable; }; rcg-pipeline = pkgs.python3Packages.callPackage ./pkgs/development/python-modules/rcg-pipeline { inherit bpy-wheel; }; + rbs-workbench = pkgs.python3Packages.callPackage ./pkgs/development/python-modules/freecad.robossembler { }; in { inherit pkgs; @@ -215,6 +216,7 @@ scipy spatialmath rcg-pipeline + rbs-workbench ]; in pkgs.mkShell { diff --git a/pkgs/development/python-modules/freecad.robossembler/default.nix b/pkgs/development/python-modules/freecad.robossembler/default.nix new file mode 100644 index 0000000..95b721d --- /dev/null +++ b/pkgs/development/python-modules/freecad.robossembler/default.nix @@ -0,0 +1,38 @@ +{ buildPythonPackage +, fetchgit +, python3Packages +, lib +, autoPatchelfHook +, pythonImportsCheckHook +, config +, setuptools +, ... }: + +buildPythonPackage rec { + name = "rbs-workbench"; + version = "1.0.0"; + format = "setuptools"; + + src = fetchgit { + url = "https://gitlab.com/robossembler/framework"; + hash = "sha256-N9xFVU4+GbuRR5saMkK7GjKPqKjk2LjcTFWqVhhJ0bs="; + rev = "946e83fd159f9ed234b70923df657bc5120cc62f"; + }; + sourceRoot = "${src.name}/freecad_workbench"; + + nativeBuildInputs = [ + setuptools + ]; + + propagatedBuildInputs = [ + ]; + + pythonImportsCheck = [ "freecad.robossembler" ]; + + meta = with lib; { + description = "Robossembler CG Pipeline Python Module"; + homepage = "https://gitlab.com/robossembler/framework/rcg_pipeline"; + license = licenses.mit; + maintainers = with maintainers; [ ]; + }; +} diff --git a/pkgs/development/python-modules/rcg-pipeline/default.nix b/pkgs/development/python-modules/rcg-pipeline/default.nix index b62d747..22c4134 100644 --- a/pkgs/development/python-modules/rcg-pipeline/default.nix +++ b/pkgs/development/python-modules/rcg-pipeline/default.nix @@ -16,12 +16,10 @@ buildPythonPackage rec { version = "1.0.0"; format = "pyproject"; - # src = /home/movefasta/Documents/robossembler/framework; - src = fetchgit { url = "https://gitlab.com/robossembler/framework"; - hash = "sha256-iLPphGbIGf7IRdedBSC2yJ2M3ttsHATvtOLot/04AZU="; - rev = "8268db0dec793bfa42d4fcba24c7d442938b7a25"; + hash = "sha256-N9xFVU4+GbuRR5saMkK7GjKPqKjk2LjcTFWqVhhJ0bs="; + rev = "946e83fd159f9ed234b70923df657bc5120cc62f"; }; sourceRoot = "${src.name}/rcg_pipeline"; -- 2.49.0 From 7aa811cb0bc19b19109384ba14819d3e9a1254e4 Mon Sep 17 00:00:00 2001 From: Igor Brylyov Date: Mon, 22 Apr 2024 15:51:35 +0300 Subject: [PATCH 2/3] init: freecad-py 21.2.0, bpy overlayed version --- flake.nix | 24 +++++++++++-------- .../freecad.robossembler/default.nix | 19 +++++++++++---- .../python-modules/rcg-pipeline/default.nix | 7 ++++-- pkgs/misc/bpy-lib/default.nix | 14 +++++++++++ pkgs/misc/freecad-lib/default.nix | 14 +++++++++++ 5 files changed, 61 insertions(+), 17 deletions(-) create mode 100644 pkgs/misc/bpy-lib/default.nix create mode 100644 pkgs/misc/freecad-lib/default.nix diff --git a/flake.nix b/flake.nix index 15ac36c..ba62d22 100644 --- a/flake.nix +++ b/flake.nix @@ -32,7 +32,7 @@ pythonPackagesExtensions = prev.pythonPackagesExtensions ++ [ ( python-final: python-prev: { - iopath = python-prev.iopath.overridePythonAttrs (oldAttrs: { + iopath = python-prev.iopath.overridePythonAttrs (oldAttrs: { version = "unstable"; src = pkgs.fetchFromGitHub { owner = "facebookresearch"; @@ -110,14 +110,11 @@ "-DWITH_INSTALL_PORTABLE=ON" ]; postInstall = '' - mkdir -p $out/lib/python${pkgs.python3.pythonVersion}/site-packages mkdir -p $out/nix-support - mv $out/bpy $out/lib/python${pkgs.python3.pythonVersion}/site-packages/ + mkdir -p $out/lib/python${pkgs.python3.pythonVersion}/site-packages + ln -s $out/bpy $out/lib/python${pkgs.python3.pythonVersion}/site-packages/bpy echo ${pkgs.python3} >> $out/nix-support/propagated-build-inputs ''; - postFixup = '' - buildPythonPath $out/lib/python${pkgs.python3.pythonVersion}/site-packages - ''; }); bpy-wheel = pkgs.python3Packages.callPackage ./pkgs/development/python-modules/bpy-wheel { }; pysdf = pkgs.python3Packages.callPackage ./pkgs/development/python-modules/pysdf { }; @@ -132,8 +129,10 @@ ansitable = pkgs.python3Packages.callPackage ./pkgs/development/python-modules/ansitable { }; megapose6d = pkgs.python3Packages.callPackage ./pkgs/development/python-modules/megapose6d { inherit webdataset; }; spatialmath = pkgs.python3Packages.callPackage ./pkgs/development/python-modules/spatialmath { inherit ansitable; }; - rcg-pipeline = pkgs.python3Packages.callPackage ./pkgs/development/python-modules/rcg-pipeline { inherit bpy-wheel; }; - rbs-workbench = pkgs.python3Packages.callPackage ./pkgs/development/python-modules/freecad.robossembler { }; + rcg-pipeline = pkgs.python3Packages.callPackage ./pkgs/development/python-modules/rcg-pipeline { bpy = bpy-lib; }; + rbs-workbench = pkgs.python3Packages.callPackage ./pkgs/development/python-modules/freecad.robossembler { inherit freecad-py; }; + freecad-py = pkgs.python3Packages.toPythonModule (pkgs.callPackage ./pkgs/misc/freecad-lib { }); + bpy-lib = pkgs.python3Packages.toPythonModule bpy; in { inherit pkgs; @@ -146,7 +145,7 @@ }; packages = { - inherit mayo pysdf fstl unified-planning test-script blender bpy bpy-wheel rcg-pipeline; + inherit mayo pysdf fstl unified-planning test-script blender bpy bpy-wheel rcg-pipeline freecad-py bpy-lib; }; devShells.ci = pkgs.mkShell { buildInputs = [ pkgs.jq ]; }; @@ -217,10 +216,15 @@ spatialmath rcg-pipeline rbs-workbench + ledger ]; in pkgs.mkShell { - packages = [ (pkgs.python3.withPackages my-python-packages) pkgs.freecad mayo pkgs.bashInteractive ]; + packages = with pkgs; [ + freecad + mayo + bashInteractive + ] ++ [ (pkgs.python3.withPackages my-python-packages) ]; buildInputs = [ ]; # Run when the shell is started up diff --git a/pkgs/development/python-modules/freecad.robossembler/default.nix b/pkgs/development/python-modules/freecad.robossembler/default.nix index 95b721d..4033eac 100644 --- a/pkgs/development/python-modules/freecad.robossembler/default.nix +++ b/pkgs/development/python-modules/freecad.robossembler/default.nix @@ -6,17 +6,21 @@ , pythonImportsCheckHook , config , setuptools +, freecad-py +, pytestCheckHook +, toPythonModule +, python , ... }: buildPythonPackage rec { - name = "rbs-workbench"; + name = "freecad.robossembler"; version = "1.0.0"; format = "setuptools"; src = fetchgit { url = "https://gitlab.com/robossembler/framework"; - hash = "sha256-N9xFVU4+GbuRR5saMkK7GjKPqKjk2LjcTFWqVhhJ0bs="; - rev = "946e83fd159f9ed234b70923df657bc5120cc62f"; + hash = "sha256-K6vnCQn129TWiMEKe81eBx/1H6PaIriCnkHGRwL8fg0="; + rev = "e8bb59124d56c5aee0180b4c7d5c7bfeec9cb1ea"; }; sourceRoot = "${src.name}/freecad_workbench"; @@ -24,11 +28,16 @@ buildPythonPackage rec { setuptools ]; - propagatedBuildInputs = [ - ]; + buildInputs = [ freecad-py ]; + propagatedBuildInputs = [ + freecad-py + ]; + pythonImportsCheck = [ "freecad.robossembler" ]; + doCheck = false; + meta = with lib; { description = "Robossembler CG Pipeline Python Module"; homepage = "https://gitlab.com/robossembler/framework/rcg_pipeline"; diff --git a/pkgs/development/python-modules/rcg-pipeline/default.nix b/pkgs/development/python-modules/rcg-pipeline/default.nix index 22c4134..3c3de0e 100644 --- a/pkgs/development/python-modules/rcg-pipeline/default.nix +++ b/pkgs/development/python-modules/rcg-pipeline/default.nix @@ -8,7 +8,7 @@ , cudaSupport ? config.cudaSupport , numpy , setuptools -, bpy-wheel +, bpy , ... }: buildPythonPackage rec { @@ -29,9 +29,12 @@ buildPythonPackage rec { propagatedBuildInputs = [ numpy - bpy-wheel + bpy ]; + # TODO - see later, pyproject.toml duntime deps check doesnt work + dontCheckRuntimeDeps = true; + pythonImportsCheck = [ "rcg_pipeline" ]; meta = with lib; { diff --git a/pkgs/misc/bpy-lib/default.nix b/pkgs/misc/bpy-lib/default.nix new file mode 100644 index 0000000..239f58f --- /dev/null +++ b/pkgs/misc/bpy-lib/default.nix @@ -0,0 +1,14 @@ +{ stdenv +, bpy +, python3 +}: +stdenv.mkDerivation { + inherit (bpy) version; + pname = "bpy-lib"; + src = bpy; + buildInputs = [ python3 ]; + installPhase = '' + mkdir -p $out/lib/python${python3.pythonVersion} + ln -s ${bpy}/bpy $out/lib/python${python3.pythonVersion}/site-packages + ''; +} diff --git a/pkgs/misc/freecad-lib/default.nix b/pkgs/misc/freecad-lib/default.nix new file mode 100644 index 0000000..cec2b44 --- /dev/null +++ b/pkgs/misc/freecad-lib/default.nix @@ -0,0 +1,14 @@ +{ stdenv +, freecad +, python3 +}: +stdenv.mkDerivation { + inherit (freecad) version; + pname = "freecad-lib"; + src = freecad; + buildInputs = [ python3 ]; + installPhase = '' + mkdir -p $out/lib/python${python3.pythonVersion} + ln -s ${freecad}/lib $out/lib/python${python3.pythonVersion}/site-packages + ''; +} -- 2.49.0 From db7a44f4799b44ad8bed73bd08c3ab931291a694 Mon Sep 17 00:00:00 2001 From: Igor Brylyov Date: Mon, 22 Apr 2024 15:57:32 +0300 Subject: [PATCH 3/3] rbs framework single source --- flake.nix | 11 +++++++++-- .../python-modules/freecad.robossembler/default.nix | 8 +++----- .../python-modules/rcg-pipeline/default.nix | 8 +++----- 3 files changed, 15 insertions(+), 12 deletions(-) diff --git a/flake.nix b/flake.nix index ba62d22..b92fb7d 100644 --- a/flake.nix +++ b/flake.nix @@ -22,6 +22,13 @@ # pkgs = nixpkgs.legacyPackages.${system}.extend overlay; ros = ros-flake.legacyPackages.${system}; + # single source for Robossembler Framework packages + rbsFrameworkSrc = pkgs.fetchgit { + url = "https://gitlab.com/robossembler/framework"; + hash = "sha256-K6vnCQn129TWiMEKe81eBx/1H6PaIriCnkHGRwL8fg0="; + rev = "e8bb59124d56c5aee0180b4c7d5c7bfeec9cb1ea"; + }; + pkgs = import nixpkgs { inherit system; overlays = [ overlay gazebo.overlays.default ]; }; overlay = final: prev: { @@ -129,8 +136,8 @@ ansitable = pkgs.python3Packages.callPackage ./pkgs/development/python-modules/ansitable { }; megapose6d = pkgs.python3Packages.callPackage ./pkgs/development/python-modules/megapose6d { inherit webdataset; }; spatialmath = pkgs.python3Packages.callPackage ./pkgs/development/python-modules/spatialmath { inherit ansitable; }; - rcg-pipeline = pkgs.python3Packages.callPackage ./pkgs/development/python-modules/rcg-pipeline { bpy = bpy-lib; }; - rbs-workbench = pkgs.python3Packages.callPackage ./pkgs/development/python-modules/freecad.robossembler { inherit freecad-py; }; + rcg-pipeline = pkgs.python3Packages.callPackage ./pkgs/development/python-modules/rcg-pipeline { bpy = bpy-lib; inherit rbsFrameworkSrc; }; + rbs-workbench = pkgs.python3Packages.callPackage ./pkgs/development/python-modules/freecad.robossembler { inherit freecad-py; inherit rbsFrameworkSrc; }; freecad-py = pkgs.python3Packages.toPythonModule (pkgs.callPackage ./pkgs/misc/freecad-lib { }); bpy-lib = pkgs.python3Packages.toPythonModule bpy; in diff --git a/pkgs/development/python-modules/freecad.robossembler/default.nix b/pkgs/development/python-modules/freecad.robossembler/default.nix index 4033eac..6eff57a 100644 --- a/pkgs/development/python-modules/freecad.robossembler/default.nix +++ b/pkgs/development/python-modules/freecad.robossembler/default.nix @@ -10,6 +10,7 @@ , pytestCheckHook , toPythonModule , python +, rbsFrameworkSrc , ... }: buildPythonPackage rec { @@ -17,11 +18,8 @@ buildPythonPackage rec { version = "1.0.0"; format = "setuptools"; - src = fetchgit { - url = "https://gitlab.com/robossembler/framework"; - hash = "sha256-K6vnCQn129TWiMEKe81eBx/1H6PaIriCnkHGRwL8fg0="; - rev = "e8bb59124d56c5aee0180b4c7d5c7bfeec9cb1ea"; - }; + src = rbsFrameworkSrc; + sourceRoot = "${src.name}/freecad_workbench"; nativeBuildInputs = [ diff --git a/pkgs/development/python-modules/rcg-pipeline/default.nix b/pkgs/development/python-modules/rcg-pipeline/default.nix index 3c3de0e..01efd32 100644 --- a/pkgs/development/python-modules/rcg-pipeline/default.nix +++ b/pkgs/development/python-modules/rcg-pipeline/default.nix @@ -9,6 +9,7 @@ , numpy , setuptools , bpy +, rbsFrameworkSrc , ... }: buildPythonPackage rec { @@ -16,11 +17,8 @@ buildPythonPackage rec { version = "1.0.0"; format = "pyproject"; - src = fetchgit { - url = "https://gitlab.com/robossembler/framework"; - hash = "sha256-N9xFVU4+GbuRR5saMkK7GjKPqKjk2LjcTFWqVhhJ0bs="; - rev = "946e83fd159f9ed234b70923df657bc5120cc62f"; - }; + src = rbsFrameworkSrc; + sourceRoot = "${src.name}/rcg_pipeline"; nativeBuildInputs = [ -- 2.49.0