Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Relicensing vom LGPL3+ to MPL2 #637

Closed
ax3l opened this issue Sep 11, 2018 · 25 comments
Closed

Relicensing vom LGPL3+ to MPL2 #637

ax3l opened this issue Sep 11, 2018 · 25 comments

Comments

@ax3l
Copy link
Member

ax3l commented Sep 11, 2018

I am currently talking to @SylvainCorlay and they are interested in using Alpaka for GPU support. Since they have (American) business customers, they can't include copyleft licenses in their stack.

Since Alpaka is header-only and LGPL is not very well defined very bloated, yet in v3+ okay for such kind of libraries, see e.g. Eigen discussions in the past [1] [2] [3], I don't really see how we can benefit from it. Also, Alpaka is designed in a way that it is fully user-level extensible via traits, making the definition of "improvements"/"changes" on Alpaka "core" very hard to define.

The discussion I would therefore start is if we want to move Alpaka (and cupla) to a license without copyleft. E.g. ISC, MIT license, new BSD, MPL2 or Apache2. If I remember correctly, @juckel told me that the recommended licenses at HZDR are currently GPL(3+), LGPL(3+) and Apache2. Imho, ISC-like licenses are fine too since Europe is not too big in software patents, but Apache2 also keeps some options open for us for potential trademarks which is useful.

