diff --git a/pkgs/development/python-modules/adafruit-nrfutil/default.nix b/pkgs/development/python-modules/adafruit-nrfutil/default.nix new file mode 100644 index 000000000000..532fd301a1a4 --- /dev/null +++ b/pkgs/development/python-modules/adafruit-nrfutil/default.nix @@ -0,0 +1,62 @@ +{ lib +, buildPythonPackage +, fetchFromGitHub +, fetchpatch +, pythonOlder +, pyserial +, click +, ecdsa +, behave +, nose +}: + +buildPythonPackage rec { + pname = "adafruit-nrfutil"; + version = "0.5.3.post17"; + format = "setuptools"; + + disabled = pythonOlder "3.7"; + + src = fetchFromGitHub { + owner = "adafruit"; + repo = "Adafruit_nRF52_nrfutil"; + rev = version; + sha256 = "sha256-mHHKOQE9AGBX8RAyaPOy+JS3fTs98+AFdq9qsVy7go4="; + }; + + patches = [ + # Pull a patch which fixes the tests, but is not yet released in a new version: + # https://github.com/adafruit/Adafruit_nRF52_nrfutil/pull/38 + (fetchpatch { + name = "fix-tests.patch"; + url = "https://github.com/adafruit/Adafruit_nRF52_nrfutil/commit/e5fbcc8ee5958041db38c04139ba686bf7d1b845.patch"; + sha256 = "sha256-0tbJldGtYcDdUzA3wZRv0lenXVn6dqV016U9nMpQ6/w="; + }) + ]; + + propagatedBuildInputs = [ + pyserial + click + ecdsa + ]; + + checkInputs = [ + behave + nose + ]; + + preCheck = '' + mkdir test-reports + ''; + + pythonImportsCheck = [ + "nordicsemi" + ]; + + meta = with lib; { + homepage = "https://github.com/adafruit/Adafruit_nRF52_nrfutil"; + description = "Modified version of Nordic's nrfutil 0.5.x for use with the Adafruit Feather nRF52"; + license = licenses.bsd3; + maintainers = with maintainers; [ stargate01 ]; + }; +} diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 59cdb70f68dd..92dd57cea09f 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -171,6 +171,8 @@ in { adafruit-io = callPackage ../development/python-modules/adafruit-io { }; + adafruit-nrfutil = callPackage ../development/python-modules/adafruit-nrfutil { }; + adafruit-platformdetect = callPackage ../development/python-modules/adafruit-platformdetect { }; adafruit-pureio = callPackage ../development/python-modules/adafruit-pureio { };