From 3e01e83c615fa97d01ff405f9a5a37b8418fa387 Mon Sep 17 00:00:00 2001 From: AskaEth Date: Wed, 4 Nov 2026 00:07:37 +0800 Subject: [PATCH] =?UTF-8?q?fix(docs):=20M118=20r3=20=E2=80=94=E2=80=94=20?= =?UTF-8?q?=E6=92=A4=E5=9B=9E=E3=80=8CAboutSlint=20=E4=BB=8E=E6=9C=AA?= =?UTF-8?q?=E8=90=BD=E5=9C=B0=E3=80=8D=E7=9A=84=E5=81=87=E5=89=8D=E6=8F=90?= =?UTF-8?q?=EF=BC=8C=E6=94=B9=E4=B8=BA=E4=B8=AD=E6=80=A7=E9=99=88=E8=BF=B0?= =?UTF-8?q?=20+=20=E4=B8=8D=E4=BD=9C=E6=B3=95=E5=BE=8B=E5=88=A4=E6=96=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 复审 r3 的唯一 P1:r2 为了论证「未履行」,断言「`AboutSlint` 部件一直只有排期、从未落地」。 **这条是错的**,我先自己核了源码再改: ``` $ git grep -n 'AboutSlint' crates/app/ crates/app/ui/pages/settings.slint:4:// 关于页内嵌 AboutSlint —— Slint RF 2.0 许可义务(01c §8:关于页放官方部件)。 crates/app/ui/pages/settings.slint:15:import { AboutSlint, ScrollView } from "std-widgets.slint"; crates/app/ui/pages/settings.slint:274: AboutSlint { } $ git grep -n 'AboutSlint' v0.1.0 -- crates/ (同上三行,v0.1.0 这个 tag 里就有) $ sed -n '272,275p' crates/app/ui/pages/settings.slint if root.section == SettingSection.about : Rectangle { height: 120px; AboutSlint { } } $ sed -n '129p' crates/app/ui/pages/settings.slint → SectionRow { label: "关于"; … } $ grep -n 'RouteKind.settings' crates/app/ui/components/nav.slint → :114/:116(侧栏入口) $ grep -n compile crates/app/build.rs → slint_build::compile("ui/main.slint") $ grep -n SettingsPage crates/app/ui/shell.slint → :23 import / :273 route==settings 时渲染 ``` 即:部件真实存在、经 build.rs 编译进二进制、侧栏 → 设置页「关于」一点即到;`packaging/README.md:317` 「(已在 UI 内)」本来就与代码一致,本轮未改。r2 的依据只是三份文档的自述(旧 NOTICE「P2 排期」、 README「still outstanding」),那份自述不可靠。 改法(三处同一句,`packaging/release-notes.md` 不动): - 删掉「只有排期 / 从未落地 / 尚未以任一形式落地」这类断言; - 改成中性陈述:义务挂在每次「随应用分发」上;`v0.1.0` 的设置页「关于」分组里**确实内置了** `AboutSlint` 部件(`crates/app/ui/pages/settings.slint`,从侧栏进入);该部件是否满足 §2(a)、 以及 v0.1.0 发布页上是文字链接而非 §2(b) 官方徽章图这两点,**本文件不作法律判断**,以 Slint 官方许可原文为准;NOTICE / 发布页说明 / 本节都只是记录,不构成履行声明。 - 顺手按本机 registry 里 Slint 1.18.1 随包的 RF-2.0 原文把 §2(a) 补全:还允许「没有关于页时显示在 启动画面」这一变体(原文 `In the absence of such a screen or dialog, display the widget in the "Splash Screen"`),r2 只写了前半句。 diff:`git diff --name-only` = NOTICE, README.md, README.zh-CN.md(3 份文档、零 .rs)。 --- NOTICE | 15 ++++++++------- README.md | 16 ++++++++++------ README.zh-CN.md | 15 +++++++++------ 3 files changed, 27 insertions(+), 19 deletions(-) diff --git a/NOTICE b/NOTICE index 2d4a390..9cf081c 100644 --- a/NOTICE +++ b/NOTICE @@ -14,13 +14,14 @@ Copyright 2026 AskaEth (YeiJ) `exclude`,不参与构建、测试与发布,也不会进入本项目的任何 Release 资产。 因此 Slint Royalty-Free 2.0(LicenseRef-Slint-Royalty-free-2.0)**对当前产物不适用**;它适用的是 - 此前已发布、且确实链接了 Slint 的 `v0.1.0` 构建。那条义务**仍然挂在 v0.1.0 那批已发布资产上** - ——条件挂在每一次「随应用分发」上,而不是挂在某个版本号上。上游许可 §2 只承认两种履行方式: - (a) 应用「关于」页显示 `AboutSlint` 部件;(b) 在可下载该二进制的公开网页上显示官方 Slint 归属徽章。 - **按本仓库的记录,该项义务在 v0.1.0 上尚未以上述任一形式落地**:关于页的 `AboutSlint` 部件一直只有 - 排期、从未落地;v0.1.0 发布页上那一行是文字链接,不是 §2(b) 点名的官方徽章图。因此 v0.1.0 的 NOTICE、 - 发布页说明与本文件这一节**都只是记录,不构成履行**。本文件保留这一节,是为了不让这条记录丢失, - 而不是声明本产品依赖 Slint。 + 此前已发布、且确实链接了 Slint 的 `v0.1.0` 构建——义务挂在每一次「随应用分发」上,而不是挂在某个 + 版本号上。上游许可 §2 给出两种形式:(a) 在可从顶层菜单进入的「关于」页/对话框里显示官方 + `AboutSlint` 部件(没有该页时改为启动画面);(b) 在可下载该二进制的公开网页上显示官方归属徽章。 + **`v0.1.0` 的设置页「关于」分组里内置了 `AboutSlint` 部件**(`crates/app/ui/pages/settings.slint`, + 从侧栏进入);该部件是否满足 §2(a) 的全部条件、以及 `v0.1.0` 发布页上那是文字链接而不是 §2(b) 点名的 + 官方徽章图这两点,**本文件不作法律判断**,具体以 Slint 官方许可原文为准。`v0.1.0` 的 NOTICE、发布页 + 说明与本文件这一节**都只是记录,不构成履行声明**。后续版本不再链接 Slint,该义务不随新产物新增; + 本文件保留这一节,是为了不让这段历史丢失,而不是声明本产品依赖 Slint。 若将来重新把 `crates/app` 纳入构建并发布链接 Slint 的二进制,该义务随之恢复——届时需同时恢复 AboutSlint 部件/徽章与本节的现行声明。Slint 的其余许可分支(GPL-3.0-only / Slint Software diff --git a/README.md b/README.md index 685fb1b..a6c56be 100644 --- a/README.md +++ b/README.md @@ -230,14 +230,18 @@ Minimum baseline: **Windows 10**; Windows 8.1 / 8 / 7 are not supported. - **This project**: Apache License 2.0, see [LICENSE](LICENSE); third-party notices in [NOTICE](NOTICE). - **Slint** (), Royalty-Free 2.0: obligation for the Slint build that `v0.1.0` - ships. Upstream §2 admits exactly two ways to discharge it — an `AboutSlint` widget on an about - screen, or the official Slint attribution badge on a public download page. By this repository's own - record that obligation has **not yet been discharged in either form** for `v0.1.0`: the widget was - only ever scheduled, and the `v0.1.0` release page carries a text link rather than the badge. The - `v0.1.0` NOTICE, that page's text and this section are **records, not discharge**. The obligation + ships — the condition attaches to each distribution of an Application, not to a version number. + Upstream §2 offers two forms: (a) the official `AboutSlint` widget on an "About" screen or dialog + reachable from the top level menu (or the splash screen when there is none); (b) the official Slint + attribution badge on a public page where the binaries can be downloaded. **`v0.1.0`'s settings page + does embed the `AboutSlint` widget** (`crates/app/ui/pages/settings.slint`, reachable from the + sidebar); whether that satisfies §2(a), and the fact that the `v0.1.0` release page carries a text + link rather than the §2(b) badge, are **not judged here** — Slint's own licence text is the + authority. The `v0.1.0` NOTICE, that page's text and this section are **records, not a statement of + discharge**. Later builds link no Slint, so they add nothing to this obligation. The obligation follows a **Slint-linked binary**: it applies to the `v0.1.0` assets (and to any later build that links Slint again), not to new iced builds — `crates/app` is excluded from the workspace, so the - pipeline no longer produces a Slint-linked binary. + pipeline no longer produces one. - **iced** (), MIT: the framework of the UI, together with `winit` (Apache-2.0) and, through it, `wgpu` (MIT / Apache-2.0) / `tiny-skia` (BSD-3-Clause). - **Google Material Color Utilities** (Apache-2.0): the color tokens in `crates/design` are a Rust diff --git a/README.zh-CN.md b/README.zh-CN.md index 41f3f62..9c0b194 100644 --- a/README.zh-CN.md +++ b/README.zh-CN.md @@ -201,12 +201,15 @@ cargo build --release # bin 落在 target/relea ## 许可证与致谢 - **本项目**:Apache License 2.0,见 [LICENSE](LICENSE);第三方声明见 [NOTICE](NOTICE)。 -- **Slint**(),Royalty-Free 2.0:义务针对 `v0.1.0` 发布的那批构建。上游 §2 只承认 - 两种履行方式——应用「关于」页放 `AboutSlint` 部件,或在公开下载页显示官方 Slint 归属徽章。**按本仓库 - 的记录,这项义务在 `v0.1.0` 上尚未以上述任一形式落地**:关于页的部件一直只有排期、从未落地;`v0.1.0` - 发布页上是文字链接,不是官方徽章图。`v0.1.0` 的 NOTICE、发布页说明与本节**都只是记录,不构成履行**。 - 义务跟着**链接了 Slint 的产物**走:已发布的 `v0.1.0` 资产(以及将来任何重新链接 Slint 的构建)适用; - `crates/app` 已被 workspace `exclude`,流水线不再产出链接 Slint 的二进制,所以新的 iced 版产物不适用。 +- **Slint**(),Royalty-Free 2.0:义务针对 `v0.1.0` 发布的那批构建——条件挂在每一次 + 「随应用分发」上,而不是挂在某个版本号上。上游 §2 给出两种形式:(a) 在可从顶层菜单进入的「关于」页/ + 对话框里显示官方 `AboutSlint` 部件(没有该页时改为启动画面);(b) 在可下载该二进制的公开网页上显示 + 官方归属徽章。**`v0.1.0` 的设置页「关于」分组里内置了 `AboutSlint` 部件**(`crates/app/ui/pages/ + settings.slint`,从侧栏进入);该部件是否满足 §2(a) 的全部条件、以及 `v0.1.0` 发布页上那是文字链接 + 而不是 §2(b) 点名的官方徽章图这两点,**本节不作法律判断**,具体以 Slint 官方许可原文为准。`v0.1.0` + 的 NOTICE、发布页说明与本节**都只是记录,不构成履行声明**。后续版本不再链接 Slint,该义务不随新产物 + 新增。义务跟着**链接了 Slint 的产物**走:已发布的 `v0.1.0` 资产(以及将来任何重新链接 Slint 的构建) + 适用;`crates/app` 已被 workspace `exclude`,流水线不再产出链接 Slint 的二进制,所以新的 iced 版不适用。 - **iced**(),MIT:现役 UI 的框架;与它同栈的 `winit`(Apache-2.0)、 以及经它引入的 `wgpu`(MIT / Apache-2.0)/ `tiny-skia`(BSD-3-Clause)。 - **Google Material Color Utilities**(Apache-2.0):`crates/design` 的色彩令牌是它 HCT /