From Fedora Project Wiki

Rationale

Currently virtual provides are not documented anywhere, leading to many issues:

  • their meaning may be unclear (this is the case for webserver, for example)
  • they may be unused when they could be useful
  • clash with package names cannot be known

The third item could be extracted automatically, and is not fully covered by this proposal. But for the first 2 items, one have to have a human maintained documentation. Moreover the classification can only be done by a human for virtual provides of a given type (for example grouping perl(My::Module) virtual perl module provides for documentation can only be done by a human).

Proposal

I propose to add the following to the packaging guidelines (in the Requires part):

Virtual Requires and Provides

When a virtual provide is added, it should be documented in PackageMaintainers/VirtualProvides, except for

  • different capitalisation of the package name (gmt for GMT, for example)
  • older names for the package, even if the package with the older name was never packaged in the distribution. In particular, Obsoletes do not need to be documented
  • filenames (like %{_sbindir}/sendmail)
  • additional subpackages (like %{name}-static, %{name}-devel)

It is customary to have parenthesis in a virtual provide name to avoid clashing with real package names.



The page PackageMaintainers/VirtualProvides would be along VilleSkyttä/VirtualProvides.