Commit Graph
3 Commits
Author SHA1 Message Date
胡飞 7d0b88e21e build: HTML 预览的 embedded-webview 改为全平台默认关闭
- `main` 与 `crates/ai_chat_view` 的 `default` 都去掉 `embedded-webview`,
  需要时显式 `--features embedded-webview` 打开
- 删除 `script/linux-release-features.sh`:Linux 不再需要专属 feature 列表,
  三个平台发同一种形态,`release.yml` 的 Linux 分支回到默认构建
- 移除 `NAVOP_LINUX_EMBEDDED_WEBVIEW` 开关;Windows 32 位的显式列表
  (默认集减 shell-plugins)同步去掉该 feature,避免 win32 成为唯一的另一种形态
- `ci.yml` 补编 opt-in 形态(`cargo check -p main --features embedded-webview`
  与 `cargo check -p ai_chat_view --features embedded-webview --tests`):
  默认形态由 `cargo test --all` 覆盖,两个半边都得有地方编到
- `test-release-packaging.mjs` 改为锁「没有平台构建打开该 feature」+ opt-in 形态有 CI 覆盖
- 注释同步:`main/Cargo.toml`(原因与降级行为)、`install-linux.sh`、
  `package-linux-gpu-stack.py`、`AGENTS.md`

动机:WebKitGTK 4.1 无法随 Linux 发布包提供(带它的发行版都在 glibc 2.39+ 上、
`WebKitWebProcess` 按编译期路径解析),而只让 Linux 关掉会让三个平台各发一种形态,
需要多测一套、多维护一个平台专属列表。关闭后 HTML 预览弹窗降级为
「无法创建 HTML 预览 webview,已保留源码视图」,「用浏览器打开」「下载 HTML」不受影响。

验证:`cargo check -p main`(默认形态)、`cargo check -p main --features embedded-webview`、
`cargo check -p ai_chat_view --features embedded-webview --tests` 三者均通过;
`node --test script/test-release-packaging.mjs` 29/29;两个 workflow YAML 解析通过。
2026-09-22 17:24:06 +08:00
胡飞 2a8d930e69 build(linux): Linux 发布包不再链接 WebKitGTK 4.1
- 新增 `script/linux-release-features.sh` 作为 Linux 发布 feature 集的唯一真源,
  默认输出 `wasm-components,windows-native-rdp,shell-plugins`(默认集减去
  `embedded-webview`)
- `release.yml` 的 Linux 构建改为 `--no-default-features --features "$(...)"`;
  只有设了 `NAVOP_LINUX_EMBEDDED_WEBVIEW=1` 且 pkg-config 真能看到
  `webkit2gtk-4.1` 时才把该 feature 加回来
- `ci.yml` 在 Linux 上补编一次发布形态:`cargo test --all` 走的是默认特性全开,
  覆盖不到关掉 feature 的那半边代码
- `test-release-packaging.mjs` 锁住默认列表、opt-in 路径(stub pkg-config 的
  成功/失败两种结果)以及两个工作流对脚本的接线
- `install-linux.sh`、`package-linux-gpu-stack.py` 的注释同步:WebKitGTK 只服务于
  可选的 `embedded-webview`,不再是发布二进制的必然依赖

带 WebKitGTK 4.1 的发行版都构建在 glibc 2.39+ 上、与发布包的 2.28 基线不相配,
且 `WebKitWebProcess` 是按编译期路径解析的独立 ELF,所以这个库无法随依赖包提供。
UOS / 麒麟这类只带 4.0 的发行版此前会直接以
`error while loading shared libraries: libwebkit2gtk-4.1.so.0` 失败。
2026-09-22 16:41:12 +08:00
胡飞 4a2a033fd9 build(linux): 渲染依赖独立成包,便携版改为同一二进制加标记文件
- 新增 script/package-linux-gpu-stack{,.py,-build.sh,-docker.sh} 与
  script/linux-gpu-stack-install.sh:在 Rocky 8 容器里收集 Mesa/EGL/LLVM
  闭包,产出 navop-<version>-linux-<x64|arm64>-gpu-stack.tar.gz;安装脚本
  按 ldconfig 只补宿主缺失的库,支持 --dry-run/--force/--uninstall,卸载
  只回放自己安装过的文件
- 删除 Linux portable 变体:musl 启动器 script/linux-portable-launcher.c、
  script/package-linux-portable.{py,sh},发布矩阵移除 linux-x64-portable
  与 linux-arm64-portable
- Linux 应用包统一为默认 feature 的裸二进制,构建走
  cargo zigbuild --target <triple>.2.28,不再拆 --no-default-features 分支
- 便携包回归:Package (Linux) 用同一个二进制平铺、加一个空的
  navop.portable 标记打成 -portable.tar.gz,不新增矩阵项、不二次编译
- upload-r2.yml 的 targetFor() 识别 -portable./-gpu-stack. 后缀并映射到
  对应 target,避免这两类资产被归入 universal
- 三语言 install-update.md 更新下载表,新增图形依赖包与便携版说明
- 重写 script/test-release-packaging.mjs:退役 portable 打包器用例,新增
  依赖包三方契约、便携标记跨平台锁定、install.sh 增量卸载等断言
2026-09-22 13:45:05 +08:00