706 Commits

Author SHA1 Message Date
fn ⌃ ⌥
4c484ec6cb search: optimize cask search 2021-11-03 17:06:37 -07:00
Sean Molenaar
73bc934c85
Caveats: suggest brew services for linux 2021-10-30 18:18:25 +02:00
Carlo Cabrera
457de40117
Apply suggestions from code review
These are just a few style improvements.

Co-authored-by: Mike McQuaid <mike@mikemcquaid.com>
2021-10-27 20:11:47 +08:00
Carlo Cabrera
91e425f7dd
keg_relocate: handle JAVA_HOME
Java-dependent formulae produce different bottles on macOS and Linux
because they have different values for `JAVA_HOME` (`opt_libexec` vs
`opt_libexec/"openjdk.jdk/Contents/Home"`).

Let's handle this difference by using the placeholder
`@@HOMEBREW_JAVA@@` in a bottle, like so:

    #!/bin/bash
    JAVA_HOME="${JAVA_HOME:-@@HOMEBREW_JAVA@@}" exec "@@HOMEBREW_CELLAR@@/clojure/1.10.3.998/libexec/bin/clojure"  "$@"
2021-10-27 20:11:46 +08:00
Rylan Polster
0b8032d421
Document HOMEBREW_INSTALL_FROM_API 2021-10-22 12:37:57 -04:00
Rylan Polster
fa4bb7d74a
Refactor audit exception handling 2021-10-21 21:11:05 -04:00
Carlo Cabrera
b0939478d1
extend/os/mac/diagnostic: fix unqualified macOS version reference
Currently, this says something like

    Ruby version 2.6.8 is unsupported on 12.

which is a little cryptic. Let's change that to say

    Ruby version 2.6.8 is unsupported on macOS 12.
2021-10-21 20:06:34 +08:00
Bo Anderson
943b79d2fb
os/mac/diagnostic: allow Ruby 2.6.8 2021-10-21 02:31:32 +01:00
Carlo Cabrera
e8eb781470
mac/formula_cellar_checks: apply suggestions from code review
- Fix missing space
- use `MachO::Utils.fat_magic?`
- call `#flag?` consistently.

