Here is a draft patch to add Appstream metainfo XML announcing the hardware handled by this package. The USB IDs were fetched from the kernel module cdc_acm, based on its listing in debian/esptool.udev. The change is untested, as I lacked the needed free disk space to install all dependencies. Including this information in the package will ensure programs mapping hardware to packages using Appstream information, like the isenkram package, will know that this package is useful on machines where the hardware is discovered. The appstream metadata file can be checked using this command after package build: appstreamcli validate-tree --no-net --explain debian/esptool diff --git a/debian/esptool.install b/debian/esptool.install new file mode 100644 index 0000000..84f3b9a --- /dev/null +++ b/debian/esptool.install @@ -0,0 +1 @@ +com.github.espressif.esptool.metainfo.xml usr/share/metainfo diff --git a/debian/patches/1000-appstream-metainfo.patch b/debian/patches/1000-appstream-metainfo.patch new file mode 100644 index 0000000..b5bc308 --- /dev/null +++ b/debian/patches/1000-appstream-metainfo.patch @@ -0,0 +1,159 @@ +Description: Added AppStream metainfo XML with hardware provide info. + This allow isenkram to propose this package when the relevant hardware is + present. +Author: Petter Reinholdtsen +Forwarded: no +Last-Update: 2024-08-23 +--- +Index: esptool-salsa/com.github.espressif.esptool.metainfo.xml +=================================================================== +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ esptool-salsa/com.github.espressif.esptool.metainfo.xml 2024-08-23 15:03:35.941332029 +0200 +@@ -0,0 +1,147 @@ ++<?xml version="1.0" encoding="UTF-8"?> ++<component> ++ <id>com.github.espressif.esptool</id> ++ <metadata_license>MIT</metadata_license> ++ <name>esptool</name> ++ <summary>create and flash firmware files to ESP8266 and ESP32 chips</summary> ++ <description> ++ <p>Communicate with the ROM bootloader in Espressif ESP8266 and ++ ESP32 chips to fash firmware files, create firmware images or read ++ OTP ROM or flash memory content such is manufacturer or device ++ IDs.</p> ++ </description> ++ <url type="homepage">https://github.com/espressif/esptool</url> ++ <provides> ++ <modalias>usb:*ic02isc02ip00in*</modalias> ++ <modalias>usb:*ic02isc02ip01in*</modalias> ++ <modalias>usb:*ic02isc02ip02in*</modalias> ++ <modalias>usb:*ic02isc02ip03in*</modalias> ++ <modalias>usb:*ic02isc02ip04in*</modalias> ++ <modalias>usb:*ic02isc02ip05in*</modalias> ++ <modalias>usb:*ic02isc02ip06in*</modalias> ++ <modalias>usb:v03EBp0030d*</modalias> ++ <modalias>usb:v0421p0001d*ic02isc02ipFFin*</modalias> ++ <modalias>usb:v0421p0007d*ic02isc02ipFFin*</modalias> ++ <modalias>usb:v0421p000Ed*ic02isc02ipFFin*</modalias> ++ <modalias>usb:v0421p002Fd*ic02isc02ipFFin*</modalias> ++ <modalias>usb:v0421p003Ad*ic02isc02ipFFin*</modalias> ++ <modalias>usb:v0421p0042d*ic02isc02ipFFin*</modalias> ++ <modalias>usb:v0421p0070d*ic02isc02ipFFin*</modalias> ++ <modalias>usb:v0421p0071d*ic02isc02ipFFin*</modalias> ++ <modalias>usb:v0421p007Bd*ic02isc02ipFFin*</modalias> ++ <modalias>usb:v0421p0088d*ic02isc02ipFFin*</modalias> ++ <modalias>usb:v0421p008Fd*ic02isc02ipFFin*</modalias> ++ <modalias>usb:v0421p0094d*ic02isc02ipFFin*</modalias> ++ <modalias>usb:v0421p0099d*ic02isc02ipFFin*</modalias> ++ <modalias>usb:v0421p00A0d*ic02isc02ipFFin*</modalias> ++ <modalias>usb:v0421p00ABd*ic02isc02ipFFin*</modalias> ++ <modalias>usb:v0421p00B0d*ic02isc02ipFFin*</modalias> ++ <modalias>usb:v0421p00E9d*ic02isc02ipFFin*</modalias> ++ <modalias>usb:v0421p00FCd*ic02isc02ipFFin*</modalias> ++ <modalias>usb:v0421p0108d*ic02isc02ipFFin*</modalias> ++ <modalias>usb:v0421p010Ed*ic02isc02ipFFin*</modalias> ++ <modalias>usb:v0421p0128d*ic02isc02ipFFin*</modalias> ++ <modalias>usb:v0421p0134d*ic02isc02ipFFin*</modalias> ++ <modalias>usb:v0421p0154d*ic02isc02ipFFin*</modalias> ++ <modalias>usb:v0421p0178d*ic02isc02ipFFin*</modalias> ++ <modalias>usb:v0421p01D0d*ic02isc02ipFFin*</modalias> ++ <modalias>usb:v0421p01D4d*ic02isc02ipFFin*</modalias> ++ <modalias>usb:v0421p01F5d*ic02isc02ipFFin*</modalias> ++ <modalias>usb:v0421p0223d*ic02isc02ipFFin*</modalias> ++ <modalias>usb:v0421p026Cd*ic02isc02ipFFin*</modalias> ++ <modalias>usb:v0421p0275d*ic02isc02ipFFin*</modalias> ++ <modalias>usb:v0421p02D9d*ic02isc02ipFFin*</modalias> ++ <modalias>usb:v0421p02E3d*ic02isc02ipFFin*</modalias> ++ <modalias>usb:v0421p0302d*ic02isc02ipFFin*</modalias> ++ <modalias>usb:v0421p0335d*ic02isc02ipFFin*</modalias> ++ <modalias>usb:v0421p03CDd*ic02isc02ipFFin*</modalias> ++ <modalias>usb:v0421p0418d*ic02isc02ipFFin*</modalias> ++ <modalias>usb:v0421p0419d*ic02isc02ipFFin*</modalias> ++ <modalias>usb:v0421p0420d*ic02isc02ipFFin*</modalias> ++ <modalias>usb:v0421p0425d*ic02isc02ipFFin*</modalias> ++ <modalias>usb:v0421p042Dd*ic02isc02ipFFin*</modalias> ++ <modalias>usb:v0421p042Fd*ic02isc02ipFFin*</modalias> ++ <modalias>usb:v0421p0445d*ic02isc02ipFFin*</modalias> ++ <modalias>usb:v0421p044Dd*ic02isc02ipFFin*</modalias> ++ <modalias>usb:v0421p046Ed*ic02isc02ipFFin*</modalias> ++ <modalias>usb:v0421p0475d*ic02isc02ipFFin*</modalias> ++ <modalias>usb:v0421p0481d*ic02isc02ipFFin*</modalias> ++ <modalias>usb:v0421p0486d*ic02isc02ipFFin*</modalias> ++ <modalias>usb:v0421p048Ed*ic02isc02ipFFin*</modalias> ++ <modalias>usb:v0421p04B2d*ic02isc02ipFFin*</modalias> ++ <modalias>usb:v0421p04C9d*ic02isc02ipFFin*</modalias> ++ <modalias>usb:v0421p04CEd*ic02isc02ipFFin*</modalias> ++ <modalias>usb:v0421p04D8d*ic02isc02ipFFin*</modalias> ++ <modalias>usb:v0421p04DFd*ic02isc02ipFFin*</modalias> ++ <modalias>usb:v0421p04E6d*ic02isc02ipFFin*</modalias> ++ <modalias>usb:v0421p04F0d*ic02isc02ipFFin*</modalias> ++ <modalias>usb:v0421p0508d*ic02isc02ipFFin*</modalias> ++ <modalias>usb:v0424p274Ed*</modalias> ++ <modalias>usb:v045Bp023Cd*</modalias> ++ <modalias>usb:v045Bp0248d*</modalias> ++ <modalias>usb:v045Bp024Dd*</modalias> ++ <modalias>usb:v0482p0203d*</modalias> ++ <modalias>usb:v04E2p1400d*</modalias> ++ <modalias>usb:v04E2p1401d*</modalias> ++ <modalias>usb:v04E2p1402d*</modalias> ++ <modalias>usb:v04E2p1403d*</modalias> ++ <modalias>usb:v04E2p1410d*</modalias> ++ <modalias>usb:v04E2p1411d*</modalias> ++ <modalias>usb:v04E2p1412d*</modalias> ++ <modalias>usb:v04E2p1414d*</modalias> ++ <modalias>usb:v04E2p1420d*</modalias> ++ <modalias>usb:v04E2p1422d*</modalias> ++ <modalias>usb:v04E2p1424d*</modalias> ++ <modalias>usb:v04E7p6651d*ic02isc02ipFFin*</modalias> ++ <modalias>usb:v04E8p685Dd*</modalias> ++ <modalias>usb:v0572p1321d*</modalias> ++ <modalias>usb:v0572p1324d*</modalias> ++ <modalias>usb:v0572p1328d*</modalias> ++ <modalias>usb:v0572p1329d*</modalias> ++ <modalias>usb:v0572p1340d*</modalias> ++ <modalias>usb:v0572p1349d*</modalias> ++ <modalias>usb:v058Bp0041d*</modalias> ++ <modalias>usb:v05F9p4002d*</modalias> ++ <modalias>usb:v076Dp0006d*</modalias> ++ <modalias>usb:v079Bp000Fd*</modalias> ++ <modalias>usb:v0803p3095d*</modalias> ++ <modalias>usb:v0870p0001d*</modalias> ++ <modalias>usb:v09D8p0320d*</modalias> ++ <modalias>usb:v0ACEp1602d*</modalias> ++ <modalias>usb:v0ACEp1608d*</modalias> ++ <modalias>usb:v0ACEp1611d*</modalias> ++ <modalias>usb:v0C26p0020d*</modalias> ++ <modalias>usb:v0CA6pA050d*</modalias> ++ <modalias>usb:v0E8Dp0003d*</modalias> ++ <modalias>usb:v0E8Dp2000d*</modalias> ++ <modalias>usb:v0E8Dp3329d*</modalias> ++ <modalias>usb:v108Cp0159d*</modalias> ++ <modalias>usb:v108Cp0168d*</modalias> ++ <modalias>usb:v108Cp0169d*</modalias> ++ <modalias>usb:v11CAp0201d*</modalias> ++ <modalias>usb:v1519p0452d*</modalias> ++ <modalias>usb:v1576p03B1d*</modalias> ++ <modalias>usb:v17EFp7000d*</modalias> ++ <modalias>usb:v1965p0018d*</modalias> ++ <modalias>usb:v1BBBp0003d*</modalias> ++ <modalias>usb:v1BC7p0021d*</modalias> ++ <modalias>usb:v1BC7p0023d*</modalias> ++ <modalias>usb:v20DFp0001d*</modalias> ++ <modalias>usb:v2184p001Cd*</modalias> ++ <modalias>usb:v2184p0036d*</modalias> ++ <modalias>usb:v22B8p2D91d*</modalias> ++ <modalias>usb:v22B8p2D92d*</modalias> ++ <modalias>usb:v22B8p2D93d*</modalias> ++ <modalias>usb:v22B8p2D95d*</modalias> ++ <modalias>usb:v22B8p2D96d*</modalias> ++ <modalias>usb:v22B8p2D97d*</modalias> ++ <modalias>usb:v22B8p2D99d*</modalias> ++ <modalias>usb:v22B8p2D9Ad*</modalias> ++ <modalias>usb:v22B8p6425d*</modalias> ++ <modalias>usb:v22B8p7000d*</modalias> ++ <modalias>usb:v27C6p5395d*</modalias> ++ <modalias>usb:v2912p0001d*</modalias> ++ <modalias>usb:v32A7p0000d*</modalias> ++ <modalias>usb:vFFF0p0100d*</modalias> ++ </provides> ++</component> diff --git a/debian/patches/series b/debian/patches/series new file mode 100644 index 0000000..42e8b1a --- /dev/null +++ b/debian/patches/series @@ -0,0 +1 @@ +1000-appstream-metainfo.patch
Is there anything I can do to help with getting the Appstream metadata XML file into the archive?
I submitted the patch upstream, including a setup.py change to install the file in /usr/share/metainfo/, as <URL:https://github.com/espressif/esptool/pull/1046>.
Is the esptool package still being maintained? I notice no upload for many years and a new upstream available, and no response in this ticket to my questions. Note, upstream did not want to maintain the list of supported hardware and believe it is better fixed on the Debian side, see forwarded github issue. If the Debian maintainer do not want to maintain this list either, I see no point in pushing the issue any further.
There was an upload by Faidon in 2024, adding to CC:. Generally speaking, it would seem to me that upstreams are more suited to maintain such lists than downstreams... Best, Chris
[Chris Hofstaedtler] I agree. Feel free to chip in on github if you believe it will help. In the mean time, my priority is improving Debian with better hardware to package mappings. 135 packages already announce their supported hardware using AppStream. I hope we can make it to 136 with this package. :)
Yeah I made three major uploads in 2023-2024, but I very explicitly made them as -0.1 NMUs: I wanted to see a few things happen, but I did not want to commit on maintaining this in the longer-term. So while I've been subscribed to the PTS and had seen this bug when it was first posted, I refrained from commenting on it since I am not nor want to be the maintainer. Sorry :) I do have the bandwidth for maybe another upload if necessary, but I agree that this package needs a bit more "permanent" love, perhaps under the auspices of a team like the Electronics team. (To be clear, I had an ongoing off-list thread with Milan when I made these uploads who was gracious enough to both welcome these uploads and to invite me to be a comaintainer.) With that out of the day, my 2¢ with regards to this bug: I know very little about AppStream, but this proposal doesn't make sense to me. cdc_acm is just a driver for modems and serial devices and the likes. Some ESP32 devices support this interface; for these devices, cdc_acm creates /dev/ttyACM nodes, that esptool then uses as a transport for communicating/flashing these devices using a bespoke protocol. esptool targets only a set of very specific devices, which represent a tiny fraction of all the possible cdc_acm devices out there. If this AppStream inclusion means that esptool will be recommended to every CDC ACM device, then I think that would be very confusing to users and generally not the right thing to do. Regards, Faidon
[Faidon Liambotis] Perhaps <URL: http://www.hungry.com/~pere/blog/121_packages_in_Debian_mapped_to_hardware_for_automatic_recommendation.html > explain a bit how the AppStream hardware information work. The initial patch was based on udev rules, which in my experience generally is a good indicator of hardware specific packages that should announce their supported hardware using AppStream. I do not know esptool enough to say what make sense or not in this specific case.
++ <modalias>usb:v0421p0001d*ic02isc02ipFFin*</modalias> ++ <modalias>usb:v0421p0007d*ic02isc02ipFFin*</modalias> ++ <modalias>usb:v0421p000Ed*ic02isc02ipFFin*</modalias> ++ <modalias>usb:v0421p002Fd*ic02isc02ipFFin*</modalias> ... these are USB IDs of Nokia phones. Clearly offering esptool for them makes zero sense. Wherever the data came from, taking it as the truth seems like a bad plan. Chris
[Chris Hofstaedtler] It is based on debian/esptool.udev listing kernel modules usb-serial and cdc_acm, and 'modinfo cdc_acm' listing these modalias entries.