[Mesa-dev] ralloc: Omit detailed license information about talloc.

Submitted by Jose Fonseca on May 9, 2014, 9:55 a.m.

Details

Message ID 1399629355-9520-1-git-send-email-jfonseca@vmware.com
State New
Headers show

Not browsing as part of any series.

Commit Message

Jose Fonseca May 9, 2014, 9:55 a.m.
From: José Fonseca <jfonseca@vmware.com>

That information misleads source code auditing tools to think that
ralloc itself is released under LGPL v3.

Instead, simply state talloc is not licensed under a permissive license.
---
 src/glsl/ralloc.h | 7 +++----
 1 file changed, 3 insertions(+), 4 deletions(-)

Patch hide | download patch | download mbox

diff --git a/src/glsl/ralloc.h b/src/glsl/ralloc.h
index 4581a7a..70f7d9c 100644
--- a/src/glsl/ralloc.h
+++ b/src/glsl/ralloc.h
@@ -38,10 +38,9 @@ 
  * Tridgell's talloc, but ralloc is an independent implementation
  * released under the MIT license and tuned for Mesa.
  *
- * The talloc implementation is available under the GNU Lesser
- * General Public License (GNU LGPL), version 3 or later. It is
- * more sophisticated than ralloc in that it includes reference
- * counting and debugging features. See: http://talloc.samba.org/
+ * The talloc implementation is not available under a permissive
+ * license. It is more sophisticated than ralloc in that it includes
+ * reference counting and debugging features. See: http://talloc.samba.org/
  */
 
 #ifndef RALLOC_H

Comments

On 05/09/2014 03:55 AM, jfonseca@vmware.com wrote:
> From: José Fonseca <jfonseca@vmware.com>
>
> That information misleads source code auditing tools to think that
> ralloc itself is released under LGPL v3.
>
> Instead, simply state talloc is not licensed under a permissive license.
> ---
>   src/glsl/ralloc.h | 7 +++----
>   1 file changed, 3 insertions(+), 4 deletions(-)
>
> diff --git a/src/glsl/ralloc.h b/src/glsl/ralloc.h
> index 4581a7a..70f7d9c 100644
> --- a/src/glsl/ralloc.h
> +++ b/src/glsl/ralloc.h
> @@ -38,10 +38,9 @@
>    * Tridgell's talloc, but ralloc is an independent implementation
>    * released under the MIT license and tuned for Mesa.
>    *
> - * The talloc implementation is available under the GNU Lesser
> - * General Public License (GNU LGPL), version 3 or later. It is
> - * more sophisticated than ralloc in that it includes reference
> - * counting and debugging features. See: http://talloc.samba.org/
> + * The talloc implementation is not available under a permissive
> + * license. It is more sophisticated than ralloc in that it includes
> + * reference counting and debugging features. See: http://talloc.samba.org/
>    */
>
>   #ifndef RALLOC_H
>

Reviewed-by: Brian Paul <brianp@vmware.com>
On 05/09/2014 02:55 AM, jfonseca@vmware.com wrote:
> From: José Fonseca <jfonseca@vmware.com>
> 
> That information misleads source code auditing tools to think that
> ralloc itself is released under LGPL v3.
> 
> Instead, simply state talloc is not licensed under a permissive license.
> ---
>  src/glsl/ralloc.h | 7 +++----
>  1 file changed, 3 insertions(+), 4 deletions(-)
> 
> diff --git a/src/glsl/ralloc.h b/src/glsl/ralloc.h
> index 4581a7a..70f7d9c 100644
> --- a/src/glsl/ralloc.h
> +++ b/src/glsl/ralloc.h
> @@ -38,10 +38,9 @@
>   * Tridgell's talloc, but ralloc is an independent implementation
>   * released under the MIT license and tuned for Mesa.
>   *
> - * The talloc implementation is available under the GNU Lesser
> - * General Public License (GNU LGPL), version 3 or later. It is
> - * more sophisticated than ralloc in that it includes reference
> - * counting and debugging features. See: http://talloc.samba.org/
> + * The talloc implementation is not available under a permissive
> + * license. It is more sophisticated than ralloc in that it includes
> + * reference counting and debugging features. See: http://talloc.samba.org/
>   */
>  
>  #ifndef RALLOC_H

