#1087555 ITP: espflash -- command-line tool for flashing Espressif devices

#1087555#5
Date:
2024-11-15 08:59:53 UTC
From:
To:
* Package name    : espflash
  Version         : 3.2.0
  Upstream Contact: https://github.com/esp-rs/espflash/issues
* URL             : https://github.com/esp-rs/espflash
* License         : Apache-2.0 or Expat
  Programming Lang: Rust
  Description     : command-line tool for flashing Espressif devices

 espflash is a command-line tool
 for flashing Espressif devices.
 .
 Supports the ESP32, ESP32-C2/C3/C6, ESP32-H2, ESP32-S2/S3, and ESP8266.

This package will be maintained in the collaborative debian section of
salsa, at <https://salsa.debian.org/debian/espflash>.
-----BEGIN PGP SIGNATURE-----

iQJABAEBCgAqFiEEn+Ppw2aRpp/1PMaELHwxRsGgASEFAmc3DYYMHGRyQGpvbmVz
LmRrAAoJECx8MUbBoAEhRnkP+QGP5U/JYucSUkaovLJWaUEa2nvulK47vOoO65Xu
IKBqXu0vvWCA7aKFrReYttGE8llgYZOAQA0OlsnugQrcdnX/uij6DvQhVnI0ttG9
PSW8D5E0Z43hhWIiezRjGIK2zxsS3mXTBVZ53Kbabq6p0Ey0WG1VUhchx4qPiDhT
YNOz8WLaF1DZd0UXEf1vM3Gr+6295byJkCwUZ8CKCalO/XaAdnk2N3yIT3gQPKFs
Gyx9GQVVDT9SZw2BKHc6afc3kAbowoTMZ4qJfEWaucUMX7l7D1WBosVtDUPL0j2l
nz+kE7YDNqpyYIkDrZyvkhEwf4NwQQIyBA7A9eALyLqCIfk3E38c5XREhKonS2vT
MdYw5CPP0wtYFricNEPOvb92e0Xe+plSzNiu3ZUVLHh28qxtGJeWbVrVuAPcgDRQ
HHhTbsR6FivbM7cyv/adb3vqH50jLAGFSf04Wt8y8Hk/0NVQuFFUWgpc4q+lZ8E5
ya1hq4tBRtJ0EJ/MUksCk02/o6eVrJGeEF1J65hOJQAT5VUyJMw0Za6zorzr1IWL
tWCx2icrcAD7kQqyofO8cWetBlgXpgrh65WAwBrBXwGtlKzaxmQJY8oBLecNr41W
6r4xXb8sIxrSxY7kb+FEWzUkSpIeHCcIXURkWFQB3S78gbGHLM/Zq+7tEUGmqiJJ
cGqP
=9cYu
-----END PGP SIGNATURE-----

#1087555#10
Date:
2024-11-15 11:41:52 UTC
From:
To:
Hi Jonas,

Thank you for packaging espflash!

espflash is a rewrite of esptool, both of which are maintained by
Espressif. I have spent a considerable amount of time contributing to
esptool so I'm a little familiar with some of the issues there.

Like esptool, espflash's upstream source contains precompiled
binaries[1], built from freely licensed sources, that are clearly not
Debian main-material. In the case of esptool and stubs specifically, my
understanding is that they are not strictly needed but cripple the
functionality a bit if they're missing. I'm not sure about espflash.

1: https://github.com/esp-rs/espflash/tree/main/espflash/resources

For esptool, we've managed to build several, but not all, of the stubs
with the toolchain that's in Debian. See the changelog for esptool
4.5.1+dfsg-0.1, as well as the history outlined in #1043168.

My understanding is that with espflash, Espressif also rewrote the stubs
in Rust, and therefore you won't be able to reuse our approach. Judging
from the READMEs[2][3], it may make sense to package the stubs in
separate package(s) so that both esptool and espflash can benefit from
them.

2: https://github.com/esp-rs/esp-flasher-stub
3: https://github.com/espressif/esptool-legacy-flasher-stub/

Best of luck & let me know if you need another set of eyes or help.

Faidon

#1087555#15
Date:
2024-11-15 16:49:10 UTC
From:
To:
Hi Faidon,

Quoting Faidon Liambotis (2024-11-15 12:41:52)

That's very helpful information.  Thanks a lot!

espflash has been almost-ready for some time now, with the main
showstopper being those annoying binary blobs, so your contribution
here is great.

 - Jonas

#1087555#20
Date:
2024-11-15 16:59:22 UTC
From:
To:
Release 3.2.0 succesfully builds as an unofficial draft package,
embedding 16 crates (13 missing, 2 outdated, 1 ahead)
which needs to be packaged before this can officially enter Debian.
The built binary is untested.

Main task now is to package the remaining missing Rust crates.

Here's how you can help:

As user running Debian, you can test this draft package: Either build it
yourself from source or tell (by posting to this bugreport) if you
prefer testing the binary that I've built - then I will share that.

As developer (any developer: you need not be official member of Debian!)
you can join the Debian Rust team and help package these missing crates:
https://salsa.debian.org/debian/espflash/-/blob/debian/latest/debian/TODO

 - Jonas

#1087555#27
Date:
2024-11-15 20:17:06 UTC
From:
To:
Hi Jonas,

do you have a personal usecase for espflash ? Don't take this the wrong
way; I have and was wondering if you maybe want to co-maintain this.
It's relevant to me as I work with said devices in my freetime.

best,

werdahias

#1087555#32
Date:
2024-11-15 23:45:15 UTC
From:
To:
Quoting Matthias Geiger (2024-11-15 21:17:06)

You are most welcome to join the party of maintaining this!

 - Jonas

#1087555#37
Date:
2025-08-28 09:14:52 UTC
From:
To:
[sent again (many moons later) via Debbugs, in case spamfilters ate it]

Quoting Matthias Geiger (2024-11-15 21:17:06)

You are most welcome to join the party of maintaining this!

 - Jonas

#1087555#42
Date:
2025-08-28 09:15:15 UTC
From:
To:
Release 4.0.1 succesfully builds as an unofficial draft package,
when embedding 21 crates (12 missing, 5 outdated, 4 ahead)
which needs packaging as well before this can officially enter Debian.
The built binary is untested.

Main task now is to package those other Rust crates.

Here's how you can help:

As user running Debian, you can test this draft package:
Either build it yourself (clone and read debian/README.source),
or if you want to test the binary that I've built
then tell by posting to this bugreport and I will share that.

As developer (any developer: you need not be official member of Debian!)
you can join the Debian Rust team and help package the missing crates:
https://salsa.debian.org/debian/espflash/-/blob/debian/latest/debian/TODO

 - Jonas

#1087555#51
Date:
2026-04-20 21:01:23 UTC
From:
To:
Hi Jonas,

are you still working on this?

The current state shows 14 missing crates for me.

best,

werdahias

#1087555#56
Date:
2026-04-21 04:36:14 UTC
From:
To:
Quoting Matthias Geiger (2026-04-20 23:01:23)

Yes. Let me make an updated status page...

 - Jonas

#1087555#61
Date:
2026-04-21 04:37:22 UTC
From:
To:
Release 4.4.0 succesfully builds as an unofficial draft package,
when embedding 17 crates (13 missing, 3 outdated, 1 ahead)
which needs packaging as well before this can officially enter Debian.
The built binary is untested.

Main task now is to package those other Rust crates.

Here's how you can help:

As user running Debian, you can test this draft package:
Either build it yourself (clone and read debian/README.source),
or if you want to test the binary that I've built
then tell by posting to this bugreport and I will share that.

As developer (any developer: you need not be official member of Debian!)
you can join the Debian Rust team and help package the missing crates:
https://salsa.debian.org/debian/espflash/-/blob/debian/latest/debian/TODO

 - Jonas