[FriBidi] Version 0.19.2 should be considered as new both API and ABI

Tom Hacohen tom.hacohen at partner.samsung.com
Sun Oct 10 03:41:50 PDT 2010


On Sun, 2010-10-10 at 03:33 -0700, Artyom wrote:
> Hello,
> 
> I've tried to convert by project BiDiTeX (http://biditex.sourceforge.net/)
> to newer version of fribidi, I had issues with missing to_cp1255 from_cp1255 
> functions,
> but I moved to correct public functions.
> 
> However I discovered much bigger ABI/API compatibility issue:
> 
> FriBiDi 0.10.9
> --------------
> 
> fribidi_boolean
> fribidi_log2vis_get_embedding_levels (    /* input */
>        FriBidiChar  *str,
>        FriBidiStrIndex  len,
>        FriBidiCharType *pbase_dir,
>        FriBidiLevel *embedding_level_list);
> 
> 
> FriBiDi 0.19.2
> ---------------
> 
> FriBidiLevel
> fribidi_log2vis_get_embedding_levels (
>   const FriBidiCharType *bidi_types,    /* input list of bidi types as returned 
> by
>                                            fribidi_get_bidi_types() */
>   const FriBidiStrIndex len,    /* input string length of the paragraph */
>   FriBidiParType *pbase_dir,    /* requested and resolved paragraph
>                                  * base direction */
>   FriBidiLevel *embedding_levels        /* output list of embedding levels */
> ) FRIBIDI_GNUC_DEPRECATED;
> 
> 
This is weird, especially since this function is deprecated so there's
no real reason to break the API of a deprecated function. This should
probably be fixed, but in your reimplementation, you should really *not*
use it.
> Now, users complain that in upstream Ubuntu that comes with new fribidi they 
> can't use
> the biditex, on the other hand they can't install older fribidi because it 
> conflicts with the new one
> (as they have same so-version and can't be installed separately)

My personal opinion: just forget 0.10.x ever existed and fix it to work
with 0.19.x, that's what I did. Instead of checking which version the
user had, which was annoying, I just fixed everything to work only with
0.19.x with the assumption that anyone who hasn't upgraded to 0.19.x
won't upgrade my software either, and there's no reason why I stay
behind because of a few people who'll do this strange mix.

But maybe I think this way because 0.10.x -> 0.19.x "just worked" for
me.

--
Tom.



More information about the fribidi mailing list