Sigh...gotta love those source code auditing tools.

Reasonable enough though.

Acked-by: Kenneth Graunke <kenneth@whitecape.org>
On Fri, May 9, 2014 at 2:55 AM,  <jfonseca@vmware.com> wrote:
> From: José Fonseca <jfonseca@vmware.com>
>
> That information misleads source code auditing tools to think that
> ralloc itself is released under LGPL v3.
>
> Instead, simply state talloc is not licensed under a permissive license.
> ---
>  src/glsl/ralloc.h | 7 +++----
>  1 file changed, 3 insertions(+), 4 deletions(-)
>
> diff --git a/src/glsl/ralloc.h b/src/glsl/ralloc.h
> index 4581a7a..70f7d9c 100644
> --- a/src/glsl/ralloc.h
> +++ b/src/glsl/ralloc.h
> @@ -38,10 +38,9 @@
>   * Tridgell's talloc, but ralloc is an independent implementation
>   * released under the MIT license and tuned for Mesa.
>   *
> - * The talloc implementation is available under the GNU Lesser
> - * General Public License (GNU LGPL), version 3 or later. It is
> - * more sophisticated than ralloc in that it includes reference
> - * counting and debugging features. See: http://talloc.samba.org/
> + * The talloc implementation is not available under a permissive
> + * license. It is more sophisticated than ralloc in that it includes
> + * reference counting and debugging features. See: http://talloc.samba.org/

What about this instead?

"The talloc implementation is available under a different open source
license. It is more sophisticated than ralloc in that it includes
reference counting and debugging features. See: http://talloc.samba.org/"

-Jordan

>   */
>
>  #ifndef RALLOC_H
> --
> 1.9.1
>
> _______________________________________________
> mesa-dev mailing list
> mesa-dev@lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/mesa-dev
----- Original Message -----
> On Fri, May 9, 2014 at 2:55 AM,  <jfonseca@vmware.com> wrote:
> > From: José Fonseca <jfonseca@vmware.com>
> >
> > That information misleads source code auditing tools to think that
> > ralloc itself is released under LGPL v3.
> >
> > Instead, simply state talloc is not licensed under a permissive license.
> > ---
> >  src/glsl/ralloc.h | 7 +++----
> >  1 file changed, 3 insertions(+), 4 deletions(-)
> >
> > diff --git a/src/glsl/ralloc.h b/src/glsl/ralloc.h
> > index 4581a7a..70f7d9c 100644
> > --- a/src/glsl/ralloc.h
> > +++ b/src/glsl/ralloc.h
> > @@ -38,10 +38,9 @@
> >   * Tridgell's talloc, but ralloc is an independent implementation
> >   * released under the MIT license and tuned for Mesa.
> >   *
> > - * The talloc implementation is available under the GNU Lesser
> > - * General Public License (GNU LGPL), version 3 or later. It is
> > - * more sophisticated than ralloc in that it includes reference
> > - * counting and debugging features. See:
> > https://urldefense.proofpoint.com/v1/url?u=http://talloc.samba.org/&k=oIvRg1%2BdGAgOoM1BIlLLqw%3D%3D%0A&r=NMr9uy2iTjWVixC0wOcYCWEIYhfo80qKwRgdodpoDzA%3D%0A&m=W9QOIrhCEXJz3yIQbKcCXWeb39YRUJRWizIYkimspSE%3D%0A&s=a97e9dd737954d1433e70ee76d13fdc7c1f433e837da4f3c217138445a70320f
> > + * The talloc implementation is not available under a permissive
> > + * license. It is more sophisticated than ralloc in that it includes
> > + * reference counting and debugging features. See:
> > https://urldefense.proofpoint.com/v1/url?u=http://talloc.samba.org/&k=oIvRg1%2BdGAgOoM1BIlLLqw%3D%3D%0A&r=NMr9uy2iTjWVixC0wOcYCWEIYhfo80qKwRgdodpoDzA%3D%0A&m=W9QOIrhCEXJz3yIQbKcCXWeb39YRUJRWizIYkimspSE%3D%0A&s=a97e9dd737954d1433e70ee76d13fdc7c1f433e837da4f3c217138445a70320f
> 
> What about this instead?
> 
> "The talloc implementation is available under a different open source
> license.

