diff options
Diffstat (limited to 'Library')
| -rw-r--r-- | Library/Homebrew/requirements.rb | 1 | ||||
| -rw-r--r-- | Library/Homebrew/requirements/gpg_requirement.rb | 27 |
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 |
