From dbf7134d29c504615b31ad5c277bd3ade46684dc Mon Sep 17 00:00:00 2001 From: Pavol Rusnak Date: Wed, 8 Dec 2021 23:11:49 +0100 Subject: [PATCH] rustpython: init at unstable-2021-12-09 --- .../interpreters/python/default.nix | 4 ++ .../python/rustpython/default.nix | 44 +++++++++++++++++++ pkgs/top-level/all-packages.nix | 2 +- 3 files changed, 49 insertions(+), 1 deletion(-) create mode 100644 pkgs/development/interpreters/python/rustpython/default.nix diff --git a/pkgs/development/interpreters/python/default.nix b/pkgs/development/interpreters/python/default.nix index 7937fe171a06..863b820c5ffe 100644 --- a/pkgs/development/interpreters/python/default.nix +++ b/pkgs/development/interpreters/python/default.nix @@ -285,4 +285,8 @@ in { inherit passthruFun; }; + rustpython = callPackage ./rustpython/default.nix { + inherit (darwin.apple_sdk.frameworks) SystemConfiguration; + }; + }) diff --git a/pkgs/development/interpreters/python/rustpython/default.nix b/pkgs/development/interpreters/python/rustpython/default.nix new file mode 100644 index 000000000000..ad4382203223 --- /dev/null +++ b/pkgs/development/interpreters/python/rustpython/default.nix @@ -0,0 +1,44 @@ +{ lib +, stdenv +, rustPlatform +, fetchFromGitHub +, SystemConfiguration +, python3 +}: + +rustPlatform.buildRustPackage rec { + pname = "rustpython"; + version = "unstable-2021-12-09"; + + src = fetchFromGitHub { + owner = "RustPython"; + repo = "RustPython"; + rev = "db3b3127df34ff5dd569301aa36ed71ae5624e4e"; + sha256 = "sha256-YwGfXs3A5L/18mHnnWubPU3Y8EI9uU3keJ2HJnnTwv0="; + }; + + cargoHash = "sha256-T85kiPG80oZ4mwpb8Ag40wDHKx2Aens+gM7NGXan5lM="; + + # freeze the stdlib into the rustpython binary + cargoBuildFlags = "--features=freeze-stdlib"; + + buildInputs = lib.optionals stdenv.isDarwin [ SystemConfiguration ]; + + checkInputs = [ python3 ]; + + meta = with lib; { + description = "Python 3 interpreter in written Rust"; + homepage = "https://rustpython.github.io"; + license = licenses.mit; + maintainers = with maintainers; [ prusnak ]; + + # TODO: Remove once nixpkgs uses newer SDKs that supports '*at' functions. + # Probably macOS SDK 10.13 or later. Check the current version in + # .../os-specific/darwin/apple-sdk/default.nix + # + # From the build logs: + # + # > Undefined symbols for architecture x86_64: "_utimensat" + broken = stdenv.isDarwin && stdenv.isx86_64; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index a57a684905bc..6472e0be03dc 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -13562,7 +13562,7 @@ with pkgs; python3Packages = python3.pkgs; pythonInterpreters = callPackage ./../development/interpreters/python { }; - inherit (pythonInterpreters) python27 python37 python38 python39 python310 python3Minimal pypy27 pypy38; + inherit (pythonInterpreters) python27 python37 python38 python39 python310 python3Minimal pypy27 pypy38 rustpython; # Python package sets. python27Packages = python27.pkgs;