4.9 KiB
FAIL
Round-2 defects:
- lok.sh detach: fixed. Cleanup retries
hdiutil detachfor up to ten seconds and fails the script if the detach never succeeds. It skipsrm -rfwhile the image is still mounted. Two runs in a row both exited 0 in about 10 s.hdiutil infoshowed no leftover LibreOffice image afterwards. - Skia-off build and build status: fixed.
engines/lo-srcis at 8221e31, withENABLE_SKIA=TRUEandSKIA_GPU=METALinconfig_host.mk. The build is running (about 38 clang processes). Fact 7 and the status paragraph now say this. - md5.c and CFLAGS: fixed. The CFLAGS override is gone. A fresh build has
CFLAGS = -g -O2 -W -Wall. The md5.c sentence is now limited to 6dc099a. - libetpan fallbacks: partly fixed. The script passes
--with-json, the test assertsHAVE_OPENSSLandHAVE_JSON, and json-c is listed. The OpenSSL fallback is still open; see the first entry. - mupdf.sh pkcs7 stub: fixed. The script passes
HAVE_LIBCRYPTO=yes, and the test runsnm -uand looks forPKCS7_. A fresh build in a scratch tree passed: library sizes 53 940 840 and 9 905 040 bytes, and 17 PKCS7/EVP imports. - The doc's "逐条断言" claim: fixed. lok.sh now asserts the dmg size, the three exports and the plugin list. Facts 5 to 8 are given as citations. The cited lines match the source:
init.cxx:4277/4348,salvd.hxx:46-50,configure.ac:5950-5952,gdiimpl.cxx:1390-1393,salgdiutils.cxx:112andSkiaHelper.cxx:256-261. - Hunk citations: fixed. The patch is described by the code it changes. It is byte-identical to the diff in
engines/lo-src.
What I ran:
tests/engines/lok.shtwice: exit 0 both times.tests/engines/mupdf.sh: exit 0, both cached and from a fresh build.tests/engines/libetpan.sh: exit 0, both cached and from a fresh build (86 s).tests/scripts/*.shandagents_md.py: exit 0.
scripts/build-libetpan.sh:16, :11, :29 — The OpenSSL fallback is still silent, and a TLS-less build gets cached as good.
brew --prefix openssl@3exits 0 and prints/opt/homebrew/opt/openssl@3even when that formula is not installed. I checked this withbrew --prefix libressl, which returned a path that does not exist. So the|| { ... exit 1; }branch only runs when Homebrew itself is missing.- When
OPENSSL_DIRor the brew prefix points at a directory with no OpenSSL, libetpan'sconfigure.ac:227-237setswith_openssl=no. The build then succeeds, writesPIN, and prints "built libetpan". - Line 11 keys the cache on the pin alone, so every later run reuses that build.
Scenario: I ran
OPENSSL_DIR=/nonexistent tests/engines/libetpan.shin a scratch tree. The build succeeded, and the test printed "FAIL: libetpan built without TLS". I reran the test with the working Homebrew OpenSSL. The build script printed "ok" from the cache, and the test failed with the same message again. It keeps failing until someone deletesengines/libetpanby hand. The doc's claim atdocs/engineering-risks.md:47that the script fails outright ("缺了脚本直接失败") is false for this case. Fix: before building, require$ssl/include/openssl/ssl.h. After configure, fail ifconfig.hlacksHAVE_OPENSSLorHAVE_JSON, and do so beforePINis written.
docs/engineering-risks.md:27-29 — PRD §23 requires recording the source commit, compile options and patches when a version is chosen ("选择版本时记录源码提交、编译选项和补丁"). R-01 picks a self-built LibreOffice, and the build is already running. Its configure options are recorded nowhere in the repo:
- They exist only in
engines/lo-src/autogen.lastrun, andengines/is not tracked. - There are 32 options, among them
--enable-mergelibs,--disable-python,--without-java,--with-lang=and--with-fonts. - There is no
scripts/build-libreoffice.sh, and the doc does not list the options. - How
engines/lo-srcwas created (the clone, the tag, thengit applyof the patch) is also unrecorded. Scenario: C07.1 runs on another machine, orengines/is cleared. Nobody can rebuild the binary thatELY_LOK_EXPECT_TILE=writtenis meant to verify. lok.sh's plugin-list assertion depends on--enable-mergelibsin a way nobody can trace. Fix: add ascripts/build-libreoffice.shthat clones the pin, applies the patch and runs autogen with the explicit option list. Alternatively, record the exact option list in R-01. Either way,engines/lo-srcmust be reproducible from the repo.
docs/engineering-risks.md:24 — The doc says the six compile errors come from "该块(:794-810)". In a release build the assert is compiled out. The block at 794-810 accounts for three of the errors: two SkiaHelper uses at :802 and CAMetalLayer at :807. The other three come from a second unguarded block in windowWillExitFullScreen, at :841 (two SkiaHelper uses) and :846 (CAMetalLayer).
Scenario: a reader who patches or guards only lines 794-810 still gets three errors.
Fix: cite both blocks (:794-810 and :833-849), or cite the error lines themselves.