1151 Commits

Author SHA1 Message Date
copilot-swe-agent[bot]
3e413b4521
Fix Cask artifact rename operation on Linux by making xattr metadata no-op
Co-authored-by: MikeMcQuaid <125011+MikeMcQuaid@users.noreply.github.com>
2025-09-12 09:30:17 +01:00
Michael Cho
14d7942c95
ENV/super: set JEMALLOC_SYS_WITH_LG_PAGE
AArch64 Linux supports up to 64KB page size

Co-authored-by: Mike McQuaid <mike@mikemcquaid.com>
2025-09-08 15:58:48 -04:00
Mike McQuaid
efc036f75a
Merge pull request #20613 from Homebrew/dug/typed-system-command
Enable strict typing in SystemCommand
2025-09-08 07:32:58 +00:00
Douglas Eichelberger
fb6c51da07
Enable strict typing in SystemCommand 2025-09-02 10:26:40 -07:00
Douglas Eichelberger
240fd71e6f
Avoid repeated calls to affix checks 2025-08-31 11:11:41 -07:00
Mike McQuaid
82fabab8aa
Merge pull request #20560 from Homebrew/dug/typed-kernel
Enable strict typing in Kernel extensions + utils.rb
2025-08-25 07:31:58 +00:00
Douglas Eichelberger
6a25de5daf
Rename formula_support to keg_only reason, refactor slightly 2025-08-24 14:57:19 -07:00
Douglas Eichelberger
2dc4c7a4d2
Rename Volumes.which to avoid incompatible override 2025-08-24 14:34:31 -07:00
Douglas Eichelberger
ceb2291be1
Enable strict typing in Kernel extensions + utils.rb 2025-08-23 18:44:36 -07:00
Mike McQuaid
3bbff84ff1
Merge pull request #20525 from Homebrew/utils_output
Move `o*` output methods to `Utils::Output`
2025-08-22 09:10:29 +00:00
Mike McQuaid
a1f112f3fe
Move o* output methods to Utils::Output
This reduces the surface area of our `Kernel` monkeypatch and removes
the need to `include Kernel` in a bunch of modules.

While we're here, also move `Kernel#require?` to `Homebrew` and fully
scope the calls to it.
2025-08-20 19:20:19 +01:00
Ruoyu Zhong
214a88e434
os/mac: typed: strict
Co-authored-by: Bo Anderson <mail@boanderson.me>
2025-08-21 01:52:51 +08:00
Mike McQuaid
6db1f6a052
**/diagnostic.rb: add Sorbet strict sigil.
Making more files `typed: strict` slowly but surely.
2025-08-19 09:10:24 +01:00
Mike McQuaid
59f0197450
os/linux/diagnostic: make check_for_symlinked_home doctor-only.
This avoids printing it every time a `brew install` is run.
2025-08-19 08:30:06 +01:00
Mike McQuaid
22fdb11e00
**/keg_relocate.rb: add set Sorbet typed: strict
Other files have been changed where required.
2025-08-18 15:02:15 +01:00
Eric Knibbe
e021953db4
messages/comments: formatting fixes 2025-08-16 00:54:50 -04:00
Mike McQuaid
d135e744b1
Add more Sorbet types
`typed: strict` a few more places and fix other files necessarily to
make that happen.
2025-08-15 19:21:28 +01:00
copilot-swe-agent[bot]
4ee43fbde1
Improve quarantine support error messages with specific CLT guidance
Co-authored-by: MikeMcQuaid <125011+MikeMcQuaid@users.noreply.github.com>
2025-08-13 14:30:05 +01:00
copilot-swe-agent[bot]
4ad7d59a25
Implement pkg-config macOS SDK mismatch diagnostic check
Co-authored-by: MikeMcQuaid <125011+MikeMcQuaid@users.noreply.github.com>
2025-08-13 09:03:26 +01:00
Carlo Cabrera
e0a69316b7
Merge pull request #20434 from Homebrew/new-protodesc_cold-fix
os/linux/keg_relocate: skip ELF files with `protodesc_cold` only when bottling
2025-08-13 04:07:32 +00:00
Carlo Cabrera
c9060c3242
Improve test for bottling 2025-08-13 09:51:27 +08:00
Carlo Cabrera
6457770a59
os/linux/keg_relocate: skip ELF files with protodesc_cold only when bottling
We removed this exclusion in #20423 because it broke pouring of existing
bottles, which still need relocation.

Let's skip relocation only when bottling, to avoid breaking existing
bottles that need to be relocated when pouring.
2025-08-13 00:25:53 +08:00
copilot-swe-agent[bot]
d785e2024b
Add symlinked home detection to brew doctor on Linux
Co-authored-by: MikeMcQuaid <125011+MikeMcQuaid@users.noreply.github.com>
2025-08-12 11:00:14 +01:00
Carlo Cabrera
ef89522446
os/linux/keg_relocate: remove protodesc_cold exclusion
This needs to be handled more carefully. It probably works fine for
bottles built *after* this change was added, but it breaks bottles built
before this exclusion was added.

Let's remove it for now to limit the extent of the breakage.
2025-08-12 00:27:39 +08: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
Eric Knibbe
6255263b51
output: express environment variables consistently 2025-08-04 09:50:06 -04:00
Mike McQuaid
e75d54cbff
linux/development_tools: add undocumented environment variables.
This makes it easier to test the automatic installation of the libc and
compiler formulae without having to change the code.

This is particularly useful now we don't have any official Docker images
for this.
2025-07-25 15:56:33 +00:00
Mike McQuaid
e10d4c43c2
Optionally use DownloadQueue for reinstall, upgrade.
Follow up on `DownloadQueue` for download concurrency on `brew fetch`
and `brew install` to also add support for `brew reinstall` and
`brew upgrade`.

This required a fair bit of refactoring to make this work so I've also
made `install.rb`, `reinstall.rb` and `upgrade.rb` `typed: strict` to
add some extra guardrails from Sorbet here.

Co-authored-by: Carlo Cabrera <github@carlo.cab>
2025-07-24 15:41:03 +01:00
Patrick Linnane
4513a43d53
Fix RuboCop failures.
Co-authored-by: Patrick Linnane <patrick@linnane.io>
Co-authored-by: Carlo Cabrera <github@carlo.cab>
Co-authored-by: Thierry Moisan <thierry.moisan@gmail.com>
Co-authored-by: Mike McQuaid <mike@mikemcquaid.com>
2025-07-14 19:12:38 +01:00
Issy Long
990c1efc16
bundle: Rename "brews" to "formulae" for consistency
- Homebrew Bundle referred to formulae as "brews". But it referred to
  casks as "casks" and taps as "taps".
- Let's use the same terminology everywhere.
- (I know that `brew "hello"` is the formula syntax in the Brewfile, so
  I'm not changing that (though would be up for it, in a backwards
  compatible manner), just making the code more consistent.)
2025-07-04 21:08:37 +01:00
Rylan Polster
f238d3b494
Merge pull request #20151 from Homebrew/fix-doctor-linux
Fix `brew doctor` cask handling on Linux
2025-06-22 10:10:28 +00:00
Rylan Polster
431d8f1ff7
Consistently use ClassMethods sub-module for prepending class methods 2025-06-21 21:40:57 -04:00
Rylan Polster
267afac198
Remove more monkey-patching in extend/os 2025-06-21 21:34:20 -04:00
Rylan Polster
508c8b606c
Fix DevelopmentTools::ld64_version on macOS 2025-06-21 21:13:38 -04:00
Rylan Polster
2a7fbd00a9
Fix Cask::Quarantine class methods on Linux 2025-06-21 21:07:08 -04:00
Rylan Polster
ff79015373
Fix Hardware::CPU::features on macOS 2025-06-21 21:01:44 -04:00
Rylan Polster
e1873d30d4
Run deprecated cask tap check on all systems 2025-06-21 13:59:58 -04:00
Rylan Polster
031160936f
Split out os-specific cask software version checks 2025-06-21 13:59:57 -04:00
Mike McQuaid
9ac306e464
Remove alias generic_* definitions in favour of using super
This is the pattern we've been adopting for a while and it's a bit
cleaner. Let's remove all of the existing usage of the existing pattern
to avoid confusion when adopting the new one.
2025-06-16 08:10:08 +00:00
Mike McQuaid
f234423913
dev-cmd/tests: fix require ordering.
This needs to happen after `setup_environment!` so that
`HOMEBREW_TEST_GENERIC_OS` is set and `OS.linux?` and `OS.mac?` both
`return false`.
2025-06-12 16:43:50 +01:00
Rylan Polster
ce72e34b19
Filter brew tests spec files appropriately for each OS 2025-06-11 15:59:21 -04:00
Mike McQuaid
dc71b7c8f6
Cleanup extend/ directory usage.
- move some things out of `extend` that don't really fit there e.g.
  `Module`s that are included but not doing any
  overriding/monkeypatching
- move some code into `extend/os` to fix all remaining
  `rubocop:todo Homebrew/MoveToExtendOS`s
- remove some unneeded `bundle` skipper code that doesn't really make
  sense given our current bottling strategy
- extract some `Pathname` extensions to `extend/pathname` for separate
  files
- move a `ENV` `Kernel` extension into `kernel.rb`
- `odeprecate` a seemingly unused backwards compatibility method
- move `readline_nonblock` from a monkeypatch to a
  `ReadlineNonblock.read` method as its only used in one place
- fix up a link in documentation
2025-06-09 19:06:16 +01:00
Rylan Polster
73b64390b3
Use existing Utils::Bottles::Collector#specification_for method 2025-06-05 12:38:15 -04:00
Patrick Linnane
c6a2fa335d
brew style --fix 2025-05-05 14:35:08 -07:00
Issy Long
6c11916cbc
Bump some files to Sorbet typed: strict 2025-04-27 22:45:44 +01:00
Patrick Linnane
2c9b094bea
os/mac/diagnostic: set OCLP Support Tiers
Signed-off-by: Patrick Linnane <patrick@linnane.io>
2025-04-12 17:03:54 -07:00
Patrick Linnane
997ea136b6
os/linux/development_tools: update cop namespace
Signed-off-by: Patrick Linnane <patrick@linnane.io>
2025-04-03 19:43:31 -07:00
Mike McQuaid
e3137f192f
Merge pull request #19642 from Homebrew/linux_ci_gcc
Update Linux GCC code.
2025-04-03 15:25:43 +00:00
Mike McQuaid
2b4324af9b
Update Linux GCC code.
Update both the variables that dictate this and the documents that
explain our GCC/glibc policies.

These should ease a future migration to a newer GCC version.
2025-04-03 12:47:21 +01:00
Mike McQuaid
d899f00c4b
Link to Support Tiers in diagnostic/error messages
Now that we have this nice URL let's reference it to allow our other
messages to be a bit shorter/kinder.
2025-04-01 11:35:27 +01:00