Co-authored-by: Bo Anderson <mail@boanderson.me>
2021-10-13 16:54:02 +08:00
Carlo Cabrera
4fbe0a2b1b
Fix false positives in audit
There was a typo that made it so that all libraries were being included
in `flat_namespace_files`.
2021-10-12 15:35:46 +08:00
Carlo Cabrera
7223f8ef74
Fix universal binary handling in check_flat_namespace 2021-10-12 13:49:53 +08:00
Carlo Cabrera
0484bfe820
mac/formula_cellar_checks: check for flat namespace libraries
There are at least five instances where a formula has libraries compiled
with `-flat_namespace` due to a bug in detecting the macOS version (cf.
Homebrew/homebrew-core#87103, Homebrew/homebrew-core#85974,
Homebrew/homebrew-core#85973).

I think it makes sense to check for this more generally. It is
sometimes intentional, so I've added a check for an allowlist for
those instances. Running this on the current `util-linux` bottle
produces

    ❯ brew audit --strict util-linux
    util-linux:
      * Libraries were compiled with a flat namespace.
        This can cause linker errors due to name collisions, and
        is often due to a bug in detecting the macOS version.
          /usr/local/Cellar/util-linux/2.37.2/lib/libblkid.1.dylib
          /usr/local/Cellar/util-linux/2.37.2/lib/libfdisk.1.dylib
          /usr/local/Cellar/util-linux/2.37.2/lib/libsmartcols.1.dylib
          /usr/local/Cellar/util-linux/2.37.2/lib/libuuid.1.dylib
    Error: 1 problem in 1 formula detected

Some things that still need to be done here:
- fix this check for universal binaries
- check if we want to restrict this audit check to newer versions of macOS
- fix false positives (try `brew audit --strict llvm` and compare the
  output of `otool -hV` on the identified files)

While we're here, let's fix the formatting of the output of these other
audits (cf. #12217).
2021-10-12 13:11:23 +08:00
Carlo Cabrera
25fe428ed2
system_config: fix clang version output on Linux
If you have Homebrew LLVM installed, `brew config` will show

    Clang: 12.0.1 build (parse error)

because Homebrew LLVM does not give a build number. Some installations
from the system package manager do have this information, so let's show
it if it's available but skip complaining if not.

I've kept the original code for macOS because we always expect Apple's
build number to show there.
2021-10-07 11:24:20 +08:00
Bo Anderson
1952d27ba2
Install and use Homebrew's ca-certificates on macOS <= 10.15.5 2021-10-03 17:52:10 +01:00
Bo Anderson
24543c63e7
Merge pull request #12149 from FnControlOption/development_tools
development_tools: add type signatures
2021-09-30 12:59:51 +01:00
Mike McQuaid
41e94afda5
Fix brew style
Fixes for https://github.com/Homebrew/brew/pull/12152.

Extracted into a separate PR so this can be merged immediately.
2021-09-30 10:13:53 +01:00
fn ⌃ ⌥
9638e3e8c0 development_tools: update type signatures 2021-09-29 17:44:26 -07:00
fn ⌃ ⌥
61a7ffb999 development_tools: add type signatures 2021-09-29 15:12:53 -07:00
Bo Anderson
b55498269f
Revamp APIs around bottle specifications 2021-09-20 15:02:05 +01:00
danielnachun
83d1d6d564
missing_formula.rb: don't disable texlive 2021-09-17 11:16:27 -07:00
Bo Anderson
acc20ef2c4
os/mac/diagnostic: also check Xcode minimum version on env setup 2021-09-17 00:03:44 +01:00
Bo Anderson
8dd11e4e4c
Set uses_from_macos_elements in all cases 2021-09-14 04:06:40 +01:00
Bo Anderson
861dea9ada
Bump various type strictnesses 2021-09-11 01:00:23 +01:00
Bo Anderson
8076c9e569
os/mac/diagnostic: don't check for prerelease macOS in integration tests 2021-09-09 16:53:52 +01:00
Mike McQuaid
2b6e580636
ENV/super: add shims_path helper method.
This allows us to stop repeatedly hardcoding this on macOS/Linux in
formulae.
2021-09-08 12:35:36 +01:00
Benjamin Bolton
dce6b77ad0
Modify syntax for readability / consistency
leverage map block and guard clause for readability thx @MikeMcQuaid
2021-09-07 10:10:26 -06:00
Benjamin Bolton
a83877660b
Revert "Accept @Rylan12 chained spacing conventions"
This reverts commit 538a5d9e698763e3dc6eeae46535f032a5ff316e.
2021-09-07 07:24:58 -06:00
Benjamin Bolton
538a5d9e69
Accept @Rylan12 chained spacing conventions
Co-authored-by: Rylan Polster <rslpolster@gmail.com>
2021-09-07 07:16:06 -06:00
Benjamin Bolton
0c6266ee60
Only wrap multi-word arguments, add comment 2021-09-02 09:26:13 -06:00
Benjamin Bolton
1532c081f2
Add space character in map (pacify brew style) 2021-09-01 11:46:57 -06:00
Benjamin Bolton
4acb9cf734
Wrap service command parameters in single quotes
Should resolve issues with multi-word arguments, eg:

> Or, if you don't want/need a background service you can just run:
  /opt/homebrew/opt/nginx/bin/nginx -g daemon off;

fails, but 

> Or, if you don't want/need a background service you can just run:
  '/opt/homebrew/opt/nginx/bin/nginx' '-g' 'daemon off;'

succeeds
2021-09-01 11:40:54 -06:00
Mike McQuaid
7c37a34cca
Merge pull request #11927 from FnControlOption/fetch
fetch: fix `--bottle-tag` when unbottled on host system
2021-09-01 16:08:05 +01:00
Rylan Polster
5d536d66fc
Rename HOMEBREW_JSON_CORE to HOMEBREW_INSTALL_FROM_API 2021-08-27 00:24:15 -04:00
Rylan Polster
8690d661fd
Merge pull request #11859 from Rylan12/cask-json
Allow casks to be installed using the `cask-source` API
2021-08-26 23:58:51 -04:00
FnControlOption
b9fc4e36f0 fetch: fix --bottle-tag when unbottled on host system 2021-08-26 14:44:53 -07:00
Bo Anderson
8efce9a9d2
os/mac/diagnostic: check min CLT version on env setup 2021-08-17 18:36:27 +01:00
Rylan Polster
99635bf3ae
Remove need for homebrew/cask to be tapped 2021-08-14 16:17:26 -04:00
Bo Anderson
9686ebe355
os/mac/diagnostic: prevent some double diagostic failures 2021-08-11 14:19:22 +01:00
hyuraku
3ccb1f6328 search by desc with formula-cask option 2021-07-25 20:10:35 +09:00
Carlo Cabrera
c59a42b24e
formula_cellar_checks: check for cpuid instruction when needed
This implements the second audit discussed in #11608.
2021-07-04 00:31:31 +01:00
Sam Ford
0752d25125
OS::Mac: Move version methods into ::Version 2021-06-23 09:03:46 -04:00
Mike McQuaid
30a65342e8
Deprecate, disable, delete code for Homebrew 3.2.0
Do the usual deprecation, disable, delete dance for Homebrew 3.2.0.
2021-06-17 11:34:32 +01:00
Mike McQuaid
2395113154
diagnostic: hide some warnings on Apple Silicon.
We don't want to complain about either Intel or ARM installations of
Homebrew in `brew doctor` so check for/allow both.
2021-06-15 11:51:29 +01:00
Bo Anderson
1fc39d2d0d
os/mac/keg_relocate: add fallback to default Perl version when using tab
While this should never be necessary for per-OS bottles, this could be useful for :all bottles where the OS it was built on uses a Perl version that doesn't exist on all macOS versions.
2021-05-31 16:31:26 +01:00
Carlo Cabrera
ada399c7db
Fix perl shebang rewriting for perl formula
See

    https://github.com/Homebrew/homebrew-core/issues/77797
    https://github.com/Homebrew/brew/issues/11275#issuecomment-846522409
2021-05-23 11:05:17 +01:00
Carlo Cabrera
e8b5eb7e42
extend/os/mac/keg_relocate: fix relocation of duplicate RPATHs
Homebrew/homebrew-core#77623 revealed two bugs. One in `ruby-macho`,
which turns out to be unable to delete duplicated `RPATH`s. This was
fixed with `ruby-macho` 2.5.1.

The second, which this commit fixes, is in our handling of duplicate
`RPATH`s. Since we iterate over each `RPATH`, attempting to relocate the
first duplicate fails since it will no longer exist after having
relocated the original.
2021-05-17 00:14:46 +01:00
Carlo Cabrera
d45832bbfc
Merge pull request #11382 from carlocab/build-rpaths
extend/os/mac/keg_relocate: remove `RPATH`s rooted in build directory
2021-05-15 01:04:25 +01:00
Carlo Cabrera
28c0caae4d
extend/os/mac/keg_relocate: remove RPATHs rooted in build directory
Keeping dangling `RPATH`s is a security risk, and is bad for build
reproducibility.
2021-05-14 01:07:14 +01:00
Carlo Cabrera
4fb06efe81
Fix TMUX env variable filtering
We currently filter out `TMUX`, but this breaks displaying some caveats.
This also enables an alias I use (and improved by @Rylan12):

    brew alias fzp='!id="$(gh pr list -L200 -R github.com/Homebrew/homebrew-core | TMUX=$HOMEBREW_TMUX fzf-tmux -p "90%,50%" --multi | cut -f1)"; [ -n "$id" ] && brew pr-publish --autosquash $id'
2021-05-13 17:05:18 +01:00
Carlo Cabrera
dd199901e7
Merge pull request #11370 from carlocab/relocate-metavars 2021-05-13 07:02:25 +01:00