aboutsummaryrefslogtreecommitdiffstats
path: root/Library
diff options
context:
space:
mode:
Diffstat (limited to 'Library')
-rw-r--r--Library/Homebrew/requirements.rb1
-rw-r--r--Library/Homebrew/requirements/gpg_requirement.rb27
2 files changed, 28 insertions, 0 deletions
diff --git a/Library/Homebrew/requirements.rb b/Library/Homebrew/requirements.rb
index 2764583fb..8ba83b0c5 100644
--- a/Library/Homebrew/requirements.rb
+++ b/Library/Homebrew/requirements.rb
@@ -1,6 +1,7 @@
require "requirement"
require "requirements/apr_requirement"
require "requirements/fortran_requirement"
+require "requirements/gpg_requirement"
require "requirements/language_module_requirement"
require "requirements/minimum_macos_requirement"
require "requirements/maximum_macos_requirement"
diff --git a/Library/Homebrew/requirements/gpg_requirement.rb b/Library/Homebrew/requirements/gpg_requirement.rb
new file mode 100644
index 000000000..ef33a4fc5
--- /dev/null
+++ b/Library/Homebrew/requirements/gpg_requirement.rb
@@ -0,0 +1,27 @@
+require "requirement"
+
+class GPGRequirement < Requirement
+ fatal true
+ default_formula "gnupg2"
+
+ satisfy(:build_env => false) { gpg2 || gpg }
+
+ # MacGPG2/GPGTools installs GnuPG 2.0.x as a vanilla `gpg` symlink
+ # pointing to `gpg2`, as do we. Ensure we're actually using a 2.0 `gpg`.
+ # Temporarily, only support 2.0.x rather than the 2.1.x "modern" series.
+ def gpg
+ which_all("gpg").detect do |gpg|
+ gpg_short_version = Utils.popen_read(gpg, "--version")[/\d\.\d/, 0]
+ next unless gpg_short_version
+ Version.create(gpg_short_version.to_s) == Version.create("2.0")
+ end
+ end
+
+ def gpg2
+ which_all("gpg2").detect do |gpg2|
+ gpg2_short_version = Utils.popen_read(gpg2, "--version")[/\d\.\d/, 0]
+ next unless gpg2_short_version
+ Version.create(gpg2_short_version.to_s) == Version.create("2.0")
+ end
+ end
+end