Skip to content
This repository was archived by the owner on Apr 13, 2026. It is now read-only.
This repository was archived by the owner on Apr 13, 2026. It is now read-only.

关于软件商用、二次开发及AGPL-3.0协议的相关说明 #27

Description

@GilHogan

关于软件商用、二次开发及AGPL-3.0协议的相关说明 (FAQ/Q&A)

近期我们注意到,有第三方在未经明确声明的情况下,对本团队开发的开源软件进行了商业销售。为了避免误解,并明确相关权利与义务,特此进行以下说明:

Q1: 我的软件是开源的,并且使用了 AGPL-3.0 协议,这是否意味着其他人可以进行商业销售?

A1: 是的,AGPL-3.0 协议明确允许商业使用,包括销售。 开源协议的核心理念之一就是促进软件的自由使用、传播和发展,商业使用是其中一种重要的使用方式。AGPL-3.0 协议旨在确保用户可以自由地使用、修改和分发软件,即使是用于商业目的。

Q2: 既然可以商业销售,为什么现在销售页面没有声明是开源软件,也没有提及作者和源代码信息,这有问题吗?

A2: 是的,这可能存在违反 AGPL-3.0 协议的情况,并且是不道德的。 AGPL-3.0 协议虽然允许商业销售,但也明确规定了被许可人(包括销售者)的义务,主要包括:

  • 保留版权声明和许可协议: 在任何形式的分发(包括销售)中,都必须保留原始软件的版权声明(通常包含作者信息)和 AGPL-3.0 许可协议的文本。
  • 提供源代码: AGPL-3.0 协议的“传染性” (Copyleft) 体现在,当您修改软件或将其作为更大程序的一部分进行分发时,您必须以源代码形式公开您的修改后的版本以及整个作品的源代码。 对于网络服务 (Network Use) 场景,AGPL-3.0 也要求提供源代码。 这意味着,如果销售的是软件产品或基于该软件提供的服务,用户应该能够获取到完整的源代码。
  • 明确声明开源性质: 虽然协议没有明确要求 必须 在销售页面上 声明 “开源软件”,但从透明度和尊重开源社区的角度来看,明确告知用户该软件基于开源项目,并提及原始作者和项目来源是强烈建议的,也是符合开源精神的。 不声明开源性质,可能会误导用户认为这是一个完全闭源的商业软件,掩盖了原始贡献者的工作。
  • 提供访问源代码的途径: 销售者需要提供用户获取源代码的便捷途径,例如在销售页面提供源代码仓库的链接,或者在购买后提供下载链接。

Q3: 如果有人对我的 AGPL-3.0 软件进行了二次开发,并进行销售,他们也需要遵守 AGPL-3.0 协议吗?

A3: 是的,必须遵守。 AGPL-3.0 协议的“传染性”适用于所有基于原始软件的衍生作品 (Derivative Works)。 二次开发的软件通常被认为是衍生作品。 这意味着:

  • 二次开发后的软件也必须以 AGPL-3.0 协议发布。
  • 二次开发者必须公开他们对原始软件所做的修改的源代码,以及整个二次开发作品的源代码。
  • 他们同样需要保留原始软件的版权声明和许可协议,并注明原始作者。

Q4: 如果销售者没有遵守 AGPL-3.0 协议,我作为原始作者可以做什么?

A4: 您可以采取以下步骤:

  1. 沟通与协商: 首先,尝试与销售者进行沟通,指出他们销售页面的不足之处,并解释 AGPL-3.0 协议的要求。 礼貌地要求他们在销售页面上补充声明软件的开源性质、原始作者和源代码信息,并提供源代码获取途径。
  2. 发出正式通知: 如果沟通无效,您可以发出正式的侵权通知,明确指出对方违反了 AGPL-3.0 协议,并要求其在一定期限内改正。 您可以参考 AGPL-3.0 协议的条款,具体指出对方违反了哪些条款。
  3. 寻求法律帮助: 如果以上步骤都无法解决问题,您可能需要咨询法律专业人士,寻求法律帮助。 AGPL-3.0 协议是具有法律效力的协议,侵犯协议条款可能构成侵权行为。

