From 76bd004a4b51d3904c126f8bd76e86918d7363e1 Mon Sep 17 00:00:00 2001 From: Stig Palmquist Date: Wed, 4 Dec 2019 03:52:10 +0100 Subject: [PATCH] micropython: init at 1.12 --- .../interpreters/micropython/default.nix | 44 +++++++++++++++++++ pkgs/top-level/all-packages.nix | 2 + 2 files changed, 46 insertions(+) create mode 100644 pkgs/development/interpreters/micropython/default.nix diff --git a/pkgs/development/interpreters/micropython/default.nix b/pkgs/development/interpreters/micropython/default.nix new file mode 100644 index 00000000000..3293c4b9f58 --- /dev/null +++ b/pkgs/development/interpreters/micropython/default.nix @@ -0,0 +1,44 @@ +{ stdenv, lib, fetchFromGitHub, pkgconfig, libffi, python3, readline }: + +stdenv.mkDerivation rec { + pname = "micropython"; + version = "1.12"; + + src = fetchFromGitHub { + owner = "micropython"; + repo = "micropython"; + rev = "v${version}"; + sha256 = "1fsigdahnv5yn0mc7dr1y6h7g8ywg084pcgj6d64kb39w641n8j5"; + fetchSubmodules = true; + }; + + nativeBuildInputs = [ pkgconfig python3 ]; + + buildInputs = [ libffi readline ]; + + doCheck = true; + + buildPhase = '' + make -C mpy-cross + make -C ports/unix + ''; + + checkPhase = '' + pushd tests + MICROPY_MICROPYTHON=../ports/unix/micropython ${python3.interpreter} ./run-tests + popd + ''; + + installPhase = '' + mkdir -p $out/bin + install -Dm755 ports/unix/micropython $out/bin/micropython + ''; + + meta = with lib; { + description = "A lean and efficient Python implementation for microcontrollers and constrained systems"; + homepage = "https://micropython.org"; + platforms = [ "x86_64-linux" ]; + license = licenses.mit; + maintainers = with maintainers; [ sgo ]; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 3c4bfa4d9cc..a5d568971b2 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -13234,6 +13234,8 @@ in micronucleus = callPackage ../development/tools/misc/micronucleus { }; + micropython = callPackage ../development/interpreters/micropython { }; + mimalloc = callPackage ../development/libraries/mimalloc { }; minizip = callPackage ../development/libraries/minizip { };