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

8 lines
2.3 KiB
Markdown

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.