Am 17.11.2015 um 20:20 schrieb Roman Evstifeev:
Hi. Is there any convenient way to force package depend (at runtime) on libfoo version X, where X is the version of libfoo-devel, that was used when package was built? Is it possible to do so, without explicitly specifying version (X) itself in the spec file? So that upgrading libfoo to version X+1 in the same project won't break this package, and just trigger package rebuild with new dependencies on X+1.
rpm does not provide such info. All it provides is dependencies based on the SONAME (and related info). The same bug exists for packman, some packages have now a hack to require a specific version. Ideally rpm dependencies should also cover the repo info where a "Provides" comes from, and the Requires of the other package should use that. This is partly handled by libzypp "vendor" handling. But in the end its not good enough if the given "Provides" is already installed. Not sure if that must be fixed at libzypp or rpm level. I guess libzypp should be more strict with provides/requires. If a pkgA from repo X requires "something", and another pkgB from X provides that "something" and that pkgB is newer than the already installed "something" then libzypp should prefer pkgB from X. Example: taglib has the same SONAME since a long time, but for whatever reason upstreams keeps adding features to that SONAME, instead of just changing it. As a result, if a pkg is built against a newer version of taglib, packages have runtime failures. Olaf -- To unsubscribe, e-mail: opensuse-packaging+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-packaging+owner@opensuse.org