From 25b859ae0eaaf1b8a36a2511713ffae4ae511fb8 Mon Sep 17 00:00:00 2001
From: Martin Weinelt <hexa@darmstadt.ccc.de>
Date: Sun, 19 Nov 2023 20:35:42 +0100
Subject: [PATCH 1/2] python311Packages.adafruit-nrfutil: 1 -> 0.5.3.post17

Fixes the build and applies various updates:

https://github.com/adafruit/Adafruit_nRF52_nrfutil/releases/tag/0.5.3.post17
https://github.com/adafruit/Adafruit_nRF52_nrfutil/releases/tag/0.5.3.post16
https://github.com/adafruit/Adafruit_nRF52_nrfutil/releases/tag/0.5.3.post15
https://github.com/adafruit/Adafruit_nRF52_nrfutil/releases/tag/0.5.3.post14
https://github.com/adafruit/Adafruit_nRF52_nrfutil/releases/tag/0.5.3.post13
https://github.com/adafruit/Adafruit_nRF52_nrfutil/releases/tag/%24(APPVEYOR_REPO_TAG_NAME)
https://github.com/adafruit/Adafruit_nRF52_nrfutil/releases/tag/0.5.3.post10
https://github.com/adafruit/Adafruit_nRF52_nrfutil/releases/tag/0.5.3.post9
https://github.com/adafruit/Adafruit_nRF52_nrfutil/releases/tag/0.5.3.post8
---
 .../adafruit-nrfutil/default.nix              | 31 +++++++++----------
 1 file changed, 14 insertions(+), 17 deletions(-)

diff --git a/pkgs/development/python-modules/adafruit-nrfutil/default.nix b/pkgs/development/python-modules/adafruit-nrfutil/default.nix
index 0197bf21927f..7c3aad0f2d92 100644
--- a/pkgs/development/python-modules/adafruit-nrfutil/default.nix
+++ b/pkgs/development/python-modules/adafruit-nrfutil/default.nix
@@ -1,43 +1,40 @@
 { lib
 , buildPythonPackage
 , fetchFromGitHub
-, fetchpatch
-, pythonOlder
+
+# build-system
+, setuptools
+
+# dependencies
 , pyserial
 , click
 , ecdsa
+
+# tests
 , behave
 , nose
 }:
 
 buildPythonPackage rec {
   pname = "adafruit-nrfutil";
-  version = "1";
-  format = "setuptools";
-
-  disabled = pythonOlder "3.7";
+  version = "0.5.3.post17";
+  pyproject = true;
 
   src = fetchFromGitHub {
     owner = "adafruit";
     repo = "Adafruit_nRF52_nrfutil";
-    rev = "refs/tags/appveyor-test-release-${version}";
-    hash = "sha256-wsspDg8XwEtJwJye6Z3TXaIN1TcfI7gYDah3L/xiiLo=";
+    rev = "refs/tags/${version}";
+    hash = "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";
-      hash = "sha256-0tbJldGtYcDdUzA3wZRv0lenXVn6dqV016U9nMpQ6/w=";
-    })
+  nativeBuildInputs = [
+    setuptools
   ];
 
   propagatedBuildInputs = [
-    pyserial
     click
     ecdsa
+    pyserial
   ];
 
   nativeCheckInputs = [

From 50ddafc93189834c69eb159a336e5388be999457 Mon Sep 17 00:00:00 2001
From: Martin Weinelt <hexa@darmstadt.ccc.de>
Date: Sun, 19 Nov 2023 20:41:43 +0100
Subject: [PATCH 2/2] adafruit-nrfutil: migrate from python package set

We only keep libraries in the python package set, not applications.
---
 .../ad/adafruit-nrfutil/package.nix}          | 22 +++++--------------
 pkgs/top-level/python-aliases.nix             |  1 +
 pkgs/top-level/python-packages.nix            |  2 --
 3 files changed, 6 insertions(+), 19 deletions(-)
 rename pkgs/{development/python-modules/adafruit-nrfutil/default.nix => by-name/ad/adafruit-nrfutil/package.nix} (77%)

diff --git a/pkgs/development/python-modules/adafruit-nrfutil/default.nix b/pkgs/by-name/ad/adafruit-nrfutil/package.nix
similarity index 77%
rename from pkgs/development/python-modules/adafruit-nrfutil/default.nix
rename to pkgs/by-name/ad/adafruit-nrfutil/package.nix
index 7c3aad0f2d92..64dc160ff1fb 100644
--- a/pkgs/development/python-modules/adafruit-nrfutil/default.nix
+++ b/pkgs/by-name/ad/adafruit-nrfutil/package.nix
@@ -1,21 +1,9 @@
 { lib
-, buildPythonPackage
+, python3Packages
 , fetchFromGitHub
-
-# build-system
-, setuptools
-
-# dependencies
-, pyserial
-, click
-, ecdsa
-
-# tests
-, behave
-, nose
 }:
 
-buildPythonPackage rec {
+python3Packages.buildPythonApplication rec {
   pname = "adafruit-nrfutil";
   version = "0.5.3.post17";
   pyproject = true;
@@ -27,17 +15,17 @@ buildPythonPackage rec {
     hash = "sha256-mHHKOQE9AGBX8RAyaPOy+JS3fTs98+AFdq9qsVy7go4=";
   };
 
-  nativeBuildInputs = [
+  nativeBuildInputs = with python3Packages; [
     setuptools
   ];
 
-  propagatedBuildInputs = [
+  propagatedBuildInputs = with python3Packages; [
     click
     ecdsa
     pyserial
   ];
 
-  nativeCheckInputs = [
+  nativeCheckInputs = with python3Packages; [
     behave
     nose
   ];
diff --git a/pkgs/top-level/python-aliases.nix b/pkgs/top-level/python-aliases.nix
index 6f105d0fcccf..c6514dbdc63c 100644
--- a/pkgs/top-level/python-aliases.nix
+++ b/pkgs/top-level/python-aliases.nix
@@ -35,6 +35,7 @@ in
 mapAliases ({
   abodepy = jaraco-abode; # added 2023-02-01
   acebinf = throw "acebinf has been removed because it is abandoned and broken."; # Added 2023-05-19
+  adafruit-nrfutil = throw "adafruit-nrfutil has been promoted to a top-level attribute."; # Added 2023-11-19
   aioh2 = throw "aioh2 has been removed because it is abandoned and broken."; # Added 2022-03-30
   aionotify = throw "aionotify has been removed because is unmaintained and incompatible with python3.11."; # Added 2023-10-27
   aiosenseme = throw "aiosenseme has been removed, because it does no longer work with the latest firmware and has become unmaintained"; # Added 2023-07-05
diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix
index 4b29edee0ec6..a612e6b98524 100644
--- a/pkgs/top-level/python-packages.nix
+++ b/pkgs/top-level/python-packages.nix
@@ -54,8 +54,6 @@ self: super: with self; {
 
   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 { };