浏览代码

chore: Add GPL exception for Vendure plugins (#3280)

Michael Bromley 1 年之前
父节点
当前提交
0bf4186fdb
共有 4 个文件被更改,包括 33 次插入30 次删除
  1. 5 0
      LICENSE.md
  2. 3 3
      docs/docs/guides/how-to/publish-plugin/index.mdx
  3. 5 27
      license/license-faq.md
  4. 20 0
      license/plugin-exception.txt

+ 5 - 0
LICENSE.md

@@ -24,6 +24,11 @@ GNU General Public License for more details.
 You should have received a copy of the GNU General Public License
 along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
+Additional permission under GNU GPL version 3 section 7:
+
+An additional exception under section 7 of the GPL is included in the plugin-exception.txt file,
+which allows you to distribute Vendure plugins (i.e. extensions) under a different license.
+
 ## Vendure Commercial License (VCL)
 
 Alternatively, commercial and supported versions of the program - also known as

+ 3 - 3
docs/docs/guides/how-to/publish-plugin/index.mdx

@@ -52,9 +52,9 @@ is using a compatible version of Vendure.
 
 ### License
 
-Your plugin **must** use a license that is compatible with the GPL v3 license that Vendure uses. This means your package.json
-file should include `"license": "GPL-3.0-or-later"`, and your repository should include a license file (usually named `LICENSE.txt`) containing the
-[full text of the GPL v3 license](https://www.gnu.org/licenses/gpl-3.0.txt).
+You are free to license your plugin as you wish. Although Vendure itself is licensed under the GPLv3, there is
+a special exception for plugins which allows you to distribute them under a different license. See the
+[plugin exception](https://github.com/vendure-ecommerce/vendure/blob/master/license/plugin-exception.txt) for more details.
 
 ## Publishing to npm
 

+ 5 - 27
license/license-faq.md

@@ -26,7 +26,8 @@ All Vendure contributors retain copyright on their code, but agree to release it
 If you are unable or unwilling to contribute a patch under the GPL version 3 and the Vendure Commercial License, do not submit a patch.
 
 ## I want to release my work under a different license than GPLv3, is that possible?
-No. You can only release your work under any GPL version 3 or later compatible license.
+Yes. There is a special exception described in the file `plugin-exception.txt` that allows you to distribute Vendure plugins under a different license.
+If you modify the Vendure core code, you must still release your changes under the GPLv3.
 
 ## The GPL requires that I distribute the "source code" of my files. What does that mean for a web application?
 The "source code" of a file means the format that is intended for people to edit.
@@ -35,34 +36,11 @@ For TypeScript, CSS, and HTML code, the file itself, without any compression or
 The "source code" is whichever version is intended to be edited by people.
 
 ## If I write a plugin for my Vendure application, do I have to license it under the GPL?
-Yes. Vendure plugins for your application are a derivative work of Vendure.
-If you distribute them, you must do so under the terms of the GPL version 3 or later.
-
-You are not required to distribute them at all, however.
-
-However, when distributing your own Vendure-based work, it is important to keep in mind what the GPLv3 applies to.
-The GPLv3 on code applies to code that interacts with that code, but not to data.
-That is, Vendure's TypeScript code is under the GPLv3, and so all TypeScript code that interacts with it must also be
-under the GPLv3 or GPLv3 compatible. Images and JSON files that TypeScript sends to the browser are not
-affected by the GPL because they are data
-
-When distributing your own plugin, therefore,
-the GPLv3 applies to any pieces that directly interact with parts of Vendure that are under the GPLv3.
-Images and other asset files you create yourself are not affected.
-
-## If I write a plugin for my application, do I have to give it away to everyone?
-No. The GPL requires that if you make a derivative work of Vendure and distribute it to someone else,
-you must provide that person with the source code under the terms of the GPLv3 so that they may modify and redistribute
-it under the terms of the GPLv3 as well. However, you are under no obligation to distribute the code to anyone else.
-If you do not distribute the code but use it only within your organization,
-then you are not required to distribute it to anyone at all.
-
-However, if your plugin is of general use then it is often a good idea to contribute it back to the community anyway.
-You can get feedback, bug reports, and new feature patches from others who find it useful.
+No. There is a special exception described in the file `plugin-exception.txt` that allows you to 
+distribute Vendure plugins under a different license.
 
 ## Is it permitted for me to sell Vendure or a Vendure plugin?
-Yes. However, you must distribute it under the GPL version 3 or later,
-so those you sell it to must be allowed to modify and redistribute it as well. See questions above.
+Yes. However, any modifications to Vendure Core must be made available under the terms of the GPL version 3.
 
 ## Do I have to give the code for my web site to anyone who visits it?
 

+ 20 - 0
license/plugin-exception.txt

@@ -0,0 +1,20 @@
+Vendure Plugin Exception
+
+0. Definitions
+
+"Vendure Core" includes all the source code files included in this repository, which are licensed under the
+GPL v3.0 license.
+
+A "Plugin" is a software module that is designed to enable additional functionality by
+ using APIs exposed by the Vendure Core packages, including but not limited to the public
+APIs described in the Vendure documentation at https://docs.vendure.io. A Plugin does not include any source code from
+the Vendure Core itself.
+
+1. Grant of Additional Permission.
+
+For Plugins that are distributed separately from Vendure Core (such as via a package repository),
+Vendure GmbH hereby grants you permission to link the Vendure Core from that Plugin and to
+distribute the Plugin under terms of your choice, including licenses which are not compatible with the GPL v3.0,
+ without any of the additional requirements listed in the GNU Library General Public License.
+
+(The GPL v3.0 restrictions do apply in other respects; for example, they cover modifications made to the Vendure Core.)