From: Hongli L. <h....@ch...> - 2005-04-15 19:13:16
|
Lutz Müller wrote: > or that no-one has educated libexif developers (specifically me) > sufficiently on how to correctly set up and maintain > libexif/configure.in. > > My goal up to now was to make sure that we don't release different > incompatible versions of libexif with the same major version. It seems > that I've fully reached that goal :-) > > If I remember correctly, the last change breaking binary compatibility > happened in July 2002. After that, we only added interfaces and fixed > the code behind the existing API. > > There is some logic and documentation in libexif/configure.in that is > probably incorrect or (at least) not clear enough. Up to now, if I added > an interface, I just increased 'CURRENT'. See code snippet below. Could > you send us a patch? > > Thanks a lot! > > Regards > > Lutz > > > dnl > --------------------------------------------------------------------------- > dnl Versioning: > dnl - AGE (Micro): Increment if any interfaces have been added; > set to 0 > dnl if any interfaces have been removed. Removal > has > dnl precedence over adding, so set to 0 if both > happened. > dnl - REVISION (Minor): Increment any time the source changes; set to > dnl 0 if you incremented CURRENT. > dnl - CURRENT (Major): Increment if the interface has additions, > changes, > dnl removals. > dnl > --------------------------------------------------------------------------- > LIBEXIF_AGE=0 > LIBEXIF_REVISION=0 > LIBEXIF_CURRENT=12 > AC_SUBST([LIBEXIF_AGE]) > AC_SUBST([LIBEXIF_REVISION]) > AC_SUBST([LIBEXIF_CURRENT]) > LIBEXIF_VERSION_INFO=`expr $LIBEXIF_CURRENT + $LIBEXIF_REVISION`: > $LIBEXIF_AGE:$LIBEXIF_REVISION > AC_SUBST([LIBEXIF_VERSION_INFO]) Ok, so the problem is that you don't understand libtool versioning correctly. You should read 'info libtool' -> section Versioning. If you add an interface, and don't change anything in the old interfaces which could break applications (this includes function semantics), then you are supposed to increase AGE, not CURRENT. So the comment is wrong too. Only if you did something that breaks binary compatibility, AGE should incremented. I attached a one-liner patch which fixes the comments. I won't touch the numbers because the damage has already been done. :( Is libexif 0.5.12 fully binary compatible with the latest libexif? I mean: if a program is compiled against libexif 0.5.12, and I rename libexif 0.6's library name to the name used by libexif 0.5.12, will that program still work? And when was version 0.5.12 released? |