# 官方源码获取记录

目标：npm mupdf 1.28.1（应用锁定）；官方 MuPDF Git 标签1.28.1，标签对象20061bd45183f5a2bff8f43675e4da91e5ac2901。标签对象不一定等于解引用后的源码提交，后者需要另行核实。不能用latest替代。

第一轮尝试：
| 官方路径 | 结果 | 已传输大小 |
|---|---|---|
| https://mupdf.com/downloads/archive/mupdf-1.28.1-source.tar.gz | curl35，LibreSSL SSL_ERROR_SYSCALL；未获得有效 HTTP 下载 | 0 |
| https://mupdf.com/downloads/mupdf-1.28.1-source.tar.gz | HTTP404，响应为3557字节404网页 | 0有效源码 |
| https://github.com/ArtifexSoftware/mupdf/releases/download/1.28.1/mupdf-1.28.1-source.tar.gz | HTTP404，curl56 | 0有效源码 |
| https://codeload.github.com/ArtifexSoftware/mupdf/tar.gz/refs/tags/1.28.1 | curl28，60秒超时；3259071字节截断归档 | 3259071（无效） |
| git@github.com:ArtifexSoftware/mupdf.git --depth1 --branch1.28.1 | 下载缓慢，约15MB pack仍无HEAD；人为停止，exit130，不是服务器拒绝访问 | 未完成，精确完整大小未知 |

这些失败不表示官方源码不存在，也不构成许可拒绝。截断归档未进入公众下载目录。正在通过官方API核对真实发行资源，以及部分克隆先获取固定提交/子模块清单，再分批获取对应树。

## 缺失源码与未执行重建是不同事项

AGPL Corresponding Source 包括实际生成、安装、运行和修改所需源码、资源、关联依赖及控制脚本。完整对应源码不可缺；仅有npm WASM/JS产物不足。对位级重现、实际重建是否已运行，不能一概作为AGPL新增要求。提供真实匹配版本、完整输入和可用构建控制资料是发布检查的核心；实际运行重建是用于核验资料正确性和二进制对应性的工程证据。没有在本机安装Emscripten不阻塞源码下载和许可证审计，也不自动等于不合规。

若需要重建工具：官方 https://github.com/emscripten-core/emsdk ，Emscripten4.0.8（MuPDF1.28.1官方build.sh固定），用于将C与固定第三方依赖编译为WASM。通用编译器通常无需随Corresponding Source归档，但构建版本、参数及安装指引应保留。本轮不安装新工具。

## 第二轮进展

官方 npm 元数据 gitHead 与源码 HEAD 都是20061bd45183f5a2bff8f43675e4da91e5ac2901，标签是轻量标签，不是另一个标签对象。npm归档完整大小8,452,361字节（首次120秒下载6,564,491字节后超时，使用HTTP断点续传继续），解包大小14,324,000字节。GitHub树API recursive=true未截断，主仓库全部blob合计82,777,293字节，其中资源57,394,139字节。核心源码与所有资源已取回。九个默认构建子模块固定提交以DEPENDENCIES.json为准；正在逐项完成。

## 完成结果

主仓库和默认WASM九个必需子模块全部获取并检出精确提交；逐一验证所有Git追踪blob（含软链接内容）哈希，零缺失/错配。九个依赖合计60,727,037字节，连同主仓库共143,504,330字节。npm归档完整8,452,361字节，SHA-512与官方integrity相符，所有安装文件一致。固定提交、分项大小、许可证文本SHA-256见DEPENDENCIES.json。没有缺失对应默认构建所需源码；未运行C/TS重建仅列验证限制。用户要求保持不发布。
