On Thu, 2005-11-10 at 22:35 +0200, Avi Kivity wrote:
Thomas M Steenholdt wrote:
> Avi Kivity wrote:
>
>> Build System wrote:
>>
>>> - Rebuild due to mysql 5.0 update and openssl library update.
>>>
>>>
>>>
>> we see rebuilds very often due to library updates. are they strictly
>> necessary (i.e., do the libraries break binary compatbility so often?)
>>
>> much of the advantages of shared libraries are lost this way. we have
>> to update a ton of packages, and those which are forgotten (or
>> locally built) break.
>>
>
> sometimes updating a shared library breaks the interface
if the interface was broken. surly more than a rebuild would be
required. the application using the library would need to be updated.
No, there is
difference between breaking source code compatibility and binary
compatibility. For example in a new version of a library some #defined
macro names can be changed -> source code isn't compilable anymore, but
ABI isn't broken. OTOH when some member (which is optional and so
behaviour doesn't change if it isn't set) is added to a struct which is
allocated by the caller of the library API -> ABI is broken but source
code can be recompiled and no problem appears.
> or possibly even adds new features that we want.
if we use the new feaures we need to update the code in the library's
users. if we don't, why is a rebuild required?
> In these cases rebuild is required. Most times, it's when updating to
> a new version of a lib, openssl 0.9.7 - 0.9.8 which i believe is what
> has happened here. (haven't checked though)
>
seems a lot of churn for a minor release. library authors should care
more. designing binary compatible capable interfaces is not that hard.
Please
report that to openssl upstream.
--
Tomas Mraz <tmraz(a)redhat.com>