mirror of
https://github.com/feigeCode/navop.git
synced 2026-11-06 16:07:51 +00:00
产品装配移出后 main 已只剩库,却仍占着仓库根目录、与 apps/* 并列,看起来像一个
产品。本次把它落回 crate 层:
- git mv main crates/navop_app;package name 由 main 改为 navop_app(与 lib 名
一致),删掉冗余的 [lib] 块;根 members 同步。
- 三个 app 改为直接相对路径依赖 navop_app = { path = "../../crates/navop_app" },
不进 workspace.dependencies(Cargo 不允许再关继承来的 default-features)。
- 26 处逃出 crate 根的 include_str! 各加一层 ../(resources/*、core/build.rs、
apps/* 与 crates/*_view 的 Cargo.toml、app_kit 源码);build.rs 的 icon/manifest
路径同步。
- env_file.rs 与 i18n_locale_keys_contract 的「工作区根」改为上两级;
cross-crate 源码断言(core/window_close、db_view、one_ui、windows_rdp_host)指向
新路径。
- locales/main.yml 保持原名:i18n 命名空间与全仓 t!() key 绑定,改名是另一件事。
- 发布链路同步:release_pr.py(MANIFEST_PATH、lock_app_version、报错文案)、
beta-release.sh 版本包名集合、release-tag.sh / ci.yml / release.yml /
.github/RELEASE.md / AGENTS.md / CLAUDE.md 等文档的路径与 -p navop_app。
- 顺带修两处未推送提交遗留的 CI 红线:app_kit::install 的
expected_binary_name cfg 过宽(macOS dead_code)、测试里多余的
is_supported_app_bundle import;release PR 测试夹具补齐四个 manifest;
windows_rdp_host 的 ALLOWED_FILES 断言对齐 release_pr.py 现状。
验证:cargo test -p navop_app(595 lib + 4 集成契约)、-p app_kit(149)、
one-ui/windows_rdp_host 契约、三个 app cargo build、cargo check --all-targets
全通过;script/tests 32 项、release-packaging 与 scripts/ai 的 node 测试全绿。
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 预览弹窗),它默认关闭、三平台一致,原因见 `crates/navop_app/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 "依赖安装完成!"
|