Skip to content

Commit 81df404

Browse files
authored
Merge pull request godotengine#8513 from akien-mga/properly-complying-with-licenses
Fix incomplete thirdparty guidelines on Complying with licenses
2 parents 6537083 + a58305d commit 81df404

File tree

1 file changed

+62
-96
lines changed

1 file changed

+62
-96
lines changed

about/complying_with_licenses.rst

Lines changed: 62 additions & 96 deletions
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,17 @@
55
Complying with licenses
66
=======================
77

8+
.. warning::
9+
10+
The recommendations in this page **are not legal advice.** They are provided
11+
in good faith to help users navigate license attribution requirements.
12+
813
What are licenses?
914
------------------
1015

1116
Godot is created and distributed under the `MIT License <https://opensource.org/licenses/MIT>`_.
12-
It doesn't have a sole owner either, as every contributor that submits code to
13-
the project does it under this same license and keeps ownership of the
17+
It doesn't have a sole owner, as every contributor that submits code to
18+
the project does it under this same license and keeps ownership of their
1419
contribution.
1520

1621
The license is the legal requirement for you (or your company) to use and
@@ -24,32 +29,46 @@ with the original one.
2429
If you are interested in licence compliance as a contributor, you can find
2530
guidelines :ref:`here <doc_best_practices_for_engine_contributors_license_compliance>`.
2631

27-
.. warning::
32+
.. tip::
2833

29-
In your project's credits screen, remember to also list third-party notices
34+
Alongside the Godot license text, remember to also list third-party notices
3035
for assets you're using, such as textures, models, sounds, music and fonts.
31-
32-
Free assets in particular often come with licenses that require attribution.
33-
Double-check their license before using those assets in a project.
36+
This includes free assets, which often come with licenses that require
37+
attribution.
3438

3539
Requirements
3640
------------
3741

3842
In the case of the MIT license, the only requirement is to include the license
3943
text somewhere in your game or derivative project.
4044

41-
This text reads as follows:
45+
This text reads as follows::
4246

4347
This game uses Godot Engine, available under the following license:
4448

4549
Copyright (c) 2014-present Godot Engine contributors.
4650
Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur.
4751

48-
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
52+
Permission is hereby granted, free of charge, to any person obtaining a copy
53+
of this software and associated documentation files (the "Software"), to deal
54+
in the Software without restriction, including without limitation the rights
55+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
56+
copies of the Software, and to permit persons to whom the Software is
57+
furnished to do so, subject to the following conditions:
4958

50-
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
59+
The above copyright notice and this permission notice shall be included in all
60+
copies or substantial portions of the Software.
5161

52-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
62+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
63+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
64+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
65+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
66+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
67+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
68+
SOFTWARE.
69+
70+
Beside its own MIT license, Godot includes code from a number of third-party
71+
libraries. See :ref:`doc_complying_with_licenses_thirdparty` for details.
5372

5473
.. note::
5574

@@ -60,31 +79,9 @@ This text reads as follows:
6079
Inclusion
6180
---------
6281

63-
The license does not specify how it has to be included, so anything is valid as
64-
long as it can be displayed under some condition. These are the most common
65-
approaches (only need to implement one of them, not all).
66-
67-
.. tip::
68-
69-
Godot provides several methods to get license information in the Engine
70-
singleton. This allows you to source the license information directly from
71-
the engine binary, which prevents the information from becoming outdated if
72-
you update engine versions.
73-
74-
For the engine itself:
75-
76-
- :ref:`Engine.get_license_text<class_Engine_method_get_license_text>`
77-
78-
For third-party components used by the engine:
79-
80-
- :ref:`Engine.get_license_info<class_Engine_method_get_license_info>`
81-
- :ref:`Engine.get_copyright_info<class_Engine_method_get_copyright_info>`
82-
83-
For miscellaneous engine contributor information. You don't have to include
84-
these ones in your project, but they're listed here for reference:
85-
86-
- :ref:`Engine.get_author_info<class_Engine_method_get_author_info>`
87-
- :ref:`Engine.get_donor_info<class_Engine_method_get_donor_info>`
82+
The license text must be made available to the user. The license doesn't specify
83+
how the text has to be included, but here are the most common approaches (you
84+
only need to implement one of them, not all).
8885

8986
Credits screen
9087
^^^^^^^^^^^^^^
@@ -103,20 +100,20 @@ or **Open Source Licenses**.
103100
Output log
104101
^^^^^^^^^^
105102

106-
Printing the licensing text using the :ref:`print() <class_@GlobalScope_method_print>`
103+
Printing the license text using the :ref:`print() <class_@GlobalScope_method_print>`
107104
function may be enough on platforms where a global output log is readable.
108105
This is the case on desktop platforms, Android and HTML5 (but not iOS).
109106

