许可证
本章介绍了开发用于 Arm Mbed 设备的库的不同方面,以及开发过程中要记住的项目,例如许可证。它涵盖:
- 创建和许可: 创建并许可您自己的二进制文件和库。
- Arm Mbed OS 代码库: 使用 GitHub 为 Mbed OS 本身提供补充和错误修复。
许可二进制文件和库
当您编写原始代码时,您拥有版权并可以选择以您选择的许可证将其提供给其他人。许可证赋予权限并限制其他人重用您的代码。没有许可证意味着其他人无法使用您的代码。我们鼓励您选择能够(并鼓励!)重复使用其他人的许可证。
如果您创建新软件(如驱动程序,库和示例),则可以应用您喜欢的任何许可证作为该代码的作者和版权所有者。话虽如此,我们鼓励您使用众所周知的许可证,例如经过 OSI 批准的许可开源软件许可证之一。具体来说,我们建议如下:
-
对于原始源代码,请使用 Apache 2.0 许可证。
-
对于二进制版本(例如,您不能或不想发布的私有源代码,但希望共享为二进制库和可供其他人使用的头文件),请考虑 Permissive Binary License。这旨在与 Apache 2.0 和 Mbed OS 代码库兼容。
-
如果您的软件包含或源自其他第三方开源代码,请务必保留所有通知并以与下述相同的方式标识第三方许可代码的许可。请记住,您不能在其他人的代码上更改许可证,因为您不是版权所有者!而是选择与第三方开源代码使用的许可证兼容的许可证,或使用与该代码相同的许可证。例如,如果您的软件源自 GPL 源代码,则 GPL 要求您根据 GPL 许可该软件中的其余代码。请注意,许多商业用户将无法在其产品中使用 GPL 源代码,因此如果您没有义务使用此许可证,我们不建议使用此许可证。
您必须编写自己提供的所有代码,或者拥有提供其他人编写的代码的必要权限。
在所有情况下,无论您使用何种许可,请在建议后的每个源文件中使用 SPDX 许可证标识符,以便用户更容易理解和查看许可证。
何时使用 Apache 2.0
Apache 2.0 是一个允许的,免费的和开源的软件许可证,允许其他方以源和二进制形式使用,修改和重新分发代码。与常用的 BSD 许可证相比,Apache 2.0 为用户提供了明确的专利授权。
许可证的全文可以在 Apache 网站上找到。有关 Apache 2.0 的更多信息,请参阅常见问题解答。
如何正确应用 Apache 2.0
为了清楚地反映 Apache 2.0 许可证,请创建两个文本文件:
- 带有以下文本的 LICENSE 文件:
Unless specifically indicated otherwise in a file, files are licensed under the Apache 2.0 license,
as can be found in: LICENSE-apache-2.0.txt
- LICENSE-apache-2.0.txt 中的完整原始 Apache 2.0 许可证文本
每个源标头应以您的版权行,SPDX 标识符和 Apache 2.0 标头开头,如下所示:
Copyright (c) [First year]-[Last year], **Your Name or Company Here**
SPDX-License-Identifier: Apache-2.0
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
either express or implied.
See the License for the specific language governing permissions and limitations under the License.
何时使用 Permissive Binary License
许可二进制许可证(PBL)是基于 BSD-3-Clause 的许可许可证,专为二进制 blob 而设计。它是最小的,但涵盖了基础知识,包括明确的专利授权。
它允许您共享二进制 blob 和相关标头,并允许其他人将该二进制 blob 用作其产品的一部分 - 只要它们为其提供所有相关依赖项,并且不对其进行修改或对其进行反向工程。
全文可在 mbed.com 上找到。
如何正确应用 PBL
为了清楚地反映 PBL 许可证,请创建三个文本文件:
- LICENSE 文件:
Unless specifically indicated otherwise in a file, files are licensed under the Permissive Binary License,
as can be found in: LICENSE-permissive-binary-license-1.0.txt
-
LICENSE-permissive-binary-license-1.0.txt 中的完整原始 Permissive Binary License 1.0 文本。
-
一个 DEPENDENCIES 文件,其中包含此二进制文件正常工作所需的依赖项。这是为了确保在他们自己的发行版中集成二进制文件的第三方意识到他们需要包含相关的依赖项。如果你的二进制文件没有任何依赖关系,那么文件应该这样说(也就是说,“无依赖关系”);不要省略此文件。
每个源标头应以您的版权行,SPDX 标识符和 PBL 标头开头:
Copyright (c) [First year]-[Last year], **Your Name Here**, All Rights Reserved
SPDX-License-Identifier: LicenseRef-PBL
This file and the related binary are licensed under the Permissive Binary License, Version 1.0 (the "License"); you may not use these files except in compliance with the License.
You may obtain a copy of the License here: LICENSE-permissive-binary-license-1.0.txt and at
https://www.mbed.com/licenses/PBL-1.0
See the License for the specific language governing permissions and limitations under the License.
使用不同的许可证
如果您决定为工作使用其他许可证,请遵循相同的模式:
-
按照上述部分中描述的模式创建一个带有许可证情况描述的 LICENSE 文件。
-
将完整的原始许可文本放在名为 LICENSE-XYZ.txt 的单独文档中,其中 XYZ 是许可证的相应 SPDX 标识符。
-
使用您的版权行,SPDX 标识符和适用于该单个文件的许可证的标准标头(如果有)开始每个源标头。(参见 SPDX 规范,附录 V)。
-
如果多个许可证适用于源文件,则使用 SPDX 许可证表达式(请参阅 SPDX 规范,附录 IV),以反映 LICENSE 文件和每个源文件中是否存在多个许可证。
有助于 Mbed OS 代码库
Mbed OS 原则
Mbed OS 使用这些相同的基本原理来实现其源代码和库分发。因此,我们拥有的源代码在 Apache 2.0 许可下分发,二进制 blob 在 Permissive Binary License 下发布。已根据不同许可证获得许可的第三方软件部件可根据该原始许可证获得。
最终在 Mbed OS 中的所有源代码和二进制 blob 都在公共 GitHub 存储库中维护。