On Wednesday 29 June 2005 08:13, Steve Langasek wrote: > > It looks like this is the case, I had hoped that the incompatibilities > > were minor enough that it would be possible to add any missing APIs back > > in where necessary. > > Ah; that's potentially an option as well -- it's your call as the > maintainer, really, it's just that the current arrangement is buggy and > needs to be fixed. :)
Looking at the diff of dynamic symbols I've attached it seems like there's been lots happening with the ABI, too much to paper over like that. It seems the bits of the API that have disappeared were marked experimental, but only by comments rather than defines or a configure switch. > > I had prepared an upload that fixed the s/Lookup_Size/LookupSize/ issue, > > but I was not aware of the Mozilla problems. > > > > I think the best thing to do is add a freetype2.1.7 source package that > > builds libfreetype6 with an epoch and coordinate with upstream the change > > to the soname - the next release looks like it is meant to break the ABI > > (more than normal that is). > > > > Does that sound reasonable? I'd rather not epoch the package but I don't > > see any other choice here. > > Epoched libraries are more problematic than other epoched packages, because > once packages start to be rebuilt against the newer version of the library, > their dependencies are broken by the epoch. That allows for the ABI skew > breakage to seep into testing, as opposed to being caught and fixed in > unstable. Is there any chance of a quick transition to libfreetype7 or > whatever, that doesn't require keeping a libfreetype6 around for > backwards-compatibility (which would mostly just cause segfaults during the > transition anyway)? I have emailed upstream about this, I would rather not change the soname unilaterally for obvious reasons. They seem keen to sort this out and it's a problem that's bitten a few people (notably Mozilla) so I will report how that turns out.
--- 2.1.7syms 2005-06-28 22:04:53.000000000 +0100 +++ 2.1.10syms 2005-06-28 22:05:12.000000000 +0100 @@ -1,7 +1,9 @@ -autohint_module_class +af_autofitter_service +af_dummy_script_class +af_latin_script_class +autofit_module_class bdf_cmap_class bdf_driver_class -BitOrderInvert __bss_start cff_cmap_encoding_class_rec cff_cmap_unicode_class_rec @@ -11,7 +13,6 @@ _edata _end _fini -FourByteSwap FT_Access_Frame FT_Activate_Size FT_Add64 @@ -22,51 +23,75 @@ FT_Atan2 FT_Attach_File FT_Attach_Stream -ft_autohinter_service +FT_Bitmap_Convert +FT_Bitmap_Copy +FT_Bitmap_Done +FT_Bitmap_Embolden ft_bitmap_glyph_class -ftc_cache_clear -ftc_cache_done -ftc_cache_init -ftc_cache_lookup +FT_Bitmap_New +ftc_basic_image_cache_class +ftc_basic_image_family_class +ftc_basic_sbit_cache_class +ftc_basic_sbit_family_class +FTC_Cache_Clear +FTC_Cache_Done +FTC_Cache_Init +FTC_Cache_Lookup +FTC_Cache_NewNode +FTC_Cache_RemoveFaceID ftc_cmap_cache_class FTC_CMapCache_Lookup FTC_CMapCache_New FT_CeilFix ftc_face_list_class -ftc_family_done -ftc_family_init -ftc_family_table_alloc -ftc_family_table_free -ftc_glyph_family_done -ftc_glyph_family_init -ftc_glyph_node_compare -ftc_glyph_node_done -ftc_glyph_node_init -ft_char_table -ftc_image_cache_class -FTC_Image_Cache_Lookup +FTC_Family_Init +FTC_GCache_Done +FTC_GCache_Init +FTC_GCache_Lookup +FTC_GCache_New +FTC_GNode_Compare +FTC_GNode_Done +FTC_GNode_Init +FTC_GNode_UnselectFamily FTC_ImageCache_Lookup -FTC_Image_Cache_New FTC_ImageCache_New +FTC_INode_Free +FTC_INode_New +FTC_INode_Weight FTC_Manager_Compress FTC_Manager_Done +FTC_Manager_FlushN +FTC_Manager_LookupFace FTC_Manager_Lookup_Face +FTC_Manager_LookupSize FTC_Manager_Lookup_Size FTC_Manager_New -FTC_Manager_Register_Cache +FTC_Manager_RegisterCache +FTC_Manager_RemoveFaceID FTC_Manager_Reset FT_CMap_Done FT_CMap_New +FTC_MruList_Done +FTC_MruList_Find +FTC_MruList_Init +FTC_MruList_Lookup +FTC_MruList_New +FTC_MruList_Remove +FTC_MruList_RemoveSelection +FTC_MruList_Reset +FTC_MruNode_Prepend +FTC_MruNode_Remove +FTC_MruNode_Up ftc_node_destroy -ftc_node_done FTC_Node_Unref FT_Cos -ftc_sbit_cache_class -FTC_SBit_Cache_Lookup FTC_SBitCache_Lookup -FTC_SBit_Cache_New FTC_SBitCache_New ftc_size_list_class +FTC_SNode_Compare +FTC_SNode_Free +FTC_SNode_New +FTC_SNode_Weight ft_debug_init FT_Div64by32 FT_DivFix @@ -84,11 +109,14 @@ FT_Get_BDF_Charset_ID FT_Get_BDF_Property FT_Get_Char_Index +FT_Get_Charmap_Index +FT_Get_CMap_Language_ID FT_Get_First_Char FT_Get_Glyph FT_Get_Glyph_Name FT_Get_Kerning FT_Get_Long +FT_Get_MM_Var FT_Get_Module FT_Get_Module_Interface FT_Get_Multi_Master @@ -99,6 +127,7 @@ FT_Get_PFR_Metrics FT_Get_Postscript_Name FT_Get_PS_Font_Info +FT_Get_PS_Font_Private FT_Get_Renderer FT_Get_Sfnt_Name FT_Get_Sfnt_Name_Count @@ -119,12 +148,17 @@ FT_GlyphLoader_Reset FT_GlyphLoader_Rewind ft_glyphslot_alloc_bitmap +FT_GlyphSlot_Embolden ft_glyphslot_free_bitmap +FT_GlyphSlot_Oblique ft_glyphslot_set_bitmap +FT_Glyph_Stroke +FT_Glyph_StrokeBorder FT_Glyph_To_Bitmap FT_Glyph_Transform ft_grays_raster FT_Has_PS_Glyph_Names +ft_highpow2 FT_Init_FreeType FT_Library_Version FT_List_Add @@ -138,16 +172,11 @@ FT_Load_Glyph FT_Load_Sfnt_Table FT_Lookup_Renderer -FT_LruList_Destroy -FT_LruList_Lookup -FT_LruList_New -FT_LruList_Remove -FT_LruList_Remove_Selection -FT_LruList_Reset FT_Matrix_Invert FT_Matrix_Multiply ft_module_get_service FT_MulDiv +FT_MulDiv_No_Round FT_MulFix FT_MulTo64 FT_New_Face @@ -158,15 +187,19 @@ FT_New_Memory_Stream FT_New_Size FT_Open_Face +FT_OpenType_Validate FT_Outline_Check FT_Outline_Copy FT_Outline_Decompose FT_Outline_Done FT_Outline_Done_Internal +FT_Outline_Embolden FT_Outline_Get_BBox FT_Outline_Get_Bitmap FT_Outline_Get_CBox +FT_Outline_GetInsideBorder FT_Outline_Get_Orientation +FT_Outline_GetOutsideBorder ft_outline_glyph_class FT_Outline_New FT_Outline_New_Internal @@ -174,6 +207,11 @@ FT_Outline_Reverse FT_Outline_Transform FT_Outline_Translate +FT_QAlloc +FT_QRealloc +FT_Raccess_Get_DataOffsets +FT_Raccess_Get_HeaderInfo +FT_Raccess_Guess ft_raster1_renderer_class ft_raster5_renderer_class FT_Read_Stream @@ -195,6 +233,9 @@ FT_Set_Pixel_Sizes FT_Set_Renderer FT_Set_Transform +FT_Set_Var_Blend_Coordinates +FT_Set_Var_Design_Coordinates +FT_Sfnt_Table_Info FT_Sin FT_Skip_Stream ft_smooth_lcd_renderer_class @@ -207,14 +248,17 @@ FT_Stream_EnterFrame FT_Stream_ExitFrame FT_Stream_ExtractFrame +FT_Stream_Free FT_Stream_GetChar FT_Stream_GetLong FT_Stream_GetLongLE FT_Stream_GetOffset FT_Stream_GetShort FT_Stream_GetShortLE +FT_Stream_New FT_Stream_Open FT_Stream_OpenGzip +FT_Stream_OpenLZW FT_Stream_OpenMemory FT_Stream_Pos FT_Stream_Read @@ -229,18 +273,24 @@ FT_Stream_ReleaseFrame FT_Stream_Seek FT_Stream_Skip +FT_Stream_TryRead FT_Stroker_BeginSubPath FT_Stroker_ConicTo FT_Stroker_CubicTo FT_Stroker_Done FT_Stroker_EndSubPath FT_Stroker_Export +FT_Stroker_ExportBorder +FT_Stroker_GetBorderCounts FT_Stroker_GetCounts FT_Stroker_LineTo FT_Stroker_New FT_Stroker_ParseOutline +FT_Stroker_Rewind FT_Stroker_Set FT_Tan +FT_Trace_Get_Count +FT_Trace_Get_Name ft_validator_error ft_validator_init ft_validator_run @@ -253,6 +303,7 @@ _GLOBAL_OFFSET_TABLE_ gray_raster_render _init +otv_module_class pcf_cmap_class pcf_driver_class pfr_cmap_class_rec @@ -264,8 +315,6 @@ psnames_module_class ps_parser_funcs ps_table_funcs -RepadBitmap - sbit_metrics_fields sfnt_module_class t1_builder_funcs t1cid_driver_class @@ -288,5 +337,4 @@ tt_driver_class TT_New_Context TT_RunIns -TwoByteSwap winfnt_driver_class