From Fedora Project Wiki
Line 7: Line 7:
=== Application independence ===
=== Application independence ===


Applications SHOULD be installable independently, when this is technically-feasible. 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 should generally 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 should be packaged in separate binary packages, and binary packages should not contain multiple .desktop files. Exceptions are permitted if at most one of the .desktop files is visible (if it does not contain the line <code>NoDisplay=true</code>), or if it does not make sense to install one application without the other (e.g. if one application).
Applications should be installable independently when this is technically-feasible. A package should not generally depend on a package containing an application except if it functions as an plug-in for that application. If a source package provides multiple applications, those applications should be packaged in separate subpackages. If a source package provides both a library 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 and not the associated application. Installing an application that depends on a library or service should not automatically pull in applications associated with that library. Packages that contain a visible .desktop file (a .desktop file that does not contain the line <code>NoDisplay=true</code>) should not have a Requires, Recommends, or Supplements on any other package containing a visible desktop file, directly or indirectly. Use Enhances and Suggests instead.
 
Packages that contain a visible .desktop file SHOULD NOT have a strong or weak dependency (Requires, Recommends, or Supplements) on any other package containing a visible desktop file. Additionally, all of its direct and indirect strong and weak dependencies should not contain such a dependency. Use the very weak dependencies, Enhances and Suggests, instead. If a source package provides both a library 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 and not the associated application.
 
A package SHOULD NOT generally depend on a package containing an application except if providing a plug-in for that application.

Revision as of 14:10, 8 May 2017

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 when this is technically-feasible. A package should not generally depend on a package containing an application except if it functions as an plug-in for that application. If a source package provides multiple applications, those applications should be packaged in separate subpackages. If a source package provides both a library 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 and not the associated application. Installing an application that depends on a library or service should not automatically pull in applications associated with that library. Packages that contain a visible .desktop file (a .desktop file that does not contain the line NoDisplay=true) should not have a Requires, Recommends, or Supplements on any other package containing a visible desktop file, directly or indirectly. Use Enhances and Suggests instead.