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

Re: Bug#316031: libfreetype6: API changes from 2.1.7 to 2.1.10



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

Reply to: