http://bugzilla.opensuse.org/show_bug.cgi?id=979528
http://bugzilla.opensuse.org/show_bug.cgi?id=979528#c3
--- Comment #3 from Paul Clarke
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.
That certainly explains the observed behavior.
Apologies for my ignorance, but it seems I need to inject a "dependencies version" for the respective packages, which is different than the package version. (I admit I'm a bit lost on the difference.)
Is the "fix", presuming I have control over the 'advance-toolchain-devel' packages, is to add specific "Provides" version tags? Something like: Provides: advance-toolchain-devel == 9.0-3
...for ALL of such packages in the repo? I'd have the same problem unless I changed them all, I presume.
Answering my own question, I stumbled across a reference that said that virtual packages cannot have versioning. So, I think the only solution is a metapackage that points to the latest version. -- You are receiving this mail because: You are on the CC list for the bug.