English
and _not_ the following:
BuildRequires: libproxy-devel
BuildRequires: pkgconfig(foo) vs. foo-devel
BuildRequires: pkgconfig(libproxy-1.0)
Example
Fedora packages which use `+pkg-config+` to build against a library (e.g. 'foo') on which they depend, *SHOULD* express their build dependency correctly as `+pkgconfig(foo)+`.
For historical reasons, many packages seem to have a hard-coded "`+BuildRequires: foo-devel+`", with the name of the package which _currently_ provides the required pkgconfig module. This is fragile and less portable than simply expressing the real dependency. Where package names change, and/or a required pkgconfig module is later provided by a _different_ package, these hard-coded dependencies break.
Note that it shall still be acceptable to require specific packages by name if they are required for some reason _other_ than a `+pkg-config+` module that they provide.
Packages which build against `+libproxy+` should contain the following:
Rationale
The build infrastructure for a given package will often locate and use required libraries by using `+pkg-config+`.
This way, if the `+libproxy-1.0.pc+` pkgconfig module is ever provided from a differently-named package (such as by PacRunner once its integration is complete, or by a '`+libproxy1+`' backward-compatibility package as has happened to a number of other libraries in the past), the dependency will continue to be correct.
Thus, `+pkgconfig(foo)+` is the true statement of the build dependency, and is how it should be expressed in the spec file.