[Mesa-dev] GPL'd vl_mpeg12_bitstream.c

2011-08-11 Thread Younes Manton
It's been brought to my attention that the source this is based on is
GPL'd, which means it needs to go before 7.12 is released since it's
incompatible with Mesa's MIT license.
___
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev


Re: [Mesa-dev] GPL'd vl_mpeg12_bitstream.c

2011-08-12 Thread Christian König
Am Donnerstag, den 11.08.2011, 12:04 -0400 schrieb Younes Manton:
> It's been brought to my attention that the source this is based on is
> GPL'd, which means it needs to go before 7.12 is released since it's
> incompatible with Mesa's MIT license.

That is actually not so problematic as it sounds in the first place,
since parts of Mesa is already licensed under the LGPL, but it starts to
be a problem when somebody tries to link a for example BSD licensed
binary with the resulting VDPAU implementation (since it is the only
implementation wich is using this code at the moment).

I googled a bit before including this code and came around with the
following mail conversation
(http://www.mail-archive.com/license-discuss@opensource.org/msg01164.html):

> > > > - The Free Software Foundation skirted the issue with its repackaging 
> > > > of the
> > > > X rendering capability into libxmi.  They licensed the new library under
> > > > GPL, but the original source files borrowed from X remain under MIT 
> > > > terms
> > > > (even though those files have most likely been modified to embed them 
> > > > in a
> > > > GPL library).
> > >
> > > It's the modification that's the key.  The FSF own the modifications, and
> > > the copyright on those is GPL.  MIT own the pre-modified code.  To the
> > > extent that the latter can be separated from the former, it can be
> > > distributed under MIT terms.  To the extent that they're inseparable, both
> > > licenses must be satisfied - possible, since they aren't contradictory.
> > 
> > The FSF did that?  So that means that you can mix GPL code
> > with other code and distribute both under the their respective
> > licences?  What effect does this have on that GPL distribution
> > clause?
> 
> Exactly.  But the effect is that you must satisfy *both* licenses. Now the
> MIT license makes no real restrictions on other works its combined into,
> but the GPL does.  The problem comes when the GPL demands that you give
> certain permissions (the permission to modify and distribute sources) on
> any derived work, and this may conflict with one of the other licenses
> applicable on a work - but doesn't in the MIT case.
> 
> In particular, the GPL says that you must make available the source of the
> whole work.  Now this is an additional restriction on top the the MIT one,
> but it's not in conflict with the MIT one - it doesn't ask you to do
> anything you aren't allowed to do.

I already considered a configure option which makes this code to be not
included, but in the long term it just should go away.

Christian.

___
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev


Re: [Mesa-dev] GPL'd vl_mpeg12_bitstream.c

2011-08-12 Thread Younes Manton
2011/8/12 Christian König :
> Am Donnerstag, den 11.08.2011, 12:04 -0400 schrieb Younes Manton:
>> It's been brought to my attention that the source this is based on is
>> GPL'd, which means it needs to go before 7.12 is released since it's
>> incompatible with Mesa's MIT license.
>
> That is actually not so problematic as it sounds in the first place,
> since parts of Mesa is already licensed under the LGPL, but it starts to
> be a problem when somebody tries to link a for example BSD licensed
> binary with the resulting VDPAU implementation (since it is the only
> implementation wich is using this code at the moment).
>
> I googled a bit before including this code and came around with the
> following mail conversation
> (http://www.mail-archive.com/license-discuss@opensource.org/msg01164.html):
>
>> > > > - The Free Software Foundation skirted the issue with its repackaging 
>> > > > of the
>> > > > X rendering capability into libxmi.  They licensed the new library 
>> > > > under
>> > > > GPL, but the original source files borrowed from X remain under MIT 
>> > > > terms
>> > > > (even though those files have most likely been modified to embed them 
>> > > > in a
>> > > > GPL library).
>> > >
>> > > It's the modification that's the key.  The FSF own the modifications, and
>> > > the copyright on those is GPL.  MIT own the pre-modified code.  To the
>> > > extent that the latter can be separated from the former, it can be
>> > > distributed under MIT terms.  To the extent that they're inseparable, 
>> > > both
>> > > licenses must be satisfied - possible, since they aren't contradictory.
>> >
>> > The FSF did that?  So that means that you can mix GPL code
>> > with other code and distribute both under the their respective
>> > licences?  What effect does this have on that GPL distribution
>> > clause?
>>
>> Exactly.  But the effect is that you must satisfy *both* licenses. Now the
>> MIT license makes no real restrictions on other works its combined into,
>> but the GPL does.  The problem comes when the GPL demands that you give
>> certain permissions (the permission to modify and distribute sources) on
>> any derived work, and this may conflict with one of the other licenses
>> applicable on a work - but doesn't in the MIT case.
>>
>> In particular, the GPL says that you must make available the source of the
>> whole work.  Now this is an additional restriction on top the the MIT one,
>> but it's not in conflict with the MIT one - it doesn't ask you to do
>> anything you aren't allowed to do.
>
> I already considered a configure option which makes this code to be not
> included, but in the long term it just should go away.
>
> Christian.

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.

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.
___
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev


Re: [Mesa-dev] GPL'd vl_mpeg12_bitstream.c

2011-08-12 Thread Christian König
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.

Christian.


___
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev


Re: [Mesa-dev] GPL'd vl_mpeg12_bitstream.c

2011-08-12 Thread Maarten Lankhorst
Hey,

On 08/12/2011 07:42 PM, Christian König wrote:
> 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.
>
gstreamer might have a LGPL version, but if we use LGPL, we probably want to 
move that code to vdpau/g3dvl instead of it being linked in with everything..

~Maarten
___
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev


Re: [Mesa-dev] GPL'd vl_mpeg12_bitstream.c

2011-08-12 Thread Marek Olšák
2011/8/12 Christian König :
> 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.

Marek
___
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev


Re: [Mesa-dev] GPL'd vl_mpeg12_bitstream.c

2011-08-12 Thread Patrick Baggett
Why not ask the original author to relicense?

2011/8/12 Marek Olšák 

> 2011/8/12 Christian König :
> > 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.
>
> Marek
> ___
> mesa-dev mailing list
> mesa-dev@lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/mesa-dev
>
___
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev


Re: [Mesa-dev] GPL'd vl_mpeg12_bitstream.c

2011-08-15 Thread Jose Fonseca


- Original Message -
> 2011/8/12 Christian König :
> > 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 ...
___
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev