From Fedora Project Wiki

Desktop files

If a package contains a GUI application, then it needs to also include a properly installed .desktop file. For the purposes of these guidelines, a GUI application is defined as any application which draws a window and runs from within that window. Installed .desktop files MUST follow the desktop-entry-spec , paying particular attention to validating correct usage of Name, GenericName, Categories , StartupNotify entries.

Application independence

Applications SHOULD be installable independently. If a source package provides multiple applications, those applications SHOULD be packaged in separate subpackages. In cases where this is not feasible for technical reasons, the .desktop files MUST be packaged separately from the application itself in order to feign this effect for users. That is, if a single source package provides multiple applications with .desktop files, those .desktop files MUST be packaged in separate binary packages, and binary packages MUST NOT contain multiple .desktop files. An exception is permitted if all or all but one of the .desktop files contains the line NoDisplay=true.

Packages that contain a .desktop file without the line NoDisplay=true MUST NOT have a strong or weak dependency (Requires, Recommends, or Supplements) on any other package containing a desktop file without the line NoDisplay=true. Additionally, all of its direct and indirect strong and weak dependencies MUST NOT contain such a dependency. (Only the very weak dependencies, Enhances or Suggests, are permissible.) If a source package provides both a library intended to be used by other packages and also an associated application, that application SHOULD be packaged in a subpackage in order to allow other applications to depend on only the library; otherwise, applications will not be able to use the library without violating the previous rule.