diff --git a/pkgs/development/tools/rust/pyo3-pack/default.nix b/pkgs/development/tools/rust/pyo3-pack/default.nix new file mode 100644 index 0000000000000..05c57e46b893a --- /dev/null +++ b/pkgs/development/tools/rust/pyo3-pack/default.nix @@ -0,0 +1,35 @@ +{ stdenv, fetchFromGitHub, rustPlatform, dbus, gmp, openssl, pkgconfig +, darwin }: + +let + inherit (darwin.apple_sdk.frameworks) Security; +in rustPlatform.buildRustPackage rec { + name = "pyo3-pack-${version}"; + version = "0.3.8"; + + src = fetchFromGitHub { + owner = "PyO3"; + repo = "pyo3-pack"; + rev = "v${version}"; + sha256 = "14343209w7wphkqh7pnw08pah09spjbwhk6l548g9ivra057gwaz"; + }; + + cargoSha256 = "0n7z9p3v92ijqc2ix60wi74as5rql61k5qbqi8b1b02b71xmsp7j"; + + nativeBuildInputs = [ pkgconfig ]; + + buildInputs = [ gmp openssl ] + ++ stdenv.lib.optional stdenv.isDarwin Security + ++ stdenv.lib.optional stdenv.isLinux dbus; + + # Requires network access, fails in sandbox. + doCheck = false; + + meta = with stdenv.lib; { + description = "Build and publish crates with pyo3 bindings as python packages"; + homepage = https://github.com/PyO3/pyo3-pack; + license = licenses.mit; + maintainers = [ maintainers.danieldk ]; + platforms = platforms.all; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 16f1b80eef770..543f41e1ff17c 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -7359,6 +7359,7 @@ with pkgs; cargo-asm = callPackage ../development/tools/rust/cargo-asm { }; cargo-fuzz = callPackage ../development/tools/rust/cargo-fuzz { }; + pyo3-pack = callPackage ../development/tools/rust/pyo3-pack { }; rainicorn = callPackage ../development/tools/rust/rainicorn { }; rustfmt = callPackage ../development/tools/rust/rustfmt { }; rustracer = callPackage ../development/tools/rust/racer { };