From 0d5a53ba2cba0df3ce7fb4a10087c20aef94c3b6 Mon Sep 17 00:00:00 2001
From: Shaun Jackman <sjackman@gmail.com>
Date: Mon, 13 Mar 2017 16:56:35 -0700
Subject: [PATCH] Add extend/os/linux/system_config.rb

Report the Linux kernel, OS, and gcc versions.
---
 .../Homebrew/extend/os/linux/system_config.rb | 42 +++++++++++++++++++
 Library/Homebrew/extend/os/system_config.rb   |  7 +++-
 2 files changed, 48 insertions(+), 1 deletion(-)
 create mode 100644 Library/Homebrew/extend/os/linux/system_config.rb

diff --git a/Library/Homebrew/extend/os/linux/system_config.rb b/Library/Homebrew/extend/os/linux/system_config.rb
new file mode 100644
index 0000000000..e62b12e715
--- /dev/null
+++ b/Library/Homebrew/extend/os/linux/system_config.rb
@@ -0,0 +1,42 @@
+require "formula"
+
+class SystemConfig
+  class << self
+    def host_os_version
+      if which("lsb_release")
+        description = `lsb_release -d`.chomp.sub("Description:\t", "")
+        codename = `lsb_release -c`.chomp.sub("Codename:\t", "")
+        "#{description} (#{codename})"
+      elsif (redhat_release = Pathname.new("/etc/redhat-release")).readable?
+        redhat_release.read.chomp
+      else
+        "N/A"
+      end
+    end
+
+    def host_gcc_version
+      gcc = Pathname.new "/usr/bin/gcc"
+      return "N/A" unless gcc.executable?
+      `#{gcc} --version 2>/dev/null`[/ (\d+\.\d+\.\d+)/, 1]
+    end
+
+    def formula_version(formula)
+      return "N/A" unless CoreTap.instance.installed?
+      f = Formulary.factory formula
+      return "N/A" unless f.installed?
+      f.version
+    rescue FormulaUnavailableError
+      return "N/A"
+    end
+
+    def dump_verbose_config(out = $stdout)
+      dump_generic_verbose_config(out)
+      out.puts "Kernel: #{`uname -mors`.chomp}"
+      out.puts "OS: #{host_os_version}"
+      out.puts "/usr/bin/gcc: #{host_gcc_version}"
+      ["glibc", "gcc", "xorg"].each do |f|
+        out.puts "#{f}: #{formula_version f}"
+      end
+    end
+  end
+end
diff --git a/Library/Homebrew/extend/os/system_config.rb b/Library/Homebrew/extend/os/system_config.rb
index edc0071665..fec31f1fa6 100644
--- a/Library/Homebrew/extend/os/system_config.rb
+++ b/Library/Homebrew/extend/os/system_config.rb
@@ -1,2 +1,7 @@
 require "system_config"
-require "extend/os/mac/system_config" if OS.mac?
+
+if OS.mac?
+  require "extend/os/mac/system_config"
+elsif OS.linux?
+  require "extend/os/linux/system_config"
+end
-- 
GitLab