Fix namespacing
This commit is contained in:
parent
7cd329c116
commit
bb80f063dc
@ -60,7 +60,7 @@ module Homebrew
|
|||||||
return false if Homebrew::EnvConfig.no_verify_attestations?
|
return false if Homebrew::EnvConfig.no_verify_attestations?
|
||||||
return true if Homebrew::EnvConfig.verify_attestations?
|
return true if Homebrew::EnvConfig.verify_attestations?
|
||||||
return false if ENV.fetch("CI", false)
|
return false if ENV.fetch("CI", false)
|
||||||
return false if OS.unsupported_configuration?
|
return false if ::OS.unsupported_configuration?
|
||||||
|
|
||||||
# Always check credentials last to avoid unnecessary credential extraction.
|
# Always check credentials last to avoid unnecessary credential extraction.
|
||||||
(Homebrew::EnvConfig.developer? || Homebrew::EnvConfig.devcmdrun?) && GitHub::API.credentials.present?
|
(Homebrew::EnvConfig.developer? || Homebrew::EnvConfig.devcmdrun?) && GitHub::API.credentials.present?
|
||||||
|
|||||||
@ -394,10 +394,10 @@ module Homebrew
|
|||||||
# On Linux, GCC installation can be moved so long as the whole directory tree is moved together:
|
# On Linux, GCC installation can be moved so long as the whole directory tree is moved together:
|
||||||
# https://gcc-help.gcc.gnu.narkive.com/GnwuCA7l/moving-gcc-from-the-installation-path-is-it-allowed.
|
# https://gcc-help.gcc.gnu.narkive.com/GnwuCA7l/moving-gcc-from-the-installation-path-is-it-allowed.
|
||||||
when Version.formula_optionally_versioned_regex(:gcc)
|
when Version.formula_optionally_versioned_regex(:gcc)
|
||||||
Regexp.union(%r{#{cellar_regex}/gcc}, %r{#{prefix_regex}/opt/gcc}) if OS.linux?
|
Regexp.union(%r{#{cellar_regex}/gcc}, %r{#{prefix_regex}/opt/gcc}) if ::OS.linux?
|
||||||
# binutils is relocatable for the same reason: https://github.com/Homebrew/brew/pull/11899#issuecomment-906804451.
|
# binutils is relocatable for the same reason: https://github.com/Homebrew/brew/pull/11899#issuecomment-906804451.
|
||||||
when Version.formula_optionally_versioned_regex(:binutils)
|
when Version.formula_optionally_versioned_regex(:binutils)
|
||||||
%r{#{cellar_regex}/binutils} if OS.linux?
|
%r{#{cellar_regex}/binutils} if ::OS.linux?
|
||||||
end
|
end
|
||||||
# rubocop:enable Homebrew/MoveToExtendOS
|
# rubocop:enable Homebrew/MoveToExtendOS
|
||||||
|
|
||||||
|
|||||||
@ -116,12 +116,12 @@ module Homebrew
|
|||||||
|
|
||||||
# TODO: Refactor and move to extend/os
|
# TODO: Refactor and move to extend/os
|
||||||
# rubocop:disable Homebrew/MoveToExtendOS
|
# rubocop:disable Homebrew/MoveToExtendOS
|
||||||
unless OS.mac?
|
unless ::OS.mac?
|
||||||
bundle_args << "--tag" << "~needs_macos" << "--tag" << "~cask"
|
bundle_args << "--tag" << "~needs_macos" << "--tag" << "~cask"
|
||||||
files = files.grep_v(%r{^test/(os/mac|cask)(/.*|_spec\.rb)$})
|
files = files.grep_v(%r{^test/(os/mac|cask)(/.*|_spec\.rb)$})
|
||||||
end
|
end
|
||||||
|
|
||||||
unless OS.linux?
|
unless ::OS.linux?
|
||||||
bundle_args << "--tag" << "~needs_linux"
|
bundle_args << "--tag" << "~needs_linux"
|
||||||
files = files.grep_v(%r{^test/os/linux(/.*|_spec\.rb)$})
|
files = files.grep_v(%r{^test/os/linux(/.*|_spec\.rb)$})
|
||||||
end
|
end
|
||||||
|
|||||||
@ -2,26 +2,30 @@
|
|||||||
# frozen_string_literal: true
|
# frozen_string_literal: true
|
||||||
|
|
||||||
module Homebrew
|
module Homebrew
|
||||||
module CleanupLinux
|
module OS
|
||||||
extend T::Helpers
|
module Linux
|
||||||
|
module Cleanup
|
||||||
|
extend T::Helpers
|
||||||
|
|
||||||
requires_ancestor { Cleanup }
|
requires_ancestor { Homebrew::Cleanup }
|
||||||
|
|
||||||
sig { returns(T::Boolean) }
|
sig { returns(T::Boolean) }
|
||||||
def use_system_ruby?
|
def use_system_ruby?
|
||||||
return false if Homebrew::EnvConfig.force_vendor_ruby?
|
return false if Homebrew::EnvConfig.force_vendor_ruby?
|
||||||
|
|
||||||
rubies = [which("ruby"), which("ruby", ORIGINAL_PATHS)].compact
|
rubies = [which("ruby"), which("ruby", ORIGINAL_PATHS)].compact
|
||||||
system_ruby = Pathname.new("/usr/bin/ruby")
|
system_ruby = Pathname.new("/usr/bin/ruby")
|
||||||
rubies << system_ruby if system_ruby.exist?
|
rubies << system_ruby if system_ruby.exist?
|
||||||
|
|
||||||
check_ruby_version = HOMEBREW_LIBRARY_PATH/"utils/ruby_check_version_script.rb"
|
check_ruby_version = HOMEBREW_LIBRARY_PATH/"utils/ruby_check_version_script.rb"
|
||||||
rubies.uniq.any? do |ruby|
|
rubies.uniq.any? do |ruby|
|
||||||
quiet_system ruby, "--enable-frozen-string-literal", "--disable=gems,did_you_mean,rubyopt",
|
quiet_system ruby, "--enable-frozen-string-literal", "--disable=gems,did_you_mean,rubyopt",
|
||||||
check_ruby_version, RUBY_VERSION
|
check_ruby_version, RUBY_VERSION
|
||||||
|
end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
Homebrew::Cleanup.prepend(Homebrew::CleanupLinux)
|
Homebrew::Cleanup.prepend(Homebrew::OS::Linux::Cleanup)
|
||||||
|
|||||||
33
Library/Homebrew/extend/os/linux/cli/parser.rb
Normal file
33
Library/Homebrew/extend/os/linux/cli/parser.rb
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
# typed: strict
|
||||||
|
# frozen_string_literal: true
|
||||||
|
|
||||||
|
module Homebrew
|
||||||
|
module OS
|
||||||
|
module Linux
|
||||||
|
module CLI
|
||||||
|
module Parser
|
||||||
|
extend T::Helpers
|
||||||
|
|
||||||
|
requires_ancestor { Homebrew::CLI::Parser }
|
||||||
|
|
||||||
|
sig { void }
|
||||||
|
def set_default_options
|
||||||
|
args["formula?"] = true if args.respond_to?(:formula?)
|
||||||
|
end
|
||||||
|
|
||||||
|
sig { void }
|
||||||
|
def validate_options
|
||||||
|
return unless args.respond_to?(:cask?)
|
||||||
|
return unless args.cask?
|
||||||
|
|
||||||
|
# NOTE: We don't raise an error here because we don't want
|
||||||
|
# to print the help page or a stack trace.
|
||||||
|
odie "Invalid `--cask` usage: Casks do not work on Linux"
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
Homebrew::CLI::Parser.prepend(Homebrew::OS::Linux::CLI::Parser)
|
||||||
@ -95,11 +95,11 @@ module Homebrew
|
|||||||
end
|
end
|
||||||
|
|
||||||
def check_glibc_minimum_version
|
def check_glibc_minimum_version
|
||||||
return unless OS::Linux::Glibc.below_minimum_version?
|
return unless ::OS::Linux::Glibc.below_minimum_version?
|
||||||
|
|
||||||
<<~EOS
|
<<~EOS
|
||||||
Your system glibc #{OS::Linux::Glibc.system_version} is too old.
|
Your system glibc #{::OS::Linux::Glibc.system_version} is too old.
|
||||||
We only support glibc #{OS::Linux::Glibc.minimum_version} or later.
|
We only support glibc #{::OS::Linux::Glibc.minimum_version} or later.
|
||||||
#{please_create_pull_requests}
|
#{please_create_pull_requests}
|
||||||
We recommend updating to a newer version via your distribution's
|
We recommend updating to a newer version via your distribution's
|
||||||
package manager, upgrading your distribution to the latest version,
|
package manager, upgrading your distribution to the latest version,
|
||||||
@ -108,11 +108,11 @@ module Homebrew
|
|||||||
end
|
end
|
||||||
|
|
||||||
def check_kernel_minimum_version
|
def check_kernel_minimum_version
|
||||||
return unless OS::Linux::Kernel.below_minimum_version?
|
return unless ::OS::Linux::Kernel.below_minimum_version?
|
||||||
|
|
||||||
<<~EOS
|
<<~EOS
|
||||||
Your Linux kernel #{OS.kernel_version} is too old.
|
Your Linux kernel #{::OS.kernel_version} is too old.
|
||||||
We only support kernel #{OS::Linux::Kernel.minimum_version} or later.
|
We only support kernel #{::OS::Linux::Kernel.minimum_version} or later.
|
||||||
You will be unable to use binary packages (bottles).
|
You will be unable to use binary packages (bottles).
|
||||||
#{please_create_pull_requests}
|
#{please_create_pull_requests}
|
||||||
We recommend updating to a newer version via your distribution's
|
We recommend updating to a newer version via your distribution's
|
||||||
|
|||||||
@ -1,52 +1,58 @@
|
|||||||
# typed: true # rubocop:disable Sorbet/StrictSigil
|
# typed: true # rubocop:disable Sorbet/StrictSigil
|
||||||
# frozen_string_literal: true
|
# frozen_string_literal: true
|
||||||
|
|
||||||
module FormulaLinux
|
module Homebrew
|
||||||
extend T::Helpers
|
module OS
|
||||||
|
module Linux
|
||||||
|
module Formula
|
||||||
|
extend T::Helpers
|
||||||
|
|
||||||
requires_ancestor { Formula }
|
requires_ancestor { ::Formula }
|
||||||
|
|
||||||
sig { params(name: String, version: T.nilable(T.any(String, Integer))).returns(String) }
|
sig { params(name: String, version: T.nilable(T.any(String, Integer))).returns(String) }
|
||||||
def shared_library(name, version = nil)
|
def shared_library(name, version = nil)
|
||||||
suffix = if version == "*" || (name == "*" && version.blank?)
|
suffix = if version == "*" || (name == "*" && version.blank?)
|
||||||
"{,.*}"
|
"{,.*}"
|
||||||
elsif version.present?
|
elsif version.present?
|
||||||
".#{version}"
|
".#{version}"
|
||||||
|
end
|
||||||
|
"#{name}.so#{suffix}"
|
||||||
|
end
|
||||||
|
|
||||||
|
sig { returns(String) }
|
||||||
|
def loader_path
|
||||||
|
"$ORIGIN"
|
||||||
|
end
|
||||||
|
|
||||||
|
sig { params(targets: T.nilable(T.any(Pathname, String))).void }
|
||||||
|
def deuniversalize_machos(*targets); end
|
||||||
|
|
||||||
|
sig { params(spec: SoftwareSpec).void }
|
||||||
|
def add_global_deps_to_spec(spec)
|
||||||
|
return unless DevelopmentTools.needs_build_formulae?
|
||||||
|
|
||||||
|
@global_deps ||= begin
|
||||||
|
dependency_collector = spec.dependency_collector
|
||||||
|
related_formula_names = Set.new([
|
||||||
|
name,
|
||||||
|
*aliases,
|
||||||
|
*versioned_formulae_names,
|
||||||
|
])
|
||||||
|
[
|
||||||
|
dependency_collector.gcc_dep_if_needed(related_formula_names),
|
||||||
|
dependency_collector.glibc_dep_if_needed(related_formula_names),
|
||||||
|
].compact.freeze
|
||||||
|
end
|
||||||
|
@global_deps.each { |dep| spec.dependency_collector.add(dep) }
|
||||||
|
end
|
||||||
|
|
||||||
|
sig { returns(T::Boolean) }
|
||||||
|
def valid_platform?
|
||||||
|
requirements.none?(MacOSRequirement)
|
||||||
|
end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
"#{name}.so#{suffix}"
|
|
||||||
end
|
|
||||||
|
|
||||||
sig { returns(String) }
|
|
||||||
def loader_path
|
|
||||||
"$ORIGIN"
|
|
||||||
end
|
|
||||||
|
|
||||||
sig { params(targets: T.nilable(T.any(Pathname, String))).void }
|
|
||||||
def deuniversalize_machos(*targets); end
|
|
||||||
|
|
||||||
sig { params(spec: SoftwareSpec).void }
|
|
||||||
def add_global_deps_to_spec(spec)
|
|
||||||
return unless DevelopmentTools.needs_build_formulae?
|
|
||||||
|
|
||||||
@global_deps ||= begin
|
|
||||||
dependency_collector = spec.dependency_collector
|
|
||||||
related_formula_names = Set.new([
|
|
||||||
name,
|
|
||||||
*aliases,
|
|
||||||
*versioned_formulae_names,
|
|
||||||
])
|
|
||||||
[
|
|
||||||
dependency_collector.gcc_dep_if_needed(related_formula_names),
|
|
||||||
dependency_collector.glibc_dep_if_needed(related_formula_names),
|
|
||||||
].compact.freeze
|
|
||||||
end
|
|
||||||
@global_deps.each { |dep| spec.dependency_collector.add(dep) }
|
|
||||||
end
|
|
||||||
|
|
||||||
sig { returns(T::Boolean) }
|
|
||||||
def valid_platform?
|
|
||||||
requirements.none?(MacOSRequirement)
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
Formula.prepend(FormulaLinux)
|
Formula.prepend(Homebrew::OS::Linux::Formula)
|
||||||
|
|||||||
@ -78,7 +78,7 @@ module Homebrew
|
|||||||
private_class_method :symlink_ld_so
|
private_class_method :symlink_ld_so
|
||||||
|
|
||||||
def self.setup_preferred_gcc_libs
|
def self.setup_preferred_gcc_libs
|
||||||
gcc_opt_prefix = HOMEBREW_PREFIX/"opt/#{OS::LINUX_PREFERRED_GCC_RUNTIME_FORMULA}"
|
gcc_opt_prefix = HOMEBREW_PREFIX/"opt/#{::OS::LINUX_PREFERRED_GCC_RUNTIME_FORMULA}"
|
||||||
glibc_installed = (HOMEBREW_PREFIX/"opt/glibc/bin/ld.so").readable?
|
glibc_installed = (HOMEBREW_PREFIX/"opt/glibc/bin/ld.so").readable?
|
||||||
|
|
||||||
return unless gcc_opt_prefix.readable?
|
return unless gcc_opt_prefix.readable?
|
||||||
|
|||||||
@ -1,29 +0,0 @@
|
|||||||
# typed: strict
|
|
||||||
# frozen_string_literal: true
|
|
||||||
|
|
||||||
module Homebrew
|
|
||||||
module CLI
|
|
||||||
module ParserLinux
|
|
||||||
extend T::Helpers
|
|
||||||
|
|
||||||
requires_ancestor { Homebrew::CLI::Parser }
|
|
||||||
|
|
||||||
sig { void }
|
|
||||||
def set_default_options
|
|
||||||
args["formula?"] = true if args.respond_to?(:formula?)
|
|
||||||
end
|
|
||||||
|
|
||||||
sig { void }
|
|
||||||
def validate_options
|
|
||||||
return unless args.respond_to?(:cask?)
|
|
||||||
return unless args.cask?
|
|
||||||
|
|
||||||
# NOTE: We don't raise an error here because we don't want
|
|
||||||
# to print the help page or a stack trace.
|
|
||||||
odie "Invalid `--cask` usage: Casks do not work on Linux"
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
Homebrew::CLI::Parser.prepend(Homebrew::CLI::ParserLinux)
|
|
||||||
@ -1,13 +1,19 @@
|
|||||||
# typed: strict
|
# typed: strict
|
||||||
# frozen_string_literal: true
|
# frozen_string_literal: true
|
||||||
|
|
||||||
module CleanerMac
|
module Homebrew
|
||||||
private
|
module OS
|
||||||
|
module MacOS
|
||||||
|
module Cleaner
|
||||||
|
private
|
||||||
|
|
||||||
sig { params(path: Pathname).returns(T::Boolean) }
|
sig { params(path: Pathname).returns(T::Boolean) }
|
||||||
def executable_path?(path)
|
def executable_path?(path)
|
||||||
path.mach_o_executable? || path.text_executable?
|
path.mach_o_executable? || path.text_executable?
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
Cleaner.prepend(CleanerMac)
|
Cleaner.prepend(Homebrew::OS::MacOS::Cleaner)
|
||||||
|
|||||||
@ -2,14 +2,18 @@
|
|||||||
# frozen_string_literal: true
|
# frozen_string_literal: true
|
||||||
|
|
||||||
module Homebrew
|
module Homebrew
|
||||||
module CleanupMac
|
module OS
|
||||||
sig { returns(T::Boolean) }
|
module MacOS
|
||||||
def use_system_ruby?
|
module Cleanup
|
||||||
return false if Homebrew::EnvConfig.force_vendor_ruby?
|
sig { returns(T::Boolean) }
|
||||||
|
def use_system_ruby?
|
||||||
|
return false if Homebrew::EnvConfig.force_vendor_ruby?
|
||||||
|
|
||||||
Homebrew::EnvConfig.developer? && ENV["HOMEBREW_USE_RUBY_FROM_PATH"].present?
|
Homebrew::EnvConfig.developer? && ENV["HOMEBREW_USE_RUBY_FROM_PATH"].present?
|
||||||
|
end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
Homebrew::Cleanup.prepend(Homebrew::CleanupMac)
|
Homebrew::Cleanup.prepend(Homebrew::OS::MacOS::Cleanup)
|
||||||
|
|||||||
@ -2,23 +2,27 @@
|
|||||||
# frozen_string_literal: true
|
# frozen_string_literal: true
|
||||||
|
|
||||||
module Homebrew
|
module Homebrew
|
||||||
module DevCmd
|
module OS
|
||||||
module BottleMac
|
module MacOS
|
||||||
sig { returns(T::Array[String]) }
|
module DevCmd
|
||||||
def tar_args
|
module Bottle
|
||||||
if MacOS.version >= :catalina
|
sig { returns(T::Array[String]) }
|
||||||
["--no-mac-metadata", "--no-acls", "--no-xattrs"].freeze
|
def tar_args
|
||||||
else
|
if ::MacOS.version >= :catalina
|
||||||
[].freeze
|
["--no-mac-metadata", "--no-acls", "--no-xattrs"].freeze
|
||||||
end
|
else
|
||||||
end
|
[].freeze
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
sig { params(gnu_tar_formula: Formula).returns(String) }
|
sig { params(gnu_tar_formula: Formula).returns(String) }
|
||||||
def gnu_tar(gnu_tar_formula)
|
def gnu_tar(gnu_tar_formula)
|
||||||
"#{gnu_tar_formula.opt_bin}/gtar"
|
"#{gnu_tar_formula.opt_bin}/gtar"
|
||||||
|
end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
Homebrew::DevCmd::Bottle.prepend(Homebrew::DevCmd::BottleMac)
|
Homebrew::DevCmd::Bottle.prepend(Homebrew::OS::MacOS::DevCmd::Bottle)
|
||||||
|
|||||||
@ -110,9 +110,9 @@ module Homebrew
|
|||||||
return if ENV["HOMEBREW_INTEGRATION_TEST"]
|
return if ENV["HOMEBREW_INTEGRATION_TEST"]
|
||||||
|
|
||||||
who = +"We"
|
who = +"We"
|
||||||
what = if OS::Mac.version.prerelease?
|
what = if ::OS::Mac.version.prerelease?
|
||||||
"pre-release version"
|
"pre-release version"
|
||||||
elsif OS::Mac.version.outdated_release?
|
elsif ::OS::Mac.version.outdated_release?
|
||||||
who << " (and Apple)"
|
who << " (and Apple)"
|
||||||
"old version"
|
"old version"
|
||||||
end
|
end
|
||||||
@ -149,7 +149,7 @@ module Homebrew
|
|||||||
#{MacOS::Xcode.update_instructions}
|
#{MacOS::Xcode.update_instructions}
|
||||||
EOS
|
EOS
|
||||||
|
|
||||||
if OS::Mac.version.prerelease?
|
if ::OS::Mac.version.prerelease?
|
||||||
current_path = Utils.popen_read("/usr/bin/xcode-select", "-p")
|
current_path = Utils.popen_read("/usr/bin/xcode-select", "-p")
|
||||||
message += <<~EOS
|
message += <<~EOS
|
||||||
If #{MacOS::Xcode.latest_version} is installed, you may need to:
|
If #{MacOS::Xcode.latest_version} is installed, you may need to:
|
||||||
|
|||||||
@ -1,36 +1,41 @@
|
|||||||
# typed: strict
|
# typed: strict
|
||||||
# frozen_string_literal: true
|
# frozen_string_literal: true
|
||||||
|
|
||||||
module FormulaMac
|
module Homebrew
|
||||||
extend T::Helpers
|
module OS
|
||||||
|
module MacOS
|
||||||
|
module Formula
|
||||||
|
extend T::Helpers
|
||||||
|
|
||||||
requires_ancestor { Formula }
|
requires_ancestor { ::Formula }
|
||||||
|
|
||||||
sig { returns(T::Boolean) }
|
sig { returns(T::Boolean) }
|
||||||
def valid_platform?
|
def valid_platform?
|
||||||
requirements.none?(LinuxRequirement)
|
requirements.none?(LinuxRequirement)
|
||||||
end
|
end
|
||||||
|
|
||||||
sig {
|
sig {
|
||||||
params(
|
params(
|
||||||
install_prefix: T.any(String, Pathname),
|
install_prefix: T.any(String, Pathname),
|
||||||
install_libdir: T.any(String, Pathname),
|
install_libdir: T.any(String, Pathname),
|
||||||
find_framework: String,
|
find_framework: String,
|
||||||
).returns(T::Array[String])
|
).returns(T::Array[String])
|
||||||
}
|
}
|
||||||
def std_cmake_args(install_prefix: prefix, install_libdir: "lib", find_framework: "LAST")
|
def std_cmake_args(install_prefix: prefix, install_libdir: "lib", find_framework: "LAST")
|
||||||
args = generic_std_cmake_args(install_prefix:, install_libdir:,
|
args = generic_std_cmake_args(install_prefix:, install_libdir:, find_framework:)
|
||||||
find_framework:)
|
|
||||||
|
|
||||||
# Avoid false positives for clock_gettime support on 10.11.
|
# Avoid false positives for clock_gettime support on 10.11.
|
||||||
# CMake cache entries for other weak symbols may be added here as needed.
|
# CMake cache entries for other weak symbols may be added here as needed.
|
||||||
args << "-DHAVE_CLOCK_GETTIME:INTERNAL=0" if MacOS.version == "10.11" && MacOS::Xcode.version >= "8.0"
|
args << "-DHAVE_CLOCK_GETTIME:INTERNAL=0" if ::MacOS.version == "10.11" && ::MacOS::Xcode.version >= "8.0"
|
||||||
|
|
||||||
# Ensure CMake is using the same SDK we are using.
|
# Ensure CMake is using the same SDK we are using.
|
||||||
args << "-DCMAKE_OSX_SYSROOT=#{MacOS.sdk_for_formula(self).path}" if MacOS.sdk_root_needed?
|
args << "-DCMAKE_OSX_SYSROOT=#{::MacOS.sdk_for_formula(self).path}" if ::MacOS.sdk_root_needed?
|
||||||
|
|
||||||
args
|
args
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
Formula.prepend(FormulaMac)
|
Formula.prepend(Homebrew::OS::MacOS::Formula)
|
||||||
|
|||||||
@ -1,16 +1,22 @@
|
|||||||
# typed: strict
|
# typed: strict
|
||||||
# frozen_string_literal: true
|
# frozen_string_literal: true
|
||||||
|
|
||||||
module FormulaInstallerMac
|
module Homebrew
|
||||||
extend T::Helpers
|
module OS
|
||||||
|
module MacOS
|
||||||
|
module FormulaInstaller
|
||||||
|
extend T::Helpers
|
||||||
|
|
||||||
requires_ancestor { FormulaInstaller }
|
requires_ancestor { ::FormulaInstaller }
|
||||||
|
|
||||||
sig { params(formula: Formula).returns(T.nilable(T::Boolean)) }
|
sig { params(formula: Formula).returns(T.nilable(T::Boolean)) }
|
||||||
def fresh_install?(formula)
|
def fresh_install?(formula)
|
||||||
!Homebrew::EnvConfig.developer? && !OS::Mac.version.outdated_release? &&
|
!Homebrew::EnvConfig.developer? && !::OS::Mac.version.outdated_release? &&
|
||||||
(!installed_as_dependency? || !formula.any_version_installed?)
|
(!installed_as_dependency? || !formula.any_version_installed?)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
FormulaInstaller.prepend(FormulaInstallerMac)
|
FormulaInstaller.prepend(Homebrew::OS::MacOS::FormulaInstaller)
|
||||||
|
|||||||
@ -1,14 +1,20 @@
|
|||||||
# typed: strict
|
# typed: strict
|
||||||
# frozen_string_literal: true
|
# frozen_string_literal: true
|
||||||
|
|
||||||
module LinkageCheckerMac
|
module Homebrew
|
||||||
private
|
module OS
|
||||||
|
module MacOS
|
||||||
|
module LinkageChecker
|
||||||
|
private
|
||||||
|
|
||||||
sig { returns(T::Boolean) }
|
sig { returns(T::Boolean) }
|
||||||
def system_libraries_exist_in_cache?
|
def system_libraries_exist_in_cache?
|
||||||
# In macOS Big Sur and later, system libraries do not exist on-disk and instead exist in a cache.
|
# In macOS Big Sur and later, system libraries do not exist on-disk and instead exist in a cache.
|
||||||
MacOS.version >= :big_sur
|
::MacOS.version >= :big_sur
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
LinkageChecker.prepend(LinkageCheckerMac)
|
LinkageChecker.prepend(Homebrew::OS::MacOS::LinkageChecker)
|
||||||
|
|||||||
@ -1,42 +1,48 @@
|
|||||||
# typed: strict
|
# typed: strict
|
||||||
# frozen_string_literal: true
|
# frozen_string_literal: true
|
||||||
|
|
||||||
module ReadallMac
|
module Homebrew
|
||||||
extend T::Helpers
|
module OS
|
||||||
|
module MacOS
|
||||||
|
module Readall
|
||||||
|
extend T::Helpers
|
||||||
|
|
||||||
requires_ancestor { Kernel }
|
requires_ancestor { Kernel }
|
||||||
|
|
||||||
sig { params(tap: Tap, os_name: T.nilable(Symbol), arch: T.nilable(Symbol)).returns(T::Boolean) }
|
sig { params(tap: Tap, os_name: T.nilable(Symbol), arch: T.nilable(Symbol)).returns(T::Boolean) }
|
||||||
def valid_casks?(tap, os_name: nil, arch: Hardware::CPU.type)
|
def valid_casks?(tap, os_name: nil, arch: Hardware::CPU.type)
|
||||||
return true if os_name == :linux
|
return true if os_name == :linux
|
||||||
|
|
||||||
current_macos_version = if os_name.is_a?(Symbol)
|
current_macos_version = if os_name.is_a?(Symbol)
|
||||||
MacOSVersion.from_symbol(os_name)
|
MacOSVersion.from_symbol(os_name)
|
||||||
else
|
else
|
||||||
MacOS.version
|
::MacOS.version
|
||||||
end
|
end
|
||||||
|
|
||||||
success = T.let(true, T::Boolean)
|
success = T.let(true, T::Boolean)
|
||||||
tap.cask_files.each do |file|
|
tap.cask_files.each do |file|
|
||||||
cask = Cask::CaskLoader.load(file)
|
cask = Cask::CaskLoader.load(file)
|
||||||
|
|
||||||
# Fine to have missing URLs for unsupported macOS
|
# Fine to have missing URLs for unsupported macOS
|
||||||
macos_req = cask.depends_on.macos
|
macos_req = cask.depends_on.macos
|
||||||
next if macos_req&.version && Array(macos_req.version).none? do |macos_version|
|
next if macos_req&.version && Array(macos_req.version).none? do |macos_version|
|
||||||
current_macos_version.compare(macos_req.comparator, macos_version)
|
current_macos_version.compare(macos_req.comparator, macos_version)
|
||||||
|
end
|
||||||
|
|
||||||
|
raise "Missing URL" if cask.url.nil?
|
||||||
|
rescue Interrupt
|
||||||
|
raise
|
||||||
|
rescue Exception => e # rubocop:disable Lint/RescueException
|
||||||
|
os_and_arch = "macOS #{current_macos_version} on #{arch}"
|
||||||
|
onoe "Invalid cask (#{os_and_arch}): #{file}"
|
||||||
|
$stderr.puts e
|
||||||
|
success = false
|
||||||
|
end
|
||||||
|
success
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
raise "Missing URL" if cask.url.nil?
|
|
||||||
rescue Interrupt
|
|
||||||
raise
|
|
||||||
rescue Exception => e # rubocop:disable Lint/RescueException
|
|
||||||
os_and_arch = "macOS #{current_macos_version} on #{arch}"
|
|
||||||
onoe "Invalid cask (#{os_and_arch}): #{file}"
|
|
||||||
$stderr.puts e
|
|
||||||
success = false
|
|
||||||
end
|
end
|
||||||
success
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
Readall.singleton_class.prepend(ReadallMac)
|
Readall.singleton_class.prepend(Homebrew::OS::MacOS::Readall)
|
||||||
|
|||||||
@ -2,17 +2,22 @@
|
|||||||
# frozen_string_literal: true
|
# frozen_string_literal: true
|
||||||
|
|
||||||
module Homebrew
|
module Homebrew
|
||||||
module SimulateSystemMac
|
module OS
|
||||||
sig { returns(T::Boolean) }
|
module MacOS
|
||||||
def simulating_or_running_on_macos?
|
module SimulateSystem
|
||||||
SimulateSystem.os.blank? || [:macos, *MacOSVersion::SYMBOLS.keys].include?(SimulateSystem.os)
|
sig { returns(T::Boolean) }
|
||||||
end
|
def simulating_or_running_on_macos?
|
||||||
|
Homebrew::SimulateSystem.os.blank? || [:macos,
|
||||||
|
*MacOSVersion::SYMBOLS.keys].include?(Homebrew::SimulateSystem.os)
|
||||||
|
end
|
||||||
|
|
||||||
sig { returns(Symbol) }
|
sig { returns(Symbol) }
|
||||||
def current_os
|
def current_os
|
||||||
SimulateSystem.os || MacOS.version.to_sym
|
Homebrew::SimulateSystem.os || ::MacOS.version.to_sym
|
||||||
|
end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
Homebrew::SimulateSystem.singleton_class.prepend(Homebrew::SimulateSystemMac)
|
Homebrew::SimulateSystem.singleton_class.prepend(Homebrew::OS::MacOS::SimulateSystem)
|
||||||
|
|||||||
@ -1,4 +1,4 @@
|
|||||||
# typed: strict
|
# typed: strict
|
||||||
# frozen_string_literal: true
|
# frozen_string_literal: true
|
||||||
|
|
||||||
require "extend/os/linux/parser" if OS.linux?
|
require "extend/os/linux/cli/parser" if OS.linux?
|
||||||
|
|||||||
@ -504,9 +504,9 @@ module Homebrew
|
|||||||
return unless @core_tap
|
return unless @core_tap
|
||||||
return if formula.name != "glibc"
|
return if formula.name != "glibc"
|
||||||
# Also allow LINUX_GLIBC_NEXT_CI_VERSION for when we're upgrading.
|
# Also allow LINUX_GLIBC_NEXT_CI_VERSION for when we're upgrading.
|
||||||
return if [OS::LINUX_GLIBC_CI_VERSION, OS::LINUX_GLIBC_NEXT_CI_VERSION].include?(formula.version.to_s)
|
return if [::OS::LINUX_GLIBC_CI_VERSION, ::OS::LINUX_GLIBC_NEXT_CI_VERSION].include?(formula.version.to_s)
|
||||||
|
|
||||||
problem "The glibc version must be #{OS::LINUX_GLIBC_CI_VERSION}, as needed by our CI on Linux. " \
|
problem "The glibc version must be #{::OS::LINUX_GLIBC_CI_VERSION}, as needed by our CI on Linux. " \
|
||||||
"The glibc formula is for users who have a system glibc with a lower version, " \
|
"The glibc formula is for users who have a system glibc with a lower version, " \
|
||||||
"which allows them to use our Linux bottles, which were compiled against system glibc on CI."
|
"which allows them to use our Linux bottles, which were compiled against system glibc on CI."
|
||||||
end
|
end
|
||||||
|
|||||||
@ -9,7 +9,7 @@ module RuboCop
|
|||||||
MSG = "Move `OS.linux?` and `OS.mac?` calls to `extend/os`."
|
MSG = "Move `OS.linux?` and `OS.mac?` calls to `extend/os`."
|
||||||
|
|
||||||
def_node_matcher :os_check?, <<~PATTERN
|
def_node_matcher :os_check?, <<~PATTERN
|
||||||
(send (const nil? :OS) {:mac? | :linux?})
|
(send (const {nil? cbase} :OS) {:mac? | :linux?})
|
||||||
PATTERN
|
PATTERN
|
||||||
|
|
||||||
def on_send(node)
|
def on_send(node)
|
||||||
|
|||||||
@ -18,4 +18,18 @@ RSpec.describe RuboCop::Cop::Homebrew::MoveToExtendOS do
|
|||||||
^^^^^^^ Homebrew/MoveToExtendOS: Move `OS.linux?` and `OS.mac?` calls to `extend/os`.
|
^^^^^^^ Homebrew/MoveToExtendOS: Move `OS.linux?` and `OS.mac?` calls to `extend/os`.
|
||||||
RUBY
|
RUBY
|
||||||
end
|
end
|
||||||
|
|
||||||
|
it "registers an offense when using `::OS.linux?`" do
|
||||||
|
expect_offense(<<~RUBY)
|
||||||
|
::OS.linux?
|
||||||
|
^^^^^^^^^^^ Homebrew/MoveToExtendOS: Move `OS.linux?` and `OS.mac?` calls to `extend/os`.
|
||||||
|
RUBY
|
||||||
|
end
|
||||||
|
|
||||||
|
it "registers an offense when using `::OS.mac?`" do
|
||||||
|
expect_offense(<<~RUBY)
|
||||||
|
::OS.mac?
|
||||||
|
^^^^^^^^^ Homebrew/MoveToExtendOS: Move `OS.linux?` and `OS.mac?` calls to `extend/os`.
|
||||||
|
RUBY
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user