[Fedora-packaging] How to make a Provides based on package contents?

Ville Skyttä ville.skytta at iki.fi
Fri Nov 24 18:00:59 UTC 2006

On Wed, 2006-11-22 at 14:50 -0700, Orion Poplawski wrote:
> octave defines an API version in:
> octave-2.9.9/src/version.h:
> #define OCTAVE_API_VERSION "api-v22"
> Modules compiled against one version will not load in another.  I'd like 
> to get this put into the rpms like:
> Provides: octave(api) = api-v22
> This can be done automatically on the module side with something like:
> Requires: octave(api) = %(octave-config -p API_VERSION)
> But, how to extract this automatically from src/version.h in the octave 
> package itself?

One KISS way to handle this is to just hardcode the API version in a
macro in the octave specfile, bump it between package versions as
appropriate, and add a test in %check which will cause the octave
package build to fail if you forgot to bring the hardcoded value up to
date with the sources when updating the package.

For a concrete example, see %{apiver} in the FE vdr package.

More information about the Fedora-packaging mailing list