【问题标题】:Why do I need to submit a patch under a license?为什么我需要根据许可证提交补丁?
【发布时间】:2019-04-16 10:21:59
【问题描述】:

我在 github 中使用 pull request 为一个项目创建了一个补丁,他们的作者说我需要添加 I am submitting this patch under the XXX license. 的评论
那么为什么我需要根据许可证提交补丁呢?
如果我不添加该评论会怎样?

【问题讨论】:

    标签: github open-source


    【解决方案1】:

    根据您的描述,我进一步假设 repo 已经包含许可通知(例如 LICENSE 文件),您没有必要添加评论以使您的贡献属于存储库的许可证。根据GitHub Terms of Service

    1. 在存储库许可下的贡献

    每当您对包含通知的存储库做出贡献时 许可,您根据相同的条款许可您的贡献,并且您 同意您有权根据这些许可许可您的贡献 条款。如果您有单独的协议来许可您的贡献 根据不同的条款,例如贡献者许可协议, 协议将取代。

    这不就是它的工作原理吗?是的。这被广泛接受为 开源社区的规范;它通常被称为 简写“入站=出站”。我们只是明确表示。

    也就是说,存储库可能归一家公司所有,该公司的法律顾问已提出内部要求,即为了使存储库接受外部贡献,需要贡献者的明确声明。

    还有一种情况(但不是您所描述的情况),项目需要Contributor License Agreement (CLA),因为例如,项目所有者希望您声明您实际上是有权做出您提供的贡献(例如,它不是您作品中的某些专有代码)或什至分配您的版权(例如,以便项目可以对违反许可的人提起法律诉讼或稍后重新许可代码无需追踪并获得每个贡献者的批准)。 Apache、Google、Facebook、Canonical 和 Fedora 项目(以及许多其他项目)都需要 CLA。

    根据您对争论的强烈程度,您可以将项目维护者指向 GitHub 的服务条款(如上链接)以及 Ben Balter 的“Why you probably shouldn’t add a CLA to your open source project”。

    TL;DR:

    从常识和 GitHub 服务条款的角度来看,您已经正在根据 repo 的许可提交代码,无论您是否添加明确的评论。

    【讨论】:

    • 对,那个项目的许可证是“GNU General Public License v2.0”,他们要求我在另一个许可证下提交。
    【解决方案2】:

    这不是技术要求。唯一确定的方法是询问那个人。

    但是,这很可能是他们项目指南的一部分。通常要求贡献者将版权转让给另一个人或组织,或者在贡献代码时明确同意特定的许可。根据许可证的不同,这也可能是一项实际的法律要求:除非您同意,否则项目维护者不能发布您根据特定许可证编写的代码。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-09-05
      • 2016-03-07
      • 2012-08-12
      • 1970-01-01
      • 1970-01-01
      • 2019-06-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多