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

Re: libc6 dependency generation



> > It seems to me that changing the ABI with every release of the package is
> > a bad idea to begin with.  After all, there are some systems using
> > binaries that are _not_ debian packages (with all the exact dependencies)
> > and it would be nice to have them continue to run even after a upgrade,
> > espectially one as apparently minor as 2.2.5-4 to 2.2.5-13.
> 
> When the backware ABI changes, that's usually a good thing, because it
> means something was fixed.
> 
> However, that doesn't make old binaries not work. The change is that
> newly compiled binaries will not work on older libc6. That's why we bump
> the dep-rev.

I was thinking about that.  What kinds of things count as an "ABI change"?
If it was change to a passed structure (not just a mere extension) or
something, then the library would not be backward compatible with apps
built against earlier versions.  That leaves, as far as I can see, the
set of functions/symbols exported by the library.  This, as long as
the library still provided the older symbol set, could remain backward
compatible.

But that still leaves the question: Why is a change from 2.2.5-4 to 2.2.5-13
changing the symbol set?  I would have expected that the upstream "libc6"
group would not do that on minor revision changes (i.e. 2.2.4 to 2.2.5).
Surely there is some upstream libc6 policy they follow that says, for
example:

 - Changes to the first revision number means "totally incompatile".
   (a structure change or the like)

 - Changes in the second revision number means "backward compatible".
   (old programs will still work with new library but new programs may
    not work with the old library)

 - Changes in the third revision number means "fully compatible".
   (guaranteed to work with with any program compiled against older or
   newer versions of the library matching the same first two rev numbers)   

Something like that would be a good policy to have for _all_ libraries
as helps provide the safest and widest set of intercompatibility.

                                          Brian
                                  ( bcwhite@pobox.com )

-------------------------------------------------------------------------------
 "I can't complain but sometimes I still do."  -- Joe Walsh (Life's Been Good)



Reply to: