复审 r2 的 2 条 P1 + 3 条 p2 小账,全部只动文档(5 份,0 个 .rs)。
P1-1(`SLINT_BACKEND` → `ICED_BACKEND` 换了个名字的死开关):
`packaging/release-notes.md` 的「No GPU」小节原来把 `ICED_BACKEND=tiny-skia` 当作
`--software-renderer` 的等价替代命令给用户。实测该值会被本进程无条件覆盖:
- `ICED_BACKEND=tiny-skia ./unlucky-launcher-iced.exe --screenshot …`
→ `[probe] … request=auto -> ICED_BACKEND=wgpu` / `[shot] … renderer=wgpu` / `[backend] final=wgpu`
- `--software-renderer --screenshot …` → `request=cpu -> ICED_BACKEND=tiny-skia` / `renderer=tiny-skia`
- `--renderer=cpu --screenshot …` → `request=cpu -> ICED_BACKEND=tiny-skia` / `renderer=tiny-skia`
所以改成两条都实测可用的形态(`--software-renderer` / `--renderer=cpu`),不再把环境变量当用户开关。
P1-2(RF-2.0 履行方式的措辞与上游 §2 冲突):
`NOTICE` 第 1 条原写「由 v0.1.0 的 NOTICE、发布页说明与本文件的历史记录共同承担」——§2 只承认
(a) AboutSlint 部件 / (b) 公开下载页的官方徽章两种履行,NOTICE 文本不是履行。改为:义务仍挂在
v0.1.0 已发布资产上(条件挂在每次分发,不挂版本号);§2 只承认两种形式;**按本仓库记录,该项义务
在 v0.1.0 上尚未以任一形式落地**(部件一直只有排期,发布页那行是文字链接不是徽章图);NOTICE /
发布页说明 / 本节都只是记录。
p2 小账:
- `NOTICE` 第 3 条的依赖许可:`tiny-skia` 从「Apache-2.0 / MIT」改正为 BSD-3-Clause,并把
winit(Apache-2.0)/ wgpu(MIT OR Apache-2.0)分别写明;README(中英)同款写法一并对齐。
- `packaging/README.md` §4:`libGL/libEGL` 行改成「Slint 版 femtovg / iced 版 wgpu(推断,未实测)」,
并把限定语改成「除标注『推断,未实测』的那一行外,整表是 Slint 版实测」,消除表内与限定语打架。
- `README.md` / `README.zh-CN.md` 的 Slint 义务段补 `v0.1.0` 限定并按 §2 口径重写,避免读者以为
「Made with Slint」说的是下一版。
证据:`git diff --name-only` = NOTICE, README.md, README.zh-CN.md, packaging/README.md,
packaging/release-notes.md;`packaging/README.md` 仍 399 行(守卫上限 400);release body 模板用
`{{VERSION}}=0.2.0` 渲染通过(5956 字符,全篇 Slint 命中 4 行,均在「本版不含 Slint」的解释段)。
66 lines
4.4 KiB
Plaintext
66 lines
4.4 KiB
Plaintext
Unlucky-Launcher (ULL)
|
||
Copyright 2026 AskaEth (YeiJ)
|
||
|
||
本产品采用 Apache License 2.0(见 LICENSE)。
|
||
|
||
--------------------------------------------------------------------------
|
||
第三方组件声明
|
||
--------------------------------------------------------------------------
|
||
|
||
1. Slint(https://slint.dev)——**历史源码,不随任何产物分发**
|
||
|
||
本产品**当前发布的 GUI 框架是 iced**(见第 3 节),二进制里不含任何 Slint 代码。
|
||
仓库里仍保留 Slint 版 GUI 的源码(`crates/app`),仅作历史参考:它已被 cargo workspace
|
||
`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。
|
||
|
||
若将来重新把 `crates/app` 纳入构建并发布链接 Slint 的二进制,该义务随之恢复——届时需同时恢复
|
||
AboutSlint 部件/徽章与本节的现行声明。Slint 的其余许可分支(GPL-3.0-only / Slint Software
|
||
License 3.0)本项目始终不适用。
|
||
|
||
2. Google Material Color Utilities(https://github.com/material-foundation/material-color-utilities)
|
||
|
||
本产品的色彩令牌(crates/design 的 color 模块)是 Material 3 色彩算法(HCT 色彩空间 +
|
||
ColorSpec2021 调色板/角色映射)的 **Rust 重写移植**,依据 Apache License 2.0 使用,未把其任何语言的源码作为依赖
|
||
引入;除下面注明的那张生成常数表外,也没有复制其代码文件。
|
||
|
||
实际移植的部分(均为纯算法,逐函数对照后以 Rust 重写):
|
||
|
||
- `hct/Cam16.java`、`hct/ViewingConditions.java`、`hct/Hct.java` → `crates/design/src/color/cam16.rs`、
|
||
`viewing_conditions.rs`、`hct.rs`(CAM16 色相/彩度 + CIELAB `L*` 亮度)
|
||
- `hct/HctSolver.java` → `crates/design/src/color/hct_solver.rs` + `critical_planes.rs`
|
||
(色域映射求解器;其中 255 项 `CRITICAL_PLANES` 常数表是原样搬运的生成数据)
|
||
- `utils/ColorUtils.java`、`utils/MathUtils.java` → `crates/design/src/color/space.rs`
|
||
- `palettes/TonalPalette.java`、`dynamiccolor/ColorSpec2021.java`、`dynamiccolor/DynamicScheme.java`
|
||
→ `crates/design/src/color/tonal.rs`、`palettes.rs`、`scheme.rs`(Tonal Spot 变体的彩度常数与
|
||
49 个角色的 tone 映射)
|
||
|
||
对齐验证:`crates/design/tests/official_baseline.rs` 与 `tests/official_accent.rs` 的期望色值,
|
||
是把上述官方 Java 实现(Apache-2.0)在本机编译运行后输出的结果抄本——合计 290 项逐通道
|
||
比对(baseline 49 角色 × 2 模式 = 98 项;强调色 8 个种子 × 12 个强调族角色 × 2 模式 = 192 项),
|
||
误差上限 1(实测为 0)。两文件的表头各写着自己的分项口径。
|
||
|
||
Apache License 2.0 全文见 https://www.apache.org/licenses/LICENSE-2.0
|
||
上游版权声明:Copyright Google LLC。
|
||
|
||
3. Rust crates 生态
|
||
|
||
当前 GUI 框架:iced 0.14(MIT),连同 winit(Apache-2.0)、wgpu(MIT OR Apache-2.0)、
|
||
tiny-skia(BSD-3-Clause)——它们都在下面的白名单内。
|
||
cargo-deny 白名单见 deny.toml:Apache-2.0 / MIT / BSD-2-Clause / BSD-3-Clause / Zlib / BSL-1.0 / ISC /
|
||
CC0-1.0 / MIT-0 / Unlicense / Unicode-3.0 / CDLA-Permissive-2.0 / Apache-2.0 WITH LLVM-exception。
|
||
GPL 系(含 AGPL、LGPL 静态链接、SSPL)依赖不得进入主干。
|
||
|
||
4. 参考实现致谢
|
||
|
||
本项目设计参考自 HMCL(https://github.com/HMCL-dev/HMCL)与 PCL2
|
||
(https://github.com/Meloong-Git/PCL),两者均为 GPL-3.0,特此致谢。
|