多年来,我一直非常喜欢在网上共享的东西上发布许可证,这样其他人就可以更容易地判断是否以及如何重用所述的内容。在GitHub开始温和地“推动”用户在其repos中包含许可文件之前,我并不知道如何最好地使用代码--尤其是在GitHub上公开共享的代码--但从那时起,我就一直在努力充分利用许可文件。
我现在的情况是,我和其他一些人一起做了一个小项目,需要提到几个许可证(因为第三方代码和库以及非代码文件)。虽然我的合作伙伴在这个问题上比较“懒散”--有人建议我把代码放在网上,因为没有人会在意-,我宁愿这样做。问题是:我不知道如何在GitHub上提及几个(不同的)许可证。
我在GitHub上看到了几种不同的解决方案,这就是为什么我很难判断这个答案对一个稍微不同的问题是否具有权威性。我想知道的是,以下哪一种--如果有的话--是最常见的,或者还有其他的其他方法。
LICENSE.md
、LICENSE.LibNameA.md
、LICENSE.AssetsB.md
等。(问题:命名是否基于项目名称?不是执照的名字?如果我用了不止一个许可证来制作自给材料,我会在“主”LICENSE.md
中提到它们吗?如果没有,我会做什么呢?)最后,如果我正确地理解了各种GitHub解释和项目关于其许可证API的说明,那么在确定回购协议的许可证时,只会考虑“主”许可证文件(尽管我还无法确定如果提到几个许可证将选择哪个许可证)。
发布于 2015-12-12 09:32:21
您可以使用任何机制来包含您喜欢的那些许可证,只要您的项目的访问者能够清楚地知道哪个许可适用于项目的哪个部分。
我倾向于:
发布于 2018-05-23 18:20:54
在SPDX creators (幻灯片12)的演示中,非常清楚:
LICENSE
的内容:
Apache-2.0 OR GPL-2.0-or-later
然后,您可以添加两个额外的许可文件:LICENSE.Apache-2.0
和LICENSE.GPL-2.0-or-later
。
在所有情况下,README.md
都应该包含一个SPDX许可证标识符:
SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
你可以这样做:
## License
This work is dual-licensed under Apache 2.0 and GPL 2.0 (or any later version).
You can choose between one of them if you use this work.
`SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later`
请注意,Apache-2.0 OR GPL-2.0-or-later
和Apache-2.0 AND GPL-2.0-or-later
有很大的不同。前者意味着用户可以在两者之间进行选择(这是常规情况!)第二个表示用户必须遵守这两个许可证。也见维基百科上的多重许可。
请注意,我在这里使用的是新的SPDX许可证列表3.0 (截至2017-12-28)。2017年的版本将GPL-2.0
作为GPL2.0的标识符,但无论这意味着“GPL2.0”还是“GPL2.0或任何更高版本”,还不清楚都是这样。
发布于 2018-05-24 23:27:48
我最终就我的问题直接联系了GitHub支持部门,他们说,如果我明确表示他们的回答只是作为建议,而不是建议,那么引用他们的话是可以的。
我们的团队在这个时候没有任何特别的建议,但是如果我们有什么其他的可以分享的话,我们将确保询问和更新您!
他们最初的答复如下:
一种建议是为大部分代码创建一个许可证文件,并在自述文件中添加其余第三方材料的许可文本。另一种方法是,当每个路径有意义时,每个路径都有自己的许可文件。因此,例如,如果您的存储库有以下路径:libs/ following v2/您可以拥有libs/敬畏-lib-v2/LICENSE。在后一种情况下,您可能需要在自述文件和/或根目录中的许可文件中提及这一点。您还可以考虑在存储库的根目录中使用一个许可证文件,并为任何第三方材料、代码等添加子部分。
https://softwareengineering.stackexchange.com/questions/304874
复制相似问题