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: