Tue 05 Jan 2010 01:05:36 AM UTC, original submission:
Going from freetype-2.3.8 to freetype-2.3.9, new public functions appear to have been added to ftcid.h:
FT_Get_CID_Is_Internally_CID_Keyed
FT_Get_CID_From_Glyph_Index
however, version_info in builds/unix/configure.ac has not been updated properly for this API addition (and still wrong as of freetype-2.3.11, which is same API as 2.3.9). The C:R:A triplet has had its R field incremented for each release, which is only correct when the API is the same as previous release. According to libtool's documentation for the -version-info flag:
3. If the library source code has changed at all since the last update, then increment REVISION (`C:R:A' becomes `C:r+1:A').
4. If any interfaces have been added, removed, or changed since the last update, increment CURRENT, and set REVISION to 0.
5. If any interfaces have been added since the last public release, then increment AGE.
2.3.8 was 9:19:3, so 2.3.9 should have been 10:0:4 rather than 9.20.3.
This actually has a visible effect if a program is compiled and linked against the new lib and uses the new API, but is run on a system with the old lib (either sysadmin downgraded it or user copied binary to an older system). If version-info is set correctly, the error message will be that the freetype library version is too old (and will even state what the minimum needed one is). If version-info is not updated properly for new API, the error message is the less helpful "undefined symbol", with no hint about why or how to find a lib that would have it.
|