I had an interesting and helpful conversation with a member of the KDE team at Debconf. They made an interesting proposal:
* We have machinery that can produce trad menu files from desktop files. * It is possible to have extension information in extra fields in a .desktop file. This could be used to record the trad Debian category and name metadata currently residing in trad Debian menu files. * Where such metadata is accepted by upstream, we could include it in the primary .desktop file. * Where such metadata is not accepted by upstream, our tooling could be arranged to be able to combine XDG information from two .desktop files, one from upstream and one provided in the Debian package. This would avoid the need for patching an upstream menu file, which is unattractive. * Overall, this would make it possible, therefore, to maintain the menu information primarily in the more sophisticated .desktop format, so that source packages with .desktop files would not need to contain trad menu files too. The only remaining questions are then : Q1. Whether it is better to convert from .desktop files to trad Debian menu files at package build time, or to change the existing trad menu consumers to be able to convert .desktop files to the required format ? There is an easy answer to this: this conversion may involve image conversion libraries including even perhaps an SVG renderer, and other conversion software, which is disproportionately heavyweight for many trad menu consumers. (Trad menu consumers tend to be non-desktop `lightweight' window managers.) Whereas most software that ships a .desktop file will have fairly extensive build dependencies, and in general adding image conversion tools to their build dependencies will not be awkward. This also means the conversion is done once, at package build, rather than on each end-user system. Therefore the format specified in the .deb, to be used by trad menu consumers should continue to be the trad Debian menu file. Q2. Whether packages (bc, many command line games, ...) which only want to provide a trad Debian menu entry should do so by including a .desktop file in the source code, or a trad menu entry. I see no need for policy to mandate any particular answer to this. The maintainer should do what they prefer. Ian.