I'm not sure in what way it is better.  The reason talloc was inadequate was not only because it was in a different license but because it was a copyleft (non-permissive) license.  (E.g., LLVM has a different license from Mesa, but nobody went out its way to replace it.) 

That said, I don't care either way.  Provided it doesn't have " GNU Lesser General Public License" nor "LPGL" it should be fine.   (I also though of saying "copyleft" instead of non-permissive, but again, I worry it might cause more confusion.)

We could also remove this sentence all together.

Jose


> It is more sophisticated than ralloc in that it includes
> reference counting and debugging features. See:
> https://urldefense.proofpoint.com/v1/url?u=http://talloc.samba.org/&k=oIvRg1%2BdGAgOoM1BIlLLqw%3D%3D%0A&r=NMr9uy2iTjWVixC0wOcYCWEIYhfo80qKwRgdodpoDzA%3D%0A&m=W9QOIrhCEXJz3yIQbKcCXWeb39YRUJRWizIYkimspSE%3D%0A&s=a97e9dd737954d1433e70ee76d13fdc7c1f433e837da4f3c217138445a70320f"
> 
> -Jordan
> 
> >   */
> >
> >  #ifndef RALLOC_H
> > --
> > 1.9.1
> >
> > _______________________________________________
> > mesa-dev mailing list
> > mesa-dev@lists.freedesktop.org
> > https://urldefense.proofpoint.com/v1/url?u=http://lists.freedesktop.org/mailman/listinfo/mesa-dev&k=oIvRg1%2BdGAgOoM1BIlLLqw%3D%3D%0A&r=NMr9uy2iTjWVixC0wOcYCWEIYhfo80qKwRgdodpoDzA%3D%0A&m=W9QOIrhCEXJz3yIQbKcCXWeb39YRUJRWizIYkimspSE%3D%0A&s=e68a5b29bd3b5c9d5a4d11685f95f0a1bac85f0e038b397051d0bc8b1aaee2ff
>
On 05/09/2014 12:48 PM, Jose Fonseca wrote:
> 
> 
> ----- Original Message -----
>> On Fri, May 9, 2014 at 2:55 AM,  <jfonseca@vmware.com> wrote:
>>> From: José Fonseca <jfonseca@vmware.com>
>>>
>>> That information misleads source code auditing tools to think that
>>> ralloc itself is released under LGPL v3.
>>>
>>> Instead, simply state talloc is not licensed under a permissive license.
>>> ---
>>>  src/glsl/ralloc.h | 7 +++----
>>>  1 file changed, 3 insertions(+), 4 deletions(-)
>>>
>>> diff --git a/src/glsl/ralloc.h b/src/glsl/ralloc.h
>>> index 4581a7a..70f7d9c 100644
>>> --- a/src/glsl/ralloc.h
>>> +++ b/src/glsl/ralloc.h
>>> @@ -38,10 +38,9 @@
>>>   * Tridgell's talloc, but ralloc is an independent implementation
>>>   * released under the MIT license and tuned for Mesa.
>>>   *
>>> - * The talloc implementation is available under the GNU Lesser
>>> - * General Public License (GNU LGPL), version 3 or later. It is
>>> - * more sophisticated than ralloc in that it includes reference
>>> - * counting and debugging features. See:
>>> https://urldefense.proofpoint.com/v1/url?u=http://talloc.samba.org/&k=oIvRg1%2BdGAgOoM1BIlLLqw%3D%3D%0A&r=NMr9uy2iTjWVixC0wOcYCWEIYhfo80qKwRgdodpoDzA%3D%0A&m=W9QOIrhCEXJz3yIQbKcCXWeb39YRUJRWizIYkimspSE%3D%0A&s=a97e9dd737954d1433e70ee76d13fdc7c1f433e837da4f3c217138445a70320f
>>> + * The talloc implementation is not available under a permissive
>>> + * license. It is more sophisticated than ralloc in that it includes
>>> + * reference counting and debugging features. See:
>>> https://urldefense.proofpoint.com/v1/url?u=http://talloc.samba.org/&k=oIvRg1%2BdGAgOoM1BIlLLqw%3D%3D%0A&r=NMr9uy2iTjWVixC0wOcYCWEIYhfo80qKwRgdodpoDzA%3D%0A&m=W9QOIrhCEXJz3yIQbKcCXWeb39YRUJRWizIYkimspSE%3D%0A&s=a97e9dd737954d1433e70ee76d13fdc7c1f433e837da4f3c217138445a70320f
>>
>> What about this instead?
>>
>> "The talloc implementation is available under a different open source
>> license.
> 
> I'm not sure in what way it is better.  The reason talloc was
> inadequate was not only because it was in a different license but
> because it was a copyleft (non-permissive) license.  (E.g., LLVM has
> a different license from Mesa, but nobody went out its way to replace
> it.)
> 
> That said, I don't care either way.  Provided it doesn't have " GNU
> Lesser General Public License" nor "LPGL" it should be fine.   (I
> also though of saying "copyleft" instead of non-permissive, but
> again, I worry it might cause more confusion.)
> 
> We could also remove this sentence all together.
> 
> Jose

Actually, I don't think copyleft was the problem.  It was because
various VMware and Intel people were paranoid about LGPLv3, and
vehemently opposed to depending on LGPLv3 code.  I think if it was
LGPLv2, nobody would have cared.  (Personally, I think is unwarranted
paranoia, but what can you do?)  It was just easier to reimplement it,
and put it under the same license as the rest of Mesa.

Independently of that, it did give us an opportunity to make different
performance trade-offs: ralloc_parent(x) is O(1) while talloc_parent(x)
is O(n).  Mesa calls parent() all the time, while Samba doesn't, and
benefits more from a different operation being fast.

I'm fine with either sentence, or simply deleting it.  My original
intent was to encourage people who are OK with LGPLv3 to go use the more
robust code that's already available as a reusable shared library.

Perhaps a mix of the two:

"talloc is more sophisticated than ralloc in that it includes reference
counting and useful debugging features.  However, it is released under
a non-permissive open source license."

Whatever you decide to commit is fine by me.

--Ken
----- Original Message -----
> On 05/09/2014 12:48 PM, Jose Fonseca wrote:
> > 
> > 
> > ----- Original Message -----
> >> On Fri, May 9, 2014 at 2:55 AM,  <jfonseca@vmware.com> wrote:
> >>> From: José Fonseca <jfonseca@vmware.com>
> >>>
> >>> That information misleads source code auditing tools to think that
> >>> ralloc itself is released under LGPL v3.
> >>>
> >>> Instead, simply state talloc is not licensed under a permissive license.
> >>> ---
> >>>  src/glsl/ralloc.h | 7 +++----
> >>>  1 file changed, 3 insertions(+), 4 deletions(-)
> >>>
> >>> diff --git a/src/glsl/ralloc.h b/src/glsl/ralloc.h
> >>> index 4581a7a..70f7d9c 100644
> >>> --- a/src/glsl/ralloc.h
> >>> +++ b/src/glsl/ralloc.h
> >>> @@ -38,10 +38,9 @@
> >>>   * Tridgell's talloc, but ralloc is an independent implementation
> >>>   * released under the MIT license and tuned for Mesa.
> >>>   *
> >>> - * The talloc implementation is available under the GNU Lesser
> >>> - * General Public License (GNU LGPL), version 3 or later. It is
> >>> - * more sophisticated than ralloc in that it includes reference
> >>> - * counting and debugging features. See:
> >>> https://urldefense.proofpoint.com/v1/url?u=http://talloc.samba.org/&k=oIvRg1%2BdGAgOoM1BIlLLqw%3D%3D%0A&r=NMr9uy2iTjWVixC0wOcYCWEIYhfo80qKwRgdodpoDzA%3D%0A&m=W9QOIrhCEXJz3yIQbKcCXWeb39YRUJRWizIYkimspSE%3D%0A&s=a97e9dd737954d1433e70ee76d13fdc7c1f433e837da4f3c217138445a70320f
> >>> + * The talloc implementation is not available under a permissive
> >>> + * license. It is more sophisticated than ralloc in that it includes
> >>> + * reference counting and debugging features. See:
> >>> https://urldefense.proofpoint.com/v1/url?u=http://talloc.samba.org/&k=oIvRg1%2BdGAgOoM1BIlLLqw%3D%3D%0A&r=NMr9uy2iTjWVixC0wOcYCWEIYhfo80qKwRgdodpoDzA%3D%0A&m=W9QOIrhCEXJz3yIQbKcCXWeb39YRUJRWizIYkimspSE%3D%0A&s=a97e9dd737954d1433e70ee76d13fdc7c1f433e837da4f3c217138445a70320f
> >>
> >> What about this instead?
> >>
> >> "The talloc implementation is available under a different open source
> >> license.
> > 
> > I'm not sure in what way it is better.  The reason talloc was
> > inadequate was not only because it was in a different license but
> > because it was a copyleft (non-permissive) license.  (E.g., LLVM has
> > a different license from Mesa, but nobody went out its way to replace
> > it.)
> > 
> > That said, I don't care either way.  Provided it doesn't have " GNU
> > Lesser General Public License" nor "LPGL" it should be fine.   (I
> > also though of saying "copyleft" instead of non-permissive, but
> > again, I worry it might cause more confusion.)
> > 
> > We could also remove this sentence all together.
> > 
> > Jose
> 
> Actually, I don't think copyleft was the problem.  It was because
> various VMware and Intel people were paranoid about LGPLv3, and
> vehemently opposed to depending on LGPLv3 code.  I think if it was
> LGPLv2, nobody would have cared.  (Personally, I think is unwarranted
> paranoia, but what can you do?)  It was just easier to reimplement it,
> and put it under the same license as the rest of Mesa.

