aboutsummaryrefslogtreecommitdiffstats
path: root/packages/meshbay-hub/src/meshbay_hub/static/licenses/APPLICATION-EXCEPTION.txt
diff options
context:
space:
mode:
Diffstat (limited to 'packages/meshbay-hub/src/meshbay_hub/static/licenses/APPLICATION-EXCEPTION.txt')
-rw-r--r--packages/meshbay-hub/src/meshbay_hub/static/licenses/APPLICATION-EXCEPTION.txt65
1 files changed, 65 insertions, 0 deletions
diff --git a/packages/meshbay-hub/src/meshbay_hub/static/licenses/APPLICATION-EXCEPTION.txt b/packages/meshbay-hub/src/meshbay_hub/static/licenses/APPLICATION-EXCEPTION.txt
new file mode 100644
index 0000000..5ab0921
--- /dev/null
+++ b/packages/meshbay-hub/src/meshbay_hub/static/licenses/APPLICATION-EXCEPTION.txt
@@ -0,0 +1,65 @@
+MeshBay interface — additional permission for group applications
+under GNU AGPL version 3, section 7
+==============================================================================
+
+The MeshBay interface is free software under the GNU Affero General Public
+License, version 3 or (at your option) any later version (AGPL-3.0.txt, beside
+this file), with the following additional permission. Its protocol layer, the
+files marked SPDX-License-Identifier: LGPL-3.0-or-later, is under the GNU
+Lesser GPL instead and needs no such permission.
+
+Definitions
+
+ "The Interface" is the MeshBay web interface: the files of
+ packages/meshbay-hub/src/meshbay_hub/static/ that are under the AGPL,
+ wherever they are conveyed — served by a hub, or carried by the desktop or
+ the Android application.
+
+ "The Application Interface" is:
+ 1. the properties the Interface passes to a group application's component
+ and to its settings pane, and the fields of an entry in its application
+ registry (apps.js), as docs/MESHBAY_DESIGN.md sections 9.2 to 9.4
+ describe them;
+ 2. the names exported by these modules of the Interface:
+ i18n.js
+ icon.js
+ file-utils.js
+ settings-ui.js
+ folder-tree.js
+ 3. the CSS class names style.css defines, and the message keys of the
+ catalogues under locales/.
+
+ "An Application" is a module, or a set of modules, that the Interface loads
+ as a group application and that interacts with the Interface only through
+ the Application Interface. It may also use the protocol layer and the
+ third-party files under vendor/, each under its own licence. It contains no
+ part of the Interface itself, copied or modified.
+
+Permission
+
+ As a special exception, the copyright holders of the Interface give you
+ permission to combine an Application with the Interface, and to convey the
+ resulting combination, with the Application under terms of your choice,
+ provided that the Interface itself — including any modification of it, of
+ which registering the Application in apps.js or adding its messages to the
+ catalogues is one — remains under the GNU AGPL with this permission, and
+ that you meet the AGPL's terms for it, section 13 included. An Application
+ does not become a work based on the Interface by using the Application
+ Interface, and conveyed on its own carries no obligation from the
+ Interface's licence.
+
+ This permission covers the Interface only. The hub, the node and the
+ desktop and Android shells keep their licence unchanged: code running there
+ on an Application's behalf is a modification of them.
+
+ If you modify the Interface, you may extend this permission to your version
+ of it, but you are not obliged to do so. If you do not wish to, delete this
+ permission from your version (section 7).
+
+Why: the point of the application store is that people other than MeshBay's
+authors write applications, under the licence they choose — free or not. An
+application runs in the same page as the Interface and calls into it, which
+without this permission would make it a work based on the Interface, under the
+AGPL. The permission is limited to a named, documented surface so that what an
+application may rely on is a deliberate commitment, not whatever happens to be
+importable.