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.