Files
ElyOffice/tasks/reviews/C01.2a-r1.md
T

2.3 KiB

FAIL

Checks run: cargo check --workspace, cargo clippy --workspace --all-targets, cargo fmt --check (all clean); cargo test --workspace (5 passed); tests/scripts/bundle-macos.sh, desktop-files.sh, installer-windows.sh, apps-start.sh (all pass, none skipped). Release bundle packaging/macos/bundle.sh ely-pdf built, verified with codesign --verify --deep --strict, and printed ready ElyPDF under ELY_SMOKE=1. otool -L shows only system libraries, and the binary's minos is 11.0, below the plist's 14.0. Both appimagetool 1.9.1 SHA-256 values in appimage.sh match the downloaded release assets. Every file is under 500 lines, and every comment fits on one line in ten words or fewer.

  1. packaging/windows/installer.nsi:41 — The installer ships only ${APP_SLUG}.exe. The repo has no .cargo/config.toml setting +crt-static, so a x86_64-pc-windows-msvc build links VCRUNTIME140.dll dynamically. That DLL is not part of Windows 11. This breaks PRD §4.2: "独立安装包自带所需运行库". Failing scenario: install on a clean Windows 11 machine (for example Windows Sandbox) and start the app. Windows reports "VCRUNTIME140.dll was not found" and the app never opens. Fix: link the CRT statically for the windows-msvc target (-C target-feature=+crt-static in .cargo/config.toml), or have the installer carry the VC runtime DLLs next to the exe. Add a check that the shipped exe imports no VCRUNTIME*.dll.

  2. packaging/linux/appimage.sh:59-65 — The AppDir holds only the binary, the desktop file and the icon. No shared library is bundled. gpui_linux links xkbcommon with the x11 and wayland features, so the binary needs libxkbcommon.so.0 and libxkbcommon-x11.so.0 at load time. Neither is on the AppImage excludelist of libraries the host is expected to provide. This breaks PRD §4.2: "每个应用也有独立发行包,并附带其所需运行库". Failing scenario: on the Arch/Omarchy test snapshot (§4.1), where libxkbcommon-x11 is a separate package that is not installed, ElyDoc-x86_64.AppImage exits with "error while loading shared libraries: libxkbcommon-x11.so.0". Fix: deploy the binary's non-excluded dependencies into usr/lib of the AppDir (linuxdeploy, or ldd filtered by the excludelist) with an $ORIGIN rpath. Fail the build if a needed library cannot be resolved.