how to have yum prefer one dependency over others
Michael Schwendt
mschwendt at gmail.com
Fri Sep 16 20:53:00 UTC 2011
On Fri, 16 Sep 2011 13:49:36 -0400, SV (seth) wrote:
> There are still a largish number of packages out there that have things
> like:
>
> Requires: foo
>
> where they really want:
> Requires: foo(64bit)
Fixing this in some packages is not entirely easy.
Why? Because whereas the %{name}%{?_isa} Provides are automatic,
$ rpm -q --provides glib2|grep ' = '
glib2 = 2.29.90-1.fc16
glib2(x86-64) = 2.29.90-1.fc16
some packages depend on virtual capabilities in order to make external
dependencies much more strict. E.g.
Provides: foo(abi) = 5
These are not arch-specific. How to convert from what we have so far to
the new era of adding an explicit %{?_isa} everywhere? Where we have a
Requires: foo(abi) = 5
we cannot simply add an explicit arch-specific dep on the package name,
Requires: foo(abi) = 5
Requires: foopkg%{?_isa}
can we?
What happens if foopkg is upgraded to foo(abi) = 6? Yum will still run a
cross-arch search for a foo(abi) provider and on x86_64 may find it in an
older i686 package that's still in the repo, too.
It seems we need to make the full show arch-specific:
Provides: foo(abi)%{?_isa} = 5
and
Requires: foo(abi)%{?_isa} = 5
For released dists that will break dependencies and require rebuilds.
--
Fedora release 16 (Verne) - Linux 3.1.0-0.rc6.git0.0.fc16.x86_64
loadavg: 0.06 0.07 0.11
More information about the devel
mailing list