pkgsrc-Bugs archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

pkg/59531: comms/py-esptool: Update to 5.0.1



>Number:         59531
>Category:       pkg
>Synopsis:       comms/py-esptool: Update to 5.0.1
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    pkg-manager
>State:          open
>Class:          change-request
>Submitter-Id:   net
>Arrival-Date:   Sat Jul 19 21:00:00 +0000 2025
>Originator:     Frédéric Fauberteau
>Release:        Darwin 24.5.0
>Organization:
>Environment:
System: Darwin arbiter.local 24.5.0 Darwin Kernel Version 24.5.0: Tue Apr 22 19:48:46 PDT 2025; root:xnu-11417.121.6~2/RELEASE_ARM64_T8103 arm64
Architecture: arm
Machine: arm64
>Description:
esptool uses devel/py-click for argument parsing starting from 5.0.0. It requires client<8.2.0 but devel/py-click is 8.2.1. The fix below includes a patch to make esptool working with devel/py-click.
>How-To-Repeat:

>Fix:
Index: Makefile
===================================================================
RCS file: /cvsroot/pkgsrc/comms/py-esptool/Makefile,v
retrieving revision 1.19
diff -u -r1.19 Makefile
--- Makefile	5 Jul 2025 11:44:09 -0000	1.19
+++ Makefile	19 Jul 2025 20:42:19 -0000
@@ -1,6 +1,6 @@
 # $NetBSD: Makefile,v 1.19 2025/07/05 11:44:09 wiz Exp $
 
-DISTNAME=	esptool-4.8.1
+DISTNAME=	esptool-5.0.1
 PKGNAME=	${PYPKGPREFIX}-${DISTNAME}
 CATEGORIES=	comms python
 MASTER_SITES=	${MASTER_SITE_PYPI:=e/esptool/}
@@ -11,11 +11,11 @@
 LICENSE=	gnu-gpl-v2
 
 TOOL_DEPENDS+=	${PYPKGPREFIX}-setuptools>=78:../../devel/py-setuptools
-DEPENDS+=	${PYPKGPREFIX}-argcomplete>=3:../../devel/py-argcomplete
 DEPENDS+=	${PYPKGPREFIX}-bitstring>=4.2.1:../../devel/py-bitstring
-DEPENDS+=	${PYPKGPREFIX}-ecdsa>=0.16.0:../../security/py-ecdsa
+DEPENDS+=	${PYPKGPREFIX}-click-[0-9]*:../../devel/py-click
 DEPENDS+=	${PYPKGPREFIX}-intelhex-[0-9]*:../../devel/py-intelhex
 DEPENDS+=	${PYPKGPREFIX}-reedsolo>=1.5.3:../../converters/py-reedsolo
+DEPENDS+=	${PYPKGPREFIX}-rich-click-[0-9]*:../../devel/py-rich-click
 DEPENDS+=	${PYPKGPREFIX}-serial>=3.3:../../comms/py-serial
 DEPENDS+=	${PYPKGPREFIX}-yaml>=5.1:../../textproc/py-yaml
 
@@ -23,7 +23,7 @@
 
 PYTHON_SELF_CONFLICT=	yes
 
-PYTHON_VERSIONS_INCOMPATIBLE=	39 310
+PYTHON_VERSIONS_INCOMPATIBLE=	39
 
 PYTHON_VERSIONED_DEPENDENCIES+=	cryptography
 .include "../../lang/python/versioned_dependencies.mk"
Index: PLIST
===================================================================
RCS file: /cvsroot/pkgsrc/comms/py-esptool/PLIST,v
retrieving revision 1.10
diff -u -r1.10 PLIST
--- PLIST	15 Apr 2025 15:42:11 -0000	1.10
+++ PLIST	19 Jul 2025 20:42:19 -0000
@@ -1,13 +1,12 @@
-@comment $NetBSD: PLIST,v 1.10 2025/04/15 15:42:11 adam Exp $
+@comment $NetBSD$
+bin/esp_rfc2217_server
 bin/esp_rfc2217_server.py
+bin/espefuse
 bin/espefuse.py
+bin/espsecure
 bin/espsecure.py
+bin/esptool
 bin/esptool.py
