From 3379e3b5cfcaa5cea33e0b48f2fdb5e205113655 Mon Sep 17 00:00:00 2001 From: Seeker Date: Mon, 17 Aug 2020 12:24:53 -0700 Subject: [PATCH] os: add `kernel_version` --- Library/Homebrew/extend/os/linux/diagnostic.rb | 2 +- Library/Homebrew/os.rb | 4 ++++ Library/Homebrew/os/linux/kernel.rb | 11 +---------- Library/Homebrew/test/os/os_spec.rb | 9 +++++++++ 4 files changed, 15 insertions(+), 11 deletions(-) create mode 100644 Library/Homebrew/test/os/os_spec.rb diff --git a/Library/Homebrew/extend/os/linux/diagnostic.rb b/Library/Homebrew/extend/os/linux/diagnostic.rb index 9e2fab3aaf..5356f2a1fc 100644 --- a/Library/Homebrew/extend/os/linux/diagnostic.rb +++ b/Library/Homebrew/extend/os/linux/diagnostic.rb @@ -100,7 +100,7 @@ module Homebrew return unless OS::Linux::Kernel.below_minimum_version? <<~EOS - Your Linux kernel #{OS::Linux::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. You will be unable to use binary packages (bottles). #{please_create_pull_requests} diff --git a/Library/Homebrew/os.rb b/Library/Homebrew/os.rb index 2108c279d7..ff739cd20f 100644 --- a/Library/Homebrew/os.rb +++ b/Library/Homebrew/os.rb @@ -13,6 +13,10 @@ module OS RbConfig::CONFIG["host_os"].include? "linux" end + def self.kernel_version + @kernel_version ||= Version.new(Utils.safe_popen_read("uname", "-r").chomp) + end + ::OS_VERSION = ENV["HOMEBREW_OS_VERSION"] if OS.mac? diff --git a/Library/Homebrew/os/linux/kernel.rb b/Library/Homebrew/os/linux/kernel.rb index b35927dd3c..31680b9e7e 100644 --- a/Library/Homebrew/os/linux/kernel.rb +++ b/Library/Homebrew/os/linux/kernel.rb @@ -5,21 +5,12 @@ module OS module Kernel module_function - def version - return @version if @version - - version = Utils.popen_read("uname", "-r").chomp - return Version::NULL unless version - - @version = Version.new version - end - def minimum_version Version.new "2.6.32" end def below_minimum_version? - version < minimum_version + OS.kernel_version < minimum_version end end end diff --git a/Library/Homebrew/test/os/os_spec.rb b/Library/Homebrew/test/os/os_spec.rb new file mode 100644 index 0000000000..1e671f67a5 --- /dev/null +++ b/Library/Homebrew/test/os/os_spec.rb @@ -0,0 +1,9 @@ +# frozen_string_literal: true + +describe OS do + describe ".kernel_version" do + it "is not empty" do + expect(described_class.kernel_version).not_to be_empty + end + end +end