From: Alex P. <pes...@ma...> - 2007-08-07 09:05:10
|
On Monday 06 August 2007 17:18, Damyan Ivanov wrote: > Hi, Alex, > > Foreword: The topic is quite complicated and I am certain that I don't > know all the answers. If something from the writings below is not clear, > blame me and ask for clarification. Damyan, one little thing to adjust. Suppose we have application originally linked with libfbclient.so.2.1 having soname libfbclient.so.2.0. Me thinks it's desirable to have it working correctly with libfbclient.so.2.0? This may not always be so. I.e. building with version N, and using with N+M is OK - should be OK if no new errors :-), but building with N and using with N-M may be bad even in subreleases. For example (it's about windows, but something similiar may be applied to linux too in the future). Version 2.1 has trusted authentication capability with server 2.1 (or higher), running on windows server. Application certainly may relay on it, even not providing login box at all. Be sure, it will not work with old client. I always thought that package managers can solve this problem with some better logic than simple comparison of 2 text strings like soname works. The same applies to fb3 architecture - people will be able to have fb4 with it's libfirebird.so.4.x installed, but it will be able to call old engine for old databases. On my mind, use of libfirebird.so with version even in point release smaller then required by program is bad - it can contain bugs fixed only on the next point release, but present in old one and preventing program from normal operation. I believe we can invent some hack for 2.1, but much more interesting now (me thinks) is preparing the 'ideal' requiremnets from the project to so naming, is not it so? And deal with 2.1 in that same manner. Alex. PS. Happened to be not very 'little thing' :) |