-${PYSITELIB}/${WHEEL_INFODIR}/METADATA
-${PYSITELIB}/${WHEEL_INFODIR}/RECORD
-${PYSITELIB}/${WHEEL_INFODIR}/WHEEL
-${PYSITELIB}/${WHEEL_INFODIR}/licenses/LICENSE
-${PYSITELIB}/${WHEEL_INFODIR}/top_level.txt
 ${PYSITELIB}/esp_rfc2217_server/__init__.py
 ${PYSITELIB}/esp_rfc2217_server/__init__.pyc
 ${PYSITELIB}/esp_rfc2217_server/__init__.pyo
@@ -26,6 +25,9 @@
 ${PYSITELIB}/espefuse/__main__.py
 ${PYSITELIB}/espefuse/__main__.pyc
 ${PYSITELIB}/espefuse/__main__.pyo
+${PYSITELIB}/espefuse/cli_util.py
+${PYSITELIB}/espefuse/cli_util.pyc
+${PYSITELIB}/espefuse/cli_util.pyo
 ${PYSITELIB}/espefuse/efuse/__init__.py
 ${PYSITELIB}/espefuse/efuse/__init__.pyc
 ${PYSITELIB}/espefuse/efuse/__init__.pyo
@@ -101,21 +103,6 @@
 ${PYSITELIB}/espefuse/efuse/esp32c5/operations.py
 ${PYSITELIB}/espefuse/efuse/esp32c5/operations.pyc
 ${PYSITELIB}/espefuse/efuse/esp32c5/operations.pyo
-${PYSITELIB}/espefuse/efuse/esp32c5beta3/__init__.py
-${PYSITELIB}/espefuse/efuse/esp32c5beta3/__init__.pyc
-${PYSITELIB}/espefuse/efuse/esp32c5beta3/__init__.pyo
-${PYSITELIB}/espefuse/efuse/esp32c5beta3/emulate_efuse_controller.py
-${PYSITELIB}/espefuse/efuse/esp32c5beta3/emulate_efuse_controller.pyc
-${PYSITELIB}/espefuse/efuse/esp32c5beta3/emulate_efuse_controller.pyo
-${PYSITELIB}/espefuse/efuse/esp32c5beta3/fields.py
-${PYSITELIB}/espefuse/efuse/esp32c5beta3/fields.pyc
-${PYSITELIB}/espefuse/efuse/esp32c5beta3/fields.pyo
-${PYSITELIB}/espefuse/efuse/esp32c5beta3/mem_definition.py
-${PYSITELIB}/espefuse/efuse/esp32c5beta3/mem_definition.pyc
-${PYSITELIB}/espefuse/efuse/esp32c5beta3/mem_definition.pyo
-${PYSITELIB}/espefuse/efuse/esp32c5beta3/operations.py
-${PYSITELIB}/espefuse/efuse/esp32c5beta3/operations.pyc
-${PYSITELIB}/espefuse/efuse/esp32c5beta3/operations.pyo
 ${PYSITELIB}/espefuse/efuse/esp32c6/__init__.py
 ${PYSITELIB}/espefuse/efuse/esp32c6/__init__.pyc
 ${PYSITELIB}/espefuse/efuse/esp32c6/__init__.pyo
@@ -161,21 +148,36 @@
 ${PYSITELIB}/espefuse/efuse/esp32h2/operations.py
 ${PYSITELIB}/espefuse/efuse/esp32h2/operations.pyc
 ${PYSITELIB}/espefuse/efuse/esp32h2/operations.pyo
