[Mesa-dev] GPL'd vl_mpeg12_bitstream.c

Jose Fonseca jfonseca at vmware.com
Mon Aug 15 06:23:35 PDT 2011



----- Original Message -----
> 2011/8/12 Christian König <deathsimple at vodafone.de>:
> > Am Freitag, den 12.08.2011, 10:49 -0400 schrieb Younes Manton:
> >> Sorry, by incompatible I didn't mean that you couldn't use them
> >> together, but that one is more restrictive than the other. Like
> >> the
> >> discussion you quoted states, if you combine MIT and GPL you have
> >> to
> >> satisfy both of them, which means you have to satisfy the GPL. I
> >> personally don't care that much, but unfortunately with the way
> >> gallium is built it affects more than just VDPAU.
> >>
> >> Every driver in lib/gallium includes that code, including
> >> swrast_dri
> >> (softpipe), r600_dri, etc, and libGL loads those drivers. If you
> >> build
> >> with the swrast config instead of DRI I believe galllium libGL
> >> statically links with softpipe, so basically my understanding is
> >> that
> >> anyone linking with gallium libGL (both swrast and DRI configs)
> >> has to
> >> satisfy the GPL now.
> > A crap, your right. I've forgotten that GPL has even a problem when
> > code
> > is just linked in, compared to being used.
> >
> >> Maybe someone else who is more familiar with these sorts of things
> >> can
> >> comment and confirm that this is accurate and whether or not it's
> >> a
> >> problem.
> > I already asked around in my AMD team, and the general answer was:
> > Oh
> > fuck I've no idea, please don't give me a headache. I could asked
> > around
> > a bit more, but I don't think we get a definitive answer before
> > xmas.
> >
> > As a short term solution we could compile that code conditionally,
> > and
> > only enable it when the VDPAU state tracker is enabled. But as the
> > long
> > term solution the code just needs a rewrite, beside having a
> > license
> > problem, it is just not very optimal. The original code is
> > something
> > like a decade old, and is using a whole bunch of quirks which are
> > not
> > useful by today’s standards (not including the sign in mv tables
> > for
> > example). ffmpegs/libavs implementation for example is something
> > like
> > halve the size and even faster, but uses more memory for table
> > lookups.
> > But that code is also dual licensed under the GPL/LGPL.
> >
> > Using LGPL code instead could also be a solution, because very
> > important
> > parts of Mesa (the GLSL parser for example) is already licensed
> > under
> > that, but I'm also not an expert with that also.
> 
> Even though the GLSL parser is licensed under LGPL (because Bison
> is),
> there is a special exception that we may license it under whatever
> licence we want if we don't make software that does exactly what
> Bison
> does. So the whole GLSL compiler is actually licensed under the MIT
> license. There was one LGPL dependency (talloc), but Intel has paid
> special attention to get rid of that. My recollection is nobody
> wanted
> LGPL or GPL code in Mesa.

I'd prefer to keep Mesa core MIT/BSD licensed.  Business models of several past/current/future companies sponsoring Mesa development have/do/may depend on that.

_Optional_ LGPL dependencies, although preferably to avoid, are not too worrysome.

Vanilla (i.e, without exceptions) GPL licensed code is a no-no, as Mesa drivers will potentially be dynamically loaded by closed source applications, being very murky whether that forms a derived work or not [1].   IMO, it would be necessary an exception that waives the requirement of applications merely using the OpenGL/VDPAU/etc APIs from being open sourced, similar to GNU Classpath GPL exception.  But this is merely hypothetically speaking -- as keeping Mesa MIT/BSD is by far the ideal.

Therefore, concerning vl_mpeg12_bitstream.c, it sounds the best would be to ask original authors to re-license, and rewrite if denied.

Jose

[1] It's so murky that even Linus thought it was a good idea to clarify that user space programs do not form derived works from linux kernel in  http://www.kernel.org/pub/linux/kernel/COPYING ...


More information about the mesa-dev mailing list