diff options
| author | Mike McQuaid | 2016-07-09 13:51:53 +0100 | 
|---|---|---|
| committer | GitHub | 2016-07-09 13:51:53 +0100 | 
| commit | df7e36b86cf4fab3cf24a6d0888121d94ca73b8a (patch) | |
| tree | f904b0bacf72930f9bf7c3d06c70c46669a76100 /Library/Homebrew/formula_cellar_checks.rb | |
| parent | a5ec0aa2598d702b68300e7400fad48e8a392527 (diff) | |
| download | brew-df7e36b86cf4fab3cf24a6d0888121d94ca73b8a.tar.bz2 | |
formula_cellar_checks: port to generic OS. (#452)
Diffstat (limited to 'Library/Homebrew/formula_cellar_checks.rb')
| -rw-r--r-- | Library/Homebrew/formula_cellar_checks.rb | 65 | 
1 files changed, 4 insertions, 61 deletions
diff --git a/Library/Homebrew/formula_cellar_checks.rb b/Library/Homebrew/formula_cellar_checks.rb index 9622c98e6..0a798b27e 100644 --- a/Library/Homebrew/formula_cellar_checks.rb +++ b/Library/Homebrew/formula_cellar_checks.rb @@ -2,7 +2,7 @@ module FormulaCellarChecks    def check_PATH(bin)      # warn the user if stuff was installed outside of their PATH      return unless bin.directory? -    return unless bin.children.length > 0 +    return if bin.children.empty?      prefix_bin = (HOMEBREW_PREFIX/bin.basename)      return unless prefix_bin.directory? @@ -103,29 +103,6 @@ module FormulaCellarChecks      EOS    end -  def check_shadowed_headers -    ["libtool", "subversion", "berkeley-db"].each do |formula_name| -      return if formula.name.start_with?(formula_name) -    end - -    return if MacOS.version < :mavericks && formula.name.start_with?("postgresql") -    return if MacOS.version < :yosemite  && formula.name.start_with?("memcached") - -    return if formula.keg_only? || !formula.include.directory? - -    files  = relative_glob(formula.include, "**/*.h") -    files &= relative_glob("#{MacOS.sdk_path}/usr/include", "**/*.h") -    files.map! { |p| File.join(formula.include, p) } - -    return if files.empty? - -    <<-EOS.undent -      Header files that shadow system header files were installed to "#{formula.include}" -      The offending files are: -        #{files * "\n        "} -    EOS -  end -    def check_easy_install_pth(lib)      pth_found = Dir["#{lib}/python{2.7,3}*/site-packages/easy-install.pth"].map { |f| File.dirname(f) }      return if pth_found.empty? @@ -139,40 +116,6 @@ module FormulaCellarChecks      EOS    end -  def check_openssl_links -    return unless formula.prefix.directory? -    keg = Keg.new(formula.prefix) -    system_openssl = keg.mach_o_files.select do |obj| -      dlls = obj.dynamically_linked_libraries -      dlls.any? { |dll| /\/usr\/lib\/lib(crypto|ssl).(\d\.)*dylib/.match dll } -    end -    return if system_openssl.empty? - -    <<-EOS.undent -      object files were linked against system openssl -      These object files were linked against the deprecated system OpenSSL. -      Adding `depends_on "openssl"` to the formula may help. -        #{system_openssl * "\n        "} -    EOS -  end - -  def check_python_framework_links(lib) -    python_modules = Pathname.glob lib/"python*/site-packages/**/*.so" -    framework_links = python_modules.select do |obj| -      dlls = obj.dynamically_linked_libraries -      dlls.any? { |dll| /Python\.framework/.match dll } -    end -    return if framework_links.empty? - -    <<-EOS.undent -      python modules have explicit framework links -      These python extension modules were linked directly to a Python -      framework binary. They should be linked with -undefined dynamic_lookup -      instead of -lpython or -framework Python. -        #{framework_links * "\n        "} -    EOS -  end -    def check_elisp_dirname(share, name)      return unless (share/"emacs/site-lisp").directory?      # Emacs itself can do what it wants @@ -217,13 +160,11 @@ module FormulaCellarChecks      audit_check_output(check_generic_executables(formula.bin))      audit_check_output(check_non_executables(formula.sbin))      audit_check_output(check_generic_executables(formula.sbin)) -    audit_check_output(check_shadowed_headers)      audit_check_output(check_easy_install_pth(formula.lib)) -    audit_check_output(check_openssl_links) -    audit_check_output(check_python_framework_links(formula.lib))      audit_check_output(check_elisp_dirname(formula.share, formula.name))      audit_check_output(check_elisp_root(formula.share, formula.name))    end +  alias generic_audit_installed audit_installed    private @@ -231,3 +172,5 @@ module FormulaCellarChecks      File.directory?(dir) ? Dir.chdir(dir) { Dir[pattern] } : []    end  end + +require "extend/os/formula_cellar_checks"  | 
