From Fedora Project Wiki

Rationale

To the best of my knowledge, the issue is this:

  • At this moment, the Packaging Guidelines say:

"If upstream uses <vendor_id>, leave it intact, otherwise use fedora as <vendor_id>."

See: https://fedoraproject.org/wiki/Packaging/Guidelines#desktop-file-install_usage

Really, I suspect that we no longer want to use a vendor ID at all. I think that the upstream specification is flawed in this area, and it causes more trouble than it is worth.

This would only apply to new packages, because I do not think there is anyway to avoid destroying menus for .desktop files which use the vendor tag. If there were a way to drop it altogether, I don't think you'd get any complaints.

Proposed New "desktop-file-install usage" section

desktop-file-install usage

It is not simply enough to just include the .desktop file in the package, one MUST run desktop-file-install OR desktop-file-validate in %install (and have BuildRequires: desktop-file-utils), to help ensure .desktop file safety and spec-compliance. desktop-file-install MUST be used if the package does not install the file or there are changes desired to the .desktop file (such as add/removing categories, etc). desktop-file-validate MAY be used instead if the .desktop file's content/location does not need modification. Here are some examples of usage:

desktop-file-install                                    \
--dir=${RPM_BUILD_ROOT}%{_datadir}/applications         \
%{SOURCE3}
desktop-file-install                                    \
--add-category="Multimedia"                             \
--delete-original                                       \
--dir=%{buildroot}%{_datadir}/applications              \
%{buildroot}/%{_datadir}/applnk/Multimedia/foo.desktop
desktop-file-validate %{buildroot}/%{_datadir}/applications/foo.desktop
  • For new packages, do not apply a vendor tag to desktop files. Existing packages that use a vendor tag must continue to do so for the life of the package. This is mostly for the sake of menu-editing (which bases off of .desktop file/path names).