-${PYSITELIB}/espefuse/efuse/esp32h2beta1/__init__.py
-${PYSITELIB}/espefuse/efuse/esp32h2beta1/__init__.pyc
-${PYSITELIB}/espefuse/efuse/esp32h2beta1/__init__.pyo
-${PYSITELIB}/espefuse/efuse/esp32h2beta1/emulate_efuse_controller.py
-${PYSITELIB}/espefuse/efuse/esp32h2beta1/emulate_efuse_controller.pyc
-${PYSITELIB}/espefuse/efuse/esp32h2beta1/emulate_efuse_controller.pyo
-${PYSITELIB}/espefuse/efuse/esp32h2beta1/fields.py
-${PYSITELIB}/espefuse/efuse/esp32h2beta1/fields.pyc
-${PYSITELIB}/espefuse/efuse/esp32h2beta1/fields.pyo
-${PYSITELIB}/espefuse/efuse/esp32h2beta1/mem_definition.py
-${PYSITELIB}/espefuse/efuse/esp32h2beta1/mem_definition.pyc
-${PYSITELIB}/espefuse/efuse/esp32h2beta1/mem_definition.pyo
-${PYSITELIB}/espefuse/efuse/esp32h2beta1/operations.py
-${PYSITELIB}/espefuse/efuse/esp32h2beta1/operations.pyc
-${PYSITELIB}/espefuse/efuse/esp32h2beta1/operations.pyo
+${PYSITELIB}/espefuse/efuse/esp32h21/__init__.py
+${PYSITELIB}/espefuse/efuse/esp32h21/__init__.pyc
+${PYSITELIB}/espefuse/efuse/esp32h21/__init__.pyo
+${PYSITELIB}/espefuse/efuse/esp32h21/emulate_efuse_controller.py
+${PYSITELIB}/espefuse/efuse/esp32h21/emulate_efuse_controller.pyc
+${PYSITELIB}/espefuse/efuse/esp32h21/emulate_efuse_controller.pyo
+${PYSITELIB}/espefuse/efuse/esp32h21/fields.py
+${PYSITELIB}/espefuse/efuse/esp32h21/fields.pyc
+${PYSITELIB}/espefuse/efuse/esp32h21/fields.pyo
+${PYSITELIB}/espefuse/efuse/esp32h21/mem_definition.py
+${PYSITELIB}/espefuse/efuse/esp32h21/mem_definition.pyc
+${PYSITELIB}/espefuse/efuse/esp32h21/mem_definition.pyo
+${PYSITELIB}/espefuse/efuse/esp32h21/operations.py
+${PYSITELIB}/espefuse/efuse/esp32h21/operations.pyc
+${PYSITELIB}/espefuse/efuse/esp32h21/operations.pyo
+${PYSITELIB}/espefuse/efuse/esp32h4/__init__.py
+${PYSITELIB}/espefuse/efuse/esp32h4/__init__.pyc
+${PYSITELIB}/espefuse/efuse/esp32h4/__init__.pyo
+${PYSITELIB}/espefuse/efuse/esp32h4/emulate_efuse_controller.py
+${PYSITELIB}/espefuse/efuse/esp32h4/emulate_efuse_controller.pyc
+${PYSITELIB}/espefuse/efuse/esp32h4/emulate_efuse_controller.pyo
+${PYSITELIB}/espefuse/efuse/esp32h4/fields.py
+${PYSITELIB}/espefuse/efuse/esp32h4/fields.pyc
+${PYSITELIB}/espefuse/efuse/esp32h4/fields.pyo
+${PYSITELIB}/espefuse/efuse/esp32h4/mem_definition.py
+${PYSITELIB}/espefuse/efuse/esp32h4/mem_definition.pyc
+${PYSITELIB}/espefuse/efuse/esp32h4/mem_definition.pyo
+${PYSITELIB}/espefuse/efuse/esp32h4/operations.py
+${PYSITELIB}/espefuse/efuse/esp32h4/operations.pyc
+${PYSITELIB}/espefuse/efuse/esp32h4/operations.pyo
 ${PYSITELIB}/espefuse/efuse/esp32p4/__init__.py
 ${PYSITELIB}/espefuse/efuse/esp32p4/__init__.pyc
 ${PYSITELIB}/espefuse/efuse/esp32p4/__init__.pyo
@@ -221,21 +223,6 @@
 ${PYSITELIB}/espefuse/efuse/esp32s3/operations.py
 ${PYSITELIB}/espefuse/efuse/esp32s3/operations.pyc
 ${PYSITELIB}/espefuse/efuse/esp32s3/operations.pyo
-${PYSITELIB}/espefuse/efuse/esp32s3beta2/__init__.py
-${PYSITELIB}/espefuse/efuse/esp32s3beta2/__init__.pyc
-${PYSITELIB}/espefuse/efuse/esp32s3beta2/__init__.pyo
-${PYSITELIB}/espefuse/efuse/esp32s3beta2/emulate_efuse_controller.py
-${PYSITELIB}/espefuse/efuse/esp32s3beta2/emulate_efuse_controller.pyc
-${PYSITELIB}/espefuse/efuse/esp32s3beta2/emulate_efuse_controller.pyo
-${PYSITELIB}/espefuse/efuse/esp32s3beta2/fields.py
-${PYSITELIB}/espefuse/efuse/esp32s3beta2/fields.pyc
-${PYSITELIB}/espefuse/efuse/esp32s3beta2/fields.pyo
-${PYSITELIB}/espefuse/efuse/esp32s3beta2/mem_definition.py
-${PYSITELIB}/espefuse/efuse/esp32s3beta2/mem_definition.pyc
-${PYSITELIB}/espefuse/efuse/esp32s3beta2/mem_definition.pyo
-${PYSITELIB}/espefuse/efuse/esp32s3beta2/operations.py
-${PYSITELIB}/espefuse/efuse/esp32s3beta2/operations.pyc
-${PYSITELIB}/espefuse/efuse/esp32s3beta2/operations.pyo
 ${PYSITELIB}/espefuse/efuse/mem_definition_base.py
 ${PYSITELIB}/espefuse/efuse/mem_definition_base.pyc
 ${PYSITELIB}/espefuse/efuse/mem_definition_base.pyo
