diff --git a/Library/ENV/pkgconfig/fuse/fuse.pc b/Library/ENV/pkgconfig/fuse/fuse.pc new file mode 120000 index 0000000000..30b17c6599 --- /dev/null +++ b/Library/ENV/pkgconfig/fuse/fuse.pc @@ -0,0 +1 @@ +/usr/local/lib/pkgconfig/fuse.pc \ No newline at end of file diff --git a/Library/ENV/pkgconfig/fuse/osxfuse.pc b/Library/ENV/pkgconfig/fuse/osxfuse.pc new file mode 120000 index 0000000000..153a5d6e28 --- /dev/null +++ b/Library/ENV/pkgconfig/fuse/osxfuse.pc @@ -0,0 +1 @@ +/usr/local/lib/pkgconfig/osxfuse.pc \ No newline at end of file diff --git a/Library/Homebrew/dependency_collector.rb b/Library/Homebrew/dependency_collector.rb index dc75c884de..546e92af39 100644 --- a/Library/Homebrew/dependency_collector.rb +++ b/Library/Homebrew/dependency_collector.rb @@ -119,6 +119,7 @@ class DependencyCollector when :python, :python2 then PythonDependency.new(tags) when :python3 then Python3Dependency.new(tags) when :java then JavaDependency.new(tags) + when :osxfuse then OsxfuseDependency.new(tags) # Tiger's ld is too old to properly link some software when :ld64 then LD64Dependency.new if MacOS.version < :leopard when :ant then ant_dep(spec, tags) diff --git a/Library/Homebrew/requirements.rb b/Library/Homebrew/requirements.rb index 049e70d8d9..add17b24e4 100644 --- a/Library/Homebrew/requirements.rb +++ b/Library/Homebrew/requirements.rb @@ -3,6 +3,7 @@ require 'requirements/fortran_dependency' require 'requirements/language_module_dependency' require 'requirements/minimum_macos_requirement' require 'requirements/mpi_dependency' +require 'requirements/osxfuse_dependency' require 'requirements/python_dependency' require 'requirements/x11_dependency' diff --git a/Library/Homebrew/requirements/osxfuse_dependency.rb b/Library/Homebrew/requirements/osxfuse_dependency.rb new file mode 100644 index 0000000000..b8f09c8f06 --- /dev/null +++ b/Library/Homebrew/requirements/osxfuse_dependency.rb @@ -0,0 +1,28 @@ +require "requirement" + +class OsxfuseDependency < Requirement + fatal true + default_formula "osxfuse" + satisfy { Formula["osxfuse"].installed? || self.class.binary_osxfuse_installed? } + + def self.binary_osxfuse_installed? + File.exist?("/usr/local/include/osxfuse/fuse.h") && !File.symlink?("/usr/local/include/osxfuse") + end + + env do + ENV.append_path "PKG_CONFIG_PATH", HOMEBREW_PREFIX/"Library/ENV/pkgconfig/fuse" + end + +end + +class ConflictsWithBinaryOsxfuse < Requirement + fatal true + satisfy { HOMEBREW_PREFIX.to_s != "/usr/local" || !OsxfuseDependency.binary_osxfuse_installed? } + + def message + <<-EOS.undent + osxfuse is already installed from the binary distribution and + conflicts with this formula. + EOS + end +end