[Fedora-packaging] "Explicit requires" and "requiring base package"
Ville Skyttä
ville.skytta at iki.fi
Sat May 2 10:34:56 UTC 2009
https://fedoraproject.org/wiki/Packaging/Guidelines#Explicit_Requires
Packages must not contain explicit Requires on libraries except when
absolutely necessary. [...]
https://fedoraproject.org/wiki/Packaging/Guidelines#Requiring_Base_Package
Devel packages must require the base package using a fully versioned
dependency: Requires: %{name} = %{version}-%{release}. Usually, subpackages
other than -devel should also require the base package using a fully
versioned dependency.
I think these two guidelines or their wording are more or less in conflict
these days. Most -devel packages do not "absolutely necessarily" need an
explicit dependency on the base package because rpm automatically adds soname
dependencies from symlinks in -devel to the corresponding shared lib in the
main/lib package. Ditto, many cases of other non-devel subpackages get
automatic lib soname dependencies to the main/lib package.
If the intent is to still require explicit deps like in "requiring base
package" even though there are automatic ones that would usually work, just to
be sure or for other reasons (possibility of compilation options, patchwork
that affects some internal subpackages but not other -devel/lib package
consumers), I think "requiring base packages" and "explicit requires" should
be cross referenced noting that this is an exception and those explicit deps
are indeed wanted.
If not, IMO "requiring base package" should be softened so that it requires
adding those explicit deps if no automatic ones are present, or just removed
because that'd be redundant with "explicit requires" and the rest of the
general dependency guidelines.
More information about the Fedora-packaging
mailing list