110107
Accompanying file
111108
^^^^^^^^^^^^^^^^^
112109

113110
If the game is distributed on desktop platforms, a file containing the license
114-
can be added to the software that is installed to the user PC.
111+
text can be added to the software that is installed to the user PC.
115112

116113
Printed manual
117114
^^^^^^^^^^^^^^
118115

119-
If the game includes printed manuals, license text can be included there.
116+
If the game includes a printed manual, the license text can be included there.
120117

121118
Link to the license
122119
^^^^^^^^^^^^^^^^^^^
@@ -125,71 +122,40 @@ The Godot Engine developers consider that a link to ``godotengine.org/license``
125122
in your game documentation or credits would be an acceptable way to satisfy
126123
the license terms.
127124

128-
Third-party licenses
129-
--------------------
130-
131-
Godot itself contains software written by
132-
`third parties <https://github.com/godotengine/godot/blob/master/COPYRIGHT.txt>`_.
133-
Most of it does not require license inclusion, but some do.
134-
Make sure to do it if these are compiled in your Godot export template. If
135-
you're using the official export templates, all libraries are enabled. This
136-
means you need to provide attribution for all the libraries listed below.
137-
138-
Here's a list of libraries requiring attribution:
139-
140-
FreeType
141-
^^^^^^^^
142-
143-
Godot uses `FreeType <https://www.freetype.org/>`_ to render fonts. Its license
144-
requires attribution, so the following text must be included together with the
145-
Godot license:
146-
147-
Portions of this software are copyright © <year> The FreeType Project (www.freetype.org). All rights reserved.
148-
149-
.. note::
150-
151-
<year> should correspond to the value from the FreeType version used
152-
in your build. This information can be found in the editor by opening
153-
the **Help > About** dialog and going to the **Third-party Licenses**
154-
tab.
155-
156-
ENet
157-
^^^^
158-
159-
Godot includes the `ENet <http://enet.bespin.org/>`_ library to handle
160-
high-level multiplayer. ENet has similar licensing terms as Godot:
161-
162-
163-
Copyright (c) 2002-2020 Lee Salzman
125+
.. tip::
164126

165-
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
127+
Godot provides several methods to get license information in the
128+
:ref:`Engine <class_Engine>` singleton. This allows you to source the
129+
license information directly from the engine binary, which prevents the
130+
information from becoming outdated if you update engine versions.
166131

167-
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
132+
For the engine itself:
168133

169-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
134+
- :ref:`Engine.get_license_text<class_Engine_method_get_license_text>`
170135

171-
mbed TLS
172-
^^^^^^^^
136+
For third-party components used by the engine:
173137

174-
If the project is exported with Godot 3.1 or later, it includes `mbed TLS <https://tls.mbed.org>`_.
175-
The Apache license needs to be complied to by including the following text:
138+
- :ref:`Engine.get_license_info<class_Engine_method_get_license_info>`
139+
- :ref:`Engine.get_copyright_info<class_Engine_method_get_copyright_info>`
176140

177-
Copyright The Mbed TLS Contributors
141+
.. _doc_complying_with_licenses_thirdparty:
178142

179-
Licensed under the Apache License, Version 2.0 (the "License"); you may
180-
not use this file except in compliance with the License.
181-
You may obtain a copy of the License at
143+
Third-party licenses
144+
--------------------
182145

183-
http://www.apache.org/licenses/LICENSE-2.0
146+
Godot itself contains software written by
147+
`third parties <https://github.com/godotengine/godot/blob/master/thirdparty/README.md>`_,
148+
which is compatible with, but not covered by Godot's MIT license.
184149

185-
Unless required by applicable law or agreed to in writing, software
186-
distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
187-
WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
188-
See the License for the specific language governing permissions and
189-
limitations under the License.
150+
Many of these dependencies are distributed under permissive open source licenses
151+
which require attribution by explicitly citing their copyright statement and
152+
license text in the final product's documentation.
190153

191-
.. note::
154+
Given the scope of the Godot project, this is fairly difficult to do thoroughly.
155+
For the Godot editor, the full documentation of third-party copyrights and
156+
licenses is provided in the `COPYRIGHT.txt <https://github.com/godotengine/godot/blob/master/COPYRIGHT.txt>`_
157+
file.
192158

193-
If you exported your project using a
194-
:ref:`custom build with specific modules disabled <doc_optimizing_for_size>`,
195-
you don't need to list the disabled modules' licenses in your exported project.
159+
A good option for end users to document third-party licenses is to include this
160+
file in your project's distribution, which you can e.g. rename to
161+
``GODOT_COPYRIGHT.txt`` to prevent any confusion with your own code and assets.

0 commit comments

Comments
 (0)