#1076993 qhimdtransfer: Add Appstream metainfo announcing HW support

Package:
qhimdtransfer
Source:
qhimdtransfer
Description:
Transfer software for HiMD Walkman
Submitter:
Petter Reinholdtsen
Date:
2025-03-11 18:00:03 UTC
Severity:
normal
Tags:
#1076993#5
Date:
2024-07-25 05:14:05 UTC
From:
To:
Here is a patch to add Appstream metainfo XML announcing the hardware
handled by this package.

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.

Note, this also applies to the minidisk-utils package.

This is a useful way to check the appstream metainfo:

  appstreamcli validate-tree --explain debian/qhimdtransfer
  appstreamcli validate-tree --explain debian/minidisk-utils

diff --git a/debian/minidisc-utils.install b/debian/minidisc-utils.install
index 6993a21..37a8176 100644
--- a/debian/minidisc-utils.install
+++ b/debian/minidisc-utils.install
@@ -1,3 +1,4 @@
 himdcli/himdcli /usr/bin
 netmdcli/netmdcli /usr/bin
 netmd/etc/netmd.rules /lib/udev/rules.d/
+de.fu_berlin.physik.linux_minidisk.utils.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..3d65fa9
--- /dev/null
+++ b/debian/patches/1000-appstream-metainfo.patch
@@ -0,0 +1,121 @@
+Description: Added AppStream metainfo XML with hardware provide info.
+ This allow isenkram to propose this package when the hardware is
+ present.
+Author: Petter Reinholdtsen
+Forwarded: no
+Last-Update: 2024-07-25
+---
+Index: linux-minidisc-debian-upstream/de.fu_berlin.physik.linux_minidisk.utils.metainfo.xml
+===================================================================
+--- /dev/null  1970-01-01 00:00:00.000000000 +0000
++++ linux-minidisc-debian-upstream/de.fu_berlin.physik.linux_minidisk.utils.metainfo.xml     2024-07-25 05:05:15.955057068 +0000
+@@ -0,0 +1,52 @@
++<?xml version="1.0" encoding="UTF-8"?>
++<component type="desktop">
++  <id>de.fu_berlin.physik.linux_minidisk.utils</id>
++  <metadata_license>MIT</metadata_license>
++  <name>minidisc-utils</name>
++  <summary>Command line utilities for MiniDisc access</summary>
++  <description>
++    <p>This package contains several utilities which allow one to
++    access NetMD and HiMD devices through a command line
++    interface. The utilities allow one to transfer tracks to and from
++    NetMD and HiMD devices as well as erase tracks, display tracks and
++    renaming tracks among other functions supported by libnetmd and
++    libhimd libraries.</p>
++  </description>
++  <url type="homepage">https://wiki.physik.fu-berlin.de/linux-minidisc</url>
++  <provides>
++    <modalias>usb:v054Cp017Ed*</modalias>
++    <modalias>usb:v054Cp0180d*</modalias>
++    <modalias>usb:v054Cp0182d*</modalias>
++    <modalias>usb:v054Cp0184d*</modalias>
++    <modalias>usb:v054Cp0186d*</modalias>
++    <modalias>usb:v054Cp01E9d*</modalias>
++    <modalias>usb:v054Cp0219d*</modalias>
++    <modalias>usb:v054Cp021Bd*</modalias>
++    <modalias>usb:v054Cp022Cd*</modalias>
++    <modalias>usb:v054Cp023Cd*</modalias>
++    <modalias>usb:v054Cp0286d*</modalias>
++    <modalias>usb:v054Cp0113d*</modalias>
++    <modalias>usb:v054Cp014Cd*</modalias>
++    <modalias>usb:v04DDp7202d*</modalias>
++    <modalias>usb:v04DDp9013d*</modalias>
++    <modalias>usb:v04DDp9014d*</modalias>
++    <modalias>usb:v054Cp0036d*</modalias>
++    <modalias>usb:v054Cp0075d*</modalias>
++    <modalias>usb:v054Cp007Cd*</modalias>
++    <modalias>usb:v054Cp0080d*</modalias>
++    <modalias>usb:v054Cp0081d*</modalias>
++    <modalias>usb:v054Cp0084d*</modalias>
++    <modalias>usb:v054Cp0085d*</modalias>
++    <modalias>usb:v054Cp0086d*</modalias>
++    <modalias>usb:v054Cp00C6d*</modalias>
++    <modalias>usb:v054Cp00C7d*</modalias>
++    <modalias>usb:v054Cp00C8d*</modalias>
++    <modalias>usb:v054Cp00C9d*</modalias>
++    <modalias>usb:v054Cp00CAd*</modalias>
++    <modalias>usb:v054Cp00EBd*</modalias>
++    <modalias>usb:v054Cp0101d*</modalias>
++    <modalias>usb:v054Cp0188d*</modalias>
++    <modalias>usb:v054Cp018Ad*</modalias>
++    <modalias>usb:v054Cp021Dd*</modalias>
++  </provides>
++</component>
+Index: linux-minidisc-debian-upstream/de.fu_berlin.physik.linux_minidisk.qhimdtransfer.metainfo.xml
+===================================================================
+--- /dev/null  1970-01-01 00:00:00.000000000 +0000
++++ linux-minidisc-debian-upstream/de.fu_berlin.physik.linux_minidisk.qhimdtransfer.metainfo.xml      2024-07-25 05:05:27.991182234 +0000
+@@ -0,0 +1,52 @@
++<?xml version="1.0" encoding="UTF-8"?>
++<component type="desktop">
++  <id>de.fu_berlin.physik.linux_minidisk.qhimdtransfer</id>
++  <metadata_license>MIT</metadata_license>
++  <name>qhimdtransfer</name>
++  <summary>Transfer software for HiMD Walkman</summary>
++  <description>
++    <p>qhimdtransfer is a simple graphical user interface application
++    for accessing MiniDisc devices. Currently, qhimdtransfer supports
++    HiMD devices only through libhimd. Support for NetMD devices
++    through libnetmd is being planned and implemented by upstream for
++    the next releases.</p>
++  </description>
++  <url type="homepage">https://wiki.physik.fu-berlin.de/linux-minidisc</url>
++  <launchable type="desktop-id">qhimdtransfer.desktop</launchable>
++  <provides>
++    <modalias>usb:v054Cp017Ed*</modalias>
++    <modalias>usb:v054Cp0180d*</modalias>
++    <modalias>usb:v054Cp0182d*</modalias>
++    <modalias>usb:v054Cp0184d*</modalias>
++    <modalias>usb:v054Cp0186d*</modalias>
++    <modalias>usb:v054Cp01E9d*</modalias>
++    <modalias>usb:v054Cp0219d*</modalias>
++    <modalias>usb:v054Cp021Bd*</modalias>
++    <modalias>usb:v054Cp022Cd*</modalias>
++    <modalias>usb:v054Cp023Cd*</modalias>
++    <modalias>usb:v054Cp0286d*</modalias>
++    <modalias>usb:v054Cp0113d*</modalias>
++    <modalias>usb:v054Cp014Cd*</modalias>
++    <modalias>usb:v04DDp7202d*</modalias>
++    <modalias>usb:v04DDp9013d*</modalias>
++    <modalias>usb:v04DDp9014d*</modalias>
++    <modalias>usb:v054Cp0036d*</modalias>
++    <modalias>usb:v054Cp0075d*</modalias>
++    <modalias>usb:v054Cp007Cd*</modalias>
++    <modalias>usb:v054Cp0080d*</modalias>
++    <modalias>usb:v054Cp0081d*</modalias>
++    <modalias>usb:v054Cp0084d*</modalias>
++    <modalias>usb:v054Cp0085d*</modalias>
++    <modalias>usb:v054Cp0086d*</modalias>
++    <modalias>usb:v054Cp00C6d*</modalias>
++    <modalias>usb:v054Cp00C7d*</modalias>
++    <modalias>usb:v054Cp00C8d*</modalias>
++    <modalias>usb:v054Cp00C9d*</modalias>
++    <modalias>usb:v054Cp00CAd*</modalias>
++    <modalias>usb:v054Cp00EBd*</modalias>
++    <modalias>usb:v054Cp0101d*</modalias>
++    <modalias>usb:v054Cp0188d*</modalias>
++    <modalias>usb:v054Cp018Ad*</modalias>
++    <modalias>usb:v054Cp021Dd*</modalias>
++  </provides>
++</component>
diff --git a/debian/patches/series b/debian/patches/series
index 923d43d..cdada98 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -1 +1,2 @@
 0001-use-builddate-from-changelog.patch
