ldtteam / minecolonies

Minecolonies minecraft mod
http://minecolonies.com/
GNU General Public License v3.0
655 stars 335 forks source link

consider changing CLA #5541

Closed boneskull closed 4 years ago

boneskull commented 4 years ago

The current CLA for ldtteam projects reads:

As a contributor to ldtteam projects, you grant ldtteam the following:

A license to use your contributions to the ldtteam organization (https://github.com/ldtteam) repositories, under the GPLv3 license. The right to re-license your contributions as they see fit. This is a legally binding copyright assignment to the ldtteam project for contributions.

You retain your copyright for all contributions, assigning it to the ldtteam project.

I wanted to contribute to ldtteam projects, but this CLA was sufficiently problematic to stop me from doing so. From my view as an experienced OSS contributor (and my activity in OSS Foundation governance), and leadership of a popular project with a CLA--but not a lawyer--the CLA above is contradictory and does not protect this project in the way it intends to.

Among the issues:

  1. The mention of the license is not strictly necessary and burdens the project unnecessarily. If, for whatever reason, the ldtteam did want to relicense a project to License X, the CLA would become invalid, because it mentions GPLv3 and not License X. When the CLA is changed. everyone who signed this CLA when it was GPLv3, would, at minimum, need to sign it again for any future contributions. If a specific license is omitted from the CLA, the CLA needn't change if/when the license changes.
  2. "Copyright assignment" means "I give my copyright to you". Two entities cannot "share" a copyright. This is especially problematic since the last line reads "you retain your copyright". A contributor cannot retain copyright if they assign the license to the project. In fact, such a "CLA" is not a "Copyright License Agreement" at all, but rather a "CTA" (Copyright Transfer Agreement). CTAs are generally disliked by OSS contributors. The purpose of a CLA is to enter into an agreement with a contributor in which they license their copyright to your project. A contributor who owns a copyright can license the work to your project, which (depending on wording) allows the project sufficient rights to use the work as it sees fit--including the freedom to relicense the work.
  3. There is no consideration of a patent license grant. I am not sure if the GPLv3 covers patents at all. This exposes the project to potential legal action over patented code that somehow wound up in this codebase.
  4. At no point does the contributor need to attest that the code they are contributing is their own, or that they have permission to do so.

I would have sent a pull request to address this with a new CLA, but the CLA does not seem to exist in the project(s) anywhere (though I didn't look very hard).

Here is a proposed new CLA, adapted from the Apache Foundation's CLA:

Thank you for your interest in contributing to the ldtteam organization (the
"Organization"). In order to clarify the intellectual property license
granted with Contributions from any person or entity, the Organization
must have a Contributor License Agreement ("CLA") on file that has
been signed by each Contributor, indicating agreement to the license
terms below. This license is for your protection as a Contributor as
well as the protection of the Organization and its users; it does not
change your rights to use your own Contributions for any other purpose.

Please read this document carefully before signing and keep a copy
for your records.

You accept and agree to the following terms and conditions for Your
present and future Contributions submitted to the Organization. In
return, the Organization shall not use Your Contributions in a way that
is contrary to the public benefit or inconsistent with its nonprofit
status and bylaws in effect at the time of the Contribution. Except
for the license granted herein to the Organization and recipients of
software distributed by the Organization, You reserve all right, title,
and interest in and to Your Contributions.

1. Definitions.
   "You" (or "Your") shall mean the copyright owner or legal entity
   authorized by the copyright owner that is making this Agreement
   with the Organization. For legal entities, the entity making a
   Contribution and all other entities that control, are controlled
   by, or are under common control with that entity are considered to
   be a single Contributor. For the purposes of this definition,
   "control" means (i) the power, direct or indirect, to cause the
   direction or management of such entity, whether by contract or
   otherwise, or (ii) ownership of fifty percent (50%) or more of the
   outstanding shares, or (iii) beneficial ownership of such entity.
   "Contribution" shall mean any original work of authorship,
   including any modifications or additions to an existing work, that
   is intentionally submitted by You to the Organization for inclusion
   in, or documentation of, any of the products owned or managed by
   the Organization (the "Work"). For the purposes of this definition,
   "submitted" means any form of electronic, verbal, or written
   communication sent to the Organization or its representatives,
   including but not limited to communication on electronic mailing
   lists, source code control systems, and issue tracking systems that
   are managed by, or on behalf of, the Organization for the purpose of
   discussing and improving the Work, but excluding communication that
   is conspicuously marked or otherwise designated in writing by You
   as "Not a Contribution."
2. Grant of Copyright License. Subject to the terms and conditions of
   this Agreement, You hereby grant to the Organization and to
   recipients of software distributed by the Organization a perpetual,
   worldwide, non-exclusive, no-charge, royalty-free, irrevocable
   copyright license to reproduce, prepare derivative works of,
   publicly display, publicly perform, sublicense, and distribute Your
   Contributions and such derivative works.
3. Grant of Patent License. Subject to the terms and conditions of
   this Agreement, You hereby grant to the Organization and to
   recipients of software distributed by the Organization 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 You that are necessarily infringed by Your
   Contribution(s) alone or by combination of Your Contribution(s)
   with the Work to which such Contribution(s) was submitted. If any
   entity institutes patent litigation against You or any other entity
   (including a cross-claim or counterclaim in a lawsuit) alleging
   that your Contribution, or the Work to which you have contributed,
   constitutes direct or contributory patent infringement, then any
   patent licenses granted to that entity under this Agreement for
   that Contribution or Work shall terminate as of the date such
   litigation is filed.
4. You represent that you are legally entitled to grant the above
   license. If your employer(s) has rights to intellectual property
   that you create that includes your Contributions, you represent
   that you have received permission to make Contributions on behalf
   of that employer, that your employer has waived such rights for
   your Contributions to the Organization, or that your employer has
   executed a separate Corporate CLA with the Organization.
5. You represent that each of Your Contributions is Your original
   creation (see section 7 for submissions on behalf of others). You
   represent that Your Contribution submissions include complete
   details of any third-party license or other restriction (including,
   but not limited to, related patents and trademarks) of which you
   are personally aware and which are associated with any part of Your
   Contributions.
6. You are not expected to provide support for Your Contributions,
   except to the extent You desire to provide support. You may provide
   support for free, for a fee, or not at all. Unless required by
   applicable law or agreed to in writing, You provide Your
   Contributions on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS
   OF ANY KIND, either express or implied, including, without
   limitation, any warranties or conditions of TITLE, NON-
   INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE.
7. Should You wish to submit work that is not Your original creation,
   You may submit it to the Organization separately from any
   Contribution, identifying the complete details of its source and of
   any license or other restriction (including, but not limited to,
   related patents, trademarks, and license agreements) of which you
   are personally aware, and conspicuously marking the work as
   "Submitted on behalf of a third-party: [named here]".
8. You agree to notify the Organization of any facts or circumstances of
   which you become aware that would make these representations
   inaccurate in any respect.

Changing the CLA will, of course, require contributors to sign it again for future contributions.

ShadowProtocol commented 4 years ago

An initial address of these issues from another with no formal education in law

  1. This is exactly how it should be. Contributors should be informed when there are changes to how their contributions are addressed. This is one of the simplest ways to do it.
  2. This is OSS. Whether it is admitted or not the line between CLA and CTA is virtually nonexistent, as your code once released can be used with or without your knowledge, as long as it is released under the GPLv3 also.
  3. The GPLv3, to my knowledge, does address patent retaliation at least in part. However this issue is difficult regardless, as the freedom of software distribution ("conveyance") is one of the GPLv3 priorities.
  4. A very good point.

One thing to consider is this is a modification of an existing product, and not a fundamental contribution to FOSS like Apache software. Moreover, the existing product is marked is "do not distribute". With all the considerations that implies, I consider your adaptation to be unsuitable, and potentially unnecessarily verbose. Of course, and to reiterate, I am not a legal expert. Beyond this point, I will leave any further comments for the Project Maintainers.

boneskull commented 4 years ago
  1. An open-source modification of a proprietary product is still open-source code (especially as it's licensed GPLv3). This really doesn't have anything to do with Minecraft itself, unless some lawyer thinks it does. Since mods do not distribute Minecraft in any way, shape or form, I don't think this is here nor there.
  2. There is a difference between copyright transfer and licensing. In the case of the former, once my contribution's copyright has been transferred, I relinquish all rights to it. So if I contributed, say, a texture, I would not have the rights to do anything with that texture except in the context of the GPLv3, which has its own restrictions. I could not, say, sell the texture I created as part of an asset pack. IMO that sort of limitation what contributors can do with their own contributions is not needed for a project like this. If all this project wants to do is freely distribute my contribution under the GPLv3--which is great, mind you!--the minimum needed to do so in an unencumbered way is a copyright license, where I retain copyright, but let the project do whatever it wants with the contribution.
  3. Regarding verbosity: it's long, yes, but it's also drafted by lawyers. Many, many individuals have signed a nearly-identical CLA, and it's served its purpose well thus far--it's probably avoided some lawsuits, even!

Hope that makes sense.

boneskull commented 4 years ago

Oh and

This is exactly how it should be. Contributors should be informed when there are changes to how their contributions are addressed. This is one of the simplest ways to do it.

If the project wishes to inform its past contributors of an imminent re-licensing, there are other (probably better) ways to do that than to update the CLA and have everyone sign it again. But... since I don't usually see specific licenses mentioned in CLAs I've signed, I'm going to guess there are good reasons for the omission thereof

Raycoms commented 4 years ago

Thanks for the input. We slightly altered it and incorporated it in our CLA.

marchermans commented 4 years ago

@boneskull Hello, after your last mention of this issue, I looked into it and had a Lawyer friend point me in the right directions. We now used your CLA as a base since it was equal if not identical to the ones we found on other organizations.

Our lawyer pointed out that we however needed to remove your reference of a nonprofit organization. Since we do not fall in the legal bounds of that definition. The LDTTeam, is not a legal entity, however it collects adrevenue and patreon money to host services, like our buildsystem, and the patreon only servers. Additionally anything that is left over from that is handed to our developers based on an equal split.

I hope this helps you with contributing to our mod, as well as others who had a clear issue with this. Greets, Orion.

boneskull commented 4 years ago

thanks! yeah missed the bit about non-profit org.. was just a search/replace job. 🙂