At least from VMware POV, even LGPLv2 compliance terms are too onerous.  The ability to statically link proprietary code makes things much easier for us. Dynamically linking is not technically/legally impossible, but a huge hassle in terms of installing, driver signing, etc.

> Independently of that, it did give us an opportunity to make different
> performance trade-offs: ralloc_parent(x) is O(1) while talloc_parent(x)
> is O(n).  Mesa calls parent() all the time, while Samba doesn't, and
> benefits more from a different operation being fast.
> 
> I'm fine with either sentence, or simply deleting it.  My original
> intent was to encourage people who are OK with LGPLv3 to go use the more
> robust code that's already available as a reusable shared library.
> 
> Perhaps a mix of the two:
> 
> "talloc is more sophisticated than ralloc in that it includes reference
> counting and useful debugging features.  However, it is released under
> a non-permissive open source license."
> 
> Whatever you decide to commit is fine by me.

You're the author so I'm going with your suggestion.

Jose
On 05/09/2014 02:55 AM, jfonseca@vmware.com wrote:
> From: José Fonseca <jfonseca@vmware.com>
> 
> That information misleads source code auditing tools to think that
> ralloc itself is released under LGPL v3.
> 
> Instead, simply state talloc is not licensed under a permissive license.
> ---
>  src/glsl/ralloc.h | 7 +++----
>  1 file changed, 3 insertions(+), 4 deletions(-)
> 
> diff --git a/src/glsl/ralloc.h b/src/glsl/ralloc.h
> index 4581a7a..70f7d9c 100644
> --- a/src/glsl/ralloc.h
> +++ b/src/glsl/ralloc.h
> @@ -38,10 +38,9 @@
>   * Tridgell's talloc, but ralloc is an independent implementation
>   * released under the MIT license and tuned for Mesa.
>   *
> - * The talloc implementation is available under the GNU Lesser
> - * General Public License (GNU LGPL), version 3 or later. It is
> - * more sophisticated than ralloc in that it includes reference
> - * counting and debugging features. See: http://talloc.samba.org/
> + * The talloc implementation is not available under a permissive
> + * license. It is more sophisticated than ralloc in that it includes

