mirror of
https://gitcode.com/JianFeeeee/HomeAgent.git
synced 2026-10-03 07:43:58 +00:00
license: 明确内核 AGPL / SDK MIT 的边界(插件不受 AGPL 传染)
SDK 仓改为 MIT(同批提交 e97cafc)后,核心仓几处「插件静态链接 SDK 故须同许可」 的论述不再成立,一并更正。 ## 边界(现在写清楚了) - **AGPL-3.0-only 覆盖内核与随包内置插件**:homed、internal/、internal/plugins/ 下 18 个内置插件。§13 网络条款照旧适用。 - **MIT 覆盖公开 SDK**:sdk/ 零外部依赖、只依赖 Go 标准库,不引用内核任何代码。 - 因此**外部插件不是本项目的衍生作品**,作者可自行选择许可(含闭源、商业、 私有),既不必同许可、也不受 §13 约束。 ## 改动 - README.md / README_EN.md「许可」章节:改写静态链接那段,写明上述边界与理由 (决定许可的是被链接的 SDK 代码,而它是 MIT;子进程隔离不再是关键论点) - README.md / README_EN.md changelog:**按本仓惯例保留历史原文**,在既有更正 注记区追加一条「许可口径已变更(2026-09-24)」,而不是去改写 v1.2.0 的原文 —— 避免伪造当时的语境 - site/index.html footer:状态栏拆成「内核许可:AGPL-3.0-only」+「插件 SDK:MIT」 两行;声明区分「AGPL(内核与其内置插件)」与「SDK 以 MIT 发布,插件不受传染」 - .gitignore:example/ 注释里的计数 20 → 21(实际 10 个示例 ×2 + qq/plugin_test.go; 规则本身与「有意保留」的说明不变) 验证:go build ./internal/meta/ ./internal/agent/core/ 通过;官网 1440px 无横向溢出、 无控制台错误,footer 许可两行正确渲染(/tmp/lic-footer.png)。
This commit is contained in:
22
README_EN.md
22
README_EN.md
@ -264,6 +264,12 @@ External plugin development: see [homeagent-sdk](https://gitcode.com/JianFeeeee/
|
||||
> The historical entries below are kept verbatim to show the evolution; two mechanisms in them
|
||||
> were **removed in v1.2.0**: text-description-based media indexing, and reference-counted media GC.
|
||||
>
|
||||
> **One licensing statement has also changed** (2026-09-24): "statically linked plugins must match"
|
||||
> in the v1.2.0 entry below **no longer holds**. The SDK is now released under **MIT** (a permissive
|
||||
> license that does not inherit the kernel's AGPL), so external plugins are **not** derivative works
|
||||
> of this project: authors choose their own license (closed-source, commercial or private included)
|
||||
> and are not bound by §13. The original text is kept to show the position at the time.
|
||||
>
|
||||
> **Two performance claims also need correcting** (measured 2026-09-20):
|
||||
> "crash-to-recovery under 1s" does not hold — restarts are **linearly backed off**, i.e.
|
||||
> 1s / 2s / 3s (`procRestartBackoff=1s × nth crash`). Even the *first* restart waits 1s.
|
||||
@ -353,9 +359,19 @@ source when you distribute the software, **you must also offer the source to use
|
||||
with it over a network** (§13, Remote Network Interaction). Anyone running a modified HomeAgent
|
||||
as a network service therefore has to make the modified source available to that service's users.
|
||||
|
||||
Plugins are **statically linked** against this project through the public SDK (the SDK source
|
||||
ends up inside the plugin binary), so plugins are derivative works and must be released under
|
||||
the same license. Process isolation does not change this — what is linked is the SDK code itself.
|
||||
Plugins are **statically linked** against this project through the public
|
||||
[homeagent-sdk](https://gitcode.com/JianFeeeee/homeagent-sdk) (the SDK source ends up inside the
|
||||
plugin binary), but that repository is released under **MIT** — a permissive license, so code
|
||||
received under it does **not** inherit this project's AGPL. External plugins are therefore **not
|
||||
derivative works of this project**: authors pick their own license (closed-source, commercial or
|
||||
private included), with no same-license obligation and no §13 network clause. The safety and
|
||||
vitality of the third-party plugin ecosystem rest on this.
|
||||
|
||||
The boundary is clean: **AGPL covers the kernel and the bundled plugins** (`homed`, `internal/`,
|
||||
the 18 built-in plugins under `internal/plugins/`); **MIT covers the public SDK** (`sdk/`, whose
|
||||
`go.mod` has zero external dependencies and imports only the Go standard library — it never
|
||||
references any kernel code). Process isolation is beside the point here — what decides the
|
||||
license is the linked SDK code itself, and that code is MIT.
|
||||
|
||||
### Third-party components shipped with the packages
|
||||
|
||||
|
||||
Reference in New Issue
Block a user