Q5: 我在电商网站上销售AGPL-3.0的开源软件,销售页面需要注明什么?

A5: 在电商网站上销售 AGPL-3.0 的开源软件,销售页面需要清晰地注明以下信息:

1. 明确声明软件的许可证为 AGPL-3.0:

可以使用明确的措辞,例如:“本软件采用 AGPL-3.0 许可证进行许可。”

提供 AGPL-3.0 许可证的全文链接,以便潜在购买者可以轻松访问并阅读完整的许可证条款。 例如,链接到 GNU 官网上的 AGPL-3.0 许可证文本:[https://www.gnu.org/licenses/agpl-3.0.en.html](https://www.gnu.org/licenses/agpl-3.0.en.html)

2. 提供软件源代码的访问方式:

说明如何获取软件的源代码。 例如:

“您可以从 [链接地址] 下载软件的源代码。”

“软件源代码包含在产品包装中。”

“请发送邮件至 [邮箱地址] 获取软件源代码。”

3. 如果销售者修改了软件,需要明确说明并提供修改后的源代码:

AGPL-3.0 要求分发修改版本时必须提供相应的源代码。

说明修改内容以及如何获取修改后的源代码。

4. 如果软件依赖于其他 AGPL-3.0 组件,也需要进行说明:

列出所有 AGPL-3.0 组件及其相应的许可证信息和源代码访问方式。

5. 如果销售者提供基于该软件的网络服务 (SaaS),需要明确说明相关的 AGPL-3.0 义务:

这包括用户使用该服务时触发的 AGPL-3.0 条款,例如用户修改服务端软件时需要开源等。

6. 考虑使用标准化的许可证声明:

可以使用 SPDX 许可证标识符来简洁地声明许可证,例如: "SPDX-License-Identifier: AGPL-3.0-or-later" 这有助于自动化工具识别许可证。

示例声明:

“本软件在 AGPL-3.0 许可证下分发,您可以从 [源代码链接] 获取其源代码。 本公司对软件进行了以下修改:[修改说明],修改后的源代码可以从 [修改后源代码链接] 获取。 本软件还使用了以下 AGPL-3.0 组件:[组件列表及链接]。 如果您计划将本软件用于提供网络服务,请务必阅读并理解 AGPL-3.0 许可证的全部条款,特别是关于‘通过网络提供服务’的部分。”

重要提示: 以上只是一些通用的建议,具体需要根据实际情况进行调整。 强烈建议咨询法律专业人士,以确保您的销售页面符合 AGPL-3.0 许可证的要求,并避免潜在的法律风险。**

Q6: 我应该如何正确看待我的 AGPL-3.0 软件被商业销售?

A6: 从积极的角度来看,您的软件被商业销售,说明您的软件是有价值的,并且得到了市场的认可。 AGPL-3.0 协议允许商业使用,其目的是鼓励软件的广泛传播和发展。 商业销售本身并不违反协议,关键在于销售者是否遵守了协议的义务,包括源代码公开、版权声明和协议保留等。

您的关注重点应该放在确保 AGPL-3.0 协议得到遵守,维护开源社区的权益和您的作者署名权。 如果销售者能够遵守协议,并清晰地声明软件的开源性质和作者信息,这实际上也对您的软件项目和开源社区有积极的推广作用。

总结:

我们鼓励基于 AGPL-3.0 协议的软件进行商业使用和二次开发,但这必须建立在遵守协议条款的基础之上。 我们希望所有使用者能够尊重开源协议,尊重原始作者的劳动成果,共同维护健康、透明的开源生态环境。

如果您对 AGPL-3.0 协议有任何疑问,或者需要更详细的法律解释,建议咨询专业的法律人士。


Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    documentationImprovements or additions to documentation

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions