Homebrew v7.0.10:新增漏洞感知包管理与多项安全加固
7.0.10
推荐理由
本次更新引入了关键的漏洞感知包管理能力,并收紧了 Bottle 验证与 Tap 信任链,直接提升 macOS 开发环境的安全性。建议开发者尽快升级以防范潜在风险。
What's Changed
变更内容
- Ignore Ubuntu release list link check failures by @MikeMcQuaid in #24196
- Require test resources in homebrew/core by @MikeMcQuaid in #24180
- Preserve cask approval for copied helpers by @MikeMcQuaid in #24191
- Add OSS Scanner Dockerfile and threat model by @p-linnane in #24199
- spdx: store downcased licenses in hash across calls by @alebcay in #24197
- Harden tap redirect trust and rollback by @p-linnane in #24198
- Fix offline, vacuous and repo-leaking specs by @p-linnane in #24200
- Ignore hidden directories when listing taps by @p-linnane in #24201
- Isolate Bootsnap caches across gem changes by @SSakutaro in #24206
- Bump portable-ruby to 4.0.7_1 by @brew-commit-app[bot] in #24211
- Check untrusted conflicts without loading them by @p-linnane in #24208
- Avoid duplicate source upgrades of dependencies by @p-linnane in #24209
- Report net dependency impact in test-bot by @p-linnane in #24213
- Avoid nested formula locks while linking by @p-linnane in #24207
- formula_versions: allow test-only resources by @daeho-ro in #24218
- Show versions of dependencies in dry-run by @HaraldNordgren in #24210
- Extend T::Generic in Tapioca DSL compilers by @p-linnane in #24219
- rubocop: Always run the "every formula should have a test block" check by @issyl0 in #24188
- Suppress developer mode warnings in CI by @p-linnane in #24220
- bundle: protect Brewfile formulae during cleanup by @AbdelrahmanHafez in #24222
- advisory-match: emit split affected intervals by @p-linnane in #24223
- advisory-match: add --rejected-candidates by @p-linnane in #24224
- advisory-match: reuse platform-independent history by @p-linnane in #24225
- cask/audit: check signing of more artifact types by @bevanjkay in #24227
- Check cask receipt tap when untapping by @p-linnane in #24228
- pr-publish: reset label inputs per pull request by @p-linnane in #24232
- pr-publish: remove large runner uploads by @p-linnane in #24233
- advisory-match: fix spec indentation warning by @p-linnane in #24234
- advisory-match: cache historical formula source by @p-linnane in #24231
- Fix local formula sources in brew info by @MikeMcQuaid in #24238
- Add cop for ternaries with nil branches by @MikeMcQuaid in #24239
- Read protected install step symlinks with sudo by @p-linnane in #24241
- sort search results by version by @adamv in #24240
- utils/pypi: preserve :test resources by @botantony in #24242
- bundle: protect alternate formula names by @AbdelrahmanHafez in #24229
- Document yearly BottleTransition update by @hyuraku in #24243
- cask/audit: skip resource-only bundles by @MikeMcQuaid in #24247
- test: isolate tty? and command lookup fixtures by @p-linnane in #24245
- cask/ci/check: ignore more running Apple apps by @bevanjkay in #24244
- bundle: upgrade outdated npm packages by @MikeMcQuaid in #24254
- docs: unify formula and cask description guidelines by @bevanjkay in #24256
- info: show build deps for source installs by @HaraldNordgren in #24258
- Exclude end date from approved-review searches by @MikeMcQuaid in #24260
- Keep ENV build metadata off the shareable ENV by @p-linnane in #24249
- Require lead maintainer review for CODEOWNERS by @p-linnane in #24265
- Accept dependency tag arrays in API metadata by @p-linnane in #24262
- Stop bundle specs leaking Tap and Cask doubles by @p-linnane in #24267
- Preserve and validate no_linkage metadata by @p-linnane in #24263
- Use full names for tap migration targets by @p-linnane in #24266
- utils/curl: guess charset from a <meta> tag by @hyuraku in #24257
- info: show revision in headline upgrade version by @HaraldNordgren in #24271
- curl: stop retrying local download write failures by @BrandenXia in #24275
- audit: flag self-submissions by commit email by @bevanjkay in #24277
- shared_audits: parse whois dates with spaces by @bevanjkay in #24276
- cask: merge uninstall and zap directives into one pass by @bevanjkay in #24194
- Disclaim sandbox TCC responsibility when available by @MikeMcQuaid in #24272
- audit: require livecheck for new packages by @bevanjkay in #24279
- Make source build dependency upgrades more liberal by @HaraldNordgren in #24273
- rubocops/cask: disallow bare ToDesktop wildcard by @krehel in #24281
- api: revalidate JSON API caches with ETag, not the bumped mtime by @xrl in #24193
- Truncate summary versions to fit terminal width by @MikeMcQuaid in #24283
- Add vulnerability-aware package management by @MikeMcQuaid in #24274
- unpack: explain extraction disk space failures by @BrandenXia in #24278
- Tighten bottle attestation verification by @MikeMcQuaid in #24282
- Preserve build errors with Pathname arguments by @MikeMcQuaid in #24292
- Serialise Pathnames in forked child errors by @dduugg in #24294
- Publish local patch checksums in the formula API by @MikeMcQuaid in #24284
- Preserve cask backups across lifecycle phases by @MikeMcQuaid in #24295
- @MikeMcQuaid 在 #24196 中忽略 Ubuntu 发行版列表链接检查失败
- @MikeMcQuaid 在 #24180 中要求 homebrew/core 包含测试资源
- @MikeMcQuaid 在 #24191 中保留复制辅助程序的 cask 审批状态
- @p-linnane 在 #24199 中添加 OSS Scanner Dockerfile 和威胁模型
- @alebcay 在 #24197 中使 spdx:跨调用在哈希中存储小写许可证
- @p-linnane 在 #24198 中加固 tap 重定向信任及回滚机制
- @p-linnane 在 #24200 中修复离线、空值及泄露仓库的规范
- @p-linnane 在 #24201 中列出 taps 时忽略隐藏目录
- @SSakutaro 在 #24206 中隔离 gem 更改间的 Bootsnap 缓存
- @brew-commit-app[bot] 在 #24211 中将 portable-ruby 升级至 4.0.7_1
- @p-linnane 在 #24208 中在不加载的情况下检查不受信任的冲突
- @p-linnane 在 #24209 中避免依赖项源升级重复
- @p-linnane 在 #24213 中通过 test-bot 报告网络依赖影响
- @p-linnane 在 #24207 中避免链接时的嵌套 formula 锁
- @daeho-ro 在 #24218 中使 formula_versions 允许仅测试资源
- @HaraldNordgren 在 #24210 中在 dry-run 中显示依赖项版本
- @p-linnane 在 #24219 中扩展 Tapioca DSL 编译器中的 T::Generic
- @issyl0 在 #24188 中使 rubocop:始终运行“每个 formula 都应包含测试块”的检查
- @p-linnane 在 #24220 中抑制 CI 中的开发者模式警告
- @AbdelrahmanHafez 在 #24222 中使 bundle:在清理期间保护 Brewfile 中的 formulae
- @p-linnane 在 #24223 中使 advisory-match:发出分割的影响区间
- @p-linnane 在 #24224 中使 advisory-match:添加 --rejected-candidates
- @p-linnane 在 #24225 中使 advisory-match:重用与平台无关的历史记录
- cask/audit:通过 @bevanjkay 在 #24227 中检查更多制品类型的签名
- 通过 @p-linnane 在 #24228 中取消 tap 时检查 cask receipt tap
- pr-publish:通过 @p-linnane 在 #24232 中按拉取请求重置标签输入
- pr-publish:通过 @p-linnane 在 #24233 中移除大型 runner 上传
- advisory-match:通过 @p-linnane 在 #24234 中修复规范缩进警告
- advisory-match:通过 @p-linnane 在 #24231 中缓存历史 formula 源码
- 通过 @MikeMcQuaid 在 #24238 中修复 brew info 中的本地 formula 源码
- 通过 @MikeMcQuaid 在 #24239 中添加针对带有 nil 分支的三元运算符的代码检查规则
- 通过 @p-linnane 在 #24241 中使用 sudo 读取受保护安装步骤的符号链接
- 通过 @adamv 在 #24240 中按版本对搜索结果进行排序
- utils/pypi:通过 @botantony 在 #24242 中保留 :test 资源
- bundle:通过 @AbdelrahmanHafez 在 #24229 中保护备用 formula 名称
- 通过 @hyuraku 在 #24243 中记录年度 BottleTransition 更新
- cask/audit:通过 @MikeMcQuaid 在 #24247 中跳过仅包含资源的 bundle
- test:通过 @p-linnane 在 #24245 中隔离 tty? 和命令查找测试夹具
- cask/ci/check:通过 @bevanjkay 在 #24244 中忽略更多正在运行的 Apple 应用程序
- bundle:通过 @MikeMcQuaid 在 #24254 中升级过时的 npm 包
- docs:通过 @bevanjkay 在 #24256 中统一 formula 和 cask 描述指南
- info:通过 @HaraldNordgren 在 #24258 中显示源码安装的构建依赖项
- 通过 @MikeMcQuaid 在 #24260 中从已批准审查搜索中排除结束日期
- 通过 @p-linnane 在 #24249 中将 ENV 构建元数据从共享 ENV 中排除
- 通过 @p-linnane 在 #24265 中要求 CODEOWNERS 需要首席维护者审查
- 通过 @p-linnane 在 #24262 中在 API 元数据中接受依赖项标签数组
- 通过 @p-linnane 在 #24267 中停止 bundle 规范泄漏 Tap 和 Cask 模拟对象
- 由 @p-linnane 在 #24263 中保留并验证 no_linkage 元数据
- 由 @p-linnane 在 #24266 中使用完整名称作为 tap 迁移目标
- 由 @hyuraku 在 #24257 中通过 <meta> 标签猜测 utils/curl 的字符集
- 由 @HaraldNordgren 在 #24271 中在 headline 升级版本中显示修订信息
- 由 @BrandenXia 在 #24275 中停止重试 curl 本地下载写入失败
- 由 @bevanjkay 在 #24277 中通过提交邮箱标记审计中的自我提交
- 由 @bevanjkay 在 #24276 中解析 shared_audits 中包含空格的 whois 日期
- 由 @bevanjkay 在 #24194 中将 cask 的 uninstall 和 zap 指令合并为一次执行
- 由 @MikeMcQuaid 在 #24272 中在可用时免除沙盒 TCC 责任
- 由 @bevanjkay 在 #24279 中要求新软件包必须包含 livecheck
- 由 @HaraldNordgren 在 #24273 中放宽源构建依赖项升级的限制
- 由 @krehel 在 #24281 中在 rubocops/cask 中禁止使用裸 ToDesktop 通配符
- 由 @xrl 在 #24193 中通过 ETag(而非递增的 mtime)重新验证 JSON API 缓存
- 由 @MikeMcQuaid 在 #24283 中截断摘要版本以适应终端宽度
- 由 @MikeMcQuaid 在 #24274 中添加具有漏洞感知能力的包管理功能
- 由 @BrandenXia 在 #24278 中解释 unpack 提取磁盘空间失败的原因
- 由 @MikeMcQuaid 在 #24282 中收紧 bottle 证明验证
- 由 @MikeMcQuaid 在 #24292 中保留带有 Pathname 参数的构建错误
- 由 @dduugg 在 #24294 中对 forked 子进程错误中的 Pathnames 进行序列化
- 由 @MikeMcQuaid 在 #24284 中在 formula API 中发布本地补丁校验和
- 由 @MikeMcQuaid 在 #24295 中跨生命周期阶段保留 cask 备份
New Contributors
新贡献者
- @BrandenXia made their first contribution in #24275
- @xrl made their first contribution in #24193
- @BrandenXia 在 #24275 中完成了首次贡献
- @xrl 在 #24193 中完成了首次贡献
Full Changelog: 7.0.9...7.0.10
完整更新日志:7.0.9...7.0.10
更进一步:量化金融体系
看懂新闻只是起点——沿量化金融路径,把它变成能交付的工程能力