Merge pull request #16300 from Bo98/lazy-debrew

Lazy load Debrew (fixes setupterm error on some environments)
This commit is contained in:
Bo Anderson 2023-12-06 00:47:03 +00:00 committed by GitHub
commit ab6a7ed5a1
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 16 additions and 8 deletions

View File

@ -12,7 +12,6 @@ require_relative "global"
require "build_options" require "build_options"
require "keg" require "keg"
require "extend/ENV" require "extend/ENV"
require "debrew"
require "fcntl" require "fcntl"
require "socket" require "socket"
require "cmd/install" require "cmd/install"
@ -126,7 +125,10 @@ class Build
} }
with_env(new_env) do with_env(new_env) do
formula.extend(Debrew::Formula) if args.debug? if args.debug?
require "debrew"
formula.extend(Debrew::Formula)
end
formula.update_head_version formula.update_head_version

View File

@ -2,7 +2,6 @@
# frozen_string_literal: true # frozen_string_literal: true
require "mutex_m" require "mutex_m"
require "debrew/irb"
require "ignorable" require "ignorable"
# Helper module for debugging formulae. # Helper module for debugging formulae.
@ -117,7 +116,10 @@ module Debrew
set_trace_func proc { |event, _, _, id, binding, klass| set_trace_func proc { |event, _, _, id, binding, klass|
if klass == Object && id == :raise && event == "return" if klass == Object && id == :raise && event == "return"
set_trace_func(nil) set_trace_func(nil)
mu_synchronize { IRB.start_within(binding) } mu_synchronize do
require "debrew/irb"
IRB.start_within(binding)
end
end end
} }

View File

@ -6,7 +6,6 @@ raise "#{__FILE__} must not be loaded via `require`." if $PROGRAM_NAME != __FILE
old_trap = trap("INT") { exit! 130 } old_trap = trap("INT") { exit! 130 }
require_relative "global" require_relative "global"
require "debrew"
require "fcntl" require "fcntl"
require "socket" require "socket"
require "cli/parser" require "cli/parser"
@ -20,7 +19,10 @@ begin
trap("INT", old_trap) trap("INT", old_trap)
formula = args.named.to_resolved_formulae.first formula = args.named.to_resolved_formulae.first
formula.extend(Debrew::Formula) if args.debug? if args.debug?
require "debrew"
formula.extend(Debrew::Formula)
end
formula.run_post_install formula.run_post_install
rescue Exception => e # rubocop:disable Lint/RescueException rescue Exception => e # rubocop:disable Lint/RescueException
error_pipe.puts e.to_json error_pipe.puts e.to_json

View File

@ -8,7 +8,6 @@ old_trap = trap("INT") { exit! 130 }
require_relative "global" require_relative "global"
require "extend/ENV" require "extend/ENV"
require "timeout" require "timeout"
require "debrew"
require "formula_assertions" require "formula_assertions"
require "formula_free_port" require "formula_free_port"
require "fcntl" require "fcntl"
@ -35,7 +34,10 @@ begin
formula = T.must(args.named.to_resolved_formulae.first) formula = T.must(args.named.to_resolved_formulae.first)
formula.extend(Homebrew::Assertions) formula.extend(Homebrew::Assertions)
formula.extend(Homebrew::FreePort) formula.extend(Homebrew::FreePort)
formula.extend(Debrew::Formula) if args.debug? if args.debug?
require "debrew"
formula.extend(Debrew::Formula)
end
ENV.extend(Stdenv) ENV.extend(Stdenv)
ENV.setup_build_environment(formula: formula, testing_formula: true) ENV.setup_build_environment(formula: formula, testing_formula: true)