From b338398a8c002953d64852c51f0d7b5e9c419332 Mon Sep 17 00:00:00 2001
From: Bo Anderson <mail@boanderson.me>
Date: Mon, 6 Apr 2020 13:04:48 +0100
Subject: [PATCH] tab: add built_on & arch information

---
 Library/Homebrew/development_tools.rb               | 9 +++++++++
 Library/Homebrew/extend/os/mac/development_tools.rb | 8 ++++++++
 Library/Homebrew/tab.rb                             | 4 ++++
 Library/Homebrew/test/caveats_spec.rb               | 2 +-
 4 files changed, 22 insertions(+), 1 deletion(-)

diff --git a/Library/Homebrew/development_tools.rb b/Library/Homebrew/development_tools.rb
index bec90038b1..b64c7b9312 100644
--- a/Library/Homebrew/development_tools.rb
+++ b/Library/Homebrew/development_tools.rb
@@ -99,6 +99,15 @@ class DevelopmentTools
     def subversion_handles_most_https_certificates?
       true
     end
+
+    def build_system_info
+      {
+        "os"         => ENV["HOMEBREW_SYSTEM"],
+        "os_version" => OS_VERSION,
+        "cpu_family" => Hardware::CPU.family,
+      }
+    end
+    alias generic_build_system_info build_system_info
   end
 end
 
diff --git a/Library/Homebrew/extend/os/mac/development_tools.rb b/Library/Homebrew/extend/os/mac/development_tools.rb
index e1b1d0e87b..787196472a 100644
--- a/Library/Homebrew/extend/os/mac/development_tools.rb
+++ b/Library/Homebrew/extend/os/mac/development_tools.rb
@@ -56,5 +56,13 @@ class DevelopmentTools
           brew install gcc
       EOS
     end
+
+    def build_system_info
+      build_info = {
+        "xcode" => MacOS::Xcode.version.to_s.presence,
+        "clt"   => MacOS::CLT.version.to_s.presence,
+      }
+      generic_build_system_info.merge build_info
+    end
   end
 end
diff --git a/Library/Homebrew/tab.rb b/Library/Homebrew/tab.rb
index 8a3bdb13a1..d146533e5f 100644
--- a/Library/Homebrew/tab.rb
+++ b/Library/Homebrew/tab.rb
@@ -36,6 +36,7 @@ class Tab < OpenStruct
       "stdlib"                  => stdlib,
       "aliases"                 => formula.aliases,
       "runtime_dependencies"    => Tab.runtime_deps_hash(runtime_deps),
+      "arch"                    => Hardware::CPU.arch,
       "source"                  => {
         "path"     => formula.specified_path.to_s,
         "tap"      => formula.tap&.name,
@@ -47,6 +48,7 @@ class Tab < OpenStruct
           "version_scheme" => formula.version_scheme,
         },
       },
+      "built_on"                => DevelopmentTools.build_system_info,
     }
 
     new(attributes)
@@ -198,6 +200,7 @@ class Tab < OpenStruct
           "version_scheme" => 0,
         },
       },
+      "built_on"                => DevelopmentTools.generic_build_system_info,
     }
 
     new(attributes)
@@ -344,6 +347,7 @@ class Tab < OpenStruct
       "aliases"                 => aliases,
       "runtime_dependencies"    => runtime_dependencies,
       "source"                  => source,
+      "built_on"                => built_on,
     }
 
     JSON.generate(attributes, options)
diff --git a/Library/Homebrew/test/caveats_spec.rb b/Library/Homebrew/test/caveats_spec.rb
index ff010ff161..b0ed28814d 100644
--- a/Library/Homebrew/test/caveats_spec.rb
+++ b/Library/Homebrew/test/caveats_spec.rb
@@ -120,7 +120,7 @@ describe Caveats do
             "plist_test.plist"
           end
         end
-        allow(ENV).to receive(:[]).with("TMUX").and_return(true)
+        ENV["TMUX"] = "1"
         allow(Homebrew).to receive(:_system).with("/usr/bin/pbpaste").and_return(false)
         caveats = described_class.new(f).caveats
 
-- 
GitLab