46483 Commits

Author SHA1 Message Date
Bevan Kay
34f659cb64
cask/audit: iterate over artifacts in rosetta/signing audit 2025-08-11 14:12:34 +10:00
Issy Long
05b27aa847
Disallow head do blocks with only url and branch
- Since `head` must now specify a url and branch, the `head do` block
  with only these stanzas can be condensed to the single-line
  `head "url", branch: "branch"` format.
2025-08-10 20:52:58 +01:00
Thierry Moisan
9de0395c3b
patches audit: add tests for patches corrector 2025-08-10 15:33:35 -04:00
Issy Long
37eaed5bb7
Ensure that head Git URLs always specify a branch
- There's a TODO on the "someday" list [1] to ensure that `head` Git
  URLs always specify a branch.
- So I thought I'd automate this worry by adding an audit.
- Since `resource` block URLs tend to be pinned to SHAs, if indeed
  they are Git URLs, this audit only applies to `head` URLs.

[1]: https://github.com/orgs/Homebrew/projects/5?pane=issue&itemId=98789749
2025-08-10 20:28:50 +01:00
Carlo Cabrera
a41de81890
Skip rpath relocation of ELF files with protodesc_cold sections
We have multiple formulae (e.g. `ola`, `openvino`, `opencv`, `or-tools`,
`pytorch`) that seem to be broken by `patchelf.rb` on x86_64 Linux.[^1] The
common thread seems to be the presence of a `protodesc_cold` section in
the ELF header.

Let's avoid breaking these bottles by skipping relocation when a binary
file has a `protodesc_cold` section. It will probably hurt
relocatability of these bottles, but that's better shipping broken
binaries.

[^1]: https://github.com/Homebrew/homebrew-core/pull/210860#issue-2918569212
2025-08-11 03:10:07 +08:00
Douglas Eichelberger
899a6c5977
Try non-nil params 2025-08-10 09:37:57 -07:00
Carlo Cabrera
a7c124c2d0
brew.sh: enforce HOMEBREW_FORCE_BREW_WRAPPER more strictly
`HOMEBREW_FORCE_BREW_WRAPPER` can be used as a security/compliance
feature, but allowing it to be disabled by setting
`HOMEBREW_NO_FORCE_BREW_WRAPPER` leaves a pretty large hole in it that
allows it to be sidestepped.

