diff --git a/Formula/dwarfs-fuse-mac.rb b/Formula/dwarfs-fuse-mac.rb index 035d10c..aa0e896 100644 --- a/Formula/dwarfs-fuse-mac.rb +++ b/Formula/dwarfs-fuse-mac.rb @@ -6,6 +6,7 @@ class DwarfsFuseMac < Formula url "https://github.com/mhx/dwarfs/releases/download/v0.14.1/dwarfs-0.14.1.tar.xz" sha256 "620cf27f2e142a5f8fc05552a70704c3bf4df23c3279c6026b3f37954d0529c5" license "GPL-3.0-or-later" + revision 1 livecheck do url :stable @@ -15,8 +16,9 @@ class DwarfsFuseMac < Formula bottle do root_url "https://ghcr.io/v2/gromgit/fuse" - sha256 arm64_sequoia: "435146a6369cafb5e9bacfb9470c14c8812b75e68d518041ad3e0125b43c7e43" - sha256 arm64_sonoma: "6bdf459cae00709de615e2df120218898a223d95304abc32e393c47f600adfb2" + sha256 arm64_tahoe: "bc774cfa6d741a0edf6a0d214985cf4532723ffb9137b8520c90fd5077947e2a" + sha256 arm64_sequoia: "33c28204480f510a4248b13094f4233f4647c4786a8ca9e8eab538cc78177520" + sha256 arm64_sonoma: "b07ecc7e407f88dc301642181b333609b31c37e960e2a8c4f5316f62d2819463" end depends_on "cmake" => :build @@ -88,6 +90,7 @@ class DwarfsFuseMac < Formula ENV.prepend_path "HOMEBREW_LIBRARY_PATHS", Formula["llvm"].opt_lib/"c++" end + setup_fuse system "cmake", "-S", ".", "-B", "build", *args, *std_cmake_args system "cmake", "--build", "build", "--parallel" system "cmake", "--install", "build" diff --git a/Formula/gcsfuse-mac.rb b/Formula/gcsfuse-mac.rb index 4c56fbc..e89244c 100644 --- a/Formula/gcsfuse-mac.rb +++ b/Formula/gcsfuse-mac.rb @@ -3,8 +3,8 @@ require_relative "../require/macfuse" class GcsfuseMac < Formula desc "User-space file system for interacting with Google Cloud" homepage "https://github.com/googlecloudplatform/gcsfuse" - url "https://github.com/GoogleCloudPlatform/gcsfuse/archive/refs/tags/v3.4.4.tar.gz" - sha256 "4f1c25ba20044394538fa7704511669493465bccf11cd257bb745f7baa531142" + url "https://github.com/GoogleCloudPlatform/gcsfuse/archive/refs/tags/v3.5.3.tar.gz" + sha256 "e0d154c15a88482f70a01483d00e56238aa5cdd2f195553be7efc8bf0761998e" license "Apache-2.0" head "https://github.com/GoogleCloudPlatform/gcsfuse.git", branch: "master" @@ -15,9 +15,9 @@ class GcsfuseMac < Formula bottle do root_url "https://ghcr.io/v2/gromgit/fuse" - sha256 cellar: :any_skip_relocation, arm64_tahoe: "af3511891e38ad8683e6d6746a1b9755bcbd70d07ddfa3b37d323472a3cfdbd1" - sha256 cellar: :any_skip_relocation, arm64_sequoia: "a0c7e6a39a1d968761e62cef8e75fa2ad2ab441ef4c9e094da90674eecac1494" - sha256 cellar: :any_skip_relocation, arm64_sonoma: "4f8f8974e7c471ca82d45c83077efb3faef55e9ecd775eefb46f7e20d716459c" + sha256 cellar: :any_skip_relocation, arm64_tahoe: "9f284896b5576dc2a98d1c96c9f2b53f35051ac0bb01c38b8828fd5826c93f69" + sha256 cellar: :any_skip_relocation, arm64_sequoia: "73758bd920293d0574c6c8ca147ffbd54c51734f8fec12307fd81bc3b5d6b633" + sha256 cellar: :any_skip_relocation, arm64_sonoma: "658ac578828a18b15d8e68639a47fd3c2c7da1a6e04c8c5c4b0d610d0b7b5f4e" end depends_on "go" => :build diff --git a/Formula/s3-backer-mac.rb b/Formula/s3-backer-mac.rb index 0b78ae7..12bbfa3 100644 --- a/Formula/s3-backer-mac.rb +++ b/Formula/s3-backer-mac.rb @@ -3,8 +3,8 @@ require_relative "../require/macfuse" class S3BackerMac < Formula desc "FUSE-based single file backing store via Amazon S3" homepage "https://github.com/archiecobbs/s3backer" - url "https://archie-public.s3.amazonaws.com/s3backer/s3backer-2.1.4.tar.gz" - sha256 "0451471209cc872708e91b2784a4a1b9f3ca44c89a7bffb8f6145aed28c941e7" + url "https://archie-public.s3.amazonaws.com/s3backer/s3backer-2.1.6.tar.gz" + sha256 "55ff3123ab08d45822e6b349d9e305ca2ca13339474314cfc31a074d5308acf6" license "GPL-2.0-or-later" bottle do @@ -19,14 +19,22 @@ class S3BackerMac < Formula depends_on MacfuseRequirement depends_on :macos depends_on "openssl@3" + depends_on "zlib" + depends_on "zstd" def install - setup_fuse - system "./configure", "--disable-silent-rules", *std_configure_args + setup_fuse3 + # Disable macOS-specific features that break FUSE compatibility + # https://github.com/macfuse/macfuse/issues/1064#issuecomment-2800022794 + ENV.append "CFLAGS", "-DFUSE_DARWIN_ENABLE_EXTENSIONS=0" + system "./configure", "--disable-silent-rules", + *std_configure_args.reject { |s| s["--disable-debug"] } system "make", "install" end test do - system bin/"s3backer", "--version" + assert_match version.to_s, shell_output("#{bin}/s3backer --version 2>&1") + + assert_match "no S3 bucket specified", shell_output("#{bin}/s3backer 2>&1", 1) end end diff --git a/require/macfuse.rb b/require/macfuse.rb index 202c59b..88b89b0 100644 --- a/require/macfuse.rb +++ b/require/macfuse.rb @@ -51,13 +51,25 @@ class Formula def setup_fuse_includes mkdir "#{alt_fuse_root}/include" do - Dir["/usr/local/include/fuse*"].each { |f| cp_r f, "." } + Dir["/usr/local/include/fuse", "/usr/local/include/fuse.h"].each { |f| cp_r f, "." } + end + end + + def setup_fuse3_includes + mkdir "#{alt_fuse_root}/include" do + Dir["/usr/local/include/fuse3", "/usr/local/include/fuse.h"].each { |f| cp_r f, "." } end end def setup_fuse_libs mkdir "#{alt_fuse_root}/lib" do - Dir["/usr/local/lib/*fuse*"].each { |f| cp_r f, "." } + Dir["/usr/local/lib/libfuse.*"].each { |f| cp_r f, "." } + end + end + + def setup_fuse3_libs + mkdir "#{alt_fuse_root}/lib" do + Dir["/usr/local/lib/libfuse3.*"].each { |f| cp_r f, "." } end end @@ -73,6 +85,12 @@ class Formula mkdir "#{alt_fuse_root}/lib/pkgconfig" do cp "/usr/local/lib/pkgconfig/fuse.pc", "." inreplace "fuse.pc", "/usr/local", alt_fuse_root.to_s + end + ENV.prepend_path "PKG_CONFIG_PATH", "#{alt_fuse_root}/lib/pkgconfig" + end + + def setup_fuse3_pkgconfig + mkdir "#{alt_fuse_root}/lib/pkgconfig" do cp "/usr/local/lib/pkgconfig/fuse3.pc", "." inreplace "fuse3.pc", "/usr/local", alt_fuse_root.to_s end @@ -92,6 +110,14 @@ class Formula Dir.glob("#{alt_fuse_root}/**/*").each { |f| odebug ">>> #{f}" } end + def setup_fuse3_env + odebug "Setting up FUSE3 temp environment under #{alt_fuse_root}" + setup_fuse3_includes + setup_fuse3_libs + setup_fuse3_pkgconfig + Dir.glob("#{alt_fuse_root}/**/*").each { |f| odebug ">>> #{f}" } + end + def disable_macfuse_extensions ENV.append "CFLAGS", "-DFUSE_DARWIN_ENABLE_EXTENSIONS=0" ENV.append "CPPFLAGS", "-DFUSE_DARWIN_ENABLE_EXTENSIONS=0" @@ -100,19 +126,20 @@ class Formula end def setup_fuse_flags - ENV.append "CFLAGS", "-I#{alt_fuse_root}/include" ENV.append "CFLAGS", "-I#{alt_fuse_root}/include/fuse" + ENV.append "CFLAGS", "-I#{alt_fuse_root}/include" ENV.append "CFLAGS", "-D_FILE_OFFSET_BITS=64" 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", "-I#{alt_fuse_root}/include" ENV.append "CPPFLAGS", "-D_FILE_OFFSET_BITS=64" 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 "CPPFLAGS", "-I#{alt_fuse_root}/include" ENV.append "CXXFLAGS", "-D_FILE_OFFSET_BITS=64" 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/fuse" ENV.append "CGO_CPPFLAGS", "-I#{alt_fuse_root}/include" ENV.append "CGO_CPPFLAGS", "-D_FILE_OFFSET_BITS=64" ENV.append "CGO_CPPFLAGS", "-D_USE_FILE_OFFSET_BITS=64" @@ -125,16 +152,20 @@ class Formula def setup_fuse3_flags ENV.append "CFLAGS", "-I#{alt_fuse_root}/include/fuse3" + ENV.append "CFLAGS", "-I#{alt_fuse_root}/include" ENV.append "CFLAGS", "-D_FILE_OFFSET_BITS=64" ENV.append "CFLAGS", "-D_USE_FILE_OFFSET_BITS=64" ENV.append "CPPFLAGS", "-I#{alt_fuse_root}/include/fuse3" + ENV.append "CPPFLAGS", "-I#{alt_fuse_root}/include" ENV.append "CPPFLAGS", "-D_FILE_OFFSET_BITS=64" ENV.append "CPPFLAGS", "-D_USE_FILE_OFFSET_BITS=64" ENV.append "CXXFLAGS", "-I#{alt_fuse_root}/include/fuse3" + ENV.append "CXXFLAGS", "-I#{alt_fuse_root}/include" ENV.append "CXXFLAGS", "-D_FILE_OFFSET_BITS=64" 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/fuse3" + ENV.append "CGO_CPPFLAGS", "-I#{alt_fuse_root}/include" ENV.append "CGO_CPPFLAGS", "-D_FILE_OFFSET_BITS=64" ENV.append "CGO_CPPFLAGS", "-D_USE_FILE_OFFSET_BITS=64" ENV.append "CGO_LDFLAGS", "-L#{alt_fuse_root}/lib" @@ -154,7 +185,7 @@ class Formula def setup_fuse3 return unless need_alt_fuse? - setup_fuse_env + setup_fuse3_env setup_fuse3_flags end end