diff --git a/Formula/afuse-mac.rb b/Formula/afuse-mac.rb index 4c3a936..f0609d0 100644 --- a/Formula/afuse-mac.rb +++ b/Formula/afuse-mac.rb @@ -19,6 +19,7 @@ class AfuseMac < Formula depends_on :macos def install + setup_fuse system "./configure", "--disable-dependency-tracking", "--prefix=#{prefix}" system "make", "install" end diff --git a/Formula/archivemount-mac.rb b/Formula/archivemount-mac.rb index af50a1e..27b389a 100644 --- a/Formula/archivemount-mac.rb +++ b/Formula/archivemount-mac.rb @@ -19,6 +19,7 @@ class ArchivemountMac < Formula depends_on :macos def install + setup_fuse ENV.append_to_cflags "-I/usr/local/include/osxfuse" system "./configure", "--disable-debug", "--disable-dependency-tracking", diff --git a/Formula/avfs-mac.rb b/Formula/avfs-mac.rb index fd94849..35c75ee 100644 --- a/Formula/avfs-mac.rb +++ b/Formula/avfs-mac.rb @@ -20,6 +20,7 @@ class AvfsMac < Formula depends_on "xz" def install + setup_fuse args = %W[ --prefix=#{prefix} --disable-debug diff --git a/Formula/bindfs-mac.rb b/Formula/bindfs-mac.rb index ec94827..1cc4510 100644 --- a/Formula/bindfs-mac.rb +++ b/Formula/bindfs-mac.rb @@ -26,6 +26,7 @@ class BindfsMac < Formula depends_on :macos def install + setup_fuse args = %W[ --disable-debug --disable-dependency-tracking diff --git a/Formula/btfs-mac.rb b/Formula/btfs-mac.rb index 261a8b8..e1ef605 100644 --- a/Formula/btfs-mac.rb +++ b/Formula/btfs-mac.rb @@ -23,6 +23,7 @@ class BtfsMac < Formula depends_on :macos def install + setup_fuse ENV.cxx11 inreplace "configure.ac", "fuse >= 2.8.0", "fuse >= 2.7.3" system "autoreconf", "--force", "--install" diff --git a/Formula/curlftpfs-mac.rb b/Formula/curlftpfs-mac.rb index 1843a73..79abb32 100644 --- a/Formula/curlftpfs-mac.rb +++ b/Formula/curlftpfs-mac.rb @@ -25,6 +25,7 @@ class CurlftpfsMac < Formula # TODO: depend on specific X11 formulae instead def install + setup_fuse ENV.append "CPPFLAGS", "-D__off_t=off_t" system "autoreconf", "-fvi" system "./configure", "--disable-dependency-tracking", diff --git a/Formula/dislocker-mac.rb b/Formula/dislocker-mac.rb index 9b96def..44ef1b5 100644 --- a/Formula/dislocker-mac.rb +++ b/Formula/dislocker-mac.rb @@ -23,7 +23,8 @@ class DislockerMac < Formula patch :DATA def install - system "cmake", "-DCMAKE_DISABLE_FIND_PACKAGE_Ruby=TRUE", *std_cmake_args + setup_fuse + system "cmake", "-DCMAKE_DISABLE_FIND_PACKAGE_Ruby=TRUE", *fuse_cmake_args, *std_cmake_args system "make" system "make", "install" end diff --git a/Formula/encfs-mac.rb b/Formula/encfs-mac.rb index 6659e4d..7f15286 100644 --- a/Formula/encfs-mac.rb +++ b/Formula/encfs-mac.rb @@ -25,10 +25,11 @@ class EncfsMac < Formula depends_on "openssl@1.1" def install + setup_fuse ENV.cxx11 mkdir "build" do - system "cmake", "..", *std_cmake_args + system "cmake", "..", *fuse_cmake_args, *std_cmake_args system "make", "install" end end diff --git a/Formula/ext2fuse-mac.rb b/Formula/ext2fuse-mac.rb index 23aec6d..6feccf3 100644 --- a/Formula/ext2fuse-mac.rb +++ b/Formula/ext2fuse-mac.rb @@ -19,6 +19,7 @@ class Ext2fuseMac < Formula depends_on :macos def install + setup_fuse ENV.append "LIBS", "-lfuse" ENV.append "CFLAGS", "-D__FreeBSD__=10 -DENABLE_SWAPFS -I/usr/local/include/fuse " diff --git a/Formula/ext4fuse-mac.rb b/Formula/ext4fuse-mac.rb index 4fc52f0..0b82320 100644 --- a/Formula/ext4fuse-mac.rb +++ b/Formula/ext4fuse-mac.rb @@ -20,6 +20,7 @@ class Ext4fuseMac < Formula depends_on :macos def install + setup_fuse system "make" bin.install "ext4fuse" end diff --git a/Formula/fuse-zip-mac.rb b/Formula/fuse-zip-mac.rb index eae20b5..638a65e 100644 --- a/Formula/fuse-zip-mac.rb +++ b/Formula/fuse-zip-mac.rb @@ -21,7 +21,8 @@ class FuseZipMac < Formula depends_on :macos def install - system "make", "prefix=#{prefix}", "install" + setup_fuse + system "make", "prefix=#{prefix}", "PKG_CONFIG=#{fuse_pkgconfig}", "install" end test do diff --git a/Formula/gcsfuse-mac.rb b/Formula/gcsfuse-mac.rb index ab67a45..ec20d36 100644 --- a/Formula/gcsfuse-mac.rb +++ b/Formula/gcsfuse-mac.rb @@ -20,6 +20,7 @@ class GcsfuseMac < Formula depends_on :macos def install + setup_fuse # Build the build_gcsfuse tool. Ensure that it doesn't pick up any # libraries from the user's GOPATH; it should have no dependencies. ENV.delete("GOPATH") diff --git a/Formula/gocryptfs-mac.rb b/Formula/gocryptfs-mac.rb index c020802..87419ea 100644 --- a/Formula/gocryptfs-mac.rb +++ b/Formula/gocryptfs-mac.rb @@ -24,6 +24,7 @@ class GocryptfsMac < Formula patch :DATA def install + setup_fuse ENV["GOPATH"] = buildpath (buildpath/"src/github.com/rfjakob/gocryptfs").install buildpath.children cd "src/github.com/rfjakob/gocryptfs" do diff --git a/Formula/goofys-mac.rb b/Formula/goofys-mac.rb index 448e8a1..fe7bd94 100644 --- a/Formula/goofys-mac.rb +++ b/Formula/goofys-mac.rb @@ -21,6 +21,7 @@ class GoofysMac < Formula depends_on :macos def install + setup_fuse contents = Dir["*"] gopath = buildpath/"gopath" (gopath/"src/github.com/kahing/goofys").install contents diff --git a/Formula/ifuse-mac.rb b/Formula/ifuse-mac.rb index 90130cc..a112bd9 100644 --- a/Formula/ifuse-mac.rb +++ b/Formula/ifuse-mac.rb @@ -26,6 +26,7 @@ class IfuseMac < Formula depends_on :macos def install + setup_fuse system "./autogen.sh" system "./configure", "--disable-dependency-tracking", "--prefix=#{prefix}" diff --git a/Formula/mp3fs-mac.rb b/Formula/mp3fs-mac.rb index 96c4a9e..1604ac5 100644 --- a/Formula/mp3fs-mac.rb +++ b/Formula/mp3fs-mac.rb @@ -25,6 +25,7 @@ class Mp3fsMac < Formula patch :DATA def install + setup_fuse system "./configure", "--disable-dependency-tracking", "--prefix=#{prefix}" system "make", "install" end diff --git a/Formula/rclone-mac.rb b/Formula/rclone-mac.rb index b0a3b39..38ac739 100644 --- a/Formula/rclone-mac.rb +++ b/Formula/rclone-mac.rb @@ -13,6 +13,7 @@ class RcloneMac < Formula depends_on :macos def install + setup_fuse system "go", "build", "-ldflags", "-s -X github.com/rclone/rclone/fs.Version=v#{version}", "-tags", "cmount", *std_go_args diff --git a/Formula/rofs-filtered-mac.rb b/Formula/rofs-filtered-mac.rb index 5be255e..085561f 100644 --- a/Formula/rofs-filtered-mac.rb +++ b/Formula/rofs-filtered-mac.rb @@ -19,8 +19,9 @@ class RofsFilteredMac < Formula depends_on :macos def install + setup_fuse mkdir "build" do - system "cmake", "..", "-DCMAKE_INSTALL_SYSCONFDIR=#{etc}", *std_cmake_args + system "cmake", "..", "-DCMAKE_INSTALL_SYSCONFDIR=#{etc}", *fuse_cmake_args, *std_cmake_args system "make", "install" end end diff --git a/Formula/s3-backer-mac.rb b/Formula/s3-backer-mac.rb index 2295fb3..e759c71 100644 --- a/Formula/s3-backer-mac.rb +++ b/Formula/s3-backer-mac.rb @@ -20,6 +20,7 @@ class S3BackerMac < Formula depends_on "openssl@1.1" def install + setup_fuse system "./configure", "--prefix=#{prefix}" system "make", "install" end diff --git a/Formula/s3fs-mac.rb b/Formula/s3fs-mac.rb index ac6f6ed..1f63134 100644 --- a/Formula/s3fs-mac.rb +++ b/Formula/s3fs-mac.rb @@ -25,6 +25,7 @@ class S3fsMac < Formula depends_on "nettle" def install + setup_fuse system "./autogen.sh" system "./configure", "--disable-dependency-tracking", "--with-gnutls", "--prefix=#{prefix}" system "make", "install" diff --git a/Formula/s3ql-mac.rb b/Formula/s3ql-mac.rb index c06a543..7ca72b8 100644 --- a/Formula/s3ql-mac.rb +++ b/Formula/s3ql-mac.rb @@ -130,6 +130,7 @@ class S3qlMac < Formula end def install + setup_fuse venv = virtualenv_create(libexec, "python3") resources.each do |r| venv.pip_install r diff --git a/Formula/securefs-mac.rb b/Formula/securefs-mac.rb index 066b7a1..6ee7f7c 100644 --- a/Formula/securefs-mac.rb +++ b/Formula/securefs-mac.rb @@ -23,7 +23,8 @@ class SecurefsMac < Formula patch :DATA def install - system "cmake", ".", *std_cmake_args + setup_fuse + system "cmake", ".", *fuse_cmake_args, *std_cmake_args system "make", "install" end diff --git a/Formula/simple-mtpfs-mac.rb b/Formula/simple-mtpfs-mac.rb index 2104f70..8c64e3f 100644 --- a/Formula/simple-mtpfs-mac.rb +++ b/Formula/simple-mtpfs-mac.rb @@ -25,6 +25,7 @@ class SimpleMtpfsMac < Formula patch :DATA def install + setup_fuse system "./autogen.sh" system "./configure", "--prefix=#{prefix}" system "make" diff --git a/Formula/squashfuse-mac.rb b/Formula/squashfuse-mac.rb index 41f750c..0159f5e 100644 --- a/Formula/squashfuse-mac.rb +++ b/Formula/squashfuse-mac.rb @@ -24,6 +24,7 @@ class SquashfuseMac < Formula depends_on "zstd" def install + setup_fuse system "./configure", "--disable-dependency-tracking", "--disable-silent-rules", "--prefix=#{prefix}" diff --git a/Formula/sshfs-mac.rb b/Formula/sshfs-mac.rb index 67d5653..79a2ecf 100644 --- a/Formula/sshfs-mac.rb +++ b/Formula/sshfs-mac.rb @@ -31,6 +31,7 @@ class SshfsMac < Formula patch :DATA def install + setup_fuse system "autoreconf", "-fiv" system "./configure", "--disable-dependency-tracking", "--prefix=#{prefix}" system "make", "install" diff --git a/Formula/tup-mac.rb b/Formula/tup-mac.rb index 9530a4c..1a93b19 100644 --- a/Formula/tup-mac.rb +++ b/Formula/tup-mac.rb @@ -20,6 +20,7 @@ class TupMac < Formula depends_on :macos def install + setup_fuse ENV["TUP_LABEL"] = version system "./build.sh" bin.install "build/tup" diff --git a/Formula/wdfs-mac.rb b/Formula/wdfs-mac.rb index c3e0c85..74f9504 100644 --- a/Formula/wdfs-mac.rb +++ b/Formula/wdfs-mac.rb @@ -21,6 +21,7 @@ class WdfsMac < Formula depends_on "neon" def install + setup_fuse system "./configure", "--disable-debug", "--disable-dependency-tracking", "--prefix=#{prefix}" system "make", "install" diff --git a/Formula/xmount-mac.rb b/Formula/xmount-mac.rb index 13eab33..1b4d787 100644 --- a/Formula/xmount-mac.rb +++ b/Formula/xmount-mac.rb @@ -25,9 +25,10 @@ class XmountMac < Formula patch :DATA def install + setup_fuse ENV.prepend_path "PKG_CONFIG_PATH", Formula["openssl@1.1"].opt_lib/"pkgconfig" - system "cmake", ".", *std_cmake_args + system "cmake", ".", *fuse_cmake_args, *std_cmake_args system "make", "install" end diff --git a/require/macfuse.rb b/require/macfuse.rb index 0dcf181..e232aed 100644 --- a/require/macfuse.rb +++ b/require/macfuse.rb @@ -23,35 +23,79 @@ end # Add `setup_fuse` to base Formula class, for use by FUSE formulae class Formula + def need_alt_fuse? + HOMEBREW_PREFIX.to_s != "/usr/local" + end + + def alt_fuse_root + buildpath/"temp" + end + + def fuse_cmake_args + return unless need_alt_fuse? + + %W[ + -DCMAKE_INCLUDE_PATH=#{alt_fuse_root}/include/fuse;#{alt_fuse_root}/include + -DCMAKE_LIBRARY_PATH=#{alt_fuse_root}/lib + -DCMAKE_CXX_FLAGS=-I#{alt_fuse_root}/include/fuse\ -D_USE_FILE_OFFSET_BITS=64 + -DPKG_CONFIG=#{fuse_pkgconfig} + -DPKG_CONFIG_EXECUTABLE=#{fuse_pkgconfig} + ] + # -DFUSE_INCLUDE_DIR=#{alt_fuse_root}/include/fuse + # -DFUSE_LIBRARIES=#{alt_fuse_root}/lib/libfuse.dylib + end + def setup_fuse_includes - mkdir buildpath/"temp/include" do + mkdir "#{alt_fuse_root}/include" do Dir["/usr/local/include/fuse*"].each { |f| cp_r f, "." } end end def setup_fuse_libs - mkdir buildpath/"temp/lib" do + mkdir "#{alt_fuse_root}/lib" do Dir["/usr/local/lib/*fuse*"].each { |f| cp_r f, "." } end end + def setup_fuse_pkgconfig + mkdir "#{alt_fuse_root}/bin" do + cp path/"../../lib/fuse-pkg-config", "." + inreplace "fuse-pkg-config", "%FUSE_ROOT%", "#{alt_fuse_root}" + #ENV.prepend_path "PATH", "#{alt_fuse_root}/bin" + end + end + + def fuse_pkgconfig + return "#{alt_fuse_root}/bin/fuse-pkg-config" if need_alt_fuse? + "pkg-config" + end + def setup_fuse_env - odebug "Setting up FUSE temp environment under #{buildpath}/temp" + odebug "Setting up FUSE temp environment under #{alt_fuse_root}" setup_fuse_includes setup_fuse_libs - Dir.glob(buildpath/"temp/**/*.*").each { |f| odebug ">>> #{f}" } + setup_fuse_pkgconfig + Dir.glob("#{alt_fuse_root}/**/*").each { |f| odebug ">>> #{f}" } end def setup_fuse_flags - ENV.append "CFLAGS", "-I#{buildpath}/temp/include" - ENV.append "CFLAGS", "-I#{buildpath}/temp/include/fuse" - ENV.append "CPPFLAGS", "-I#{buildpath}/temp/include" - ENV.append "CPPFLAGS", "-I#{buildpath}/temp/include/fuse" - ENV.append "LDFLAGS", "-I#{buildpath}/temp/lib" + ENV.append "CFLAGS", "-I#{alt_fuse_root}/include" + ENV.append "CFLAGS", "-I#{alt_fuse_root}/include/fuse" + ENV.append "CFLAGS", "-D_USE_FILE_OFFSET_BITS=64" + ENV.append "CPPFLAGS", "-I#{alt_fuse_root}/include" + ENV.append "CPPFLAGS", "-I#{alt_fuse_root}/include/fuse" + ENV.append "CPPFLAGS", "-D_USE_FILE_OFFSET_BITS=64" + ENV.append "CXXFLAGS", "-I#{alt_fuse_root}/include" + ENV.append "CXXFLAGS", "-I#{alt_fuse_root}/include/fuse" + ENV.append "CXXFLAGS", "-D_USE_FILE_OFFSET_BITS=64" + ENV.append "LDFLAGS", "-L#{alt_fuse_root}/lib" + ENV.append "CGO_CPPFLAGS", "-I#{alt_fuse_root}/include" + ENV.append "CGO_CPPFLAGS", "-D_USE_FILE_OFFSET_BITS=64" + ENV.append "CGO_LDFLAGS", "-L#{alt_fuse_root}/lib" end def setup_fuse - return if HOMEBREW_PREFIX.to_s == "/usr/local" + return unless need_alt_fuse? setup_fuse_env setup_fuse_flags