Device firmware can be accompanied by AppStream upstream metadata, to be incorporated by a distribution. Tools like
fwupd make use of this metadata to automatically update firmware of devices found in the machine.
Firmware can ship one or more files in /usr/share/appdata/%{id}.metainfo.xml
.
A firmware meta-info file should look like this:
<?xml version="1.0" encoding="UTF-8"?>
<component type="firmware">
<id>84f40464-9272-4ef7-9399-cd95f12da696</id>
<name>ColorHugALS Firmware</name>
<summary>Firmware for the ColorHugALS Ambient Light Sensor</summary>
<description>
<p>
Updating the firmware on your ColorHugALS device improves performance and
adds new features.
</p>
</description>
<url type="homepage">http://www.hughski.com/</url>
<metadata_license>CC0-1.0</metadata_license>
<project_license>GPL-2.0+</project_license>
<developer_name>Hughski Limited</developer_name>
<releases>
<release version="3.0.2" timestamp="1424116753">
<location>http://www.hughski.com/downloads/colorhug-als/firmware/colorhug-als-3.0.2.cab</location>
<description>
<p>This stable release fixes the following bugs:</p>
<ul>
<li>Fix the return code from GetHardwareVersion</li>
<li>Scale the output of TakeReadingRaw by the datasheet values</li>
</ul>
</description>
</release>
</releases>
</component>
You can find additional information on how to create a complete firmware package upstream in the
README document of fwupd.