alpaka-group / llama

A Low-Level Abstraction of Memory Access
https://llama-doc.rtfd.io/
Mozilla Public License 2.0
79 stars 10 forks source link

[RFC] Relicense LLAMA (away from LGPL) #733

Closed bernhardmgruber closed 9 months ago

bernhardmgruber commented 1 year ago

I have been thinking about this for a long time. LLAMA is licensed under LGPL3+, which sounds scary to some people, including me. However, because the library's design is header-only, several special cases apply. Those are summarized for example in the Eigen Licensing FAQ, which has an equivalent library design. However, this effectively means that we use a scary license name for a behavior that can be expressed by simpler licenses. Which gets me here:

I propose to relicense LLAMA to a simpler license. I am not a fan of copyleft as well, so I would also value a permissive license. And the license should be well known/widely used.

What comes to mind are licenses like MIT, BSD-2, BSL, Apache. choosealicense.com recommends MIT. Apache is fairly long compared to the others. BSD-2 seems similar to MIT, but I read it's less widely used. My personal favorite is BSL, because it does not require license distribution with binaries and therefore simplifies the life of downstream users.

What does not fit my proposal are licenses like GPL (copyleft), LGPL (copyleft), EPL (copyleft), MPL (copyleft) or the EUPL (complex). Sadly, the latter two are used by alpaka and bactria, so my proposal does not help in reducing the license fragmentation.

So far, the following persons have contributed to LLAMA and would need to be asked before such a license change:

For the last three contributors the changes are very minor (merged 1 PR, 14 lines and 4 lines, some of them no longer existing in today's develop branch). I think it's realistic that we could still contact these authors if we decide for a license change.

What do people think?

bernhardmgruber commented 1 year ago

See similar discussion for alpaka: https://github.com/alpaka-group/alpaka/issues/637

theZiz commented 10 months ago

I would not like to change a licence because people are ~not able to read and understand~ scared. Afair the LGPL3 is meant to be used for header only libraries, it's not like a chose it randomly back in the days. The copy left is intended. You want to use the library? Sure! Just do as you would link a dynamic library and give credit. You want to change it? Sure! But your changes should be free, too. :wink:

Is there anything with the LGPL3 which does not make this working anymore as I intented it?

theZiz commented 10 months ago

To make this sure as I value the discussion Eigen had: MPL2 would be fine for me. I want copyleft.

bernhardmgruber commented 10 months ago

Hey @theZiz, thx for replying! :)

I would not like to change a licence because people are ~not able to read and understand~ scared.

I am afraid it may hinder LLAMA's adoption, so I would like to make it as easy as possible for other people to consume LLAMA in their projects.

it's not like a chose it randomly back in the days. The copy left is intended. You want to use the library? Sure! Just do as you would link a dynamic library and give credit. You want to change it? Sure! But your changes should be free, too. 😉

I respect your judgement as the original author, although I have a much different philosophy: You want to use the library? Just do it! No need to think about anything, just install, copy&paste, no long LICENSE.txt, etc. I don't even need attribution or copyleft. Which is why I like BSL. Just copy&paste the files and go.

I believe forcing people to share their fixes (copyleft) will not increase contributions. They either know open source development and care about it, in which case they will submit their fix, or they don't know and will not do so, possibly violating the license. I don't think the legal aspect matters here. I believe it's far more a cultural, awareness, knowledge thing.

Is there anything with the LGPL3 which does not make this working anymore as I intented it? Use: Only credit needed. Change: Copyleft

LGPL3 still works that way for header only libraries, due to all the special cases.

To make this sure as I value the discussion Eigen had: MPL2 would be fine for me. I want copyleft.

I would rather have MPL2 than LGPL3. This would also be consistent with alpaka.

bernhardmgruber commented 10 months ago

@bertwesarg and @psychocoderHPC, would a relicense to MPL2 be ok for you?

bertwesarg commented 9 months ago

is this still just the discussion or already the vote, like it was done in alpaka-group/alpaka#637?

bernhardmgruber commented 9 months ago

is this still just the discussion or already the vote, like it was done in alpaka-group/alpaka#637?

This is still a discussion, because there is no point in a vote if anybody has an "over my dead body" stance. If you are in favor, then I think we could start a vote. Possibly using a similar text as for alpaka. So, would you be fine with relicense to MPL2?

bernhardmgruber commented 9 months ago

Ping @bertwesarg.

bertwesarg commented 9 months ago

I wont do the work twice. Open the actual voting (whatever this is called) and let the contributors make their statement. Its even twice the work for you, as you need to ping all the contributors again.

psychocoderHPC commented 9 months ago

I am fine with switching to MPL2!

bernhardmgruber commented 9 months ago

Alright, let's have a similar vote as done for alpaka in https://github.com/alpaka-group/alpaka/issues/637. I need permissions from:

The changes done by other contributors have been removed or rewritten over time.

Please reply with the text:

My name is _____, and I am a contributor to LLAMA. I have used the following email address(es) for my contributions: __. I consent to change the current license contained in the License file at https://github.com/alpaka-group/llama/blob/develop/LICENSE from the LGPL-3+ license to the MPL2 (compatible with secondary licenses-mode) with respect to all of my contributions to LLAMA.

If you agree with this license change. I will then open a PR and re-license all affected files in LLAMA.

bernhardmgruber commented 9 months ago

My name is Bernhard Manfred Gruber, and I am a contributor to LLAMA. I have used the following email address(es) for my contributions: bernhardmgruber@gmail.com. I consent to change the current license contained in the License file at https://github.com/alpaka-group/llama/blob/develop/LICENSE from the LGPL-3+ license to the MPL2 (compatible with secondary licenses-mode) with respect to all of my contributions to LLAMA.

bertwesarg commented 9 months ago

My name is Bert Wesarg, and I am a contributor to LLAMA. I have used the following email address(es) for my contributions: bert.wesarg@tu-dresden.de. I consent to change the current license contained in the License file at https://github.com/alpaka-group/llama/blob/develop/LICENSE from the LGPL-3+ license to the MPL2 (compatible with secondary licenses-mode) with respect to all of my contributions to LLAMA.

psychocoderHPC commented 9 months ago

My name is René Widera, and I am a contributor to LLAMA. I have used the following email address(es) for my contributions: r.widera@hzdr.de. I consent to change the current license contained in the License file at https://github.com/alpaka-group/llama/blob/develop/LICENSE from the LGPL-3+ license to the MPL2 (compatible with secondary licenses-mode) with respect to all of my contributions to LLAMA.

theZiz commented 9 months ago

My name is Alexander Matthes, and I am a contributor to LLAMA. I have used the following email address(es) for my contributions: ziz@mailbox.org, alexander@porygon. I consent to change the current license contained in the License file at https://github.com/alpaka-group/llama/blob/develop/LICENSE from the LGPL-3+ license to the MPL2 (compatible with secondary licenses-mode) with respect to all of my contributions to LLAMA.

bernhardmgruber commented 9 months ago

Thanks a lot for all the votes! LLAMA is now under MPL-2.0!