Subject: Re: libgit2 - a true git library

From: Pierre Habouzit <[email-masked]>
Date: Sat, 01 Nov 2008 02:08:24 +0100

On Sat, Nov 01, 2008 at 01:04:50AM +0000, [email-masked] wrote:
> On Fri, 31 Oct 2008, Shawn O. Pearce wrote:
> 
> >[email-masked] wrote:
> >>On Fri, 31 Oct 2008, Shawn O. Pearce wrote:
> >>>Junio C Hamano <[email-masked]> wrote:
> >>>>
> >>>>I.e. use the supplied custom function to do proprietary magic, such 
> >>>>as
> >>>>reading the object lazily from elsewhere over the network.  And we 
> >>>>will
> >>>>never get that magic bit back.
> >>>
> >>>Maybe I just think too highly of the other guy, but I'd hope that
> >>>anyone patching libgit2 like above would try to avoid it, because
> >>>they'd face merge issues in the future.
> >>
> >>the issue that I see is that libgit2 will be (on most systems) a shared
> >>library.
> >>
> >>what's to stop someone from taking the libgit2 code, adding the magic
> >>proprietary piece, and selling a new libgit2 library binary 'just 
> >>replace
> >>your existing shared library with this new one and all your git related
> >>programs gain this feature'
> >
> >True.  The only thing that prevents that is the normal GPL. The
> >LGPL and GPL+"gcc exception" allow this sort of mean behavior.
> >I doubt there's enough of a market for that; replacing a library
> >is something of a pain and if the feature really is interesting or
> >useful someone will write a clean-room re-implementation and submit
> >patches to do the same thing.
> 
> how would the LGPL of GPL+gcc extention allow this? if they modify the 
> code in the library and then distribute the modified library wouldn't 
> they be required to distribute the changes to that library?

See junio's example. It's rather easy to add hooks into the library to
implement a feature outside of it. It's even possible to do it while
preserving the ABI fully IMHO (by being a strict superset of it).

The patch would be so trivial, that I see no reason why they wouldn't
provide it. Though the real implementation of the feature that would be
delegated through it would be in their closed source stuff.

-- 
·O·  Pierre Habouzit
··O                                                [email-masked]
OOO                                                http://www.madism.org