Homebrew Git弃用系统cURL:一次依赖清理,还是供应链安全的新起点?
原创Homebrew Git弃用系统cURL:一次依赖清理,还是供应链安全的新起点?
背景:为什么Git要摆脱macOS系统cURL?
Git 在 macOS 上处理 HTTPS 请求,默认走的还是系统自带的 cURL。这个库从 OS 层面提供,版本随系统升级走,Homebrew 的 Git 配方干脆直接依赖它,少管一件事。问题在于,系统 cURL 的版本和行为不在 Homebrew 控制范围之内。用户升级 macOS,Git 的传输层就可能悄悄变了,连带着证书处理、代理协商的行为一起变。
PR #321878 的标题把这件事写得很直白:git: do not depend on macOS's system cURL 来源:HH。作者 woodruffw 是 Homebrew 核心仓库的 Member,他开这个 PR,请求 SMillerDev 来审查 来源:HH。把依赖从系统库挪到自建库,听起来像个常规的依赖清理,但放在供应链安全被反复讨论的当下,这一步有更实在的含义:让 Git 的构建产物不再受制于宿主机的底层库版本,把主动权拿回自己手里。
woodruffw 在 PR 描述里写得相当坦诚:I'm pretty sure I did this right. Local brew test passed 来源:HH。他没说"万无一失",只说"挺确定"。这句措辞后来被证明是整个 PR 里最有意思的地方。
改动细节:技术操作与检查清单
这个 PR 包含 2 个 commits,最后由 BrewTestBot 合并进 main 分支 来源:HH。作者自己的分支 ww/git 经历了一次 force-push,从 commit aaa2878 推进到 9a46f6e,发生在 2026 年 10 月 28 日 15:29,距离他请求审查只有一分钟 来源:HH。这说明中间改过东西,改完就赶紧交上去。
PR 描述里的检查清单是 Homebrew 配方的标准流程,三条命令卡得很死。第一条,HOMEBREW_NO_INSTALL_FROM_API=1 brew install --build-from-source <formula>,从源码编译安装,绕过 API 预编译包;第二条,brew test <formula>,跑配方自带的测试;第三条,brew audit --strict <formula>,做严格静态检查 来源:HH。三条全过,一个改动才有机会被合并。
woodruffw 在检查清单里逐项打勾,然后声明自己没使用 AI/LLM 创建这个 PR,还补了一句 Fully by hand 来源:HH。在 AI 生成代码已经泛滥的年份,手工完成一个依赖改动,这个声明不是走过场。
验证与多源交叉验证:版本号与审查意见
woodruffw 在 PR 里说本地测试通过,但没有提具体版本号。HN 评论区有个用户 ungawatkt 指出,这个改动对应的新版本是 2.56.0_2,还附了 Homebrew 的 container 包链接 来源:DW。测试通过的声明和评论区报出的版本号相互印证,一个说改动落地了,一个说落地的具体是什么版本。
版本号里那个 _2 后缀值得留意。Homebrew 的配方版本号带 revision 后缀,表示同一上游版本被修订过。2.56.0 是 Git 的上游版本,_2 说明这个配方已经改过两轮。一个 Git 配方在系统 cURL 依赖被移除之后,版本号落在 _2,说明这不是第一次为这个版本做调整。
审查环节同样有迹可循。MikeMcQuaid 在 PR 上点击了 approved,批准了这次更改 来源:HH。BrewTestBot 在 2026 年 10 月 28 日完成合并 来源:HH。从请求审查到合并,整个过程在当天完成,这个改动不算大,但审核链条是完整的。
作者的保留意见:一个反直觉的发现
woodruffw 在评论里写了一句容易被忽略的话:but there might be more we need to do to make sure the Git build actually uses the Homebrewed cURL? 来源:HH。作者自己承认,即使本地测试通过,他仍不确定 Git 构建是否真正用上了 Homebrew 的 cURL。测试通过只说明没坏,不说明预期路径被走通。
这个"不确定"放在依赖清理的语境下,反而显得可信。一个完全自信的 PR 作者会直接说"已确认使用 Homebrew cURL",但 woodruffw 选择把疑问留给审查人。他声明没用 AI 参与,Fully by hand 来源:HH,然后请求 SMillerDev 审查,一分钟内 force-push,MikeMcQuaid 随后批准 来源:HH。时间线紧凑,但每一步都留下了记录。
这个 PR 最值得留意的不是它改了哪一行,而是作者主动暴露了一个未验证的假设。在供应链安全讨论里,最怕的是打包者拍胸脯说没问题。woodruffw 选择把"我不确定"写进 PR 描述,让后来者知道这个改动可能还有后续。这种态度比任何"已确认"都更能说明 Homebrew 的维护者怎么对待一个看似简单的依赖调整。
原文:
Homebrew Git updated away from macOS's system cURL · 来源:Hacker News
参考来源:
作者:itfan123 值班编辑 · 发布于 2026年10月29日
版权声明
所有资源都来源于爬虫采集,如有侵权请联系我们,我们将立即删除
itfan123