@@ -246,13 +233,18 @@
 ${PYSITELIB}/espefuse/efuse_defs/esp32c2.yaml
 ${PYSITELIB}/espefuse/efuse_defs/esp32c3.yaml
 ${PYSITELIB}/espefuse/efuse_defs/esp32c5.yaml
-${PYSITELIB}/espefuse/efuse_defs/esp32c5beta3.yaml
 ${PYSITELIB}/espefuse/efuse_defs/esp32c6.yaml
 ${PYSITELIB}/espefuse/efuse_defs/esp32c61.yaml
 ${PYSITELIB}/espefuse/efuse_defs/esp32h2.yaml
+${PYSITELIB}/espefuse/efuse_defs/esp32h21.yaml
+${PYSITELIB}/espefuse/efuse_defs/esp32h2_v0.0_v1.1.yaml
+${PYSITELIB}/espefuse/efuse_defs/esp32h4.yaml
 ${PYSITELIB}/espefuse/efuse_defs/esp32p4.yaml
 ${PYSITELIB}/espefuse/efuse_defs/esp32s2.yaml
 ${PYSITELIB}/espefuse/efuse_defs/esp32s3.yaml
+${PYSITELIB}/espefuse/efuse_interface.py
+${PYSITELIB}/espefuse/efuse_interface.pyc
+${PYSITELIB}/espefuse/efuse_interface.pyo
 ${PYSITELIB}/espsecure/__init__.py
 ${PYSITELIB}/espsecure/__init__.pyc
 ${PYSITELIB}/espsecure/__init__.pyo
@@ -265,6 +257,12 @@
 ${PYSITELIB}/espsecure/esp_hsm_sign/exceptions.py
 ${PYSITELIB}/espsecure/esp_hsm_sign/exceptions.pyc
 ${PYSITELIB}/espsecure/esp_hsm_sign/exceptions.pyo
+${PYSITELIB}/${WHEEL_INFODIR}/METADATA
+${PYSITELIB}/${WHEEL_INFODIR}/RECORD
+${PYSITELIB}/${WHEEL_INFODIR}/WHEEL
+${PYSITELIB}/${WHEEL_INFODIR}/entry_points.txt
+${PYSITELIB}/${WHEEL_INFODIR}/licenses/LICENSE
+${PYSITELIB}/${WHEEL_INFODIR}/top_level.txt
 ${PYSITELIB}/esptool/__init__.py
 ${PYSITELIB}/esptool/__init__.pyc
 ${PYSITELIB}/esptool/__init__.pyo
@@ -274,6 +272,9 @@
 ${PYSITELIB}/esptool/bin_image.py
 ${PYSITELIB}/esptool/bin_image.pyc
 ${PYSITELIB}/esptool/bin_image.pyo
+${PYSITELIB}/esptool/cli_util.py
+${PYSITELIB}/esptool/cli_util.pyc
+${PYSITELIB}/esptool/cli_util.pyo
 ${PYSITELIB}/esptool/cmds.py
 ${PYSITELIB}/esptool/cmds.pyc
 ${PYSITELIB}/esptool/cmds.pyo
@@ -283,6 +284,9 @@
 ${PYSITELIB}/esptool/loader.py
 ${PYSITELIB}/esptool/loader.pyc
 ${PYSITELIB}/esptool/loader.pyo
+${PYSITELIB}/esptool/logger.py
+${PYSITELIB}/esptool/logger.pyc
+${PYSITELIB}/esptool/logger.pyo
 ${PYSITELIB}/esptool/reset.py
 ${PYSITELIB}/esptool/reset.pyc
 ${PYSITELIB}/esptool/reset.pyo
@@ -301,27 +305,21 @@
 ${PYSITELIB}/esptool/targets/esp32c5.py
 ${PYSITELIB}/esptool/targets/esp32c5.pyc
 ${PYSITELIB}/esptool/targets/esp32c5.pyo