Let's fix that by actually checking the path of the process that called
`brew`, and the verify that that path matches the configured value of
`HOMEBREW_NO_FORCE_BREW_WRAPPER`.
2025-08-09 03:15:53 +08:00
Ruoyu Zhong
dbe68ef80c
Merge pull request #20399 from Homebrew/spdx-revert
Revert "spdx: update license data."
2025-08-08 14:28:40 +00:00
Ruoyu Zhong
e8a892e2b0
utils/spdx: use refs/tags/ URL to fetch SPDX data 2025-08-08 16:01:51 +08:00
Ruoyu Zhong
d7a365c3f1
Revert "spdx: update license data."
This reverts commit de66adff6f632a6bb300fb08dab55733338322e7.
2025-08-08 16:01:13 +08:00
Mike McQuaid
d7c1336f51
Merge pull request #20398 from Homebrew/download_queue_missing_require
download_queue: add missing require.
2025-08-08 07:49:06 +00:00
Mike McQuaid
7df24d03f2
download_queue: add missing require.
We use `Resource` in a few places here so need to require it.
2025-08-08 08:33:26 +01:00
Ruoyu Zhong
2471997915
Merge pull request #20397 from Homebrew/spdx-update
spdx: update license data.
2025-08-08 02:01:34 +00:00
BrewTestBot
de66adff6f
spdx: update license data.
Autogenerated by [a scheduled GitHub Action](https://github.com/Homebrew/brew/blob/HEAD/.github/workflows/spdx.yml).
2025-08-08 00:19:22 +00:00
Mike McQuaid
a10e4230b4
Merge pull request #20393 from AlternateRT/docs-improve-autobump
docs: improve Autobump documentation
2025-08-07 12:50:11 +00:00
AltCode
54cfbe15ae
autobump_constants: improve reason descriptions 2025-08-07 14:32:56 +02:00
AltCode
58884c1fac
docs: apply suggestions from code review
Co-authored-by: Mike McQuaid <mike@mikemcquaid.com>
2025-08-07 14:25:20 +02:00
Mike McQuaid
0a9fec107e
Merge pull request #20396 from Homebrew/more_pathname_types
extend/pathname: fix another type error.
2025-08-07 08:47:07 +00:00
Mike McQuaid
0a881b9a0d
extend/pathname: fix another type error.
Let's make this consistent with the rest of this file.
2025-08-07 09:32:22 +01:00
Mike McQuaid
54c4cfaaaa
Merge pull request #20395 from Homebrew/pathname_types
extend/pathname: fix type error.
2025-08-07 08:21:08 +00:00
Mike McQuaid
ad48b5a5f5
Merge pull request #20392 from jrouly/jrouly/content-type-patch
handle false content_type
2025-08-07 08:12:12 +00:00
Mike McQuaid
9f52a57e58
Merge pull request #20390 from Homebrew/show-rejected-hash
download_queue: display hash of rejected download
2025-08-07 08:09:38 +00:00
Mike McQuaid
31e12d68e3
extend/pathname: fix type error.
`install_p` is sometimes called with a `Pathname` for `new_basename`.
2025-08-07 09:05:40 +01:00
Ruoyu Zhong
696910c533
Merge pull request #20394 from Homebrew/write_env_script-target
extend/pathname: accept `String` as `target` in `write_env_script`
2025-08-07 06:56:53 +00:00
Eric Knibbe
0675ddc876
download_queue: display hash of rejected download 2025-08-06 23:02:18 -04:00
Ruoyu Zhong
10e2c2b298
extend/pathname: accept String as target in write_env_script
There is too much existing usage outside of Homebrew for us to break
[1].

[1]: https://github.com/search?q=%22write_env_script%20%5C%22%22%20NOT%20org%3AHomebrew%20NOT%20is%3Afork&type=code

Closes https://github.com/Homebrew/homebrew-core/pull/232573.
2025-08-07 08:13:15 +08:00
Eric Knibbe
fdabcafb78
Merge pull request #20388 from Homebrew/docs-cask-signing
docs: mention signing in deprecation criteria
2025-08-06 19:36:16 +00:00
Michel Rouly
0270bd9d2a handle false content_type 2025-08-06 11:45:53 -07:00
Douglas Eichelberger
6c18f5c265
Simplify Service attr helper methods 2025-08-06 11:04:45 -07:00
AltCode
360ff196c4
docs: improve Autobump documentation 2025-08-06 19:15:24 +02:00
Mike McQuaid
726f83c4a8
Merge pull request #20389 from Homebrew/service_cron_null
service: ensure JSON cron output can be `null`.
2025-08-06 16:30:04 +00:00
Mike McQuaid
2bc10f6a52
Merge pull request #20380 from Homebrew/rustc_wrapper
Add rustc wrapper shim to fix RUSTFLAGS conflicts
2025-08-06 16:20:55 +00:00
Mike McQuaid
e6ba71c5b1
Add rustc wrapper shim to fix RUSTFLAGS conflicts
Fixes #18556 by using RUSTC_WRAPPER instead of setting RUSTFLAGS directly.
This allows Homebrew's optimization flags to coexist with .cargo/config.toml
settings, preventing build failures when projects have their own Rust
configuration.

- Add rustc_wrapper shim that clears RUSTFLAGS and prepends HOMEBREW_RUSTFLAGS
- Update both std and super environments to use RUSTC_WRAPPER
- Store Homebrew's rustflags in HOMEBREW_RUSTFLAGS instead of RUSTFLAGS

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
Co-authored-by: Carlo Cabrera <github@carlo.cab>
2025-08-06 17:06:25 +01:00
Mike McQuaid
1d482244e5
service: ensure JSON cron output can be null.
This better matches other field and existing behaviour.
2025-08-06 16:09:39 +01:00
Eric Knibbe
0f06a17b34
docs: mention signing in deprecation criteria 2025-08-06 10:29:59 -04:00
Mike McQuaid
5e1fd26da0
Merge pull request #20383 from Homebrew/rubydoc-fixes
RubyDoc output improvements
2025-08-06 12:41:08 +00:00
Ruoyu Zhong
98384bb638
Merge pull request #20386 from Homebrew/sync-shared-config
Synchronize shared configuration
2025-08-06 08:35:40 +00:00
BrewTestBot
ba0aa7296b
actionlint.yml: update to match main configuration 2025-08-06 08:11:05 +00:00
Patrick Linnane
1c625aa2a0
Merge pull request #20381 from colindean/patch-1
diagnostic: Use pushd/popd in uncommited modifications nudge
2025-08-06 01:38:41 +00:00
Eric Knibbe
626b6aca2d
RubyDoc output fixes 2025-08-05 17:13:42 -04:00
Colin Dean
f08122937f
Reorders git options for uncommitted modifications nudge
-C path must come before the subcommand.

Co-authored-by: Carlo Cabrera <github@carlo.cab>
2025-08-05 14:58:44 -04:00
Colin Dean
60ce25bea0
Use git's -C option to set git's working directory for uncommitted modifications nudge 2025-08-05 14:49:11 -04:00
Colin Dean
7d285c0956
diagnostic: Use pushd/popd in uncommited modifications nudge
While filing https://github.com/Homebrew/brew/issues/20379, I lost where I was because I followed the given instruction. Instead, let's use pushd/popd so the user is returned to their pwd if the git operations succeed.
2025-08-05 11:48:39 -04:00
Mike McQuaid
a729c533fd
Merge pull request #20377 from Homebrew/fix-linkage-checker-file-descriptors
Fix file descriptor leak in Linux LD library path parsing
2025-08-05 15:02:04 +00:00
Ruoyu Zhong
86fb7847bf
Merge pull request #20376 from Homebrew/sponsors-maintainers-man-completions
Update manpage and completions.
2025-08-05 14:31:18 +00:00
Mike McQuaid
23971854b0
Fix file descriptor leak in Linux LD library path parsing
The library_paths method was using readlines which could leave file
descriptors open due to Ruby's garbage collection behavior. When
processing many packages during 'brew upgrade' or 'brew linkage',
this caused "Too many open files" errors on Linux systems.

Changes:
- Replace readlines with explicit file.open block to ensure proper closure
- Add caching to avoid repeatedly reading /etc/ld.so.conf during a session
- Cache included files as well to optimize recursive include processing

Fixes: #19866, #20302, #19177, #20223

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-08-05 15:19:07 +01:00
BrewTestBot
a149df831d
Update manpage and completions.
Autogenerated by the [sponsors-maintainers-man-completions](https://github.com/Homebrew/brew/blob/HEAD/.github/workflows/sponsors-maintainers-man-completions.yml) workflow.
2025-08-05 14:10:26 +00:00
Mike McQuaid
7c67b47a77
Merge pull request #20375 from Homebrew/cask_prelude_download_queue
Add `Cask::Installer#prelude` to check before download queueing
2025-08-05 14:01:09 +00:00
Mike McQuaid
3f3ddb8b9e
Merge pull request #20360 from lukarajic/cask-size
Add a flag to `brew info` to view the size of each formula and cask
2025-08-05 13:54:14 +00:00
Mike McQuaid
64311c2889
Add Cask::Installer#prelude to check before download queueing
Fixes #20374

When using HOMEBREW_DOWNLOAD_CONCURRENCY, cask binaries were being
downloaded before checking if the cask could actually be installed
(e.g., disabled casks or conflict checks). This resulted in unnecessary
downloads for casks that would ultimately fail to install.

This change adds a `prelude` method to Cask::Installer that performs
early validation checks (deprecation/disable status and conflicts)
similar to Formula#prelude_fetch. The prelude method is called before
enqueueing downloads in all download queue scenarios (install, reinstall,
and upgrade commands), ensuring that validation failures occur before
the "Fetching downloads for:" message is displayed.

Key changes:
- Add Cask::Installer#prelude method with @ran_prelude tracking
- Call prelude before enqueueing downloads in install/reinstall/upgrade
- Refactor to avoid creating installer objects multiple times
- Maintain backward compatibility for non-download-queue scenarios

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-08-05 14:38:24 +01:00