diff --git a/Library/Homebrew/brew.sh b/Library/Homebrew/brew.sh index d60da9db99497d63069e584cd4a658f64602ec7a..a0671cd9442ec7b45305e6826d97d29ce01c5b1d 100644 --- a/Library/Homebrew/brew.sh +++ b/Library/Homebrew/brew.sh @@ -262,6 +262,14 @@ then # Don't allow non-developers to customise Ruby warnings. unset HOMEBREW_RUBY_WARNINGS + + # Default non-developers to bottles on prerelease versions of macOS + # in default prefix. + if [[ "$HOMEBREW_PREFIX" = "/usr/local" && + "$HOMEBREW_MACOS_VERSION_NUMERIC" -ge "101400" ]] + then + export HOMEBREW_FORCE_BOTTLE="1" + fi fi if [[ -z "$HOMEBREW_RUBY_WARNINGS" ]] diff --git a/Library/Homebrew/extend/ARGV.rb b/Library/Homebrew/extend/ARGV.rb index f214fb75ec29c8654b3a2fd14fff8119933b86a6..b626c3e59c74c0c68370dffd21e9e15bae86d280 100644 --- a/Library/Homebrew/extend/ARGV.rb +++ b/Library/Homebrew/extend/ARGV.rb @@ -262,7 +262,8 @@ module HomebrewArgvExtension end def force_bottle? - include? "--force-bottle" + return false if ENV["HOMEBREW_NO_FORCE_BOTTLE"] + include?("--force-bottle") || !ENV["HOMEBREW_FORCE_BOTTLE"].nil? end def fetch_head? diff --git a/Library/Homebrew/manpages/brew.1.md.erb b/Library/Homebrew/manpages/brew.1.md.erb index 902d6bde5b4d750207ff78726dc0609b6048ea7f..2c25995d41b55316a138d69791732142c5ae4489 100644 --- a/Library/Homebrew/manpages/brew.1.md.erb +++ b/Library/Homebrew/manpages/brew.1.md.erb @@ -170,6 +170,12 @@ Note that environment variables must have a value set to be detected. For exampl directories. TextMate can handle this correctly in project mode, but many editors will do strange things in this case. + * `HOMEBREW_FORCE_BOTTLE`: + If set, Homebrew will install from a bottle if it exists for the + current or newest version of macOS, even if it would not normally be used + for installation. Please do not file issues if you encounter errors when + using this environment variable. + * `HOMEBREW_FORCE_BREWED_CURL`: If set, Homebrew will use a Homebrew-installed `curl` rather than the system version. diff --git a/docs/Manpage.md b/docs/Manpage.md index f41954f240b6b80167e082ad9c2beab8182414bf..55f5babd79cd8a3887f19b099b31ebe28558f9e3 100644 --- a/docs/Manpage.md +++ b/docs/Manpage.md @@ -1167,6 +1167,12 @@ Note that environment variables must have a value set to be detected. For exampl directories. TextMate can handle this correctly in project mode, but many editors will do strange things in this case. + * `HOMEBREW_FORCE_BOTTLE`: + If set, Homebrew will install from a bottle if it exists for the + current or newest version of macOS, even if it would not normally be used + for installation. Please do not file issues if you encounter errors when + using this environment variable. + * `HOMEBREW_FORCE_BREWED_CURL`: If set, Homebrew will use a Homebrew-installed `curl` rather than the system version. diff --git a/manpages/brew.1 b/manpages/brew.1 index d084f3b709fded641c687b46bacb8bd5b2f8ddb6..879169d77e1ccdb68c53ff5a3d5e1ed47ce9b24b 100644 --- a/manpages/brew.1 +++ b/manpages/brew.1 @@ -1109,6 +1109,10 @@ If set, Homebrew will use this editor when editing a single formula, or several \fINote:\fR \fBbrew edit\fR will open all of Homebrew as discontinuous files and directories\. TextMate can handle this correctly in project mode, but many editors will do strange things in this case\. . .TP +\fBHOMEBREW_FORCE_BOTTLE\fR +If set, Homebrew will install from a bottle if it exists for the current or newest version of macOS, even if it would not normally be used for installation\. Please do not file issues if you encounter errors when using this environment variable\. +. +.TP \fBHOMEBREW_FORCE_BREWED_CURL\fR If set, Homebrew will use a Homebrew\-installed \fBcurl\fR rather than the system version\. .