Update: Nevertheless, an important issue with Apache2 is, that it is incompatible with GPL2. In the projects we develop, we always use the latest GPL (v3) (and allow "or newer"), but we should not exclude GPL2. Therefore, using as Eigen a MPL2 license would have the same benefits without the GPL2 incompatibility. (We want to be in the Linux kernel at some point, don't we? ;-) )

Besides the discussion about this, we would then need to collect the agreement from all contributors, e.g. in a GitHub issue. But let us discuss first in the next days/weeks.

@ax3l
Copy link
Member Author

ax3l commented Sep 11, 2018

Just for comparison, spack is currently migrating to a dual license MIT/Apache2 and is basically also shipping as-source since it's a python lib. See rationale for a dual license of MIT and Apache2 here: spack/spack#9144

I asked why they did not simply choose MPL2 that should cover both benefits.

Update: MPL2 is weak (file-level) copyleft. Also ok, imho: https://www.mozilla.org/en-US/MPL/2.0/FAQ/

@ax3l ax3l changed the title Relicensing to Apache2? Relicensing to MIT/Apache2? Sep 11, 2018
@ax3l ax3l changed the title Relicensing to MIT/Apache2? Relicensing from Copyleft? Sep 11, 2018
@BenjaminW3
Copy link
Member

I do not have any problem with relicensing. Personally I would prefer a more relaxed license and especially a simple to understand one. Dual-licensing seems to be too complicated to understand the implication for anyone except lawyers.

@sbastrakov
Copy link
Member

sbastrakov commented Sep 12, 2018

Somewhat related: in yesterday's meeting there was a discussion that having alpaka examples as LGPL does not make a lot of sense (even if alpaka remains LGPL). Firstly, they are code for binaries and not linked as is anyways (so it is effectively GPL then) and, secondly, pointed out by @theZiz the code of examples is meant to be copied to user's own code and modified.

@ax3l
Copy link
Member Author

ax3l commented Sep 17, 2018

@BenjaminW3 thx for your feedback. Imho, any ISC, MIT license, or new BSD would be the simplest and most permissive solution. Of the three, ISC is the most modern, removing outdated language (source).

Downside is missing software patent use (we are international, even if not relevant for DE/EU) and missing trademark use. That's why one of the previous combined with Apache2 would make sense in dual-mode (and Apache2 not being GPL2 compatible in stand-alone).

Alternatively, MPL2 is "file level copyleft", in the sense of what we had originally in mind, and offers the same broad protection: https://choosealicense.com/licenses/

@psychocoderHPC
Copy link
Member

I am fine if we will change the license. But I think I can not be a real help to select the right license.

@ax3l
Copy link
Member Author

ax3l commented Feb 19, 2019

We had the discussion again today and would, if nobody objects, relicense our header-only libraries to MPL2 (compatible with secondary licenses-mode).

The examples make sense to get an ISC header for copy-and-paste allowance to anywhere, even closed-source distributed projects.

@ax3l
Copy link
Member Author

ax3l commented Feb 19, 2019

@BenjaminW3 @psychocoderHPC @ax3l @erikzenker @tdd11235813 @kloppstock @theZiz @bertwesarg @q-p @mxmlnkn @tu-maurice @sbastrakov @m-zacharias

Can you please reply with the text:

My name is _________________________, and I am a contributor to Alpaka. I have used or may have used the following email address(es): ______________________________. I consent to change the current license contained in the License file at https://github.com/ComputationalRadiationPhysics/alpaka/blob/develop/COPYING.LESSER from the LGPL-3+ license to the MPL2 (compatible with secondary licenses-mode) with respect to all of my contributions to Alpaka.

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

@ax3l
Copy link
Member Author

ax3l commented Feb 19, 2019

My name is Axel Hübl, and I am a contributor to Alpaka. I have used or may have used the following email address(es): a.huebl@hzdr.de, axel.huebl@plasma.ninja. I consent to change the current license contained in the License file at https://github.com/ComputationalRadiationPhysics/alpaka/blob/develop/COPYING.LESSER from the LGPL-3+ license to the MPL2 (compatible with secondary licenses-mode) with respect to all of my contributions to Alpaka.

@sbastrakov
Copy link
Member

My name is Sergei Bastrakov, and I am a contributor to Alpaka. I have used or may have used the following email address(es): sergey.bastrakov@gmail.com, s.bastrakov@hzdr.de. I consent to change the current license contained in the License file at https://github.com/ComputationalRadiationPhysics/alpaka/blob/develop/COPYING.LESSER from the LGPL-3+ license to the MPL2 (compatible with secondary licenses-mode) with respect to all of my contributions to Alpaka.

@ax3l ax3l pinned this issue Feb 19, 2019
@ax3l ax3l changed the title Relicensing from Copyleft? Relicensing vom LGPL3+ to MPL2 Feb 19, 2019
@ax3l ax3l mentioned this issue Feb 19, 2019
1 task
@psychocoderHPC
Copy link
Member

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

@tdd11235813
Copy link
Contributor

My name is Matthias Werner, and I am a contributor to Alpaka. I have used or may have used the following email address(es): Matthias.Werner1@tu-dresden.de. I consent to change the current license contained in the License file at https://github.com/ComputationalRadiationPhysics/alpaka/blob/develop/COPYING.LESSER from the LGPL-3+ license to the MPL2 (compatible with secondary licenses-mode) with respect to all of my contributions to Alpaka.

@bussmann
Copy link

bussmann commented Feb 19, 2019 via email

@bussmann
Copy link

bussmann commented Feb 19, 2019 via email

@kloppstock
Copy link
Contributor

My name is Jonas Schenke, and I am a contributor to Alpaka. I have used or may have used the following email address(es): jonas@groeger-clan.de, jonas.schenke@mailbox.tu-dresden.de, j.schenke@hzdr.de. I consent to change the current license contained in the License file at https://github.com/ComputationalRadiationPhysics/alpaka/blob/develop/COPYING.LESSER from the LGPL-3+ license to the MPL2 (compatible with secondary licenses-mode) with respect to all of my contributions to Alpaka.

@q-p
Copy link
Contributor

q-p commented Feb 19, 2019

My name is Daniel Vollmer, and I am a contributor to Alpaka. I have used or may have used the following email address(es): code@maven.de. I consent to change the current license contained in the License file at https://github.com/ComputationalRadiationPhysics/alpaka/blob/develop/COPYING.LESSER from the LGPL-3+ license to the MPL2 (compatible with secondary licenses-mode) with respect to all of my contributions to Alpaka.

@mxmlnkn
Copy link
Contributor

mxmlnkn commented Feb 19, 2019

My name is mxmlnkn, and I am a contributor to Alpaka. I have used or may have used the following email address(es): mxmlnkn@github.de. I consent to change the current license contained in the License file at https://github.com/ComputationalRadiationPhysics/alpaka/blob/develop/COPYING.LESSER from the LGPL-3+ license to the MPL2 (compatible with secondary licenses-mode) with respect to all of my contributions to Alpaka.

@bertwesarg
Copy link
Contributor

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

@tu-maurice
Copy link
Contributor

My name is Valentin Gehrke, and I am a contributor to Alpaka. I have used or may have used the following email address(es): valentin.gehrke@mailbox.tu-dresden.de, madmaurice@zom.bi. I consent to change the current license contained in the License file at https://github.com/ComputationalRadiationPhysics/alpaka/blob/develop/COPYING.LESSER from the LGPL-3+ license to the MPL2 (compatible with secondary licenses-mode) with respect to all of my contributions to Alpaka.

@theZiz
Copy link
Contributor

theZiz commented Feb 21, 2019

My name is Alexander Matthes, and I am a contributor to Alpaka. I have used or may have used the following email address(es): a.matthes@hzdr.de, ziz@mailbox.org. I consent to change the current license contained in the License file at https://github.com/ComputationalRadiationPhysics/alpaka/blob/develop/COPYING.LESSER from the LGPL-3+ license to the MPL2 (compatible with secondary licenses-mode) with respect to all of my contributions to Alpaka.

@ax3l
Copy link
Member Author

ax3l commented Feb 21, 2019

@BenjaminW3 please don't forget to confirm here as well, I treated the re-license of examples and library separate (also with each a different text).

@m-zacharias
Copy link
Contributor

My name is Malte Zacharias, and I am a contributor to Alpaka. I have used or may have used the following email address(es): m.zacharias@hzdr.de, malte.zacharias@web.de. I consent to change the current license contained in the License file at https://github.com/ComputationalRadiationPhysics/alpaka/blob/develop/COPYING.LESSER from the LGPL-3+ license to the MPL2 (compatible with secondary licenses-mode) with respect to all of my contributions to Alpaka.

@erikzenker
Copy link
Member

My name is Erik Zenker, and I am a contributor to Alpaka. I have used or may have used the following email address(es): e.zenker@hzdr.de. I consent to change the current license contained in the License file at https://github.com/ComputationalRadiationPhysics/alpaka/blob/develop/COPYING.LESSER from the LGPL-3+ license to the MPL2 (compatible with secondary licenses-mode) with respect to all of my contributions to Alpaka.

@BenjaminW3
Copy link
Member

My name is Benjamin Worpitz, and I am a contributor to Alpaka. I have used or may have used the following email address(es): benjaminworpitz@gmail.com. I consent to change the current license contained in the License file at https://github.com/ComputationalRadiationPhysics/alpaka/blob/develop/COPYING.LESSER from the LGPL-3+ license to the MPL2 (compatible with secondary licenses-mode) with respect to all of my contributions to Alpaka.

@bernhardmgruber
Copy link
Member

I am considering a similar license change for LLAMA, also LGPL3+ at the moment. For the same reasons.

I resonate very much with @BenjaminW3's comment on wanting a simple and permissive license. Was the missing patent grant in MIT/ISC/BSD etc. the problem, why you did not adopt such a license for alpaka?

@ax3l you said, that you want a license without copyleft, but then you chose MPL2, which is a (weak) copyleft license. Was that because the copyleft of MPL2 is only for MPL2-licenses files, so weak enough? That is, if someone modifies files of alpaka, you force those changes under MPL2. But if someone extends alpaka via traits defined in other files, those can have any license.

@mxmlnkn
Copy link
Contributor

mxmlnkn commented May 9, 2023

I resonate very much with @BenjaminW3's comment on wanting a simple and permissive license. Was the missing patent grant in MIT/ISC/BSD etc. the problem, why you did not adopt such a license for alpaka?

Incidentally, I was also recently looking a bit into this and I'm also not a fan of copyleft. Personally, I am a fan of MIT and use it for most of my projects. However, while reading up about it again, I find that MIT + Apache dual licensing, like is common in the Rust ecosystem, has the advantage that it includes your mentioned patent issues. Note that the user of the library can simply use MIT because it is an OR-wise dual-license. However, all contributors have to agree to the dual-licensing and thereby agree to the grant of patent license section:

  1. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted.

This makes usage of a library much safer from a user perspective, but it makes contributing to an open-source project more difficult especially when you are working for a company. Companies might want to forbid contributions to such open-source projects because they don't want to give patent rights.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests