2246 Commits

Author SHA1 Message Date
Douglas Eichelberger
ccbb05d5aa Remove concurrent/map Object#blank? cache 2023-11-26 09:58:19 -08:00
Douglas Eichelberger
b0338417c7 Vendor Object#blank? 2023-11-26 09:33:42 -08:00
Rylan Polster
529f7b7953
Remove El Capitan system curl workaround 2023-11-16 11:47:48 -05:00
Rylan Polster
8704e79cc0
Separate MacOS references 2023-11-15 18:19:39 -05:00
Bo Anderson
63a8474ad7
ENV/shared: fix macOS code not applying under HOMEBREW_SORBET_RUNTIME 2023-11-14 02:10:26 +00:00
Bo Anderson
386fd0548a
Support system Ruby 3 on Linux 2023-11-07 19:27:30 +00:00
Mike McQuaid
ff404fe5ab
Merge pull request #16184 from dduugg/rm-try
Remove use of ActiveSupport try
2023-11-06 13:11:01 +00:00
Mike McQuaid
d4bf3b0685
Merge pull request #16183 from dduugg/sorbet-updates
Sorbet updates for compatibility with recent releases
2023-11-06 13:10:12 +00:00
Shu Niu
2809678f77
Fix TypeError with gcc compiler in deprecated MacOS
In some deprecated MacOS, e.g.10.13 High Sierra, when compiling formulae with --cc=gcc-XX, homebrew will raise "TypeError: Return value: Expected type Symbol, got type String with value".
Convert "other" string to symbol to solve this.
2023-11-06 14:08:41 +08:00
Douglas Eichelberger
00ba09d73d Remove use of ActiveSupport try 2023-11-05 09:28:19 -08:00
Douglas Eichelberger
0191af7899 resolve typecheck errors 2023-11-05 08:55:58 -08:00
Bo Anderson
7187b8b5d6
extend/kernel: fix odisabled kwargs handling 2023-10-28 17:48:31 +01:00
Bo Anderson
4ec450823c
Portable Ruby 3.1.4 (opt-in beta) 2023-10-27 15:58:43 +01:00
Markus Reiter
16aa6372a3
Make odebug output to stderr. 2023-10-10 03:42:22 +02:00
Bo Anderson
e4623cc8f4
Improve performance of brew readall 2023-09-28 14:05:09 +01:00
apainintheneck
5760ae4fb2 cmd/readall: Cleanup todos
- keep running the command against all os/arch combinations
  as the default
- remove todos and deprecations related to changing the behavior
- create constants for os/arch combinations
2023-09-19 21:33:13 -07:00
Francois-Xavier Coudert
e1ca3b5c35 superenv: help gettext-based configure scripts 2023-09-14 15:19:48 +02:00
Mike McQuaid
4e0ec2555e
Merge pull request #15986 from EricFromCanada/docs-assorted-improvements
Docs: assorted refinements for output
2023-09-11 13:06:52 +01:00
Eric Knibbe
931f762598
docs+rubydoc: various grammar/wording fixes 2023-09-11 02:26:37 -04:00
Steve Peters
94ef9a4b7a codesign in keg_relocate instead of keg methods
Currently the codesign_patched_binary method may be called many
times for the same file when installing a keg.

This removes the calls to codesign_patched_binary from os/mac/keg
and adds a single call to the relocate_dynamic_linkage and
fix_dynamic_linkage methods in extend/os/mac/keg_relocate
to speed up keg installation.
2023-09-09 18:14:28 -07:00
Mike McQuaid
f30788018c
os/mac/hardware: remove TODO.
As discussed in #15938, this TODO can pretty much never be done so
doesn't make sense to leave as-is.
2023-09-02 21:36:27 -04:00
Michael Cho
bc2bb59726
extend/os/linux/system_config: show glibc/gcc version for API users 2023-08-26 22:19:32 -07:00
Michael Cho
7412487891
extend/os/mac/keg: codesign on Intel if invalid signature 2023-08-23 11:48:13 -07:00
Douglas Eichelberger
d01cda2815 Turn up the types 2023-08-12 22:01:22 -07:00
Carlo Cabrera
dbeac59584
keg_relocate: retain framework info in relocatable install names
`dyld` uses the target library's install name to work out whether this
is a Framework or a dylib, which affects how `dyld` searches for the
desired library.

We should therefore avoid confusing `dyld` by including the
`*.framework` part of the install name in the target dylib, which is
what this change does.

Here's a concrete example of what this changes. Before:

    ❯ otool -L /usr/local/bin/python3
    /usr/local/bin/python3:
            @loader_path/../Python (compatibility version 3.11.0, current version 3.11.0)
            /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1319.100.3)

After:

    ❯ otool -L /usr/local/bin/python3
    /usr/local/bin/python3:
            @loader_path/../../../../Python.framework/Versions/3.11/Python (compatibility version 3.11.0, current version 3.11.0)
            /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1319.100.3)

By retaining the `Python.framework` part of the install name, we make
sure that `dyld` knows that it should be looking for a framework rather
than a dylib.
2023-08-07 14:43:56 +08:00
Mike McQuaid
71888db8ba
bottle: reproducibility fixes.
I noticed from
https://github.com/Homebrew/homebrew-core/actions/runs/5751070010 that
we're no longer creating reproducible bottles between macOS and Linux.

All macOS checksums have changed but Linux ones have not. The main
difference between the two platforms is the `gtar` version used so let's
always just use the formula on both platforms.

While we're here, clear up the ordering and comments a little on the
reproducible `tar` arguments so that it's easier to compare with the
reproducible builds archives documentation.
2023-08-04 10:02:44 +01:00
Ruoyu Zhong
99607e8ec4
development_tools: allow Symbols to be located
Fixes error seen in Homebrew/homebrew-core#138452.
`DevelopmentTools.default_compiler` can return a `Symbol` like `:clang`.
Make sure its result can be fed to `DevelopmentTools.locate`.

Signed-off-by: Ruoyu Zhong <zhongruoyu@outlook.com>
2023-08-04 11:26:30 +08:00
Eric Knibbe
31a5df4bf2
extend/kernel: convert TTY-destined input to string 2023-08-02 09:22:15 -04:00
Carlo Cabrera
0a37af54be
Merge pull request #15680 from carlocab/ENV.O2
extend/ENV/super: add `ENV.O3`
2023-07-27 19:15:19 +08:00
Carlo Cabrera
91fe645750
extend/ENV/super: add ENV.O3
Having this would have been, or would be, useful on multiple occassions:

- Homebrew/homebrew-core#94724
- Homebrew/homebrew-core#136551
- #15372

I think it's time that we added this back.
2023-07-27 13:57:48 +08:00
Carlo Cabrera
6b728bf3bd
Implement ruby-macho TODOs
We now have the new release of ruby-macho (#15758), so we can now
finish off the remaining work from #15731.
2023-07-26 11:15:19 +08:00
Douglas Eichelberger
08e46c18cd Add type to Formula attrs 2023-07-24 14:12:36 -07:00
Carlo Cabrera
4c73942fae
extend/os/mac/keg_relocate: improve rpath handling
This implements the TODO that I left as a comment from #15722.

In order to simplify the handling of deleting an absolute rpath that has
a relative duplicate (or vice-versa, i.e., a relative rpath with an
absolute duplicate), we relocate all rpaths first in one pass and then
delete the duplicates in a separate pass.

We currently rely on some lower-level (but still public) methods from
ruby-macho since the standard `#delete_rpath` method changes the order
in which rpaths are resolved. We can switch back to using
`#delete_rpath` when Homebrew/ruby-macho#555 is merged and released.
2023-07-23 00:22:05 +08:00
Emilio López
5b042b8641 extend/ENV/super: correct deparallelize signature
The block is optional, so it should be marked `T.nilable`
2023-07-21 16:46:32 -03:00
Carlo Cabrera
aa05c227a0
os/mac/keg_relocate: avoid rpath re-ordering
This should fix the failures seen for `julia` in Homebrew/core.[^1]

I've detailed a better/more comprehensive fix as a `TODO` in a comments.
However, the problems that the better fix would avoid are comparatively
unlikely, so I think we can try this one out for now while I work on
implementing the said fix.

[^1]: https://github.com/Homebrew/homebrew-core/pull/135398#issuecomment-1643041541
2023-07-20 21:49:18 +08:00
Patrick Linnane
c56669e9cd
various: fix miscellaneous typos 2023-07-18 08:52:49 -07:00
Mike McQuaid
f195b24335
Merge pull request #15707 from carlocab/more-dupe-rpath-handling
os/mac/keg_relocate: avoid changing to an already existing rpath
2023-07-18 14:26:17 +01:00
Carlo Cabrera
27032e002f
os/mac/keg_relocate: avoid changing to an already existing rpath
Doing `change_rpath(old, new, file)` will error if `new` is already an
rpath for `file`. When this happens, `old` is no longer needed, so we
can delete it.

Fixes a build failure at shivammathur/homebrew-php#1848.
2023-07-18 20:47:10 +08:00
Mike McQuaid
1b2e0b8082
api_hashable: remove HOMEBREW_CELLAR.
This breaks some API generation and isn't actually required.
2023-07-18 11:58:40 +01:00
Mike McQuaid
c940e15a5c
Use HOMEBREW_CELLAR_PLACEHOLDER
Similarly to HOMEBREW_PREFIX_PLACEHOLDER, this allows the substitution
of HOMEBREW_CELLAR in JSON output when using the API.

Fixes #15668.
2023-07-18 10:59:27 +01:00
Mike McQuaid
fb35578c54
Merge pull request #15676 from Bo98/tap-fixes
Introduce CoreCaskTap class and fix cases of core taps were being unnecessarily installed
2023-07-17 19:22:22 +01:00
Carlo Cabrera
a7c8aab68c
os/mac/keg_relocate: replace Cellar references in rpaths
Some formulae (e.g. `php`) use rpaths that reference Cellar paths
belonging to other formulae. Let's make sure these rpaths don't break by
making them use opt paths instead.
2023-07-17 14:09:35 +08:00
Bo Anderson
ba02c669e1
Introduce CoreCaskTap class 2023-07-13 20:33:26 +01:00
Carlo Cabrera
cff8d8c155
Merge pull request #15571 from gerlero/relocate-relative-names
mac/keg_relocate: use relative install names
2023-07-11 04:38:26 +08:00
Gabriel Gerlero
15a0c7fd7d linkage_checker: resolve some variable install names on macOS 2023-07-06 14:15:14 -03:00
Gabriel Gerlero
4cfe70ce50 mac/keg_relocate: use relative install names 2023-07-06 13:34:14 -03:00
Mike McQuaid
7da934f7e2
Deprecate/disable/delete code.
The next release after this is merged will be 4.1.0.

Co-authored-by: Markus Reiter <me@reitermark.us>
2023-07-06 16:56:20 +01:00
Bo Anderson
71d51faa55
Introduce tag for implicit dependencies 2023-07-04 13:40:58 +01:00
Mike McQuaid
fd4f488072
Merge pull request #15544 from Tokarak/cargo_cpu
Apply cpu-optimisation to Rust projects
2023-07-04 12:04:24 +01:00
Carlo Cabrera
b214ccd86d
extend/ENV/super: add comment for OPENSSL_NO_VENDOR
This is based on feedback from #15613.
2023-07-04 16:21:35 +08:00