Comment # 1 on bug 979528 from
(In reply to Paul Clarke from comment #0)
> I'm trying to install a package, which has a dependency on package "A >=
> version".  The repository has package "A" with several versions, including
> "version" and "version+1".  I would expect "version+1" to be installed, but
> that is not happening.  Am I misunderstanding something about the dependency
> resolution?

I'll try to explain:

- A package dependency has 'NAME [op VERSION]' (op: == != < <= > >=).
  A missing '[op VERSION]' (VERSION_RANGE definition) means 'any VERSION'.

  ! VERSION is NOT the version of the providing package, 
    it's a property of the dependency


- A package has a NAME and a VERSION; by this it 
  implicitly provides the dependency 'NAME == VERSION'


Two dependencies match if they refer to the same NAME and define an overlapping
VERSION_RANGE (non empty intersection).

A dependency matches a package, if it matches one of the packages 'Provides'.


Back to your case:

- The advance-toolchain-at*-devel packages all 'Provide:
advance-toolchain-devel'.
  I.e. they match 'advance-toolchain-devel' in 'any VERSION'!

That's why zypper search --provides 'advance-toolchain-devel >= 8.0-5' matches
all 'advance-toolchain-at*-devel' packages. 

 Remember: '8.0-5' is not a package version, but the dependencies version
range.
           As all packages provide 'any VERSION' the '>= 8.0-5' is basically
'useless'


Among all available PACKAGES matching the dependency, the resolver usually
prefers the PACKAGE with the lex. least name:  advance-toolchain-at8.0-devel
in the highest available version:  8.0-6.


You are receiving this mail because: