Quoting Andreas Cadhalpun (2015-07-30 19:10:12)
> On 30.07.2015 18:26, Anton Khirnov wrote:
> 
> > There's a bunch of reasons why I think keeping them is a bad idea:
> > - some of the changes involve adding prefixes for proper namespacing, so
> >   libav does not randomly conflict with other libraries. Here, keeping
> >   the old names pretty much negates the whole point.
> 
> However, it works without namespace clashes so far.

Because, when such clashes occur, the caller has to some rather painful
black magic to fix them. The point here is to avoid this for all future
code.

> 
> > - the less trivial changes are mostly done because the old API was
> >   inadequate. Many of the old APIs were not designed at all, but just
> >   randomly added because mplayer or ffmpeg.c happened to need some
> >   feature at the time. The result was usually un(der)documented, hard to
> >   use correctly and often not well defined in some cases. Most users of
> >   the old API that I've seen actually used it wrong and would at best
> >   occasionally fail to work, at worst crash randomly. So keeping those
> >   APIs is not really in anyone's interest IMO.
> > - finally there's of course the maintenance burden of keeping
> >   compatibility layers, sometimes of rather large complexity. They are
> >   also often poorly tested and not very much maintained so, again, they
> >   might fail to work in some less common cases.
> 
> Removing these APIs causes compile failures, which are more severe than
> occasional runtime failures. It means people have to use old versions of
> the libav* libraries.

I would disagree here. A build failure affects everyone, so it usually
motivates someone into adapting to the new API, which is usually rather
easy to do.

OTOH random misbehaviour affects only some users, so it often goes
unreported, and even if reported can be hard to debug. So I'd say it is
worse for the users.

> 
> >>> Most of then, unfortunately, have to be forced into adopting the new APIs.
> >>
> >> Have you tried sending them patches before breaking compatibility?
> >>
> > 
> > I actually did fix a huge number of packages during the last two API
> > breaks. But it's not really reasonable to expect me to do it all the
> > time.
> 
> Certainly. But someone has to do the work, if you want to remove widely
> used APIs.

That would typically be the maintainer of the code. I'll gladly to
answer any question regarding migration on IRC, but I really don't have
the kind of free time to fix everything myself.

-- 
Anton Khirnov
_______________________________________________
libav-devel mailing list
libav-devel@libav.org
https://lists.libav.org/mailman/listinfo/libav-devel

Reply via email to