To avoid possible future flamewars about whether or not LGPL v3 is
permissive, maybe "The talloc implementation is not available under a
license that is acceptable to the Mesa development community."  Not a
big deal to me either way.

> + * reference counting and debugging features. See: http://talloc.samba.org/
>   */
>  
>  #ifndef RALLOC_H
>
----- Original Message -----
> On 05/09/2014 02:55 AM, jfonseca@vmware.com wrote:
> > From: José Fonseca <jfonseca@vmware.com>
> > 
> > That information misleads source code auditing tools to think that
> > ralloc itself is released under LGPL v3.
> > 
> > Instead, simply state talloc is not licensed under a permissive license.
> > ---
> >  src/glsl/ralloc.h | 7 +++----
> >  1 file changed, 3 insertions(+), 4 deletions(-)
> > 
> > diff --git a/src/glsl/ralloc.h b/src/glsl/ralloc.h
> > index 4581a7a..70f7d9c 100644
> > --- a/src/glsl/ralloc.h
> > +++ b/src/glsl/ralloc.h
> > @@ -38,10 +38,9 @@
> >   * Tridgell's talloc, but ralloc is an independent implementation
> >   * released under the MIT license and tuned for Mesa.
> >   *
> > - * The talloc implementation is available under the GNU Lesser
> > - * General Public License (GNU LGPL), version 3 or later. It is
> > - * more sophisticated than ralloc in that it includes reference
> > - * counting and debugging features. See:
> > https://urldefense.proofpoint.com/v1/url?u=http://talloc.samba.org/&k=oIvRg1%2BdGAgOoM1BIlLLqw%3D%3D%0A&r=NMr9uy2iTjWVixC0wOcYCWEIYhfo80qKwRgdodpoDzA%3D%0A&m=Ddp4HkJpnRWjHHxoLTKPDw6xut5vF8UDp7679tk5SSw%3D%0A&s=c5292659b3037aee70c5c382dc954a465c6032523078593eca87e5db94b44f23
> > + * The talloc implementation is not available under a permissive
> > + * license. It is more sophisticated than ralloc in that it includes
> 
> To avoid possible future flamewars about whether or not LGPL v3 is
> permissive, 

I didn't realize this was debatable.  http://opensource.org/faq#permissive and wikipedia defines permissive as non-copyleft, and LPGL as a copyleft.  It does say "weak copyleft" though. 

> maybe "The talloc implementation is not available under a
> license that is acceptable to the Mesa development community."  Not a
> big deal to me either way.

Thanks for your feedback.  I ended up just going with Kenneth's wording.  Feel free to tweak later.  To be honest I'm more concerned about lawyers than trolls.  Both tend to excel at argumentation, but one can always ignore a troll... :-)

Jose