Skip to content

Commit a4ddac0

Browse files
dobairolandradimkarnis
authored andcommitted
change: Switch to the espressif/esp-flasher-stub and use it as the no. 2 stub
https://github.com/esp-rs/esp-flasher-stub is archived and not actively maintained. Switch to the https://github.com/espressif/esp-flasher-stub stub instead. Don't fall back to another version of the stub if the target is not found because we want the new stub to be an independent replacement without the need to keep the old one.
1 parent 3a4c15c commit a4ddac0

17 files changed

+288
-242
lines changed

ci/download_flasher_stubs.py

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -31,17 +31,21 @@
3131
},
3232
{
3333
"STUB_SET_VERSION": "2",
34-
"DOWNLOAD_URL": "https://github.com/esp-rs/esp-flasher-stub/releases/download",
35-
"TAG_URL": "https://github.com/esp-rs/esp-flasher-stub/releases/tag",
36-
"VERSION": "v0.3.0",
34+
"DOWNLOAD_URL": "https://github.com/espressif/esp-flasher-stub/releases/download",
35+
"TAG_URL": "https://github.com/espressif/esp-flasher-stub/releases/tag",
36+
"VERSION": "v0.1.0",
3737
"FILE_LIST": (
3838
"esp32",
3939
"esp32c2",
4040
"esp32c3",
41+
"esp32c5",
4142
"esp32c6",
43+
"esp32c61",
4244
"esp32h2",
45+
"esp32p4",
4346
"esp32s2",
4447
"esp32s3",
48+
"esp8266",
4549
),
4650
"LICENSE": "dual licensed under the Apache License Version 2.0 or the MIT "
4751
"license",

esptool/__init__.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -353,8 +353,8 @@ def check_flash_size(esp: ESPLoader, address: int, size: int) -> None:
353353
# is implied globally
354354
@click.option(
355355
"--stub-version",
356-
default=os.environ.get("ESPTOOL_STUB_VERSION", StubFlasher.STUB_SUBDIRS[0]),
357-
type=click.Choice(StubFlasher.STUB_SUBDIRS),
356+
default=os.environ.get("ESPTOOL_STUB_VERSION", "1"),
357+
type=click.Choice(["1", "2"]),
358358
# not a public option and is not subject to the semantic versioning policy
359359
hidden=True,
360360
)
@@ -391,7 +391,7 @@ def cli(
391391

392392
def prepare_esp_object(ctx):
393393
"""Prepare ESP object for operation"""
394-
StubFlasher.set_preferred_stub_subdir(ctx.obj["stub_version"])
394+
StubFlasher.set_stub_subdir(ctx.obj["stub_version"])
395395
# Commands that require an ESP object (flash read/write, etc.)
396396
# 1) Get the ESP object
397397
#######################

esptool/loader.py

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -157,7 +157,7 @@ def stub_and_esp32_function_only(func):
157157
class StubFlasher:
158158
STUB_DIR = os.path.join(os.path.dirname(__file__), "targets", "stub_flasher")
159159
# directories will be searched in the order of STUB_SUBDIRS
160-
STUB_SUBDIRS = ["1", "2"]
160+
STUB_SUBDIRS = ["1"]
161161

162162
def __init__(self, chip_name):
163163
with open(self.get_json_path(chip_name)) as json_file:
@@ -194,10 +194,8 @@ def get_json_path(self, chip_name):
194194
)
195195

196196
@classmethod
197-
def set_preferred_stub_subdir(cls, subdir):
198-
if subdir in cls.STUB_SUBDIRS:
199-
cls.STUB_SUBDIRS.remove(subdir)
200-
cls.STUB_SUBDIRS.insert(0, subdir)
197+
def set_stub_subdir(cls, subdir):
198+
cls.STUB_SUBDIRS = [subdir]
201199

202200

203201
class ESPLoader(object):

esptool/targets/stub_flasher/2/LICENSE-APACHE

Lines changed: 201 additions & 201 deletions
Large diffs are not rendered by default.
Lines changed: 18 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,21 @@
1-
Copyright 2022 esp-rs
1+
MIT License
22

3-
Permission is hereby granted, free of charge, to any
4-
person obtaining a copy of this software and associated
5-
documentation files (the "Software"), to deal in the
6-
Software without restriction, including without
7-
limitation the rights to use, copy, modify, merge,
8-
publish, distribute, sublicense, and/or sell copies of
9-
the Software, and to permit persons to whom the Software
10-
is furnished to do so, subject to the following
11-
conditions:
3+
Copyright (c) 2025 Espressif Systems (Shanghai) CO LTD
124

13-
The above copyright notice and this permission notice
14-
shall be included in all copies or substantial portions
15-
of the Software.
5+
Permission is hereby granted, free of charge, to any person obtaining a copy
6+
of this software and associated documentation files (the "Software"), to deal
7+
in the Software without restriction, including without limitation the rights
8+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9+
copies of the Software, and to permit persons to whom the Software is
10+
furnished to do so, subject to the following conditions:
1611

17-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF
18-
ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED
19-
TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
20-
PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT
21-
SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
22-
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
23-
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR
24-
IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
25-
DEALINGS IN THE SOFTWARE.
12+
The above copyright notice and this permission notice shall be included in all
13+
copies or substantial portions of the Software.
14+
15+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21+
SOFTWARE.
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
# Licensing
22

3-
The binaries in JSON format distributed in this directory are dual licensed under the Apache License Version 2.0 or the MIT license. They were released at https://github.com/esp-rs/esp-flasher-stub/releases/tag/v0.3.0 from where the sources can be obtained.
3+
The binaries in JSON format distributed in this directory are dual licensed under the Apache License Version 2.0 or the MIT license. They were released at https://github.com/espressif/esp-flasher-stub/releases/tag/v0.1.0 from where the sources can be obtained.

esptool/targets/stub_flasher/2/esp32.json

Lines changed: 5 additions & 1 deletion
Large diffs are not rendered by default.
Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1,5 @@
1-
{"entry":1077411840,"text":"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E7wEBBOEBPyTBQAEs4qVQJO8FABRwQoFNpUDKoUMBUWBRSKGlwAAAOeAgKIqhK6JBUWBRVaGlwAAAOeA4KETBgAEY+PEACKFY+PEAM6FE3r6ABOE/P+zeaQAbYwFRYFFJoaXAAAA54CgnrMGgEEz9qYA7Y4SCigIKprShMhAjEDYRJxEVY3RjUGPs+c3AZzE2MSMwMjAsagFRYFFJoaXAAAA54DgmqqJLooFRYFFIoaXAAAA54DAmSqLLoQFRYFFVoaXAAAA54AgmRMGAARj48QAooVj48QAWoUzBoBBs3ZGATN2NgH9HDP0vACz+awAMksTRfT/k8X5/5PG9v8TRvb/M3nJADN93QCz/b0As/urAFJGtyYMYI21OUWiRWNttRgTlSUAtwXLP5OFhQoulQhBwUUSRmNxtRgSBSwILpVMQQhBAUkBS7P7xQCCRTN8tQA3tXwHkwwVUzcFyz8TDQUIkw0ABDNlLAGz5WsBTY1jCQUQYxsJAjMFYEEzdasAMwWVA22BapUDRQUAEwUFAmMJDAKzBYBBs3W8ALOFlQPtgeqVg8QFAA2oMwUgQTN1qQAzBZUDbYFqlQNFBQDjGwz8swVwQbP1uwCzhZUD7YHqlYPFBQCThAUCs2V8AZnhkwQFBCaFl/D//+eAYBGTFQUBwYGThWX9kcXCRZcAAADngOALBUWBRSaGlwAAAOeAIISqia6KE4YE/AVFgUWXAAAA54DggiqKLoQzhp1ABUWBRZcAAADngCCCY+O0AaKFY+O0AVKFE7YEBDMGwECzdlYBM3Y2ARO3FAB9F/mNeY0TRfX/k8X1/xNG9v+Txvb/s/vbADN8zAAze7sAM3mpAN21CAKDIMUEIEVkQQMpBQSDKcUDAyqFA4MqRQMDKwUDgyvFAgMshQKDLEUCAy0FAoMtxQFxYYKAAABCBUGBNyY4QBMGBmsKBTKVHEE3JThAEwXlo2OEpwAuhYKHAACqhQlFFwMAAGcAI8CqhQ1FFwMAAGcAY7+qhRFFFwMAAGcAo76qhRVFFwMAAGcA472qhRlFFwMAAGcAI72qhR1FFwMAAGcAY7yqhSFFFwMAAGcAo7uqhSVFFwMAAGcA47qqhSlFFwMAAGcAI7qqhS1FFwMAAGcAY7mqhTFFFwMAAGcAo7iqhTVFFwMAAGcA47eqhTlFFwMAAGcAI7eqhT1FFwMAAGcAY7YAAD4aOEA+GjhAPho4QD4aOEA+GjhAPho4QD4aOEA+GjhAPho4QD4aOEA+GjhAPho4QD4aOEA+GjhAPho4QD4aOEA+GjhAPho4QD4aOEA+GjhAPho4QD4aOEA+GjhAPho4QD4aOEA+GjhAPho4QD4aOEA+GjhAPho4QD4aOEA+GjhAPho4QD4aOEA+GjhAPho4QD4aOEA+GjhAPho4QD4aOEA+GjhAPho4QA==","text_start":1077411840,"data":"0As4QKIMOEDeDDhA0As4QIoOOECiDDhATA04QLQNOEDoDjhAFA84QOIUOEAyDThA4hQ4QOgNOEDQCzhAogw4QN4MOEBeDzhAgA04QI4MOED4EThAZBA4QCgNOECiDDhAAAEcAh0OGAMeFhQPGREECB8bDRcVExAHGgwSBgsFCgnA29zb3QAAAAEAAAACAAAAAwAAAAQAAAAFAAAABgAAAAcAAAAIAAAACQAAAAoAAAALAAAADAAAAA0AAAAOAAAADwAAAD4aOEA+GjhAAAAAAD4aOEA+GjhAPho4QAAAAAA+GjhAPho4QD4aOEAAAAAAPho4QAQAAAAEAAAABAAAAAQAAAAMAAAABAAAAAwAAAAEAAAABAAAAAwAAABAAAAAgAAAAAAIAAAAAAAQQAAAAAAgAAAEAAAABAAAACAAAAACAAAACAAAAAgAAAAIAAAACAAAABAAAAAIAAAAEAAAAAgAAAAIAAAAEAAAAL////9///////f//////++//////9////v////7////3/////3///8=","data_start":1070268448}
1+
{
2+
"entry": 1077411840,
3+
"text": "ARFoAAbOAsY5IDJFEcEVIPJABWGCgAERBs4izAAQIyak/gMlxP49KAEA8kBiRAVhgoABEQbOIswAECMmpP4DJcT+JSgBAPJAYkQFYYKAAREGziLMABAjJqT+AQDyQGJEBWGCgAERBs4izAAQIyak/gEA8kBiRAVhgoABEQbOIswAECMmpP4BAPJAYkQFYYKA",
4+
"text_start": 1077411840
5+
}

0 commit comments

Comments
 (0)