(In reply to Paul Clarke from comment #2) > > ! VERSION is NOT the version of the providing package, > > it's a property of the dependency > > Can you clarify "property of the dependency" and how that is distinguished > from the version of the providing package? Wanted to express that in a dependency like 'advance-toolchain-devel = 8.0-5', the version(range) '= 8.0-5' is compared against the version(range) of some other 'advance-toolchain-devel' dependency, and never against the version of some package that happens to contain an 'advance-toolchain-devel' dependency or happens to be named 'advance-toolchain-devel'. >From the solvers POV 'Requires: zypper' does not select the package because it's named 'zypper', but because it matches the implicit 'Provides: zypper = %{version}'. Matching is based on dependencies. > Pkg: Foo-5.0 > Provides: Foo = 5.0 (implicitly) > > Pkg: Foo-6.0 > Provides: Foo = 6.0 (implicitly) > > Pkg: Xoo-1.0 > Provides: Xoo = 1.0 (implicitly) > Provides: Foo = 7.0 (explicitly) 'Requires: Foo' will consider all 3 packages. The real package names and versions may come into play when pruning such a set of candidates.