yum-builddep pulling in i386 packages for x86_64 -devel dependencies

James Antill james at fedoraproject.org
Tue Mar 10 13:49:59 UTC 2009


On Tue, 2009-03-10 at 09:44 +0200, Panu Matilainen wrote:

> If I understood this correctly, in this case there is sufficient 
> information to pull in the correct package already. Looking at 
> http://koji.fedoraproject.org/koji/rpminfo?rpmID=1075605 pointed to 
> earlier in the thread:
> 
> Requires:
>     audit-libs = 1.7.12-2.fc11
>     libaudit.so.0()(64bit)
>     libauparse.so.0()(64bit)
> 
> The soname dependencies point to the correct version of audit-libs 
> already, just the manual dep on audit-libs (to force exact version 
> match) is satisfied with any arch.

 Sure.

> It'd be possible to weigh the dependencies, preferring automatic 
> dependencies over manual ones and if manual dependencies are still 
> unresolved after resolving automatic ones, only then try to look for them. 
> Except the full dependency flags aren't stored in repodata, only GE/LE/EQ
> etc so this wont work.

 How do we tell what is an automatic dep. and what is a manual one?
 Also it's not always true that automatic deps. are more restrictive
than manual ones, esp. manual ones that do "foo = <version>" ... which
is more of an edge case isn't 100% obvious either, but for the multilib.
case we can fix the manual req. line to also be compatible on the
multilib. side too and on the automatic side we can't fix it to specify
a version.

 I do have an idea for changing the solver so that it processes all the
deps. for a pkg and gets a set of possible matches by package name ...
then doing a simple set intersection on the result.
 This should solve this multilib. problem, and some version problems
maybe even making downgrades much more usable.
 But that change is unlikely to happen for Fedora 11.

> What should work for this case is resolving the dependencies with only one 
> provider first and if after that there are still unresolved deps, try to 
> resolve them. "Only one provider" here assumes only looking at newest 
> packages (which I think yum already does).

 If we know there is only one provider then we've already resolved the
dep. so that's kind of circular ... and while we do prefer the newish
package a lot, there are cases where we'll pick an older one (actually
foo = <version>, deps. are the main one).

-- 
James Antill <james at fedoraproject.org>
Fedora




More information about the fedora-devel-list mailing list