[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]

Re: Is it possible to dynamize "requires" at RPM build time?

Jesse Keating wrote:
On Wednesday 23 August 2006 16:18, Hans de Goede wrote:
Actually afaik gnome and gtk have the exact same problem (they are fully
backward compatible but introduce new symbols making apps using these
new symbols break on older version), but there we've been plastering
over the problem by manually adding Requires to packages.

I just talked to some of our Gnome maintainers and they don't think that's the case at all.

How is that not the case at all? gtk has been providing libgtk-2.0.so.0 for many many releases and has been gaining features all the time, so any gtk app using those new features won't work with gtk-2.0.x, which has the same soname as gtk2.8.x . So rpm's autodeps wont help here and need some manual helping. It may be different then the nss case in the sense that just recompiling an app doesn't change it gtk requirements, for them to change the app needs to change itself.

Isn't that why you have foo-so.1 and foo-so.1.1? Your build that has foo-so.1.1 could include foo-so.1 for compat no? Am I totally off base here? Versioned libraries are here for a reason, so that you can know what soname you're compiling against and need later on down the road. Having random symbols in random unversioned .so files seems very very wrong to me, as a shared library.

As already explained if you have a library who is ABI wise 100% compatible with the old release but has new symbols, yo don't want to change the soname as then older programs won't work as they expect the old soname. Newer programs build with a newer version might however use new added symbols, which aren't available in older versions of the library (with the same soname). Thus rpm's autodep's aren't sufficient since the rpm autodep would be fullfilled by an older version too.

Take gnome-panel as an example,  rpm -q --requires gnome-panel contains:
But that will be provided by ancient gtk versions, which are too old for
gnome-panel too work (they miss symbols which the newer ones have, thus
the same rpm command output also contains:
gtk2 >= 2.7.1

All that is different in this thread with regards too gnome is the suggestion to automaticly generate these exrtra versioned deps buildtime.



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]