-${PYSITELIB}/esptool/targets/esp32c5beta3.py
-${PYSITELIB}/esptool/targets/esp32c5beta3.pyc
-${PYSITELIB}/esptool/targets/esp32c5beta3.pyo
 ${PYSITELIB}/esptool/targets/esp32c6.py
 ${PYSITELIB}/esptool/targets/esp32c6.pyc
 ${PYSITELIB}/esptool/targets/esp32c6.pyo
 ${PYSITELIB}/esptool/targets/esp32c61.py
 ${PYSITELIB}/esptool/targets/esp32c61.pyc
 ${PYSITELIB}/esptool/targets/esp32c61.pyo
-${PYSITELIB}/esptool/targets/esp32c6beta.py
-${PYSITELIB}/esptool/targets/esp32c6beta.pyc
-${PYSITELIB}/esptool/targets/esp32c6beta.pyo
 ${PYSITELIB}/esptool/targets/esp32h2.py
 ${PYSITELIB}/esptool/targets/esp32h2.pyc
 ${PYSITELIB}/esptool/targets/esp32h2.pyo
-${PYSITELIB}/esptool/targets/esp32h2beta1.py
-${PYSITELIB}/esptool/targets/esp32h2beta1.pyc
-${PYSITELIB}/esptool/targets/esp32h2beta1.pyo
-${PYSITELIB}/esptool/targets/esp32h2beta2.py
-${PYSITELIB}/esptool/targets/esp32h2beta2.pyc
-${PYSITELIB}/esptool/targets/esp32h2beta2.pyo
+${PYSITELIB}/esptool/targets/esp32h21.py
+${PYSITELIB}/esptool/targets/esp32h21.pyc
+${PYSITELIB}/esptool/targets/esp32h21.pyo
+${PYSITELIB}/esptool/targets/esp32h4.py
+${PYSITELIB}/esptool/targets/esp32h4.pyc
+${PYSITELIB}/esptool/targets/esp32h4.pyo
 ${PYSITELIB}/esptool/targets/esp32p4.py
 ${PYSITELIB}/esptool/targets/esp32p4.pyc
 ${PYSITELIB}/esptool/targets/esp32p4.pyo
@@ -331,28 +329,21 @@
 ${PYSITELIB}/esptool/targets/esp32s3.py
 ${PYSITELIB}/esptool/targets/esp32s3.pyc
 ${PYSITELIB}/esptool/targets/esp32s3.pyo
-${PYSITELIB}/esptool/targets/esp32s3beta2.py
-${PYSITELIB}/esptool/targets/esp32s3beta2.pyc
-${PYSITELIB}/esptool/targets/esp32s3beta2.pyo
 ${PYSITELIB}/esptool/targets/esp8266.py
 ${PYSITELIB}/esptool/targets/esp8266.pyc
 ${PYSITELIB}/esptool/targets/esp8266.pyo
+${PYSITELIB}/esptool/targets/stub_flasher/1/.DS_Store
 ${PYSITELIB}/esptool/targets/stub_flasher/1/README.md
 ${PYSITELIB}/esptool/targets/stub_flasher/1/esp32.json
 ${PYSITELIB}/esptool/targets/stub_flasher/1/esp32c2.json
 ${PYSITELIB}/esptool/targets/stub_flasher/1/esp32c3.json
 ${PYSITELIB}/esptool/targets/stub_flasher/1/esp32c5.json
-${PYSITELIB}/esptool/targets/stub_flasher/1/esp32c5beta3.json
 ${PYSITELIB}/esptool/targets/stub_flasher/1/esp32c6.json
 ${PYSITELIB}/esptool/targets/stub_flasher/1/esp32c61.json
-${PYSITELIB}/esptool/targets/stub_flasher/1/esp32c6beta.json
 ${PYSITELIB}/esptool/targets/stub_flasher/1/esp32h2.json
-${PYSITELIB}/esptool/targets/stub_flasher/1/esp32h2beta1.json
-${PYSITELIB}/esptool/targets/stub_flasher/1/esp32h2beta2.json
 ${PYSITELIB}/esptool/targets/stub_flasher/1/esp32p4.json
 ${PYSITELIB}/esptool/targets/stub_flasher/1/esp32s2.json
 ${PYSITELIB}/esptool/targets/stub_flasher/1/esp32s3.json
