2020-10-10 14:16:11 +02:00
|
|
|
# typed: true
|
2019-04-19 15:38:03 +09:00
|
|
|
# frozen_string_literal: true
|
|
|
|
|
2017-12-04 17:46:52 -08:00
|
|
|
module OS
|
|
|
|
module Linux
|
2020-08-25 00:18:36 +02:00
|
|
|
# Helper functions for querying `glibc` information.
|
|
|
|
#
|
|
|
|
# @api private
|
2017-12-04 17:46:52 -08:00
|
|
|
module Glibc
|
2020-10-20 12:03:48 +02:00
|
|
|
extend T::Sig
|
|
|
|
|
2017-12-04 17:46:52 -08:00
|
|
|
module_function
|
|
|
|
|
|
|
|
def system_version
|
|
|
|
return @system_version if @system_version
|
2018-09-17 02:45:00 +02:00
|
|
|
|
2017-12-04 17:46:52 -08:00
|
|
|
version = Utils.popen_read("/usr/bin/ldd", "--version")[/ (\d+\.\d+)/, 1]
|
|
|
|
return Version::NULL unless version
|
2018-09-17 02:45:00 +02:00
|
|
|
|
2017-12-04 17:46:52 -08:00
|
|
|
@system_version = Version.new version
|
|
|
|
end
|
2019-01-01 15:49:12 -08:00
|
|
|
|
2021-04-01 22:16:33 -07:00
|
|
|
def version
|
|
|
|
return @version if @version
|
|
|
|
|
|
|
|
ldd = HOMEBREW_PREFIX/"opt/glibc/bin/ldd"
|
|
|
|
version = Utils.popen_read(ldd, "--version")[/ (\d+\.\d+)/, 1] if ldd.executable?
|
|
|
|
return system_version unless version
|
|
|
|
|
|
|
|
@version = Version.new version
|
|
|
|
end
|
|
|
|
|
2020-10-20 12:03:48 +02:00
|
|
|
sig { returns(Version) }
|
2019-01-01 15:49:12 -08:00
|
|
|
def minimum_version
|
2021-01-16 11:49:01 -08:00
|
|
|
Version.new(ENV.fetch("HOMEBREW_LINUX_MINIMUM_GLIBC_VERSION"))
|
2019-01-01 15:49:12 -08:00
|
|
|
end
|
|
|
|
|
|
|
|
def below_minimum_version?
|
|
|
|
system_version < minimum_version
|
|
|
|
end
|
2017-12-04 17:46:52 -08:00
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|