mirror of
https://github.com/feigeCode/navop.git
synced 2026-11-06 16:07:51 +00:00
- `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 解析通过。
89 lines
2.7 KiB
Bash
Executable File
89 lines
2.7 KiB
Bash
Executable File
#!/usr/bin/env bash
|
||
|
||
set -e
|
||
|
||
# 说明:`webkit2gtk-4.1` 开发包只服务于可选的 `embedded-webview` feature(AI 对话里的
|
||
# HTML 预览弹窗),它默认关闭、三平台一致,原因见 `main/Cargo.toml`。默认构建不装它
|
||
# 也编得过,这里仍然装上只是为了 `cargo build --features embedded-webview` 能开箱即用。
|
||
# 官方发布包不带它 —— 带 WebKitGTK 4.1 的发行版与发布包的 glibc 2.28 基线不相配,
|
||
# 也没法随依赖包提供。
|
||
|
||
detect_distro() {
|
||
if [ -f /etc/os-release ]; then
|
||
. /etc/os-release
|
||
echo "$ID"
|
||
elif [ -f /etc/fedora-release ]; then
|
||
echo "fedora"
|
||
elif [ -f /etc/debian_version ]; then
|
||
echo "debian"
|
||
else
|
||
echo "unknown"
|
||
fi
|
||
}
|
||
|
||
DISTRO=$(detect_distro)
|
||
echo "检测到发行版: $DISTRO"
|
||
|
||
case "$DISTRO" in
|
||
ubuntu|debian|linuxmint|pop)
|
||
echo "安装 Ubuntu/Debian 依赖..."
|
||
sudo apt update
|
||
# Test on Ubuntu 24.04
|
||
sudo apt install -y \
|
||
libudev-dev \
|
||
gcc g++ clang libfontconfig-dev libwayland-dev \
|
||
libwebkit2gtk-4.1-dev libxkbcommon-x11-dev libx11-xcb-dev \
|
||
libssl-dev libzstd-dev \
|
||
vulkan-validationlayers libvulkan1
|
||
;;
|
||
fedora|rhel|rocky|almalinux|centos)
|
||
echo "安装 Fedora/RHEL 依赖..."
|
||
if command -v dnf &> /dev/null; then
|
||
PKG_MANAGER="dnf"
|
||
else
|
||
PKG_MANAGER="yum"
|
||
fi
|
||
|
||
sudo $PKG_MANAGER install -y \
|
||
systemd-devel \
|
||
gcc gcc-c++ clang fontconfig-devel wayland-devel \
|
||
webkit2gtk4.1-devel libxkbcommon-x11-devel libxcb-devel \
|
||
openssl-devel libzstd-devel \
|
||
vulkan-validation-layers vulkan-loader
|
||
;;
|
||
arch|manjaro|endeavouros)
|
||
echo "安装 Arch Linux 依赖..."
|
||
sudo pacman -Sy --noconfirm \
|
||
systemd \
|
||
gcc clang fontconfig wayland \
|
||
webkit2gtk-4.1 libxkbcommon-x11 libxcb \
|
||
openssl zstd \
|
||
vulkan-validation-layers vulkan-icd-loader
|
||
;;
|
||
opensuse*)
|
||
echo "安装 openSUSE 依赖..."
|
||
sudo zypper install -y \
|
||
systemd-devel \
|
||
gcc gcc-c++ clang fontconfig-devel wayland-devel \
|
||
libwebkit2gtk-4_1-0 libxkbcommon-x11-devel libxcb-devel \
|
||
libopenssl-devel libzstd-devel \
|
||
vulkan-validation-layers libvulkan1
|
||
;;
|
||
*)
|
||
echo "错误: 不支持的发行版 '$DISTRO'"
|
||
echo "请手动安装以下依赖:"
|
||
echo " - gcc, g++, clang"
|
||
echo " - fontconfig 开发包"
|
||
echo " - wayland 开发包"
|
||
echo " - webkit2gtk-4.1 开发包(可选,只有显式开启 embedded-webview 时才需要)"
|
||
echo " - libxkbcommon-x11 开发包"
|
||
echo " - libx11-xcb 或 libxcb 开发包"
|
||
echo " - openssl 开发包"
|
||
echo " - libzstd 开发包"
|
||
echo " - vulkan 相关包"
|
||
exit 1
|
||
;;
|
||
esac
|
||
|
||
echo "依赖安装完成!"
|