-${PYSITELIB}/esptool/targets/stub_flasher/1/esp32s3beta2.json
 ${PYSITELIB}/esptool/targets/stub_flasher/1/esp8266.json
 ${PYSITELIB}/esptool/targets/stub_flasher/2/LICENSE-APACHE
 ${PYSITELIB}/esptool/targets/stub_flasher/2/LICENSE-MIT
@@ -360,10 +351,14 @@
 ${PYSITELIB}/esptool/targets/stub_flasher/2/esp32.json
 ${PYSITELIB}/esptool/targets/stub_flasher/2/esp32c2.json
 ${PYSITELIB}/esptool/targets/stub_flasher/2/esp32c3.json
+${PYSITELIB}/esptool/targets/stub_flasher/2/esp32c5.json
 ${PYSITELIB}/esptool/targets/stub_flasher/2/esp32c6.json
+${PYSITELIB}/esptool/targets/stub_flasher/2/esp32c61.json
 ${PYSITELIB}/esptool/targets/stub_flasher/2/esp32h2.json
+${PYSITELIB}/esptool/targets/stub_flasher/2/esp32p4.json
 ${PYSITELIB}/esptool/targets/stub_flasher/2/esp32s2.json
 ${PYSITELIB}/esptool/targets/stub_flasher/2/esp32s3.json
+${PYSITELIB}/esptool/targets/stub_flasher/2/esp8266.json
 ${PYSITELIB}/esptool/uf2_writer.py
 ${PYSITELIB}/esptool/uf2_writer.pyc
 ${PYSITELIB}/esptool/uf2_writer.pyo
Index: distinfo
===================================================================
RCS file: /cvsroot/pkgsrc/comms/py-esptool/distinfo,v
retrieving revision 1.13
diff -u -r1.13 distinfo
--- distinfo	15 Apr 2025 15:42:11 -0000	1.13
+++ distinfo	19 Jul 2025 20:42:19 -0000
@@ -1,5 +1,6 @@
 $NetBSD: distinfo,v 1.13 2025/04/15 15:42:11 adam Exp $
 
-BLAKE2s (esptool-4.8.1.tar.gz) = 202045bc330c4cd76c2d4e26fcb1fb9211cc2ece7899f9598bb8bcfe4dabe307
-SHA512 (esptool-4.8.1.tar.gz) = 584d73d2ca501194db782cdb1bc3655e8f7655c4dcbf461877900dc5e0f85934b97712ce9be908d8ee44d8bcca233c6cfc91e63e54305bc9bc08d565eb515b5a
-Size (esptool-4.8.1.tar.gz) = 409512 bytes
+BLAKE2s (esptool-5.0.1.tar.gz) = 2169c6115850ba1ecb8979baa19d5936c6974d5ce920078cf93d9aa70702b30f
+SHA512 (esptool-5.0.1.tar.gz) = dc57f1a36ae0689c878d69c97e207e71f3dfc0b6cb551cc2425c0890329d6b2f1200158150c9a3c1f1d310296f07af4db47fe11b85f76e00140e49ade82eb7a2
+Size (esptool-5.0.1.tar.gz) = 373632 bytes
+SHA1 (patch-esptool_cli__util.py) = ed6379945e98a30343df9e3c873a6c563e7ad6ed
Index: patches/patch-esptool_cli__util.py
===================================================================
RCS file: patches/patch-esptool_cli__util.py
diff -N patches/patch-esptool_cli__util.py
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ patches/patch-esptool_cli__util.py	19 Jul 2025 20:42:19 -0000
@@ -0,0 +1,24 @@
+$NetBSD$
+
+Fix use of click >= 8.2.0.
+
+--- esptool/cli_util.py.orig	2025-07-19 20:28:53.595125845 +0000
++++ esptool/cli_util.py
+@@ -155,7 +155,7 @@ class AddrFilenamePairType(click.Path):
+ 
+     name = "addr-filename-pair"
+ 
+-    def get_metavar(self, param):
++    def get_metavar(self, param, ctx=None):
+         return "<address> <filename>"
+ 
+     def convert(
+@@ -294,7 +294,7 @@ class OptionEatAll(click.Option):
+         self._eat_all_parser = None
+         # Set the metavar dynamically based on the type's metavar
+         if self.type and hasattr(self.type, "name"):
+-            self.metavar = f"[{self.type.get_metavar(None) or self.type.name.upper()}]"
++            self.metavar = f"[{self.type.get_metavar(None, None) or self.type.name.upper()}]"
+ 
+     def add_to_parser(self, parser, ctx):
+         def parser_process(value, state):



Home | Main Index | Thread Index | Old Index