diff --git a/pkgs/tools/misc/esptool/default.nix b/pkgs/tools/misc/esptool/default.nix index a62e266874d6..9efa31d36537 100644 --- a/pkgs/tools/misc/esptool/default.nix +++ b/pkgs/tools/misc/esptool/default.nix @@ -1,29 +1,19 @@ { lib , fetchFromGitHub -, fetchpatch , python3 }: python3.pkgs.buildPythonApplication rec { pname = "esptool"; - version = "4.4"; + version = "4.5"; src = fetchFromGitHub { owner = "espressif"; repo = "esptool"; rev = "v${version}"; - hash = "sha256-haLwf3loOvqdqQN/iuVBciQ6nCnuc9AqqOGKvDwLBHE="; + hash = "sha256-SwMdemCk3e3RyXTzoXIqDRywpg3ogE9nQjXGBz0BjwE="; }; - patches = [ - ./test-call-bin-directly.patch - (fetchpatch { - name = "bitstring-4-compatibility.patch"; - url = "https://github.com/espressif/esptool/commit/ee27a6437576797d5f58c31e1c39f3a232a71df0.patch"; - hash = "sha256-8/AzR3HK79eQQRSaGEKU4YKn/piPCPjm/G9pvizKuUE="; - }) - ]; - propagatedBuildInputs = with python3.pkgs; [ bitstring cryptography @@ -34,19 +24,18 @@ python3.pkgs.buildPythonApplication rec { nativeCheckInputs = with python3.pkgs; [ pyelftools - pytest + pytestCheckHook ]; # tests mentioned in `.github/workflows/test_esptool.yml` checkPhase = '' runHook preCheck - export ESPSECURE_PY=$out/bin/espsecure.py - export ESPTOOL_PY=$out/bin/esptool.py - ${python3.interpreter} test/test_imagegen.py - ${python3.interpreter} test/test_espsecure.py - ${python3.interpreter} test/test_merge_bin.py - ${python3.interpreter} test/test_modules.py + pytest test/test_imagegen.py + pytest test/test_espsecure.py + pytest test/test_merge_bin.py + pytest test/test_image_info.py + pytest test/test_modules.py runHook postCheck ''; diff --git a/pkgs/tools/misc/esptool/test-call-bin-directly.patch b/pkgs/tools/misc/esptool/test-call-bin-directly.patch deleted file mode 100644 index b7d772780090..000000000000 --- a/pkgs/tools/misc/esptool/test-call-bin-directly.patch +++ /dev/null @@ -1,89 +0,0 @@ -diff --git a/test/test_espsecure.py b/test/test_espsecure.py -index 25b0b87..627005c 100755 ---- a/test/test_espsecure.py -+++ b/test/test_espsecure.py -@@ -35,7 +35,7 @@ class EspSecureTestCase: - Returns output as a string if there is any, - raises an exception if espsecure.py fails - """ -- cmd = [sys.executable, ESPSECURE_PY] + args.split(" ") -+ cmd = [ESPSECURE_PY] + args.split(" ") - print("\nExecuting {}...".format(" ".join(cmd))) - - try: -diff --git a/test/test_esptool.py b/test/test_esptool.py -index 042a1ce..b294e26 100755 ---- a/test/test_esptool.py -+++ b/test/test_esptool.py -@@ -57,7 +57,10 @@ try: - ESPTOOL_PY = os.environ["ESPTOOL_PY"] - except KeyError: - ESPTOOL_PY = os.path.join(TEST_DIR, "..", "esptool/__init__.py") --ESPSECURE_PY = os.path.join(TEST_DIR, "..", "espsecure/__init__.py") -+try: -+ ESPSECURE_PY = os.environ["ESPSECURE_PY"] -+except KeyError: -+ ESPSECURE_PY = os.path.join(TEST_DIR, "..", "espsecure/__init__.py") - ESPRFC2217SERVER_PY = os.path.join(TEST_DIR, "..", "esp_rfc2217_server.py") - - RETURN_CODE_FATAL_ERROR = 2 -@@ -74,7 +77,6 @@ class ESPRFC2217Server(object): - def __init__(self, rfc2217_port=None): - self.port = rfc2217_port or self.get_free_port() - self.cmd = [ -- sys.executable, - ESPRFC2217SERVER_PY, - "-p", - str(self.port), -@@ -130,7 +132,7 @@ class ESPRFC2217Server(object): - class EsptoolTestCase: - def run_espsecure(self, args): - -- cmd = [sys.executable, ESPSECURE_PY] + args.split(" ") -+ cmd = [ESPSECURE_PY] + args.split(" ") - print("\nExecuting {}...".format(" ".join(cmd))) - try: - output = subprocess.check_output( -@@ -155,7 +157,7 @@ class EsptoolTestCase: - Raises an exception if esptool.py fails. - """ - trace_args = ["--trace"] if arg_trace else [] -- cmd = [sys.executable, ESPTOOL_PY] + trace_args -+ cmd = [ESPTOOL_PY] + trace_args - if chip_name or arg_chip is not None and chip_name != "auto": - cmd += ["--chip", chip_name or arg_chip] - if rfc2217_port or arg_port is not None: -diff --git a/test/test_imagegen.py b/test/test_imagegen.py -index a1feec2..01bd59c 100755 ---- a/test/test_imagegen.py -+++ b/test/test_imagegen.py -@@ -108,7 +108,7 @@ class BaseTestCase: - Run esptool.py image_info on a binary file, - assert no red flags about contents. - """ -- cmd = [sys.executable, ESPTOOL_PY, "--chip", chip, "image_info", binpath] -+ cmd = [ESPTOOL_PY, "--chip", chip, "image_info", binpath] - try: - output = subprocess.check_output(cmd) - output = output.decode("utf-8") -@@ -123,7 +123,7 @@ class BaseTestCase: - - def run_elf2image(self, chip, elf_path, version=None, extra_args=[]): - """Run elf2image on elf_path""" -- cmd = [sys.executable, ESPTOOL_PY, "--chip", chip, "elf2image"] -+ cmd = [ESPTOOL_PY, "--chip", chip, "elf2image"] - if version is not None: - cmd += ["--version", str(version)] - cmd += [elf_path] + extra_args -diff --git a/test/test_merge_bin.py b/test/test_merge_bin.py -index 8230069..2df5f8c 100755 ---- a/test/test_merge_bin.py -+++ b/test/test_merge_bin.py -@@ -39,7 +39,6 @@ class TestMergeBin: - output_file.close() - - cmd = [ -- sys.executable, - ESPTOOL_PY, - "--chip", - chip,