On 7/8/06, Enrico Scholz <enrico.scholz(a)informatik.tu-chemnitz.de> wrote:
chris.stone(a)gmail.com ("Christopher Stone") writes:
> pear packages have a line in the spec file of the form:
> Provides: php-pear(Foo) = %{version}-%{release}
>
> This provides the upstream software version, not the package version.
> This is what we use on our requires line. So for example we do not
> have:
> Requires: php-pear >= .. we have:
> Requires: php-pear(PEAR) >= ...
Such virtual provides are ok but you should keep in mind, that there is
no ordering during installation; e.g. it is undefined whether
| %package -n module
| Provides: php-pear(MODULE) = 1.0
or
| %package -n module-ng
| Provides: php-pear(MODULE) = 2.0
will be installed by
| Requires: php-pear(MODULE) >= 1.0
(because of the shortest-package-name-wins rule, 'module' will be the
candidate for 'rpm')
This should never happen, there are some cases where you may want a
stable and an alpha version in which case you would Provide
php-pear(MODULE-alpha).
See:
http://tkmame.retrogames.com/fedora-extras/php-pear-PHPUnit2.spec
http://tkmame.retrogames.com/fedora-extras/php-pear-PHPUnit2-alpha.spec
I think something like this should be mentioned in the guidelines.
In other cases the pear module name itself changes, for example:
PHPUnit (php4) and PHPUnit2 (php5)
When you enforce such declarations for php-pear packages; should not
every (non-pear) package have similar Provides:? Or, what would make
php-pear an exception here? Have php-pear modules such an unstable API
that missing version information would cause problems with a significant
amount of packages?
Yes, the pear libraries are still relatively new, and many many pear
modules are under active development. There are quite a few which are
widely used and still not even out of alpha development stage yet.