+1000-appstream-metainfo.patch
diff --git a/debian/qhimdtransfer.install b/debian/qhimdtransfer.install
index 699f7a9..a07571b 100644
--- a/debian/qhimdtransfer.install
+++ b/debian/qhimdtransfer.install
@@ -10,3 +10,4 @@ qhimdtransfer/icons/qhimdtransfer_256.png /usr/share/pixmaps
 qhimdtransfer/icons/qhimdtransfer_512.png /usr/share/pixmaps
 qhimdtransfer/qhimdtransfer /usr/bin
 qhimdtransfer/qhimdtransfer*qm /usr/share/qhimdtransfer/translations/
+de.fu_berlin.physik.linux_minidisk.qhimdtransfer.metainfo.xml usr/share/metainfo

#1076993#10
Date:
2024-12-29 22:42:25 UTC
From:
To:
Dear John Paul Adrian Glaubitz,

Is there any hope to have a package included in Debian with Appstream
metadata XML announcing HW support any time soon?  Anything more I can
do to help make it happen?

#1076993#15
Date:
2025-03-04 09:16:17 UTC
From:
To:
Is it OK for me to NMU the AppStream information into unstable?
#1076993#20
Date:
2025-03-04 09:26:37 UTC
From:
To:
I will do it myself this week. I had lots of stress the past months which has settled now.

Thanks,
Adrian

#1076993#25
Date:
2025-03-04 10:16:32 UTC
From:
To:
[John Paul Adrian Glaubitz]

Thank you very much.

30 hardcoded entries left in isenkram now.  Your upload will bring it
down to 29.  134 entries outside isenkram, in AppStream. :)

#1076993#30
Date:
2025-03-04 10:17:39 UTC
From:
To:
Hello,

OK, good to know. Thanks for the insight.

Adrian

#1076993#35
Date:
2025-03-11 16:58:41 UTC
From:
To:
Hi Petter,

here is my initial review.

The rule of thumb is: If it's optical, it's spelled "disc", if it's magnetic,
it's spelled "disk".

Same typo.

The upstream project is "linux-minidisc" and is not associated with my email
address at the Physics department.

So, it should probably be:

linux-minidisc.minidisc-utils.metainfo.xml

This allow_s_.

I'll take care of forwarding the patch once it has been integrated into the Debian package.

The set of USB ids for NetMD-compatible and HiMD-compatible devices is certainly not
identical as not every NetMD-compatible MiniDisc Walkman is also compatible with HiMD
as the latter is a newer standard. HiMD devices are compatible with NetMD, however.

Adrian

#1076993#40
Date:
2025-03-11 17:56:11 UTC
From:
To:
[John Paul Adrian Glaubitz]

Thank you for the valuable input.  Do you want me to send a new patch?

Right.  Note, '-' is not allwed in the IDs, so I recommend replacing
these with '_', ie linux_minidisc.minidisc_utils.metainfo.xml.  And the
ID and file name should be in reverse DNS format, and as linux_minidisc
is not a topleven DNS domain name, I suggest to pick another one.  I
picked one based on the home page URL.  It does not matter much which
reverse DNS domain you pick as long as it is unique. :)

Very good. :)

I am very glad you had a look.  I suspect I based the list on the udev
rule in the source, but do not know any details of supported devices.