diff --git a/.github/workflows/autobump.yml b/.github/workflows/autobump.yml new file mode 100644 index 0000000..7706001 --- /dev/null +++ b/.github/workflows/autobump.yml @@ -0,0 +1,28 @@ +name: "Autobump specific formulae" +on: + schedule: + - cron: "15 2-23/4 * * *" + +jobs: + autobump: + runs-on: ubuntu-latest + steps: + - name: Update Homebrew formula + uses: dawidd6/action-homebrew-bump-formula@v4 + with: + # Required, custom personal GitHub access token with only the 'public_repo' scope enabled + token: ${{secrets.AUTOBUMP_TOKEN}} + # Optional, will commit with this user name + user_name: gromgit + # Optional, will commit with this user email + user_email: the.gromgit@gmail.com + # Optional, will create tap repo fork in organization + # org: ORG + # Bump all outdated formulae in this tap + tap: gromgit/fuse + # Bump only these formulae if outdated + # formula: mint-lang,vlang-weekly + # Optional, if don't want to check for already open PRs + force: false # true + # Need to set this input if want to use `brew livecheck` + livecheck: true diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 061acfd..5f145bf 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -1,33 +1,45 @@ name: brew pr-pull + on: pull_request_target: types: - labeled + jobs: pr-pull: if: contains(github.event.pull_request.labels.*.name, 'pr-pull') - runs-on: ubuntu-latest + runs-on: ubuntu-22.04 + permissions: + actions: read + checks: read + contents: write + issues: read + packages: write + pull-requests: write steps: - name: Set up Homebrew - uses: Homebrew/actions/setup-homebrew@master + uses: Homebrew/actions/setup-homebrew@main + with: + token: ${{ secrets.GITHUB_TOKEN }} - name: Set up git - uses: Homebrew/actions/git-user-config@master + uses: Homebrew/actions/git-user-config@main - name: Pull bottles env: - HOMEBREW_GITHUB_API_TOKEN: ${{ github.token }} + HOMEBREW_GITHUB_API_TOKEN: ${{ secrets.GITHUB_TOKEN }} + HOMEBREW_GITHUB_PACKAGES_TOKEN: ${{ secrets.GITHUB_TOKEN }} + HOMEBREW_GITHUB_PACKAGES_USER: ${{ github.repository_owner }} PULL_REQUEST: ${{ github.event.pull_request.number }} - run: brew pr-pull --debug --tap=$GITHUB_REPOSITORY $PULL_REQUEST + run: brew pr-pull --debug --tap="$GITHUB_REPOSITORY" "$PULL_REQUEST" - name: Push commits - uses: Homebrew/actions/git-try-push@master + uses: Homebrew/actions/git-try-push@main with: - token: ${{ github.token }} branch: main - name: Delete branch if: github.event.pull_request.head.repo.fork == false env: BRANCH: ${{ github.event.pull_request.head.ref }} - run: git push --delete origin $BRANCH + run: git push --delete origin "$BRANCH" diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 05d12c6..a127b4a 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -1,30 +1,28 @@ name: brew test-bot + on: push: - branches: main + branches: + - main pull_request: + jobs: test-bot: strategy: matrix: - os: [macOS-latest] + os: [macos-14, macos-15, macos-26] runs-on: ${{ matrix.os }} steps: - name: Set up Homebrew id: set-up-homebrew - uses: Homebrew/actions/setup-homebrew@master + uses: Homebrew/actions/setup-homebrew@main - name: Cache Homebrew Bundler RubyGems - id: cache - uses: actions/cache@v1 + uses: actions/cache@v4 with: path: ${{ steps.set-up-homebrew.outputs.gems-path }} - key: ${{ runner.os }}-rubygems-${{ steps.set-up-homebrew.outputs.gems-hash }} - restore-keys: ${{ runner.os }}-rubygems- - - - name: Install Homebrew Bundler RubyGems - if: steps.cache.outputs.cache-hit != 'true' - run: brew install-bundler-gems + key: ${{ matrix.os }}-rubygems-${{ steps.set-up-homebrew.outputs.gems-hash }} + restore-keys: ${{ matrix.os }}-rubygems- - run: brew install --cask macfuse @@ -34,12 +32,12 @@ jobs: - run: brew test-bot --only-tap-syntax - - run: brew test-bot --only-formulae + - run: brew test-bot --verbose --debug --only-formulae --root-url='https://ghcr.io/v2/gromgit/fuse' if: github.event_name == 'pull_request' - name: Upload bottles as artifact if: always() && github.event_name == 'pull_request' - uses: actions/upload-artifact@main + uses: actions/upload-artifact@v4 with: - name: bottles + name: bottles_${{ matrix.os }} path: '*.bottle.*' diff --git a/Formula/afuse-mac.rb b/Formula/afuse-mac.rb index 6df639f..39bb381 100644 --- a/Formula/afuse-mac.rb +++ b/Formula/afuse-mac.rb @@ -3,25 +3,26 @@ require_relative "../require/macfuse" class AfuseMac < Formula desc "Automounting file system implemented in userspace with FUSE" homepage "https://github.com/pcarrier/afuse/" - url "https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/afuse/afuse-0.4.1.tar.gz" - sha256 "c6e0555a65d42d3782e0734198bbebd22486386e29cb00047bc43c3eb726dca8" + url "https://github.com/pcarrier/afuse.git", + tag: "v0.5.0", + revision: "d7f07c32e58850fa092bb98b53c5c570fed8be69" license "GPL-2.0-only" bottle do - root_url "https://github.com/gromgit/homebrew-fuse/releases/download/afuse-mac-0.4.1" - sha256 cellar: :any_skip_relocation, arm64_monterey: "01b0427125830477ef5e6780d4a68d2bae93c78f7b60e7973e7bb60e7b177057" - sha256 cellar: :any, monterey: "5641548745baf07dfae84ae670c96f202ae84b94e12c2fed60eed4aecf3bafc4" - sha256 cellar: :any, big_sur: "d14a7e51b8d3fd8c7b3419ab06011e5e14c89b6d8c8f46dbe66b80ea3c97fa1f" - sha256 cellar: :any, catalina: "bf5f4add8d2e8a2c9ad50e2508771f3c51fded35c21f7a23cf95b364e98f9c7a" - sha256 cellar: :any, mojave: "577023bd06623a90ca245be88fbb49041a71cc1e4852195dc5d9d3b2bbdaf617" + root_url "https://ghcr.io/v2/gromgit/fuse" + sha256 cellar: :any_skip_relocation, arm64_sonoma: "d0b0e74b43c27ce951eec136e4c45a98c43edc39cceeb95418f43c2d5bfa9afe" + sha256 cellar: :any, ventura: "81eac9045ff5882fa86b3e40c6562bbed06cf1346ec5fb368033511cab03c982" end + depends_on "autoconf" => :build + depends_on "automake" => :build depends_on "pkg-config" => :build depends_on MacfuseRequirement depends_on :macos def install setup_fuse + system "./autogen.sh" system "./configure", "--disable-dependency-tracking", "--prefix=#{prefix}" system "make", "install" end diff --git a/Formula/archivemount-mac.rb b/Formula/archivemount-mac.rb index 00f6ac2..3837be8 100644 --- a/Formula/archivemount-mac.rb +++ b/Formula/archivemount-mac.rb @@ -2,33 +2,27 @@ require_relative "../require/macfuse" class ArchivemountMac < Formula desc "File system for accessing archives using libarchive" - homepage "https://www.cybernoia.de/software/archivemount.html" - url "https://www.cybernoia.de/software/archivemount/archivemount-0.9.1.tar.gz" - sha256 "c529b981cacb19541b48ddafdafb2ede47a40fcaf16c677c1e2cd198b159c5b3" + homepage "https://git.sr.ht/~nabijaczleweli/archivemount-ng" + url "https://git.sr.ht/~nabijaczleweli/archivemount-ng/archive/1b.tar.gz" + version "1b" + sha256 "de10cfee3bff8c1dd2b92358531d3c0001db36a99e1098ed0c9d205d110e903d" + license "LGPL-2.0-or-later" bottle do - root_url "https://github.com/gromgit/homebrew-fuse/releases/download/archivemount-mac-0.9.1" - sha256 cellar: :any, arm64_monterey: "c79ff7d0b53fbdad256912dbfd3e92727e0f68d5248281e1ffdac941b1b1cfc5" - sha256 cellar: :any, monterey: "b938c74e2a690d66ebb85a82e75cbca0a9724d7fdb8596818588975a1f1adad5" - sha256 cellar: :any, big_sur: "84dfb26c79c5d3cd6596bbbbb1398dd7d0a855eab32ff2b1192cd36235c34ab9" - sha256 cellar: :any, catalina: "0d838c1b6684201cf9ff7bcc1120052bfce87c31950622961852a9e17243cd94" - sha256 cellar: :any, mojave: "42170c737f1fd151a4e36276c6929fe49aa69137886238ec38f04a84c123f26b" + root_url "https://ghcr.io/v2/gromgit/fuse" + sha256 cellar: :any, arm64_tahoe: "e0aa81ce9ae8fb880b340b02077e03acaf1d4f489554a411bf4430ba3a558f31" + sha256 cellar: :any, arm64_sequoia: "fa4e1c0bbd16a705f0746d9c1721e3a5ebf9fc664b49291dd0390129542595ae" + sha256 cellar: :any, arm64_sonoma: "ab28653f06c95589c740800b90187182cf45abffa2dda25146881dceaa963152" end - depends_on "pkg-config" => :build + depends_on "pkgconf" => :build depends_on "libarchive" depends_on MacfuseRequirement depends_on :macos def install - setup_fuse - ENV.append_to_cflags "-I/usr/local/include/osxfuse" - system "./configure", "--disable-debug", - "--disable-dependency-tracking", - "--disable-silent-rules", - "--prefix=#{prefix}" - - system "make", "install" + setup_fuse3 + system "make", "PREFIX=#{prefix}", "install" end test do diff --git a/Formula/avfs-mac.rb b/Formula/avfs-mac.rb index aaaae48..cfc883e 100644 --- a/Formula/avfs-mac.rb +++ b/Formula/avfs-mac.rb @@ -3,37 +3,42 @@ require_relative "../require/macfuse" class AvfsMac < Formula desc "Virtual file system that facilitates looking inside archives" homepage "https://avf.sourceforge.io/" - url "https://downloads.sourceforge.net/project/avf/avfs/1.1.4/avfs-1.1.4.tar.bz2" - sha256 "3a7981af8557f864ae10d4b204c29969588fdb526e117456e8efd54bf8faa12b" + url "https://downloads.sourceforge.net/project/avf/avfs/1.2.0/avfs-1.2.0.tar.bz2" + sha256 "a25a8ec43c1ee172624e1a4c79ce66a1b930841cdb545b725f1ec64bcabe889c" + license all_of: [ + "GPL-2.0-only", + "LGPL-2.0-only", # for shared library + "GPL-2.0-or-later", # modules/dav_ls.c + "Zlib", # zlib/* + ] - bottle do - root_url "https://github.com/gromgit/homebrew-fuse/releases/download/avfs-mac-1.1.4" - sha256 arm64_monterey: "77b8561c90e28063cfe2bfb9731f21a16a6d85104d6406c050c38e4fd2aa0be3" - sha256 monterey: "73ab1cbd3df13518d52387613e24f0550e5a39c4d49f7ab58b20e4006ca5058f" - sha256 big_sur: "536a8ff3129d4ca73bafa08d059ecaa057dec2a24b0c4509762e8f62ad1117ca" - sha256 catalina: "edfe514eaacc649484b26a67f37a2c8aa38d4bf7cff97ff06477417df4396701" - sha256 mojave: "eb4171d8c40b058d72fb0cbf480c21c0a89b201498fcc37d2dfd4c050219aacd" + livecheck do + url :stable + regex(%r{url=.*?/avfs[._-]v?(\d+(?:\.\d+)+)\.t}i) end - depends_on "pkg-config" => :build + bottle do + root_url "https://ghcr.io/v2/gromgit/fuse" + sha256 arm64_sonoma: "925ae6c3197657008289364ab4549266ea0a4a1a782314d6759eb97571f5d5e3" + sha256 ventura: "0d46af6e0d31f778779b687dc7adadbf1afac641e2c2e35f8c837726ab635c37" + end + + depends_on "pkgconf" => :build + depends_on "bzip2" depends_on MacfuseRequirement depends_on :macos - depends_on "openssl@1.1" depends_on "xz" + depends_on "zlib" def install setup_fuse - args = %W[ - --prefix=#{prefix} - --disable-debug - --disable-dependency-tracking - --disable-silent-rules - --enable-fuse - --enable-library - --with-ssl=#{Formula["openssl@1.1"].opt_prefix} - ] - - system "./configure", *args + system "./configure", "--disable-silent-rules", + "--enable-fuse", + "--enable-library", + "--with-system-zlib", + "--with-system-bzlib", + "--with-xz", + *std_configure_args system "make", "install" end diff --git a/Formula/bindfs-mac.rb b/Formula/bindfs-mac.rb index 6d09a45..9cfa455 100644 --- a/Formula/bindfs-mac.rb +++ b/Formula/bindfs-mac.rb @@ -3,21 +3,19 @@ require_relative "../require/macfuse" class BindfsMac < Formula desc "FUSE file system for mounting to another location" homepage "https://bindfs.org/" - url "https://bindfs.org/downloads/bindfs-1.17.0.tar.gz" - sha256 "70da57d49e7794fe54b8575bfdd6a7943aab54ada2e8e2fdf4be04e0011451dc" + url "https://bindfs.org/downloads/bindfs-1.18.0.tar.gz" + sha256 "46fcf95b871109265e93cd42e5ae282c722716488ad9f0da1e1f98535be37f7a" license "GPL-2.0-or-later" bottle do - root_url "https://github.com/gromgit/homebrew-fuse/releases/download/bindfs-mac-1.17.0" - sha256 cellar: :any_skip_relocation, arm64_monterey: "c55b77b90b0de6383e757f854da33b7fdb188d17128dcf0848342ba0aba67162" - sha256 cellar: :any, monterey: "a89ee7436ed6268759ab8d118ae33f2e7ef08f9f6f4362c6b9d86c1b80660bf3" - sha256 cellar: :any, big_sur: "438df92ca7ec74d8d30897ad4bc9f45ba10a8a97523df5892ac8970992819bcf" - sha256 cellar: :any, catalina: "ccb850e290a88fa78930c2920854766385d3cfeb8e4537278cc918745a88a056" - sha256 cellar: :any, mojave: "c48f0834685c79d272f7af5801f9b8cab86686b5d0e82b255b028f1f4a57a115" + root_url "https://ghcr.io/v2/gromgit/fuse" + sha256 cellar: :any_skip_relocation, arm64_sonoma: "18280a50ddee23ed3cfd05cb40e6a69a1d343ce118553f5098e9e9d289b66fb4" + sha256 cellar: :any, ventura: "a2c590ee0ca1bfc22e4e485b680490791e9a17812f8b9041c2469063280641e1" end head do - url "https://github.com/mpartel/bindfs.git" + url "https://github.com/mpartel/bindfs.git", branch: "master" + depends_on "autoconf" => :build depends_on "automake" => :build depends_on "libtool" => :build @@ -29,18 +27,10 @@ class BindfsMac < Formula def install setup_fuse - args = %W[ - --disable-debug - --disable-dependency-tracking - --prefix=#{prefix} - ] - - if build.head? - system "./autogen.sh", *args - else - system "./configure", *args - end - + # https://github.com/mpartel/bindfs/issues/163#issuecomment-2854763292 + ENV.append "CFLAGS", "-D_DARWIN_C_SOURCE" + configure = build.head? ? "./autogen.sh" : "./configure" + system configure, "--disable-macos-fs-link", *std_configure_args system "make", "install" end diff --git a/Formula/btfs-mac.rb b/Formula/btfs-mac.rb index 54aa408..0c2d9ec 100644 --- a/Formula/btfs-mac.rb +++ b/Formula/btfs-mac.rb @@ -3,40 +3,40 @@ require_relative "../require/macfuse" class BtfsMac < Formula desc "BitTorrent filesystem based on FUSE" homepage "https://github.com/johang/btfs" - url "https://github.com/johang/btfs/archive/v2.24.tar.gz" + url "https://github.com/johang/btfs/archive/refs/tags/v2.24.tar.gz" sha256 "d71ddefe3c572e05362542a0d9fd0240d8d4e1578ace55a8b3245176e7fd8935" license "GPL-3.0-only" - head "https://github.com/johang/btfs.git" + revision 1 + head "https://github.com/johang/btfs.git", branch: "master" bottle do - root_url "https://github.com/gromgit/homebrew-fuse/releases/download/btfs-mac-2.24" - sha256 cellar: :any, arm64_monterey: "725bfa8256133728271bd4c586ae03d2ed1922575ecf3ff4305a80becaaf8a06" - sha256 cellar: :any, monterey: "443e68c98b9a5861e90993b1afc2552804cb688082b399700ff6326d3f9fc08e" - sha256 cellar: :any, big_sur: "d92d62980a61112eaf05240b150122226cabaaeb9e52910d06a3db5475c9cf0d" - sha256 cellar: :any, catalina: "8820a96d3817703851cae7871711fc635a94dfc419fffeba70155f8fd09a21bf" - sha256 cellar: :any, mojave: "10516fbacf59d585f1f28fc5c883f77724de7b1e49c094aabb0fe5ee4c8e07e5" + root_url "https://ghcr.io/v2/gromgit/fuse" + sha256 cellar: :any, arm64_sonoma: "71e05be0beb418720d313a63f10cfea741d648bf78630b497eb2c51a5003d319" + sha256 cellar: :any, ventura: "388cc358e3c9372768469b6b1021f43d8def07f372aaef6e3f5d2d80bc93be48" end depends_on "autoconf" => :build depends_on "automake" => :build - depends_on "pkg-config" => :build + depends_on "pkgconf" => :build depends_on "libtorrent-rasterbar" depends_on MacfuseRequirement depends_on :macos def install setup_fuse - ENV.cxx11 - inreplace "configure.ac", "fuse >= 2.8.0", "fuse >= 2.7.3" - system "autoreconf", "--force", "--install" - system "./configure", "--disable-debug", - "--disable-dependency-tracking", - "--disable-silent-rules", - "--prefix=#{prefix}" + system "autoreconf", "--force", "--install", "--verbose" + system "./configure", *std_configure_args, "--disable-silent-rules" system "make", "install" end + def caveats + <<~EOS + Mounting a torrent is fairly quick, but unmounting takes a long time. + Be patient. + EOS + end + test do - system "#{bin}/btfs", "--help" + assert_match version.to_s, shell_output("#{bin}/btfs --version 2>&1") end end diff --git a/Formula/cryfs-mac.rb b/Formula/cryfs-mac.rb index a680bd4..e22643a 100644 --- a/Formula/cryfs-mac.rb +++ b/Formula/cryfs-mac.rb @@ -3,51 +3,46 @@ require_relative "../require/macfuse" class CryfsMac < Formula desc "Encrypts your files so you can safely store them in Dropbox, iCloud, etc." homepage "https://www.cryfs.org" - url "https://github.com/cryfs/cryfs/releases/download/0.11.2/cryfs-0.11.2.tar.xz" - sha256 "951ef565d37521df5586b00ed898f1cb76188739c27b9db866cc91ca14fdf1bd" - license "LGPL-3.0-only" + url "https://github.com/cryfs/cryfs/releases/download/1.0.3/cryfs-1.0.3.tar.xz" + sha256 "1f30cc406e5c811490ba14174518a797a80442bfff317a2fdfbc5d21205b9dfe" + license "LGPL-3.0-or-later" + head "https://github.com/cryfs/cryfs.git", branch: "develop" bottle do - root_url "https://github.com/gromgit/homebrew-fuse/releases/download/cryfs-mac-0.11.2" - sha256 cellar: :any, arm64_monterey: "f4b9f8c635f85b06dc55ef6f1bf44c2b30d2d6635fa43834df73b973399b2032" - sha256 cellar: :any, monterey: "b6385cbf5baa774ef3b68cdedcba883523b768238be6318b2613bed61d5b0aea" - sha256 cellar: :any, big_sur: "b0bd3cfc1c8f466df9edd09abb9927561a2d057561137889931a95f94fe915bb" - sha256 cellar: :any, catalina: "e75d601613188573b09714d0829c1309f3b7acaa822e1046484ed8df93881b9c" - sha256 cellar: :any, mojave: "1d9df6d37cfe7f8c36ef942bcc093a3e8a50318ace2ebc5a7500af9120a589b2" - end - - head do - url "https://github.com/cryfs/cryfs.git", branch: "develop", shallow: false + root_url "https://ghcr.io/v2/gromgit/fuse" + sha256 cellar: :any, arm64_tahoe: "cf79aa4893fe09f288540e992d1c8065cdab0344ada444ed4099c5e80fd5d910" + sha256 cellar: :any, arm64_sequoia: "009d5696e71ed22394ff67d5a9e45bfcf605d0d9347f9db7d6316bf336a5e1d7" + sha256 cellar: :any, arm64_sonoma: "ab98abc9ef34928585d59a7dd93a7d9de1cedadac40b7ab797c515ba06168b44" end depends_on "cmake" => :build - depends_on "conan" => :build - depends_on "ninja" => :build - depends_on "pkg-config" => :build + depends_on "pkgconf" => :build + depends_on "python@3.13" => :build + depends_on "boost" depends_on "curl" + depends_on "fmt" depends_on "libomp" depends_on MacfuseRequirement depends_on :macos - depends_on "openssl@1.1" + depends_on "range-v3" + depends_on "spdlog" def install setup_fuse - libomp = Formula["libomp"] - configure_args = [ - "-GNinja", + libomp_args = [ "-DBUILD_TESTING=off", "-DOpenMP_CXX_FLAGS='-Xpreprocessor -fopenmp -I#{libomp.include}'", "-DOpenMP_CXX_LIB_NAMES=omp", "-DOpenMP_omp_LIBRARY=#{libomp.lib}/libomp.dylib", ] - # macFUSE puts pkg-config into /usr/local/lib/pkgconfig, which is not included in - # homebrew's default PKG_CONFIG_PATH. We need to tell pkg-config about this path for our build - ENV.prepend_path "PKG_CONFIG_PATH", "#{HOMEBREW_PREFIX}/lib/pkgconfig" - - system "cmake", ".", *configure_args, *std_cmake_args - system "ninja", "install" + system "cmake", "-B", "build", "-S", ".", + "-DCRYFS_UPDATE_CHECKS=OFF", + "-DDEPENDENCY_CONFIG=cmake-utils/DependenciesFromLocalSystem.cmake", + *libomp_args, *std_cmake_args + system "cmake", "--build", "build" + system "cmake", "--install", "build" end test do diff --git a/Formula/curlftpfs-mac.rb b/Formula/curlftpfs-mac.rb index c28bbcc..20aac84 100644 --- a/Formula/curlftpfs-mac.rb +++ b/Formula/curlftpfs-mac.rb @@ -2,36 +2,33 @@ require_relative "../require/macfuse" class CurlftpfsMac < Formula desc "Filesystem for accessing FTP hosts based on FUSE and libcurl" - homepage "https://curlftpfs.sourceforge.io/" + homepage "https://curlftpfs.sourceforge.net/" url "https://downloads.sourceforge.net/project/curlftpfs/curlftpfs/0.9.2/curlftpfs-0.9.2.tar.gz" sha256 "4eb44739c7078ba0edde177bdd266c4cfb7c621075f47f64c85a06b12b3c6958" + license "GPL-2.0-only" head ":pserver:anonymous:@curlftpfs.cvs.sourceforge.net:/cvsroot/curlftpfs", using: :cvs bottle do - root_url "https://github.com/gromgit/homebrew-fuse/releases/download/curlftpfs-mac-0.9.2" - sha256 cellar: :any, arm64_monterey: "172f79e5a34ad1e14deaaa60af373a23000272842c56e95436a929e539236046" - sha256 cellar: :any, monterey: "cdfd5ef137f06d76e5ee7f7f62fee475fc07c6858ad461b1b3ba1e0d0f811555" - sha256 cellar: :any, big_sur: "cd9cee6bb3058e276f82313f91a1647466b7d7ad385aaeaae75d66f9f6fa56f4" - sha256 cellar: :any, catalina: "989cd7c3567a7f55aa7f6b32f251adbfdf508c35515a38cd0030d66ff11c36d1" - sha256 cellar: :any, mojave: "a29922525b73e1083725b7b15ff047f55d63314e794c4a9060c271274f379aa0" + root_url "https://ghcr.io/v2/gromgit/fuse" + rebuild 1 + sha256 cellar: :any, arm64_sonoma: "52266b0b218496e9f24f982e74165991d97b49791862e683fb240d635e63f063" + sha256 cellar: :any, ventura: "1ed49dce5000b70b4ef4e47b3d8c535b4c25994cde3122a461483aa34e5d6cbe" end depends_on "autoconf" => :build depends_on "automake" => :build depends_on "libtool" => :build - depends_on "pkg-config" => :build + depends_on "pkgconf" => :build + depends_on "curl" depends_on "glib" depends_on MacfuseRequirement depends_on :macos - # 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", - "--prefix=#{prefix}" + system "autoreconf", "--force", "--install", "--verbose" + system "./configure", *std_configure_args system "make", "install" end diff --git a/Formula/dislocker-mac.rb b/Formula/dislocker-mac.rb index c93ad02..c6b9512 100644 --- a/Formula/dislocker-mac.rb +++ b/Formula/dislocker-mac.rb @@ -3,34 +3,38 @@ require_relative "../require/macfuse" class DislockerMac < Formula desc "FUSE driver to read/write Windows' BitLocker-ed volumes" homepage "https://github.com/Aorimn/dislocker" - url "https://github.com/Aorimn/dislocker/archive/v0.7.3.tar.gz" + url "https://github.com/Aorimn/dislocker/archive/refs/tags/v0.7.3.tar.gz" sha256 "8d5275577c44f2bd87f6e05dd61971a71c0e56a9cbedf000bd38deadd8b6c1e6" - license "GPL-2.0-or-later" - revision 1 + license "GPL-2.0-only" + revision 2 bottle do - root_url "https://github.com/gromgit/homebrew-fuse/releases/download/dislocker-mac-0.7.3" - rebuild 1 - sha256 arm64_monterey: "911c8174a086be60b70d9a1d3caf7ca02d35830ec34d1870bf05b17d24b7321c" - sha256 monterey: "701af14f991f776425578a38ee054bca520f4d2310071a90031df65558e6132a" - sha256 big_sur: "2d972fe6fb9e2cba0674c4309805166224cdf8a752d5855eb8d52758e2378856" - sha256 catalina: "14cea99377a68eef03508d53550987025eab4b1d0cdf4d07e7b144f0489d7594" - sha256 mojave: "51573fbf958a3ceb98a57b28d1f2ab2548cbd4f51eb5ed9cec7aa0e236be39d6" + root_url "https://ghcr.io/v2/gromgit/fuse" + sha256 cellar: :any, arm64_sonoma: "018c699c1d89ce79a16974486a39b5a23763cd4fc0063d1de9bc326a34fa5a40" + sha256 cellar: :any, ventura: "054aa62cbb45f561f88d200c95b308a45126320b361b5807dea5064ace6bf894" end depends_on "cmake" => :build depends_on MacfuseRequirement depends_on :macos - depends_on "mbedtls@2" + depends_on "mbedtls" + + # Backport support for mbedtls 3.x + patch do + url "https://github.com/Aorimn/dislocker/commit/2cfbba2c8cc07e529622ba134d0a6982815d2b30.patch?full_index=1" + sha256 "07e0e3cac520a04a478f1f08d612340fc2743fd492b0835c7fb41cfdb5ef4244" + end # Fix OSXFUSE-isms patch :DATA def install setup_fuse - system "cmake", "-DCMAKE_DISABLE_FIND_PACKAGE_Ruby=TRUE", *fuse_cmake_args, *std_cmake_args - system "make" - system "make", "install" + system "cmake", "-S", ".", "-B", "build", + "-DCMAKE_DISABLE_FIND_PACKAGE_Ruby=TRUE", + *fuse_cmake_args, *std_cmake_args + system "cmake", "--build", "build" + system "cmake", "--install", "build" end test do diff --git a/Formula/dwarfs-fuse-mac.rb b/Formula/dwarfs-fuse-mac.rb new file mode 100644 index 0000000..e6b35b4 --- /dev/null +++ b/Formula/dwarfs-fuse-mac.rb @@ -0,0 +1,150 @@ +require_relative "../require/macfuse" + +class DwarfsFuseMac < Formula + desc "Fast high compression read-only file system (macFUSE driver)" + homepage "https://github.com/mhx/dwarfs" + 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 2 + + livecheck do + url :stable + regex(/^(?:release[._-])?v?(\d+(?:\.\d+)+)$/i) + strategy :github_latest + end + + bottle do + root_url "https://ghcr.io/v2/gromgit/fuse" + sha256 arm64_tahoe: "c9f9e2ee142c6250c83e6fc37a885e2ba84dcb6146becc0dfe2cd1183deeda42" + sha256 arm64_sequoia: "b2f5010b2c6adde00ea38254045aa61671ad40e08e27cd86617dc291d9664112" + sha256 arm64_sonoma: "33574825dad792929955c4356d6ff1e30f75172b0c4e48849c42c360fe530f7e" + end + + depends_on "cmake" => :build + depends_on "googletest" => :build + depends_on "pkgconf" => :build + depends_on "boost" + depends_on "brotli" + depends_on "double-conversion" + depends_on "flac" + depends_on "fmt" + depends_on "gflags" + depends_on "glog" + depends_on "howard-hinnant-date" + depends_on "libarchive" + depends_on "libevent" + depends_on "libsodium" + depends_on "llvm" if DevelopmentTools.clang_build_version <= 1500 + depends_on "lz4" + depends_on MacfuseRequirement + depends_on :macos + depends_on "nlohmann-json" + depends_on "openssl@3" + depends_on "parallel-hashmap" + depends_on "range-v3" + depends_on "utf8cpp" + depends_on "xxhash" + depends_on "xz" + depends_on "zstd" + + conflicts_with "dwarfs", because: "both install the same binaries" + + fails_with :clang do + build 1500 + cause "Not all required C++20 features are supported" + end + + # Workaround for Boost 1.89.0 until upstream Folly fix. + # Issue ref: https://github.com/facebook/folly/issues/2489 + # Fix to Undefined symbols for architecture x86_64: "_XXH3_64bits" + patch :DATA + + def install + args = %W[ + -DBUILD_SHARED_LIBS=ON + -DCMAKE_INSTALL_RPATH=#{rpath} + -DWITH_LIBDWARFS=ON + -DWITH_TOOLS=ON + -DWITH_FUSE_DRIVER=ON + -DWITH_TESTS=ON + -DWITH_MAN_PAGES=ON + -DENABLE_PERFMON=ON + -DTRY_ENABLE_FLAC=ON + -DENABLE_RICEPP=ON + -DENABLE_STACKTRACE=OFF + -DDISABLE_CCACHE=ON + -DDISABLE_MOLD=ON + -DPREFER_SYSTEM_GTEST=ON + ] + + if DevelopmentTools.clang_build_version <= 1500 + # No ASAN for folly + ENV.append "CXXFLAGS", "-D_LIBCPP_HAS_NO_ASAN" + + ENV.llvm_clang + + # Needed in order to find the C++ standard library + # See: https://github.com/Homebrew/homebrew-core/issues/178435 + ENV.prepend "LDFLAGS", "-L#{Formula["llvm"].opt_lib}/unwind -lunwind" + 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" + end + + test do + # produce a dwarfs image + system bin/"mkdwarfs", "-i", prefix, "-o", "test.dwarfs", "-l4" + + # check the image + system bin/"dwarfsck", "test.dwarfs" + + # get JSON info about the image + info = JSON.parse(shell_output("#{bin}/dwarfsck test.dwarfs -j")) + assert_equal info["created_by"], "libdwarfs v#{version}" + assert info["inode_count"] >= 10 + + # extract the image + system bin/"dwarfsextract", "-i", "test.dwarfs" + assert_path_exists "bin/mkdwarfs" + assert_path_exists "share/man/man1/mkdwarfs.1" + assert compare_file bin/"mkdwarfs", "bin/mkdwarfs" + + (testpath/"test.cpp").write <<~CPP + #include + #include + + int main(int argc, char **argv) { + int v = dwarfs::get_dwarfs_library_version(); + int major = v / 10000; + int minor = (v % 10000) / 100; + int patch = v % 100; + std::cout << major << "." << minor << "." << patch << std::endl; + return 0; + } + CPP + + # ENV.llvm_clang doesn't work in the test block + ENV["CXX"] = Formula["llvm"].opt_bin/"clang++" if OS.mac? && DevelopmentTools.clang_build_version <= 1500 + + system ENV.cxx, "-std=c++20", "test.cpp", "-I#{include}", "-L#{lib}", "-o", "test", "-ldwarfs_common" + + assert_equal version.to_s, shell_output("./test").chomp + end +end + +__END__ +--- a/folly/CMake/folly-config.cmake.in ++++ b/folly/CMake/folly-config.cmake.in +@@ -38,7 +38,6 @@ find_dependency(Boost 1.51.0 MODULE + filesystem + program_options + regex +- system + thread + REQUIRED + ) diff --git a/Formula/encfs-mac.rb b/Formula/encfs-mac.rb index 0e31ccf..d8b31cc 100644 --- a/Formula/encfs-mac.rb +++ b/Formula/encfs-mac.rb @@ -3,37 +3,43 @@ require_relative "../require/macfuse" class EncfsMac < Formula desc "Encrypted pass-through FUSE file system" homepage "https://vgough.github.io/encfs/" - url "https://github.com/vgough/encfs/archive/v1.9.5.tar.gz" + url "https://github.com/vgough/encfs/archive/refs/tags/v1.9.5.tar.gz" sha256 "4709f05395ccbad6c0a5b40a4619d60aafe3473b1a79bafb3aa700b1f756fd63" # The code comprising the EncFS library (libencfs) is licensed under the LGPL. # The main programs (encfs, encfsctl, etc) are licensed under the GPL. - license all_of: ["GPL-3.0-only", "LGPL-3.0-only", "MIT", "Zlib"] - head "https://github.com/vgough/encfs.git" + license "GPL-3.0-or-later" + revision 2 + head "https://github.com/vgough/encfs.git", branch: "master" bottle do - root_url "https://github.com/gromgit/homebrew-fuse/releases/download/encfs-mac-1.9.5" - sha256 arm64_monterey: "238100c7b23cb0b9030c72f707402947f58b354d3e9af7121100c23498d7c915" - sha256 monterey: "606d9e55178edbf88c29b36942740f731ace9c913e8db1c0351cc821276115a5" - sha256 big_sur: "1e40532f256119f88304d5fa3033b8a60e513f3c3531cd3471455a83fcebafa7" - sha256 catalina: "ab083e7303625337405e8f384f99d51a5208c54f4cd713dbd99b3bc196da2e90" - sha256 mojave: "7c363d28eac6e6582b352202db79f17f0a0efa4871a4991313c158cd04911dcd" + root_url "https://ghcr.io/v2/gromgit/fuse" + sha256 arm64_sonoma: "04797584c9dde670d286a5369261def970ab4a5b84081999874fe84b9e24dee6" + sha256 ventura: "c1378c0f82327e7ad461b6215b7e88680d4326e94736955879313931ceacaf7a" end depends_on "cmake" => :build - depends_on "pkg-config" => :build + depends_on "pkgconf" => :build depends_on "gettext" depends_on MacfuseRequirement depends_on :macos - depends_on "openssl@1.1" + depends_on "openssl@3" + depends_on "tinyxml2" + + patch do + url "https://github.com/vgough/encfs/commit/75080681626062e5832aec0b1bb3aa37d8364822.patch?full_index=1" + sha256 "0222bc4a4f03541b1523b03471f6af5925d4ed2a4c0d36a9a6fe39a18c036770" + end def install setup_fuse ENV.cxx11 - - mkdir "build" do - system "cmake", "..", *fuse_cmake_args, *std_cmake_args - system "make", "install" - end + system "cmake", "-S", ".", "-B", "build", + "-DBUILD_UNIT_TESTS=OFF", + "-DUSE_INTERNAL_TINYXML=OFF", + "-DCMAKE_POLICY_VERSION_MINIMUM=3.5", + *std_cmake_args + system "cmake", "--build", "build" + system "cmake", "--install", "build" end test do diff --git a/Formula/ext2fuse-mac.rb b/Formula/ext2fuse-mac.rb index 7f780a5..ee6ad53 100644 --- a/Formula/ext2fuse-mac.rb +++ b/Formula/ext2fuse-mac.rb @@ -5,14 +5,13 @@ class Ext2fuseMac < Formula homepage "https://sourceforge.net/projects/ext2fuse" url "https://downloads.sourceforge.net/project/ext2fuse/ext2fuse/0.8.1/ext2fuse-src-0.8.1.tar.gz" sha256 "431035797b2783216ec74b6aad5c721b4bffb75d2174967266ee49f0a3466cd9" + license "GPL-2.0-or-later" bottle do - root_url "https://github.com/gromgit/homebrew-fuse/releases/download/ext2fuse-mac-0.8.1" - sha256 cellar: :any_skip_relocation, arm64_monterey: "db2bd76b01aea52dd68f9659126fdc87adeb15ad561fe60af20ff09ce9327e51" - sha256 cellar: :any, monterey: "73a7f099cb28d5fd7a25059da15a6cd7827fa991108c68b8de588b38aecb2bc0" - sha256 cellar: :any, big_sur: "8dba44571e8df43bac8356f7fe74719200f965318e9075fdc717e863dbf8aad7" - sha256 cellar: :any, catalina: "0b24132b10c92b0f9ca6bde9c72caa54281e812c07f1f491034fe71e305eba67" - sha256 cellar: :any, mojave: "e46c5e7eff79716a8e075752e429bea3e9027b6516538df45fbbdc98ba878b94" + root_url "https://ghcr.io/v2/gromgit/fuse" + rebuild 1 + sha256 cellar: :any_skip_relocation, arm64_sonoma: "1fea57a1f597f489ac0a58e6c75b4a7ea970b07f33d7c31dfe1a812a8029bf02" + sha256 cellar: :any, ventura: "8935e712ae67cb680c77a88dbf6aa6c66f4b294c67aefc557dce55c5c8bd5f41" end depends_on "gcc" => :build @@ -27,8 +26,7 @@ class Ext2fuseMac < Formula "-D__FreeBSD__=10 -DENABLE_SWAPFS -I/usr/local/include/fuse " ENV.append "CFLAGS", "--std=gnu89" if ENV.compiler == :clang - system "./configure", "--disable-debug", "--disable-dependency-tracking", - "--prefix=#{prefix}" + system "./configure", *std_configure_args system "make", "install" end diff --git a/Formula/ext4fuse-mac.rb b/Formula/ext4fuse-mac.rb index 651f223..40a4de1 100644 --- a/Formula/ext4fuse-mac.rb +++ b/Formula/ext4fuse-mac.rb @@ -3,21 +3,19 @@ require_relative "../require/macfuse" class Ext4fuseMac < Formula desc "Read-only implementation of ext4 for FUSE" homepage "https://github.com/gerard/ext4fuse" - url "https://github.com/gerard/ext4fuse/archive/v0.1.3.tar.gz" + url "https://github.com/gerard/ext4fuse/archive/refs/tags/v0.1.3.tar.gz" sha256 "550f1e152c4de7d4ea517ee1c708f57bfebb0856281c508511419db45aa3ca9f" license "GPL-2.0-only" - head "https://github.com/gerard/ext4fuse.git" + head "https://github.com/gerard/ext4fuse.git", branch: "master" bottle do - root_url "https://github.com/gromgit/homebrew-fuse/releases/download/ext4fuse-mac-0.1.3" - sha256 cellar: :any_skip_relocation, arm64_monterey: "ebf7eb8b1131e195e1cf0a73b7485bcd687a57c05f34efaea564f41e12bbd4ec" - sha256 cellar: :any, monterey: "042a1154d62ef7779b9ddb5f21b4b4d04d388119b064d57a0d6cf8829d687a9e" - sha256 cellar: :any, big_sur: "9105318c87415a8c9466580b92c4e370abffaab1addb33712fd9d6ff78ed4824" - sha256 cellar: :any, catalina: "10cb5934f23ce95bd49b76c371c919638dcd2896967718fc3950434d0538f6e8" - sha256 cellar: :any, mojave: "ddda15d4eac7e188e0fae145301c25acba30e0dbaa774332257a2966c2653524" + root_url "https://ghcr.io/v2/gromgit/fuse" + rebuild 1 + sha256 cellar: :any_skip_relocation, arm64_sonoma: "293d9d09f9a4d2cfb51beb789c8b2581b4419b00daa68507f3bf6c97f258aff5" + sha256 cellar: :any, ventura: "4c4f3b18a0cd8b290e52d1290ea63a87c04597f43d9c1cde6e71c487bd4a4505" end - depends_on "pkg-config" => :build + depends_on "pkgconf" => :build depends_on MacfuseRequirement depends_on :macos diff --git a/Formula/fuse-zip-mac.rb b/Formula/fuse-zip-mac.rb index 555153c..1f2e670 100644 --- a/Formula/fuse-zip-mac.rb +++ b/Formula/fuse-zip-mac.rb @@ -3,21 +3,19 @@ require_relative "../require/macfuse" class FuseZipMac < Formula desc "FUSE file system to create & manipulate ZIP archives" homepage "https://bitbucket.org/agalanin/fuse-zip" - url "https://bitbucket.org/agalanin/fuse-zip/get/0.7.2.tar.gz" - sha256 "bba004193db9841a8d9a59e927fffe24f1b92f7ad15a5694c687456617b638a2" + url "https://bitbucket.org/agalanin/fuse-zip/downloads/fuse-zip-0.7.2.tar.gz" + sha256 "3dd0be005677442f1fd9769a02dfc0b4fcdd39eb167e5697db2f14f4fee58915" license "GPL-3.0-or-later" - head "https://bitbucket.org/agalanin/fuse-zip", using: :hg + head "https://bitbucket.org/agalanin/fuse-zip", using: :hg, branch: "master" bottle do - root_url "https://github.com/gromgit/homebrew-fuse/releases/download/fuse-zip-mac-0.7.2" - sha256 cellar: :any, arm64_monterey: "5921343a41dad6c06a363adacd28acf76b6dcc57825342feae6da640bd04a1cc" - sha256 cellar: :any, monterey: "c5c646516f1642b7fc9401c7013b70fe8aa5807ac7168fee904e6c61bfc3ab7b" - sha256 cellar: :any, big_sur: "2fc541f86072d8faba8a4aa99ab1de342f38e6f4af8ffecf8764a45b1b747e2b" - sha256 cellar: :any, catalina: "b2e45519d7a30220bcbb666abc00e299436965dd64c55abe4d656542a1e0fa29" - sha256 cellar: :any, mojave: "f4c68265733a7625566fbdaa7addf5696f52909920fd940630ece3e90b80309e" + root_url "https://ghcr.io/v2/gromgit/fuse" + rebuild 1 + sha256 cellar: :any, arm64_sonoma: "07d4a035c41b76adc6fa4e320ba0e002bc6ff6e8ca52e0e47d0ad42b267762f0" + sha256 cellar: :any, ventura: "185b074a45baad043449b409896b0425ffcdc83eeac02d903f6b5a84867cb7e2" end - depends_on "pkg-config" => :build + depends_on "pkgconf" => :build depends_on "libzip" depends_on MacfuseRequirement depends_on :macos diff --git a/Formula/fusehfs-mac.rb b/Formula/fusehfs-mac.rb new file mode 100644 index 0000000..6aa1143 --- /dev/null +++ b/Formula/fusehfs-mac.rb @@ -0,0 +1,47 @@ +require_relative "../require/macfuse" + +class FusehfsMac < Formula + desc "FUSE driver for HFS filesystems" + homepage "https://thejoelpatrol.github.io/fusehfs/" + url "https://github.com/thejoelpatrol/fusehfs/archive/refs/tags/v0.1.5.tar.gz" + sha256 "0f37b0cf31d38665af279b7b5bde0a185da55d7e8e6ccdb0de9133c3740143e8" + license "GPL-2.0-or-later" + head "https://github.com/thejoelpatrol/fusehfs.git", branch: "master" + + bottle do + root_url "https://ghcr.io/v2/gromgit/fuse" + sha256 cellar: :any_skip_relocation, arm64_sonoma: "937bc2d207749a4a9008abc5961f683c6b6753703ef8e78704746bec751e6dd3" + sha256 cellar: :any, ventura: "1c82b43b527c4ebb8e7979172a093856d8b7ca1be38d668888799db82239ed2a" + end + + depends_on xcode: :build + depends_on MacfuseRequirement + depends_on :macos + + def install + setup_fuse + xcodebuild "-arch", Hardware::CPU.arch, + "-target", "FS Bundle", + "-configuration", "Release", + "CODE_SIGN_IDENTITY=-", + "SYMROOT=build", + "MACOSX_DEPLOYMENT_TARGET=#{MacOS.version}" + bin.install "build/Release/hfsck" + bin.install "build/Release/mount_fusefs_hfs" + pkgshare.install "build/Release/fusefs_hfs.fs" + end + + def caveats + <<~EOS + To add support for mounting HFS-formatted disk images via double-click, + install and re-sign the filesystem bundle with: + + codesign -f -s - $(brew --prefix)/share/fusehfs-mac/fusefs_hfs.fs + sudo ln -s $(brew --prefix)/share/fusehfs-mac/fusefs_hfs.fs /Library/Filesystems + EOS + end + + test do + assert_match version.to_s, shell_output("#{bin}/mount_fusefs_hfs --version 2>&1", 1) + end +end diff --git a/Formula/gcsfuse-mac.rb b/Formula/gcsfuse-mac.rb index 9936380..efb6ca1 100644 --- a/Formula/gcsfuse-mac.rb +++ b/Formula/gcsfuse-mac.rb @@ -3,30 +3,34 @@ 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/v0.41.2.tar.gz" - sha256 "6a64c30c28651978cf51685051ea9af1d45b9f3d5b3ded894af82c17883a34c4" + url "https://github.com/GoogleCloudPlatform/gcsfuse/archive/refs/tags/v3.5.5.tar.gz" + sha256 "ae5f26ee6969081ecd71bdc581871ebb88cb7b03a00d3bab6f9939b80bcfa39a" license "Apache-2.0" - head "https://github.com/GoogleCloudPlatform/gcsfuse.git" + head "https://github.com/GoogleCloudPlatform/gcsfuse.git", branch: "master" + + livecheck do + url :stable + strategy :github_latest + end bottle do - root_url "https://github.com/gromgit/homebrew-fuse/releases/download/gcsfuse-mac-0.41.2" - sha256 cellar: :any_skip_relocation, arm64_monterey: "a4ed90a795bb34afdf7a77aa38c6322be0d94c501a60daa0aecce138ecbdfd5b" - sha256 cellar: :any_skip_relocation, monterey: "dc0d3b705fb10edd70354773c9d477e00e05b83467f57e7b464f18a9ef768070" - sha256 cellar: :any_skip_relocation, big_sur: "4871ca5601b1bdafa2f8472ddd37accbdc597281650bb759f069b8334af3ac11" - sha256 cellar: :any_skip_relocation, catalina: "01e9e9f5bad80073ebb007a81623c71fe6246dacb249ae6e19ad56c11acf0429" - sha256 cellar: :any_skip_relocation, mojave: "041027dc8a85627097b391fa2e756463f044fe8473bc4cc21205d97efdd63935" + root_url "https://ghcr.io/v2/gromgit/fuse" + sha256 cellar: :any_skip_relocation, arm64_tahoe: "7f39bb946f29f15b669b159d3ea2b784e3836e34ee1a58406502607ba5a08dfe" + sha256 cellar: :any_skip_relocation, arm64_sequoia: "11c070d74913efa55f634e8c9a6e1cff408dcca490908b161a7863e65ba3f1f4" + sha256 cellar: :any_skip_relocation, arm64_sonoma: "3498f4c6657e881e8b21850d1c9793997535a24aeddf0d46f0e226f89097d8fe" end depends_on "go" => :build depends_on MacfuseRequirement depends_on :macos - # Review for removal on next release patch do - url "https://github.com/GoogleCloudPlatform/gcsfuse/commit/c2abca911ff03b84ab64214b6717d8d7cc74c10f.patch?full_index=1" - sha256 "62930a0ae8322a071d489b1dd386206742b962123312b1368589c731867945b4" + url "https://raw.githubusercontent.com/gromgit/formula-patches/f69773ce21e06e4c6407da25af33486f5ec6185d/gcsfuse-mac/macos.patch?full_index=1" + sha256 "ab3e204bf099cbabefee825f634cfb9c33349002059b1522488c12bf5790ef11" end + patch :DATA + def install setup_fuse # Build the build_gcsfuse tool. Ensure that it doesn't pick up any @@ -35,12 +39,34 @@ class GcsfuseMac < Formula system "go", "build", "./tools/build_gcsfuse" # Use that tool to build gcsfuse itself. - gcsfuse_version = build.head? ? Utils.git_short_head : version - system "./build_gcsfuse", buildpath, prefix, gcsfuse_version, "-buildvcs=false" + gcsfuse_version = build.head? ? Utils.git_short_head : version.to_s + system "./build_gcsfuse", buildpath, prefix, gcsfuse_version + end + + def caveats + <<~EOS + Upstream doesn't actively support macOS (https://github.com/GoogleCloudPlatform/gcsfuse/issues/1299). + EOS end test do - system "#{bin}/gcsfuse", "--help" + system bin/"gcsfuse", "--help" system "#{sbin}/mount_gcsfuse", "--help" end end + +__END__ +diff --git a/tools/build_gcsfuse/main.go b/tools/build_gcsfuse/main.go +index b1a4022..678f747 100644 +--- a/tools/build_gcsfuse/main.go ++++ b/tools/build_gcsfuse/main.go +@@ -134,8 +134,6 @@ func buildBinaries(dstDir, srcDir, version string, buildArgs []string) (err erro + cmd := exec.Command( + "go", + "build", +- "-C", +- srcDir, + "-o", + path.Join(dstDir, bin.outputPath)) + + diff --git a/Formula/gitfs-mac.rb b/Formula/gitfs-mac.rb index b14d72b..ae2a884 100644 --- a/Formula/gitfs-mac.rb +++ b/Formula/gitfs-mac.rb @@ -5,25 +5,21 @@ class GitfsMac < Formula desc "Version controlled file system" homepage "https://www.presslabs.com/gitfs" - url "https://github.com/presslabs/gitfs/archive/0.5.2.tar.gz" - sha256 "921e24311e3b8ea3a5448d698a11a747618ee8dd62d5d43a85801de0b111cbf3" + url "https://github.com/vtemian/gitfs/archive/refs/tags/v1.0.0.tar.gz" + sha256 "75835c6e4cad400c06e86ecb2efedfa7a8ffe5c5939c4e70040f6e861b4e85d3" license "Apache-2.0" - revision 1 - head "https://github.com/presslabs/gitfs.git" + head "https://github.com/vtemian/gitfs.git", branch: "main" bottle do - root_url "https://github.com/gromgit/homebrew-fuse/releases/download/gitfs-mac-0.5.2" - sha256 cellar: :any, arm64_monterey: "5aa42d1f875f89f6860de825ba6f522435e9e78361b3eddc3b32799d3c5aa498" - sha256 cellar: :any, monterey: "ba780fac3f0470ed7e5a01f2bd1b0df66918bd50eac1b58e8373e3e0dc52974d" - sha256 cellar: :any, big_sur: "e0086949aa4b8e18713a50cacb8bf2f1f73dba28e6523273b53856da35ea9dc7" - sha256 cellar: :any, catalina: "aa14fd52fbd30a3d46fd57ec011ad73fefabc3350c5b962c10c71961bc9f7265" - sha256 cellar: :any, mojave: "7d0605b4d2d6022c607ae6dfbdf87ae984b2f73bbe43e35cddf60fef0b79d3dc" + root_url "https://ghcr.io/v2/gromgit/fuse" + sha256 cellar: :any, arm64_sequoia: "e48dd7b94f4ff6bbec3b51fa4c607a04bdb2338267315d3da988c1d9f6254bd5" + sha256 cellar: :any, arm64_sonoma: "903d6859b1d8cb7d0fa54ee4294e6bd3c57d796495b4850ba4cb50b6c5bf7d63" end depends_on "libgit2" depends_on MacfuseRequirement depends_on :macos - depends_on "python@3.9" + depends_on "python@3.13" uses_from_macos "libffi" @@ -32,51 +28,40 @@ class GitfsMac < Formula sha256 "cb1378c4cd676d6f243641c50e277504abf45f70f1ea76e446efcdbb69624bbe" end - resource "cached-property" do - url "https://files.pythonhosted.org/packages/57/8e/0698e10350a57d46b3bcfe8eff1d4181642fd1724073336079cb13c5cf7f/cached-property-1.5.1.tar.gz" - sha256 "9217a59f14a5682da7c4b8829deadbfc194ac22e9908ccf7c8820234e80a1504" + resource "certifi" do + url "https://files.pythonhosted.org/packages/73/f7/f14b46d4bcd21092d7d3ccef689615220d8a08fb25e564b65d20738e672e/certifi-2025.6.15.tar.gz" + sha256 "d747aa5a8b9bbbb1bb8c22bb13e22bd1f18e9796defa16bab421f7f7a317323b" end resource "cffi" do - url "https://files.pythonhosted.org/packages/66/6a/98e023b3d11537a5521902ac6b50db470c826c682be6a8c661549cb7717a/cffi-1.14.4.tar.gz" - sha256 "1a465cbe98a7fd391d47dce4b8f7e5b921e6cd805ef421d04f5f66ba8f06086c" + url "https://files.pythonhosted.org/packages/fc/97/c783634659c2920c3fc70419e3af40972dbaf758daa229a7d6ea6135c90d/cffi-1.17.1.tar.gz" + sha256 "1c39c6016c32bc48dd54561950ebd6836e1670f2ae46128f67cf49e789c52824" end - resource "fusepy" do - url "https://files.pythonhosted.org/packages/04/0b/4506cb2e831cea4b0214d3625430e921faaa05a7fb520458c75a2dbd2152/fusepy-3.0.1.tar.gz" - sha256 "72ff783ec2f43de3ab394e3f7457605bf04c8cf288a2f4068b4cde141d4ee6bd" - end - - resource "pygit2" do - url "https://files.pythonhosted.org/packages/6b/23/a8c5b726a58282fe2cadcc63faaddd4be147c3c8e0bd38b233114adf98fd/pygit2-1.6.1.tar.gz" - sha256 "c3303776f774d3e0115c1c4f6e1fc35470d15f113a7ae9401a0b90acfa1661ac" - - # libgit2 1.3 support - # https://github.com/libgit2/pygit2/pull/1089 - patch do - url "https://raw.githubusercontent.com/Homebrew/formula-patches/54d3a0d1f241fdd4e9229312ced0d8da85d964b1/pygit2/libgit2-1.3.0.patch" - sha256 "4d501c09d6642d50d89a1a4d691980e3a4a2ebcb6de7b45d22cce16a451b9839" - end - end - - resource "six" do - url "https://files.pythonhosted.org/packages/dd/bf/4138e7bfb757de47d1f4b6994648ec67a51efe58fa907c1e11e350cddfca/six-1.12.0.tar.gz" - sha256 "d16a0141ec1a18405cd4ce8b4613101da75da0e9a7aec5bdd4fa804d0e0eba73" - end - - resource "raven" do - url "https://files.pythonhosted.org/packages/79/57/b74a86d74f96b224a477316d418389af9738ba7a63c829477e7a86dd6f47/raven-6.10.0.tar.gz" - sha256 "3fa6de6efa2493a7c827472e984ce9b020797d0da16f1db67197bcc23c8fae54" + resource "mfusepy" do + url "https://files.pythonhosted.org/packages/1c/94/c9d5dcba4a6a2b32ba23e22fd13ca08e6f5408420b2dfe42984af22277b6/mfusepy-3.0.0.tar.gz" + sha256 "eddade33e427bac9c455464cd0a7d12d63c033255ec6b1e0d6ada143a945c6f2" end resource "pycparser" do - url "https://files.pythonhosted.org/packages/68/9e/49196946aee219aead1290e00d1e7fdeab8567783e83e1b9ab5585e6206a/pycparser-2.19.tar.gz" - sha256 "a988718abfad80b6b157acce7bf130a30876d27603738ac39f140993246b25b3" + url "https://files.pythonhosted.org/packages/1d/b2/31537cf4b1ca988837256c910a668b553fceb8f069bedc4b1c826024b52c/pycparser-2.22.tar.gz" + sha256 "491c8be9c040f5390f5bf44a5b07752bd07f56edf992381b05c701439eec10f6" end - # pygit2 1.6.1 support - # https://github.com/presslabs/gitfs/pull/379 - patch :DATA + resource "pygit2" do + url "https://files.pythonhosted.org/packages/c1/4a/72a5f3572912d93d8096f8447a20fe3aff5b5dc65aca08a2083eae54d148/pygit2-1.18.0.tar.gz" + sha256 "fbd01d04a4d2ce289aaa02cf858043679bf0dd1f9855c6b88ed95382c1f5011a" + end + + resource "sentry-sdk" do + url "https://files.pythonhosted.org/packages/04/4c/af31e0201b48469786ddeb1bf6fd3dfa3a291cc613a0fe6a60163a7535f9/sentry_sdk-2.30.0.tar.gz" + sha256 "436369b02afef7430efb10300a344fb61a11fe6db41c2b11f41ee037d2dd7f45" + end + + resource "urllib3" do + url "https://files.pythonhosted.org/packages/15/22/9ee70a2574a4f4599c47dd506532914ce044817c7752a79b6a51286319bc/urllib3-2.5.0.tar.gz" + sha256 "3fc47733c7e419d4bc3f6b3dc2b4f890bb743906a30d56ba4a5bfa4bbff92760" + end def install virtualenv_install_with_resources @@ -91,7 +76,7 @@ class GitfsMac < Formula end test do - xy = Language::Python.major_minor_version Formula["python@3.9"].opt_bin/"python3" + xy = Language::Python.major_minor_version Formula["python@3.13"].opt_bin/"python3" ENV.prepend_create_path "PYTHONPATH", libexec/"lib/python#{xy}/site-packages" (testpath/"test.py").write <<~EOS @@ -100,37 +85,11 @@ class GitfsMac < Formula pygit2.init_repository('testing/.git', True) EOS - system Formula["python@3.9"].opt_bin/"python3", "test.py" - assert_predicate testpath/"testing/.git/config", :exist? + system Formula["python@3.13"].opt_bin/"python3", "test.py" + assert_path_exists testpath/"testing/.git/config" cd "testing" do system "git", "remote", "add", "homebrew", "https://github.com/Homebrew/homebrew-core.git" assert_match "homebrew", shell_output("git remote") end end end -__END__ -diff --git a/gitfs/mounter.py b/gitfs/mounter.py -index 31b436d..391e899 100644 ---- a/gitfs/mounter.py -+++ b/gitfs/mounter.py -@@ -19,7 +19,7 @@ import resource - - from fuse import FUSE - from pygit2 import Keypair, UserPass --from pygit2.remote import RemoteCallbacks -+from pygit2.callbacks import RemoteCallbacks - - from gitfs import __version__ - from gitfs.utils import Args -diff --git a/requirements.txt b/requirements.txt -index fb7d0f3..42c4d1f 100644 ---- a/requirements.txt -+++ b/requirements.txt -@@ -2,6 +2,6 @@ atomiclong==0.1.1 - cffi==1.12.3 - fusepy==3.0.1 - pycparser==2.19 --pygit2==0.28.2 -+pygit2==1.16.1 - raven==6.10.0 - six==1.12.0 diff --git a/Formula/gocryptfs-mac.rb b/Formula/gocryptfs-mac.rb index 63a847a..5ddfeb7 100644 --- a/Formula/gocryptfs-mac.rb +++ b/Formula/gocryptfs-mac.rb @@ -3,39 +3,33 @@ require_relative "../require/macfuse" class GocryptfsMac < Formula desc "Encrypted overlay filesystem written in Go" homepage "https://nuetzlich.net/gocryptfs/" - url "https://github.com/rfjakob/gocryptfs/releases/download/v2.3/gocryptfs_v2.3_src-deps.tar.gz" - sha256 "945e3287311547f9227f4a5b5d051fd6df8b8b41ce2a65f424de9829cc785129" + url "https://github.com/rfjakob/gocryptfs/releases/download/v2.6.1/gocryptfs_v2.6.1_src-deps.tar.gz" + sha256 "9a966c1340a1a1d92073091643687b1205c46b57017c5da2bf7e97e3f5729a5a" license "MIT" bottle do - root_url "https://github.com/gromgit/homebrew-fuse/releases/download/gocryptfs-mac-2.3" - sha256 cellar: :any, arm64_monterey: "0341aa2dd0a2326278296966ff0948c28a754ec96deb07c064bb4492ec23ccd4" - sha256 cellar: :any, monterey: "21c1865d764e951e7604f4e9c2f54030428f88bf14a8310d6bfc9da8114770a6" - sha256 cellar: :any, big_sur: "a070a32ab604101810789b4529d379d484e80704692634949f72c4b172d87b35" - sha256 cellar: :any, catalina: "53176991d453b646c5375816c21451b547a06fa805da95fdd5ae9157761925da" - sha256 cellar: :any, mojave: "b8304e57a71f41583174b0abec99942d2621ebdbcc0784b879ce746a100bd1cb" + root_url "https://ghcr.io/v2/gromgit/fuse" + sha256 cellar: :any, arm64_sequoia: "56a4955f379ccb148f2e269679c91af0202bb67725dc6f1ed661bb5f8c9f0b68" + sha256 cellar: :any, arm64_sonoma: "8c4634a99acb568f25b96fc752b3bdb7a16d830e96126b93ee5a354a4dc67b2d" + sha256 cellar: :any, ventura: "40cda455675c2f6a0970c1c5388797da874758bf8f50d57fa4bf6ff448ab1edd" end depends_on "go" => :build depends_on "pkg-config" => :build depends_on MacfuseRequirement depends_on :macos - depends_on "openssl@1.1" + depends_on "openssl@3" def install setup_fuse - ENV["GOPATH"] = buildpath - (buildpath/"src/github.com/rfjakob/gocryptfs").install buildpath.children - cd "src/github.com/rfjakob/gocryptfs" do - system "./build.bash" - bin.install "gocryptfs" - prefix.install_metafiles - end + system "./build.bash" + bin.install "gocryptfs", "gocryptfs-xray/gocryptfs-xray" + man1.install "Documentation/gocryptfs.1", "Documentation/gocryptfs-xray.1" end test do (testpath/"encdir").mkpath pipe_output("#{bin}/gocryptfs -init #{testpath}/encdir", "password", 0) - assert_predicate testpath/"encdir/gocryptfs.conf", :exist? + assert_path_exists testpath/"encdir/gocryptfs.conf" end end diff --git a/Formula/goofys-mac.rb b/Formula/goofys-mac.rb index 6b87e14..11e4242 100644 --- a/Formula/goofys-mac.rb +++ b/Formula/goofys-mac.rb @@ -17,7 +17,10 @@ class GoofysMac < Formula sha256 cellar: :any_skip_relocation, mojave: "648d204e47b710662db2b778164346ef2b9fd77a4ec02af210fc8116eee7bb7f" end - depends_on "go@1.14" => :build + # Discussion ref: https://github.com/Homebrew/homebrew-core/pull/122082#issuecomment-1436535501 + disable! date: "2024-02-12", because: :does_not_build + + depends_on "go" => :build depends_on MacfuseRequirement depends_on :macos diff --git a/Formula/hfsfuse-mac.rb b/Formula/hfsfuse-mac.rb new file mode 100644 index 0000000..e4f680e --- /dev/null +++ b/Formula/hfsfuse-mac.rb @@ -0,0 +1,32 @@ +require_relative "../require/macfuse" + +class HfsfuseMac < Formula + desc "FUSE driver for HFS+ filesystems (read-only)" + homepage "https://github.com/0x09/hfsfuse" + url "https://github.com/0x09/hfsfuse/releases/download/0.310/hfsfuse-0.310.tar.gz" + sha256 "49ad0ea6b7cbef4d55b1b436e0e772a639162fb35cc80586ba9ae49f05ad3e65" + license all_of: ["BSD-2-Clause", "MIT"] + head "https://github.com/0x09/hfsfuse.git", branch: "master" + + bottle do + root_url "https://ghcr.io/v2/gromgit/fuse" + sha256 cellar: :any, arm64_tahoe: "f3f8f016549b023c31c1fbca1998d31d5d1452319a3152b0d21a8107c0c81cf8" + sha256 cellar: :any, arm64_sequoia: "f3843985cb817343609f990fa7bd1c346453017814defbf4311c5f031c6ba8cd" + sha256 cellar: :any, arm64_sonoma: "33a1216d966ed9426cbf2be528b17556e07ce0757161d62d774a69b2b72dfd3f" + end + + depends_on "libarchive" + depends_on "lzfse" + depends_on MacfuseRequirement + depends_on :macos + + def install + setup_fuse + system "make", "install", "prefix=#{prefix}" + end + + test do + assert_match version.to_s, shell_output("#{bin}/hfsfuse --version 2>&1") + system bin/"hfsdump" + end +end diff --git a/Formula/ifuse-mac.rb b/Formula/ifuse-mac.rb index 58d65d7..0e1f563 100644 --- a/Formula/ifuse-mac.rb +++ b/Formula/ifuse-mac.rb @@ -2,25 +2,21 @@ require_relative "../require/macfuse" class IfuseMac < Formula desc "FUSE module for iOS devices" - homepage "https://www.libimobiledevice.org/" - url "https://github.com/libimobiledevice/ifuse/archive/1.1.4.tar.gz" - sha256 "2a00769e8f1d8bad50898b9d00baf12c8ae1cda2d19ff49eaa9bf580e5dbe78c" + homepage "https://libimobiledevice.org/" + url "https://github.com/libimobiledevice/ifuse/archive/refs/tags/1.2.0.tar.gz" + sha256 "29ab853037d781ef19f734936454c7f7806d1c46fbcca6e15ac179685ab37c9c" license "LGPL-2.1-or-later" - head "https://cgit.sukimashita.com/ifuse.git" + head "https://github.com/libimobiledevice/ifuse.git", branch: "master" bottle do - root_url "https://github.com/gromgit/homebrew-fuse/releases/download/ifuse-mac-1.1.4" - sha256 cellar: :any, arm64_monterey: "da8f39c40ab72cf3a5ae28b7f8b118c0aae52f1ea6249c8fb71f131752a7e679" - sha256 cellar: :any, monterey: "b2b302e5373d5461fc0d41c680e500b5874c11a195a337e265ac6fad5cb9fba3" - sha256 cellar: :any, big_sur: "f6c2e432e98e35ea512c85e9eed06015e157477c58ccc3209fc915401a4a3bdc" - sha256 cellar: :any, catalina: "bafcd207118ffb63fcb67ce909f52bde7dc2fa138a592be30e6d7cdb96580377" - sha256 cellar: :any, mojave: "5c2d874a7377fa5c91bad47e7ee82adb4d965e3019fbf4b5128c318549f66180" + root_url "https://ghcr.io/v2/gromgit/fuse" + sha256 cellar: :any, arm64_sequoia: "7b2a54ceeca52d5ada2e625f7e3edbcdd7f6eedfc8b8f6286137fb38fcff50e6" end depends_on "autoconf" => :build depends_on "automake" => :build depends_on "libtool" => :build - depends_on "pkg-config" => :build + depends_on "pkgconf" => :build depends_on "glib" depends_on "libimobiledevice" depends_on "libplist" @@ -28,10 +24,12 @@ class IfuseMac < Formula depends_on :macos def install - setup_fuse - system "./autogen.sh" - system "./configure", "--disable-dependency-tracking", - "--prefix=#{prefix}" + # This file can be generated only if `.git` directory is present + # Create it manually + (buildpath/".tarball-version").write version.to_s + + setup_fuse3 + system "./autogen.sh", *std_configure_args system "make", "install" end diff --git a/Formula/mp3fs-mac.rb b/Formula/mp3fs-mac.rb index e2dd5b5..598e404 100644 --- a/Formula/mp3fs-mac.rb +++ b/Formula/mp3fs-mac.rb @@ -8,15 +8,13 @@ class Mp3fsMac < Formula license "GPL-3.0-or-later" bottle do - root_url "https://github.com/gromgit/homebrew-fuse/releases/download/mp3fs-mac-1.1.1" - sha256 cellar: :any, arm64_monterey: "12e5a19543b2735f0efa3d932e61363e2df5fadea96ed1dc8d22e5627c42392b" - sha256 cellar: :any, monterey: "6a87fa45e92a95ef436a88352494dd2d3b2907d02e213cb24af9612a8475fa4c" - sha256 cellar: :any, big_sur: "f5d8b429073bd633bb0e3bfdf0fa5d72170e3e2c50ea35498169203c3aeb7b5a" - sha256 cellar: :any, catalina: "87445edbdfdec0ee366b5bbfb57349b4b7fc380fda83fe0c866049055ecfcda7" - sha256 cellar: :any, mojave: "64aeb9e00ab95135f27a62319c607ee47ecbaf24459e27289da40ff8c70366a2" + root_url "https://ghcr.io/v2/gromgit/fuse" + rebuild 1 + sha256 cellar: :any, arm64_sonoma: "4171a0e1383f1c17150ed12ecb88fb766df4a105ce789e79e3d67130208c4b60" + sha256 cellar: :any, ventura: "6d3d1bd7f5db566dbe51bf16dfd5c63ed79cc1ea98904d48921953ccc9b77c01" end - depends_on "pkg-config" => :build + depends_on "pkgconf" => :build depends_on "flac" depends_on "lame" depends_on "libid3tag" @@ -28,7 +26,7 @@ class Mp3fsMac < Formula def install setup_fuse - system "./configure", "--disable-dependency-tracking", "--prefix=#{prefix}" + system "./configure", *std_configure_args system "make", "install" end diff --git a/Formula/ntfs-3g-mac.rb b/Formula/ntfs-3g-mac.rb index 02b2783..aed09dc 100644 --- a/Formula/ntfs-3g-mac.rb +++ b/Formula/ntfs-3g-mac.rb @@ -3,8 +3,8 @@ require_relative "../require/macfuse" class Ntfs3gMac < Formula desc "Read-write NTFS driver for FUSE" homepage "https://www.tuxera.com/community/open-source-ntfs-3g/" - url "https://tuxera.com/opensource/ntfs-3g_ntfsprogs-2022.5.17.tgz" - sha256 "0489fbb6972581e1b417ab578d543f6ae522e7fa648c3c9b49c789510fd5eb93" + url "https://tuxera.com/opensource/ntfs-3g_ntfsprogs-2022.10.3.tgz" + sha256 "f20e36ee68074b845e3629e6bced4706ad053804cbaf062fbae60738f854170c" license all_of: ["GPL-2.0-or-later", "LGPL-2.0-or-later"] livecheck do @@ -13,12 +13,10 @@ class Ntfs3gMac < Formula end bottle do - root_url "https://github.com/gromgit/homebrew-fuse/releases/download/ntfs-3g-mac-2022.5.17" - sha256 cellar: :any, arm64_monterey: "9b56b3d030aace12240cfcca5c505a16d7403c5d08ae22880eb2edf888e59175" - sha256 cellar: :any, monterey: "ee6068cc63819c203b24ab4749bc69894beda8f8a204aaa63668f626ec7d4471" - sha256 cellar: :any, big_sur: "c279548d3d07fdb950cb98cf27d195789021c046b49ddbd3cf0c0306382f62b7" - sha256 cellar: :any, catalina: "f20a4b41c9e0e16625b40c1210898300f4e12aa87709f07c94e2c70dc5821b25" - sha256 cellar: :any, mojave: "f0691c942eae549d753e1b1dd3efe6a177e919c8975f5b0022f0cc27c7f3c870" + root_url "https://ghcr.io/v2/gromgit/fuse" + rebuild 1 + sha256 cellar: :any, arm64_sonoma: "a00edf9e9abde1b447829c0e49267189a90713b66f651e498723915f2415284d" + sha256 cellar: :any, ventura: "6e5875dd0059b8a387cc0eba1d9e3f866758c0e711ab5db62ed91da2dd989faf" end head do @@ -30,7 +28,7 @@ class Ntfs3gMac < Formula depends_on "libtool" => :build end - depends_on "pkg-config" => :build + depends_on "pkgconf" => :build depends_on "coreutils" => :test depends_on "gettext" depends_on MacfuseRequirement @@ -41,9 +39,6 @@ class Ntfs3gMac < Formula ENV.append "LDFLAGS", "-lintl" args = %W[ - --disable-debug - --disable-dependency-tracking - --prefix=#{prefix} --exec-prefix=#{prefix} --mandir=#{man} --with-fuse=external @@ -52,8 +47,8 @@ class Ntfs3gMac < Formula system "./autogen.sh" if build.head? # Workaround for hardcoded /sbin in ntfsprogs - inreplace "ntfsprogs/Makefile.in", "/sbin", sbin - system "./configure", *args + inreplace Dir["{ntfsprogs,src}/Makefile.in"], "$(DESTDIR)/sbin/", "$(DESTDIR)#{sbin}/" + system "./configure", *args, *std_configure_args system "make" system "make", "install" diff --git a/Formula/ratarmount-mac.rb b/Formula/ratarmount-mac.rb new file mode 100644 index 0000000..d3b0788 --- /dev/null +++ b/Formula/ratarmount-mac.rb @@ -0,0 +1,131 @@ +require_relative "../require/macfuse" + +class RatarmountMac < Formula + include Language::Python::Virtualenv + + desc "Mount and efficiently access archives as filesystems" + homepage "https://github.com/mxmlnkn/ratarmount" + url "https://files.pythonhosted.org/packages/f6/2f/ce04f40f3cc82bb3ffbc97bffe3b7a2abe83a382c81fe2452ad54792acdf/ratarmount-1.2.1.tar.gz" + sha256 "28be2f1b9477ba4d0d8d75ddbc2468fc906970d36f4940bd932d1a51818e06a0" + license "MIT" + head "https://github.com/mxmlnkn/ratarmount.git", branch: "master" + + bottle do + root_url "https://ghcr.io/v2/gromgit/fuse" + sha256 cellar: :any, arm64_tahoe: "f89ceae4c6bb313cf569f7727033c07390db1382965a22e1197d0f1ee9c0a5bc" + sha256 cellar: :any, arm64_sequoia: "c0beb8c22c87eac4c3ba674f1c7245d0094f3bfebf64f9fce2fea1bfa0c2d674" + sha256 cellar: :any, arm64_sonoma: "588e3d984a585d5c2770882e3afc3872524a979738809eee8a5d5dff5bbc15b8" + end + + depends_on "libgit2" + depends_on MacfuseRequirement + depends_on :macos + depends_on "python@3.13" + depends_on "zstd" + + resource "brotli" do + url "https://files.pythonhosted.org/packages/f7/16/c92ca344d646e71a43b8bb353f0a6490d7f6e06210f8554c8f874e454285/brotli-1.2.0.tar.gz" + sha256 "e310f77e41941c13340a95976fe66a8a95b01e783d430eeaf7a2f87e0a57dd0a" + end + + resource "fast-zip-decryption" do + url "https://files.pythonhosted.org/packages/47/c8/0fbde8b9c8314e4fde35f4841015a6143967d5fd4d141e84a6cf14e62178/fast_zip_decryption-3.0.0.tar.gz" + sha256 "5267e45aab72161b035ddc4dda4ffa2490b6da1ca752e4ff7eaedd4dd18aa85d" + end + + resource "indexed-gzip" do + url "https://files.pythonhosted.org/packages/d4/22/e9e94407bae83444adf598535b684d28cfbbcbe19f58eeba46f4db7bc0f3/indexed_gzip-1.10.1.tar.gz" + sha256 "3993fd72570b254045d2361d937a984350719f2205066f4e4c16435a1df361e3" + end + + resource "indexed-zstd" do + url "https://files.pythonhosted.org/packages/52/22/5b908d5e987043ce8390b0d9101c93fae0c0de0c9c8417c562976eeb8be6/indexed_zstd-1.6.1.tar.gz" + sha256 "8b74378f9461fceab175215b65e1c489864ddb34bd816058936a627f0cca3a8b" + end + + resource "inflate64" do + url "https://files.pythonhosted.org/packages/e3/a7/974e6daa6c353cf080b540c18f11840e81b36d18106963a0a857b1fc2adf/inflate64-1.0.3.tar.gz" + sha256 "a89edd416c36eda0c3a5d32f31ff1555db2c5a3884aa8df95e8679f8203e12ee" + end + + resource "libarchive-c" do + url "https://files.pythonhosted.org/packages/26/23/e72434d5457c24113e0c22605cbf7dd806a2561294a335047f5aa8ddc1ca/libarchive_c-5.3.tar.gz" + sha256 "5ddb42f1a245c927e7686545da77159859d5d4c6d00163c59daff4df314dae82" + end + + resource "mfusepy" do + url "https://files.pythonhosted.org/packages/1c/94/c9d5dcba4a6a2b32ba23e22fd13ca08e6f5408420b2dfe42984af22277b6/mfusepy-3.0.0.tar.gz" + sha256 "eddade33e427bac9c455464cd0a7d12d63c033255ec6b1e0d6ada143a945c6f2" + end + + resource "multivolumefile" do + url "https://files.pythonhosted.org/packages/50/f0/a7786212b5a4cb9ba05ae84a2bbd11d1d0279523aea0424b6d981d652a14/multivolumefile-0.2.3.tar.gz" + sha256 "a0648d0aafbc96e59198d5c17e9acad7eb531abea51035d08ce8060dcad709d6" + end + + resource "psutil" do + url "https://files.pythonhosted.org/packages/e1/88/bdd0a41e5857d5d703287598cbf08dad90aed56774ea52ae071bae9071b6/psutil-7.1.3.tar.gz" + sha256 "6c86281738d77335af7aec228328e944b30930899ea760ecf33a4dba66be5e74" + end + + resource "py7zr" do + url "https://files.pythonhosted.org/packages/97/62/d6f18967875aa60182198a0dd287d3a50d8aea1d844239ea00c016f7be88/py7zr-1.0.0.tar.gz" + sha256 "f6bfee81637c9032f6a9f0eb045a4bfc7a7ff4138becfc42d7cb89b54ffbfef1" + end + + resource "pybcj" do + url "https://files.pythonhosted.org/packages/ce/75/bbcf098abf68081fa27c09d642790daa99d9156132c8b0893e3fecd946ab/pybcj-1.0.6.tar.gz" + sha256 "70bbe2dc185993351955bfe8f61395038f96f5de92bb3a436acb01505781f8f2" + end + + resource "pycryptodomex" do + url "https://files.pythonhosted.org/packages/c9/85/e24bf90972a30b0fcd16c73009add1d7d7cd9140c2498a68252028899e41/pycryptodomex-3.23.0.tar.gz" + sha256 "71909758f010c82bc99b0abf4ea12012c98962fbf0583c2164f8b84533c2e4da" + end + + resource "pyppmd" do + url "https://files.pythonhosted.org/packages/f6/d7/b3084ff1ac6451ef7dd93d4f7627eeb121a3bed4f8a573a81978a43ddb06/pyppmd-1.2.0.tar.gz" + sha256 "cc04af92f1d26831ec96963439dfb27c96467b5452b94436a6af696649a121fd" + end + + resource "python-xz" do + url "https://files.pythonhosted.org/packages/fe/2f/7ed0c25005eba0efb1cea3cdf4a325852d63167cc77f96b0a0534d19e712/python-xz-0.4.0.tar.gz" + sha256 "398746593b706fa9fac59b8c988eab8603e1fe2ba9195111c0b45227a3a77db3" + end + + resource "pyzstd" do + url "https://files.pythonhosted.org/packages/47/82/7bcafbf06ee83a66990ce5badbb8f4dc32184346bab20de7e468b1a2f6ec/pyzstd-0.18.0.tar.gz" + sha256 "81b6851ab1ca2e5f2c709e896a1362e3065a64f271f43db77fb7d5e4a78e9861" + end + + resource "rapidgzip" do + url "https://files.pythonhosted.org/packages/d6/50/b9bb77eaf841f2fbd8123d9677815d4ef53b53c4c189c5f789c78ef2d05e/rapidgzip-0.15.2.tar.gz" + sha256 "fa3f90f17ce185a99514df54b5316bdfa593e98f3eebbb12da301eb25d6dedcd" + end + + resource "rarfile" do + url "https://files.pythonhosted.org/packages/26/3f/3118a797444e7e30e784921c4bfafb6500fb288a0c84cb8c32ed15853c16/rarfile-4.2.tar.gz" + sha256 "8e1c8e72d0845ad2b32a47ab11a719bc2e41165ec101fd4d3fe9e92aa3f469ef" + end + + resource "ratarmountcore" do + url "https://files.pythonhosted.org/packages/f8/15/b9c2a47a4adba9b7bef8a057896a8e96db1d286ae538bd1d9d2fd147febd/ratarmountcore-0.10.2.tar.gz" + sha256 "35e2935e1e135140d1bb8d82061c1527fb168ba5653d0218c06f3ec106711e6c" + end + + resource "texttable" do + url "https://files.pythonhosted.org/packages/1c/dc/0aff23d6036a4d3bf4f1d8c8204c5c79c4437e25e0ae94ffe4bbb55ee3c2/texttable-1.7.0.tar.gz" + sha256 "2d2068fb55115807d3ac77a4ca68fa48803e84ebb0ee2340f858107a36522638" + end + + def install + setup_fuse + virtualenv_install_with_resources + end + + test do + assert_match "ratarmount #{version}", shell_output("#{bin}/ratarmount --version 2>&1") + tarball = test_fixtures("tarballs/testball2-0.1.tbz") + assert_match "Operation not permitted", shell_output("#{bin}/ratarmount #{tarball} 2>&1", 1) + end +end diff --git a/Formula/rclone-mac.rb b/Formula/rclone-mac.rb index 628e814..05f6755 100644 --- a/Formula/rclone-mac.rb +++ b/Formula/rclone-mac.rb @@ -3,18 +3,16 @@ require_relative "../require/macfuse" class RcloneMac < Formula desc "Rsync for cloud storage (with macOS FUSE mount support)" homepage "https://rclone.org/" - url "https://github.com/rclone/rclone/archive/v1.59.1.tar.gz" - sha256 "3eb56502c49ffe53da0360b66d5c9ee6147433f1a9b0238686c1743855cc891f" + url "https://github.com/rclone/rclone/archive/refs/tags/v1.72.1.tar.gz" + sha256 "322c73932b533571880832c0e07abdf9492c7f329b7d1dcdbd2a195fa2635a77" license "MIT" - head "https://github.com/rclone/rclone.git" + head "https://github.com/rclone/rclone.git", branch: "master" bottle do - root_url "https://github.com/gromgit/homebrew-fuse/releases/download/rclone-mac-1.59.1" - sha256 cellar: :any_skip_relocation, arm64_monterey: "e53d325873d6ad26303fd23ba4c14d793b70c703df056a0e4ba2226edb9041ca" - sha256 cellar: :any_skip_relocation, monterey: "4362bcdf29a86e5398227c90470215850fc77c375b8355241d6a4ed3bb7fd6db" - sha256 cellar: :any_skip_relocation, big_sur: "6a61d21b1ccaaa35aba43ad4b56b51be8cec31d17554d3031a091f662a56bcef" - sha256 cellar: :any_skip_relocation, catalina: "b281de99b5f2f17cd22d9a87dfd8f2bb15c0be8231c6afef173444f4434a2f93" - sha256 cellar: :any_skip_relocation, mojave: "e0e1592515c89d1520ebdec04327e33e838c744d699e0c9936d764780d6a7c78" + root_url "https://ghcr.io/v2/gromgit/fuse" + sha256 cellar: :any_skip_relocation, arm64_tahoe: "4fbfed6cbd727a74761f9e5918aa4d2cc576fe5aefe76fa7a8a2f2e491693f07" + sha256 cellar: :any_skip_relocation, arm64_sequoia: "c3217d9951aa76172bba74eddd191554eecc85e67bfb0926e4abc0ee79a7d400" + sha256 cellar: :any_skip_relocation, arm64_sonoma: "93cd3973b52d0d34b0b3301e0876cfe601574523b321c5021c658f2ab362b644" end depends_on "go" => :build @@ -32,11 +30,6 @@ class RcloneMac < Formula system bin/name.to_s, "genautocomplete", "bash", "#{name}.bash" system bin/name.to_s, "genautocomplete", "zsh", "_rclone" system bin/name.to_s, "genautocomplete", "zsh", "_#{name}" - inreplace "#{name}.bash" do |s| - s.gsub! "commands=(\"rclone\")", "commands=(\"#{name}\")" - s.gsub!(/(-F __start_rclone) rclone$/, "\\1 #{name}") - end - inreplace "_#{name}", /(#compdef _rclone) rclone$/, "\\1 #{name}" bash_completion.install "rclone.bash" => "rclone" bash_completion.install "#{name}.bash" => name.to_s zsh_completion.install "_rclone" @@ -50,6 +43,10 @@ class RcloneMac < Formula If you need to use it as `rclone`, add the "rclone" directory to your PATH like: PATH="#{opt_libexec}/rclone:$PATH" + + `#{name}` supports the `mount` command on macOS, unlike the + Homebrew core `rclone`. If you don't need `mount`, please + `brew install rclone` instead. EOS end diff --git a/Formula/rofs-filtered-mac.rb b/Formula/rofs-filtered-mac.rb index fb4d64e..615aa85 100644 --- a/Formula/rofs-filtered-mac.rb +++ b/Formula/rofs-filtered-mac.rb @@ -3,31 +3,62 @@ require_relative "../require/macfuse" class RofsFilteredMac < Formula desc "Filtered read-only filesystem for FUSE" homepage "https://github.com/gburca/rofs-filtered/" - url "https://github.com/gburca/rofs-filtered/archive/rel-1.7.tar.gz" + url "https://github.com/gburca/rofs-filtered/archive/refs/tags/rel-1.7.tar.gz" sha256 "d66066dfd0274a2fb7b71dd929445377dd23100b9fa43e3888dbe3fc7e8228e8" license "GPL-2.0-or-later" bottle do - root_url "https://github.com/gromgit/homebrew-fuse/releases/download/rofs-filtered-mac-1.7" - sha256 cellar: :any, monterey: "d1b89e344c767ca3c38cbc5dda85a840892961fca26726c09be0582db57d0200" - sha256 cellar: :any, big_sur: "cb7cbae756a0415b639c86a4d7998fd95bc66cde8be46f6cac08d8a158595f55" - sha256 cellar: :any, catalina: "b1606a594b8aa539680f7796ef2dd16f8f38fb239da08b2af2a5b1914a9c480f" - sha256 cellar: :any, mojave: "d3fc41566f4d522148ed320f31751e48b325935fe94f79cd17293b840011bdf7" + root_url "https://ghcr.io/v2/gromgit/fuse" + rebuild 1 + sha256 cellar: :any_skip_relocation, arm64_sonoma: "666320aa517fcda5fea5a9189caf62889ea80efc97991325934610f526565742" + sha256 cellar: :any, ventura: "0340ec5bd37f169ca31e5240a26766abef47040363f13f1fc0f7de2cd58a3e59" end depends_on "cmake" => :build + depends_on "pkgconf" => :build depends_on MacfuseRequirement depends_on :macos + # Use pkgconfig to find FUSE + patch :DATA + def install setup_fuse - mkdir "build" do - system "cmake", "..", "-DCMAKE_INSTALL_SYSCONFDIR=#{etc}", *fuse_cmake_args, *std_cmake_args - system "make", "install" - end + system "cmake", "-S", ".", "-B", "build", + "-DCMAKE_INSTALL_SYSCONFDIR=#{etc}", + *fuse_cmake_args, *std_cmake_args + system "cmake", "--build", "build" + system "cmake", "--install", "build" end test do system "#{bin}/rofs-filtered", "--version" end end +__END__ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 53a6687..cb4f121 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -12,8 +12,8 @@ add_definitions(-D_GNU_SOURCE) + set(CMAKE_C_FLAGS "-Wall -std=c99") + + # find fuse library +-find_package (FUSE REQUIRED) +-include_directories (${FUSE_INCLUDE_DIR}) ++find_package(PkgConfig REQUIRED) ++pkg_check_modules(FUSE fuse REQUIRED) + add_definitions(-D_FILE_OFFSET_BITS=64) + + # generate config file +@@ -24,7 +24,9 @@ include_directories(${CMAKE_CURRENT_BINARY_DIR}) + + # create and configure targets + add_executable(rofs-filtered rofs-filtered.c) +-target_link_libraries(rofs-filtered ${FUSE_LIBRARIES}) ++target_include_directories(rofs-filtered PUBLIC ${FUSE_INCLUDE_DIRS}) ++target_link_libraries(rofs-filtered PUBLIC ${LIBS} ${FUSE_LDFLAGS}) ++target_compile_options(rofs-filtered PUBLIC ${FUSE_CFLAGS}) + + # configure installation + install(TARGETS rofs-filtered DESTINATION ${CMAKE_INSTALL_BINDIR}) diff --git a/Formula/s3-backer-mac.rb b/Formula/s3-backer-mac.rb index 580cde3..0b78ae7 100644 --- a/Formula/s3-backer-mac.rb +++ b/Formula/s3-backer-mac.rb @@ -3,33 +3,26 @@ 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.0.2.tar.gz" - sha256 "0b2432f08e9b986364e35674f39dd11afc1670be382b23cdb7375e86ce132a02" + url "https://archie-public.s3.amazonaws.com/s3backer/s3backer-2.1.4.tar.gz" + sha256 "0451471209cc872708e91b2784a4a1b9f3ca44c89a7bffb8f6145aed28c941e7" license "GPL-2.0-or-later" bottle do - root_url "https://github.com/gromgit/homebrew-fuse/releases/download/s3-backer-mac-2.0.2" - sha256 cellar: :any, arm64_monterey: "2f1d3837847ac2879eaa859c40f223c2956759a72768f8d03db1df03ec72cbf4" - sha256 cellar: :any, monterey: "8a9f76908ee913f79aa7e32b5913f63d556510ac75cf254b9b86653dfcac05aa" - sha256 cellar: :any, big_sur: "1aac74d23e01950841770936f418fba4cec9f64f97ee27120908af7db9e1c185" - sha256 cellar: :any, catalina: "6b043afad65435edf6209a85d5e6c4c7d15752126af4656144e17d3fd7e994d8" - sha256 cellar: :any, mojave: "a6d732072a6b2992c3cb08adcedac1fff5472da7e7c1858c57508b84af5570c2" + root_url "https://ghcr.io/v2/gromgit/fuse" + sha256 cellar: :any, arm64_sonoma: "7f67d78e85e19ec2447968526fddc16c9285c32f2d81eb5cdbaa2771fb2e7153" + sha256 cellar: :any, ventura: "51f68b3c5cba34ac4e669b9cc8b2b1f37a940fc01e3d356decb4aaf750f1e96d" end - depends_on "pkg-config" => :build + depends_on "pkgconf" => :build + depends_on "curl" + depends_on "expat" depends_on MacfuseRequirement depends_on :macos - depends_on "openssl@1.1" - - # Fix missing environ declaration - patch do - url "https://github.com/archiecobbs/s3backer/commit/303a669356fa7cd6bc95ac7076ce51b1cab3970a.patch?full_index=1" - sha256 "b887d4498ae6a5f69e03b0f43db6f8ba0fba9907195cf706806e0ba9bd10ac5f" - end + depends_on "openssl@3" def install setup_fuse - system "./configure", "--prefix=#{prefix}" + system "./configure", "--disable-silent-rules", *std_configure_args system "make", "install" end diff --git a/Formula/s3fs-mac.rb b/Formula/s3fs-mac.rb index 949e5c1..4d7502d 100644 --- a/Formula/s3fs-mac.rb +++ b/Formula/s3fs-mac.rb @@ -3,36 +3,50 @@ require_relative "../require/macfuse" class S3fsMac < Formula desc "FUSE-based file system backed by Amazon S3" homepage "https://github.com/s3fs-fuse/s3fs-fuse/wiki" - url "https://github.com/s3fs-fuse/s3fs-fuse/archive/v1.91.tar.gz" - sha256 "f130fec375dc6972145c56f53e83ea7c98c82621406d0208a328989e5d900b0f" + url "https://github.com/s3fs-fuse/s3fs-fuse/archive/refs/tags/v1.95.tar.gz" + sha256 "0c97b8922f005500d36f72aee29a1345c94191f61d795e2a7b79fb7e3e6f5517" license "GPL-2.0-or-later" - head "https://github.com/s3fs-fuse/s3fs-fuse.git" + head "https://github.com/s3fs-fuse/s3fs-fuse.git", branch: "master" bottle do - root_url "https://github.com/gromgit/homebrew-fuse/releases/download/s3fs-mac-1.91" - sha256 cellar: :any, arm64_monterey: "a433fd964e67240ff3135f19aa4de7e1dcdbe331a339ba52f7803241032810ea" - sha256 cellar: :any, monterey: "35fafafd91eaa1995e4fe5fa3b6944232d245a5c75697f4aa5c97263f1328979" - sha256 cellar: :any, big_sur: "b9e8bb0525cd245c65cc7008d81898f918e12589dcd6cebf1dbe5f0157988ed2" - sha256 cellar: :any, catalina: "694c4f8d8a2fc059226df89992438ee12a2dc420775ff52e48e9a85c7c868612" - sha256 cellar: :any, mojave: "6888b53265c1e3d0432d308acdc3b86779a949d89a77162555bafed73641508a" + root_url "https://ghcr.io/v2/gromgit/fuse" + sha256 cellar: :any, arm64_sonoma: "ecbfca73778ed850eeef256fcba17bb229036f9fbce767fd54abc2335236efee" + sha256 cellar: :any, ventura: "0fb739e8007836e833c79d45159c78fbd05291b19afc9439683d2712d1b1dd68" end depends_on "autoconf" => :build depends_on "automake" => :build - depends_on "pkg-config" => :build + depends_on "pkgconf" => :build + depends_on "curl" + depends_on "gcc" depends_on "gnutls" depends_on "libgcrypt" + depends_on "libxml2" depends_on MacfuseRequirement depends_on :macos depends_on "nettle" + fails_with :clang do + cause <<~EOS + libc++abi: terminating due to uncaught exception of type std::__1::system_error: + mutex lock failed: Invalid argument + EOS + end + def install setup_fuse system "./autogen.sh" - system "./configure", "--disable-dependency-tracking", "--with-gnutls", "--prefix=#{prefix}" + system "./configure", "--with-gnutls", *std_configure_args system "make", "install" end + def caveats + <<~EOS + This is the final version that supports FUSE 2. + Further updates require a macOS FUSE 3 implementation. + EOS + end + test do system "#{bin}/s3fs", "--version" end diff --git a/Formula/s3ql-mac.rb b/Formula/s3ql-mac.rb index 669df11..8e58c40 100644 --- a/Formula/s3ql-mac.rb +++ b/Formula/s3ql-mac.rb @@ -19,14 +19,16 @@ class S3qlMac < Formula sha256 cellar: :any, mojave: "c8438bb43cc23a6addf967de989d564af559793f639553834232319913915b67" end + deprecate! date: "2025-02-11", because: "requires FUSE 3 for v3.4.0 onwards, and doesn't build on modern macOS" + depends_on "pkg-config" => :build depends_on "libffi" depends_on MacfuseRequirement depends_on :macos - depends_on "openssl@1.1" - depends_on "python@3.8" + depends_on "openssl@3" + depends_on "python@3.13" - resource "apsw" do + resource "apsw-3-9-2" do url "https://files.pythonhosted.org/packages/b5/a1/3de5a2d35fc34939672f4e1bd7d68cca359a31b76926f00d95f434c63aaa/apsw-3.9.2-r1.tar.gz" sha256 "dab96fd164dde9e59f7f27228291498217fa0e74048e2c08c7059d7e39589270" end diff --git a/Formula/securefs-mac.rb b/Formula/securefs-mac.rb index 92b66a2..838f7db 100644 --- a/Formula/securefs-mac.rb +++ b/Formula/securefs-mac.rb @@ -3,32 +3,50 @@ require_relative "../require/macfuse" class SecurefsMac < Formula desc "Filesystem with transparent authenticated encryption" homepage "https://github.com/netheril96/securefs" - url "https://github.com/netheril96/securefs.git", - tag: "0.13.0", - revision: "1705d14b8fef5ebb826a74549d609c6ab6cb63f7" + url "https://github.com/netheril96/securefs/archive/refs/tags/v2.0.0.tar.gz" + sha256 "d7fac7adc70c09473173aeadee5b7041d7e63fbf392ef40bdd77888590bb12a2" license "MIT" - head "https://github.com/netheril96/securefs.git" + head "https://github.com/netheril96/securefs.git", branch: "master" + + livecheck do + url :stable + strategy :github_latest + end bottle do - root_url "https://github.com/gromgit/homebrew-fuse/releases/download/securefs-mac-0.13.0" - sha256 cellar: :any_skip_relocation, arm64_monterey: "d4befffc32ea6cfd3b3a64efc297d65b10f55696477a57c47f55ea1286ca6702" - sha256 cellar: :any, monterey: "cd01d4f2acccf83ac6d6126655ef6ed90efcfe160c635811d6eb4f53bd9d0ba5" - sha256 cellar: :any, big_sur: "664cf88693667af20d27239d00120ba58a4bcbf341ed051a68be21b7df0c043c" - sha256 cellar: :any, catalina: "c530c8f50c3c7515fb47504c14c2f1325d8e69fe7d37ced432e6d3bdb38648f1" - sha256 cellar: :any, mojave: "a584a77dcb42a7fb9f3000e2c91c504ca9b399897d1f25f22aa472e89ab71b29" + root_url "https://ghcr.io/v2/gromgit/fuse" + sha256 cellar: :any, arm64_sequoia: "78b2a05c1291ba2828512745ac2b959786288389e44fe44dc0d4cda2a6bd68cc" + sha256 cellar: :any, arm64_sonoma: "54efe58e868a530d252e05beb72537171bd1f4559c16f876d92c31394a89ffb4" end depends_on "cmake" => :build + depends_on "pkgconf" => :build + depends_on "tclap" => :build + depends_on "abseil" + depends_on "argon2" + depends_on "cryptopp" + depends_on "fruit" + depends_on "jsoncpp" depends_on MacfuseRequirement depends_on :macos + depends_on "protobuf" + depends_on "sqlite" + depends_on "uni-algo" + depends_on "utf8proc" def install setup_fuse - system "cmake", ".", *fuse_cmake_args, *std_cmake_args - system "make", "install" + args = %w[ + -DSECUREFS_ENABLE_INTEGRATION_TEST=OFF + -DSECUREFS_ENABLE_UNIT_TEST=OFF + -DSECUREFS_USE_VCPKG=OFF + ] + system "cmake", "-S", ".", "-B", "build", *std_cmake_args, *args + system "cmake", "--build", "build" + system "cmake", "--install", "build" end test do - system "#{bin}/securefs", "version" # The sandbox prevents a more thorough test + system bin/"securefs", "version" # The sandbox prevents a more thorough test end end diff --git a/Formula/simple-mtpfs-mac.rb b/Formula/simple-mtpfs-mac.rb index df4afa2..02a4bf4 100644 --- a/Formula/simple-mtpfs-mac.rb +++ b/Formula/simple-mtpfs-mac.rb @@ -3,24 +3,23 @@ require_relative "../require/macfuse" class SimpleMtpfsMac < Formula desc "Simple MTP fuse filesystem driver" homepage "https://github.com/phatina/simple-mtpfs" - url "https://github.com/phatina/simple-mtpfs/archive/v0.4.0.tar.gz" + url "https://github.com/phatina/simple-mtpfs/archive/refs/tags/v0.4.0.tar.gz" sha256 "1d011df3fa09ad0a5c09d48d84c03e6cddf86390af9eb4e0c178193f32f0e2fc" license "GPL-2.0-or-later" bottle do - root_url "https://github.com/gromgit/homebrew-fuse/releases/download/simple-mtpfs-mac-0.4.0" - sha256 cellar: :any, arm64_monterey: "3d5479cfca4348b32a0dc38097e803e817865488efe44de1e91cbcc1e39bef0f" - sha256 cellar: :any, monterey: "dab8ca53f1513d943c8102be2d592adf42d36f6d62d65fdd0af5914e7786c530" - sha256 cellar: :any, big_sur: "ab2daeee7f6e6c6bd9795f34b7d1746b3e9add149e4a33e88db29be02de20541" - sha256 cellar: :any, catalina: "6a07721c8bbd594f8ceeaf3a2503e780d3eb6ce3c4431ca785c40c8c71e8900c" - sha256 cellar: :any, mojave: "bbe032821fb0ea78e661a16fd79a185d969e8b2a602fd990c8ceb035cc7fee84" + root_url "https://ghcr.io/v2/gromgit/fuse" + rebuild 1 + sha256 cellar: :any, arm64_sonoma: "cf831fa0da5d53fbef60c754223bb2ed7601c80e89d7bb11be4bd349001b2f1e" + sha256 cellar: :any, ventura: "01adbaed0737e09f73ec91d8e248a1a9c138e06f8476cd6da23e6b511f3c68d9" end depends_on "autoconf" => :build depends_on "autoconf-archive" => :build # required for AX_CXX_COMPILE_STDCXX_17 depends_on "automake" => :build - depends_on "pkg-config" => :build + depends_on "pkgconf" => :build depends_on "libmtp" + depends_on "libusb" depends_on MacfuseRequirement depends_on :macos @@ -29,7 +28,7 @@ class SimpleMtpfsMac < Formula def install setup_fuse system "./autogen.sh" - system "./configure", "--prefix=#{prefix}" + system "./configure", "--disable-silent-rules", *std_configure_args system "make" system "make", "install" end diff --git a/Formula/squashfuse-mac.rb b/Formula/squashfuse-mac.rb index c131c37..9a4a989 100644 --- a/Formula/squashfuse-mac.rb +++ b/Formula/squashfuse-mac.rb @@ -3,33 +3,32 @@ require_relative "../require/macfuse" class SquashfuseMac < Formula desc "FUSE filesystem to mount squashfs archives" homepage "https://github.com/vasi/squashfuse" - url "https://github.com/vasi/squashfuse/releases/download/0.1.104/squashfuse-0.1.104.tar.gz" - sha256 "aa52460559e0d0b1753f6b1af5c68cfb777ca5a13913285e93f4f9b7aa894b3a" + url "https://github.com/vasi/squashfuse/releases/download/0.6.1/squashfuse-0.6.1.tar.gz" + sha256 "7b18a58c40a3161b5c329ae925b72336b5316941f906b446b8ed6c5a90989f8c" license "BSD-2-Clause" bottle do - root_url "https://github.com/gromgit/homebrew-fuse/releases/download/squashfuse-mac-0.1.104" - sha256 cellar: :any, arm64_monterey: "40535144bf69ea83cc6f83eb0fbf13d465e95374b55159056099c15079767632" - sha256 cellar: :any, monterey: "d8cb1d3b4e8cd06e737330d505cef93b6db04ba5bc4a9532d0a95bfa155eab7d" - sha256 cellar: :any, big_sur: "71e48214e5e13234e5270af7a8e4332adbf0a4e5b7b45fa754f6c06776b4b132" - sha256 cellar: :any, catalina: "2e2f3ae67cff7da3ea72bbe60c82030cee19068b2490fe28ee518339366cc59f" - sha256 cellar: :any, mojave: "eac9534833ef065791327d82fd7d9dfe675b3c5921e3fa41dde963917625e300" + root_url "https://ghcr.io/v2/gromgit/fuse" + sha256 cellar: :any, arm64_sonoma: "9618c3556506fecc5234a9f2f238fe7e6f51cd3782fdc0d6580d222bbaff3485" + sha256 cellar: :any, ventura: "03092b26301eb86ed81db27cf2a7558d55f9ed3099ee09262065edcacb9ea8b1" end - depends_on "pkg-config" => :build + depends_on "autoconf" => :build + depends_on "automake" => :build + depends_on "libtool" => :build + depends_on "pkgconf" => :build depends_on "lz4" depends_on "lzo" depends_on MacfuseRequirement depends_on :macos depends_on "squashfs" depends_on "xz" + depends_on "zlib" depends_on "zstd" def install setup_fuse - system "./configure", "--disable-dependency-tracking", - "--disable-silent-rules", - "--prefix=#{prefix}" + system "./configure", *std_configure_args system "make", "install" end diff --git a/Formula/sshfs-mac.rb b/Formula/sshfs-mac.rb index 3c420a2..d77274d 100644 --- a/Formula/sshfs-mac.rb +++ b/Formula/sshfs-mac.rb @@ -17,6 +17,8 @@ class SshfsMac < Formula sha256 cellar: :any, mojave: "6389b69b921295f5be6eb35336649f558375eb24da60573b376a313331a4d18c" end + deprecate! date: "2025-02-11", because: :unmaintained + depends_on "autoconf" => :build depends_on "automake" => :build depends_on "libtool" => :build diff --git a/Formula/tup-mac.rb b/Formula/tup-mac.rb index a9f0925..bb5ca0b 100644 --- a/Formula/tup-mac.rb +++ b/Formula/tup-mac.rb @@ -3,18 +3,15 @@ require_relative "../require/macfuse" class TupMac < Formula desc "File-based build system" homepage "http://gittup.org/tup/" - url "https://github.com/gittup/tup/archive/v0.7.11.tar.gz" - sha256 "be24dff5f1f32cc85c73398487a756b4a393adab5e4d8500fd5164909d3e85b9" + url "https://github.com/gittup/tup/archive/refs/tags/v0.8.tar.gz" + sha256 "45ca35c4c1d140f3faaab7fabf9d68fd9c21074af2af9a720cff4b27cab47d07" license "GPL-2.0-only" head "https://github.com/gittup/tup.git" bottle do - root_url "https://github.com/gromgit/homebrew-fuse/releases/download/tup-mac-0.7.11" - sha256 cellar: :any_skip_relocation, arm64_monterey: "080770170cafca605d4f04b26e32ea8af093df86a6461fee483073f404de62aa" - sha256 cellar: :any, monterey: "c0fa166568e8f24a6a77de27ec30f201d65ae812b1b595fd0cbea44647aa69e4" - sha256 cellar: :any, big_sur: "e1d223dcd5865119de5a2b9570ef28ec780909d709db49f53c3fe7229aa68e5a" - sha256 cellar: :any, catalina: "ce44cb9e6ca8c79e35a2cc4e2dfd7c39460bb2575510ac3ee966b6b7d6642679" - sha256 cellar: :any, mojave: "03d842d15270c158614812b9355bb91252994f4b2b7b0a2a308b336b312784f8" + root_url "https://ghcr.io/v2/gromgit/fuse" + sha256 cellar: :any_skip_relocation, arm64_sonoma: "c560a370134cbe065d983bc0f40a3fb7481524eeae8463c891b91853ff2813a8" + sha256 cellar: :any, ventura: "1553e833231b266f2c270dfe8e7e21933af45ffe8c37aba141cd3ce2706f6f46" end depends_on "pkg-config" => :build diff --git a/Formula/unionfs-fuse.rb b/Formula/unionfs-fuse.rb index d297bd3..89854cf 100644 --- a/Formula/unionfs-fuse.rb +++ b/Formula/unionfs-fuse.rb @@ -3,59 +3,51 @@ require_relative "../require/macfuse" class UnionfsFuse < Formula desc "Union filesystem using FUSE" homepage "https://github.com/rpodgorny/unionfs-fuse" - url "https://github.com/rpodgorny/unionfs-fuse/archive/refs/tags/v2.2.tar.gz" - sha256 "248a0fee9979146b79b05fc728621869da5936c1f43a27e36e7515b301817e43" + url "https://github.com/rpodgorny/unionfs-fuse/archive/refs/tags/v3.7.tar.gz" + sha256 "026f5302279110ceb7465e5c9e863cd0319ea0dc32ad253d162cf9db0f5e9a81" license "BSD-3-Clause" bottle do - root_url "https://github.com/gromgit/homebrew-fuse/releases/download/unionfs-fuse-2.2" - sha256 cellar: :any_skip_relocation, arm64_monterey: "f0bf63f52a20a6ff3703b0225243c35837d620696c261208e7e2256050c486fb" - sha256 cellar: :any, monterey: "5325c885b86d7da9a263b0dccb5f40fa0b59b431bf8d9c5efb48d8b3cd043dc6" - sha256 cellar: :any, big_sur: "4ce1e7bf69c4d4b47af623ace7a33f2ff467e3a944181e910e8ae81e27d1db80" - sha256 cellar: :any, catalina: "a1961f1ecf7bfb8f6ce0af19ff3f1529986da999da813551bd58b6023e7f5a3f" - sha256 cellar: :any, mojave: "0042e85328d5f2a83db5673882579fc4a71bc96148f165ad93d571fb7dbec988" + root_url "https://ghcr.io/v2/gromgit/fuse" + sha256 cellar: :any_skip_relocation, arm64_sequoia: "bd96797c922e35716d4bf81b585eccff801f33d416177b3c1f64408cf9049095" + sha256 cellar: :any_skip_relocation, arm64_sonoma: "66afec09b9d1ec0d1549a8afe97a0fa6f1f65374c9e42898655f6ad9d718c02c" + sha256 cellar: :any_skip_relocation, ventura: "c10761c0cb52fbaa60425a8e5c3a58cc0ae7868c33943a02c9006bdcb60f8f78" end + depends_on "cmake" => :build + depends_on "pkg-config" => :build depends_on MacfuseRequirement - depends_on "pkg-config" - - # macOS compatibility patches - # Review all the below on next release - patch do - url "https://github.com/rpodgorny/unionfs-fuse/commit/f27d75b36a128ab62f432a8c70f33747d4f76bc5.patch?full_index=1" - sha256 "4a40c424ced2d1627c83c0b795984258057fad7c23f07cb2036db55d6a9d7c75" - end - patch do - url "https://github.com/rpodgorny/unionfs-fuse/commit/b6377071716d051542024e050c372ac5b0588dcd.patch?full_index=1" - sha256 "bbf6292c267d8c068a9bc294ed1293b63a9a8c129640dc0674ef2d61e98a6c0d" - end - patch do - url "https://github.com/rpodgorny/unionfs-fuse/commit/edcf3ee1461ad839f8784ecc484070773e37c81c.patch?full_index=1" - sha256 "3b6e129f0afd23eda43a7eccdb4d25cb176175b993ed13d252e27bc8d2a886e0" - end def install setup_fuse inreplace "CMakeLists.txt", "/usr/local", alt_fuse_root.to_s - system "make", "PREFIX=#{prefix}", "install" + mkdir "build" do + system "cmake", "..", + "-DCMAKE_C_COMPILER=clang", + "-DCMAKE_C_FLAGS=-std=gnu99", + *std_cmake_args + system "make", "install" + end end test do - (testpath/"t1").mkdir - (testpath/"t1/test1.txt").write <<~EOS - This is test 1. - EOS - (testpath/"t2").mkdir - (testpath/"t2/test2.txt").write <<~EOS - This is test 2. - EOS - (testpath/"t3").mkdir - begin - system "#{bin}/unionfs", "-o", "cow,max_files=32768,allow_other,use_ino,nonempty", - "#{testpath}/t1=RW:#{testpath}/t2=RO", testpath/"t3" - assert_match "test 2", pipe_output("cat #{testpath}/t3/test2.txt") - ensure - system "umount", "#{testpath}/t3" - end + assert_match version.to_s, shell_output("#{bin}/unionfs --version 2>&1") + # TODO: fix test + # (testpath/"t1").mkdir + # (testpath/"t1/test1.txt").write <<~EOS + # This is test 1. + # EOS + # (testpath/"t2").mkdir + # (testpath/"t2/test2.txt").write <<~EOS + # This is test 2. + # EOS + # (testpath/"t3").mkdir + # begin + # system "#{bin}/unionfs", "-o", "cow,max_files=32768,allow_other,use_ino,nonempty", + # "#{testpath}/t1=RW:#{testpath}/t2=RO", testpath/"t3" + # assert_match "test 2", pipe_output("cat #{testpath}/t3/test2.txt") + # ensure + # system "umount", "#{testpath}/t3" + # end end end diff --git a/Formula/wdfs-mac.rb b/Formula/wdfs-mac.rb index dbd0afc..723734e 100644 --- a/Formula/wdfs-mac.rb +++ b/Formula/wdfs-mac.rb @@ -8,15 +8,13 @@ class WdfsMac < Formula license "GPL-2.0-or-later" bottle do - root_url "https://github.com/gromgit/homebrew-fuse/releases/download/wdfs-mac-1.4.2" - sha256 cellar: :any, arm64_monterey: "c3c3814f21f2e828a99f9fbed147a40ba6fbbf0ff5176245a4a6439d726c0d21" - sha256 cellar: :any, monterey: "2e8a0932b4f6148f09b8df5be63e3e0e69536a452820f19b0d8b3e261d4f7bc6" - sha256 cellar: :any, big_sur: "8e9cbe0059e88abf08f411c3b30b63c6a5b73e57a2d150a4cdfcded9e02863ac" - sha256 cellar: :any, catalina: "ff22c3b38115e75154a5bfd334481acc8594f04486cd667ab5f0a78fd9be67b9" - sha256 cellar: :any, mojave: "a8a7c080c4e56fe4b8eebaf6f66d594ebd72f5155ae01aa33e704883625e615b" + root_url "https://ghcr.io/v2/gromgit/fuse" + rebuild 1 + sha256 cellar: :any, arm64_sonoma: "470836a78df1eefa59cf45a46d2592313bdb32a51d0797266fe2c6ee1c588867" + sha256 cellar: :any, ventura: "d4350a182eeecb7003c5ff582c5a1329e156f894d9ac0a0aa64485f607fdc55d" end - depends_on "pkg-config" => :build + depends_on "pkgconf" => :build depends_on "glib" depends_on MacfuseRequirement depends_on :macos @@ -24,12 +22,11 @@ class WdfsMac < Formula def install setup_fuse - system "./configure", "--disable-debug", "--disable-dependency-tracking", - "--prefix=#{prefix}" + system "./configure", *std_configure_args system "make", "install" end test do - system "#{bin}/wdfs", "-v" + system bin/"wdfs", "-v" end end diff --git a/Formula/xmount-mac.rb b/Formula/xmount-mac.rb index 6428624..efdc74b 100644 --- a/Formula/xmount-mac.rb +++ b/Formula/xmount-mac.rb @@ -2,34 +2,33 @@ require_relative "../require/macfuse" class XmountMac < Formula desc "Convert between multiple input & output disk image types" - homepage "https://www.pinguin.lu/xmount/" - url "https://files.pinguin.lu/xmount-0.7.6.tar.gz" - sha256 "76e544cd55edc2dae32c42a38a04e11336f4985e1d59cec9dd41e9f9af9b0008" + homepage "https://www.sits.lu/xmount" + url "https://code.sits.lu/foss/xmount/-/archive/1.2.1/xmount-1.2.1.tar.gz" + sha256 "61b0b777ca0cd4eda30aeeeca7ec17a49d2657599a37745fb94f8dcc432b93c7" bottle do - root_url "https://github.com/gromgit/homebrew-fuse/releases/download/xmount-mac-0.7.6" - sha256 monterey: "3892b95a295e6c00bcf433d083248399d4d826f922db317e38a4563f6dd5d086" - sha256 big_sur: "7759a60875ac63e16cf33d1b87376be2f1cc57adc2ac4653e71d7bc10b5707db" - sha256 catalina: "9e25523204f40e98d32026209e5380ecda4048b9f9a4abed15574fb07c50d765" - sha256 mojave: "2a195cb467d9df4a0152f56aa66e29a5b3e039558a60a9fb969d41fb53ddc781" + root_url "https://ghcr.io/v2/gromgit/fuse" + sha256 arm64_sequoia: "cc8c7f233c8e40a6512736f137aff799dc3f986e6be60c3eea476a8d9b127383" + sha256 arm64_sonoma: "61f67c7481c3f76e4d9d8b11a7100bae495b5b655524739722d867593fc494a2" end depends_on "cmake" => :build - depends_on "pkg-config" => :build + depends_on "pkgconf" => :build depends_on "afflib" depends_on "libewf" depends_on MacfuseRequirement depends_on :macos - depends_on "openssl@1.1" + depends_on "openssl@3" patch :DATA def install setup_fuse - ENV.prepend_path "PKG_CONFIG_PATH", Formula["openssl@1.1"].opt_lib/"pkgconfig" + ENV.prepend_path "PKG_CONFIG_PATH", Formula["openssl@3"].opt_lib/"pkgconfig" - system "cmake", ".", *fuse_cmake_args, *std_cmake_args - system "make", "install" + system "cmake", "-S", ".", "-B", "build", *fuse_cmake_args, *std_cmake_args + system "cmake", "--build", "build" + system "cmake", "--install", "build" end test do @@ -37,13 +36,44 @@ class XmountMac < Formula end end __END__ ---- xmount-0.7.6/cmake_modules/FindLibOSXFUSE.cmake.orig 2021-05-05 14:32:44.220213677 +0800 -+++ xmount-0.7.6/cmake_modules/FindLibOSXFUSE.cmake 2021-05-05 14:35:07.185349574 +0800 -@@ -1,6 +1,6 @@ - # Try pkg-config first - find_package(PkgConfig) --pkg_check_modules(PKGC_LIBOSXFUSE QUIET osxfuse) -+pkg_check_modules(PKGC_LIBOSXFUSE QUIET fuse) +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 7369014..0bea886 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -73,9 +73,6 @@ check_include_files(libkern/OSByteOrder.h HAVE_LIBKERN_OSBYTEORDER_H) + find_package(Threads REQUIRED) + if(NOT APPLE) + find_package(LibFUSE REQUIRED) +-else(NOT APPLE) +- # On OSx, search for osxfuse +- find_package(LibOSXFUSE REQUIRED) + endif(NOT APPLE) + + # Generate config.h and add it's path to the include dirs +diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt +index 92d9b8f..623c3d1 100644 +--- a/src/CMakeLists.txt ++++ b/src/CMakeLists.txt +@@ -2,9 +2,8 @@ if(NOT APPLE) + include_directories(${LIBFUSE_INCLUDE_DIRS}) + set(LIBS ${LIBS} ${LIBFUSE_LIBRARIES}) + else(NOT APPLE) +- include_directories(${LIBOSXFUSE_INCLUDE_DIRS}) +- set(LIBS ${LIBS} ${LIBOSXFUSE_LIBRARIES}) +- link_directories(${LIBOSXFUSE_LIBRARY_DIRS}) ++ find_package(PkgConfig REQUIRED) ++ pkg_check_modules(FUSE fuse REQUIRED) + endif(NOT APPLE) + + if(LIBFUSE_VERSION EQUAL 3) +@@ -25,7 +24,9 @@ if(THREADS_HAVE_PTHREAD_ARG) + target_compile_options(xmount PUBLIC "-pthread") + endif(THREADS_HAVE_PTHREAD_ARG) + +-target_link_libraries(xmount ${LIBS}) ++target_include_directories(xmount PUBLIC ${FUSE_INCLUDE_DIRS}) ++target_link_libraries(xmount PUBLIC ${LIBS} ${FUSE_LDFLAGS}) ++target_compile_options(xmount PUBLIC ${FUSE_CFLAGS}) + + install(TARGETS xmount DESTINATION bin) - if(PKGC_LIBOSXFUSE_FOUND) - # Found lib using pkg-config. diff --git a/README.md b/README.md index 158da9e..b72677c 100644 --- a/README.md +++ b/README.md @@ -4,9 +4,9 @@ This tap exists to support macOS FUSE-related software that have been dropped fr --- -# !!! WARNING: Mojave Deprecation !!! +# !!! WARNING: Reduced Build Coverage !!! -Homebrew dropped support for macOS Mojave as of 25 Oct 2021. I'll continue to build Mojave bottles for the FUSE formulae for now, but ***not*** for any external dependencies that they rely on, _especially core formulae_. Therefore, at some point in 2022, I will also no longer support Mojave in this tap. +All my old Intel Mac hardware is dead, and I'm not inclined to spend additional resources spinning up VMs or building Hackintoshes at this stage. As of 2025-Feb-10, the only bottles built will be for those macOS versions supported by GitHub runners (currently Ventura on Intel and Sonoma on ARM). Sorry. --- @@ -14,14 +14,9 @@ Homebrew dropped support for macOS Mojave as of 25 Oct 2021. I'll continue to bu First, if you've already installed FUSE formulae from the core tap _before_ they were disabled, you might _not_ want to switch over to my formulae, because: 1. As far as I know, Homebrew will not remove them from your system, even after the formulae themselves are deleted. -2. Many of these formulae are rather old, so you're unlikely to find updates anyway. +1. Many of these formulae are rather old, so you're unlikely to find updates anyway. -But if you _do_ want to install my formulae over the core ones, you should uninstall the latter first: -``` -brew uninstall XYZ -brew install gromgit/fuse/XYZ-mac -``` -Note the `-mac` suffix to the formula name. +But if you _do_ want to install my formulae over the core ones, you should uninstall the core formulae first. ## Documentation @@ -35,14 +30,14 @@ It's probably available, but with a `-mac` suffix to avoid name clashes with Hom If you can't find it under its new name, possible reasons include: 1. All available versions of `XYZ` require version 3 of the libfuse API, but macFUSE only supports v2. -2. I might not have gotten around to getting it up. [File an issue](https://github.com/gromgit/homebrew-fuse/issues/new/choose) to get my attention. 😀 +1. I might not have gotten around to getting it up. [File an issue](https://github.com/gromgit/homebrew-fuse/issues/new/choose) to get my attention. 😀 ### Why is XYZ so old? Possible reasons: -1. Current `XYZ` requires libfuse v3, so I found and bottled the last version that requires libfuse v2. -2. `XYZ` was abandoned by its authors. If you know of a revived fork of such software, [file an issue](https://github.com/gromgit/homebrew-fuse/issues/new/choose) with the details and I'll see what can be done. -3. I might not have gotten around to updating it yet. [File an issue](https://github.com/gromgit/homebrew-fuse/issues/new/choose) to get my attention. 😀 +1. Current `XYZ` requires FUSE 3, which is not supported by all known macOS FUSE drivers, so the version you see is the latest one that can be built on macOS. +1. `XYZ` was abandoned by its authors. If you know of a revived fork of such software, [file an issue](https://github.com/gromgit/homebrew-fuse/issues/new/choose) with the details and I'll see what can be done. +1. I might not have gotten around to updating it yet. [File an issue](https://github.com/gromgit/homebrew-fuse/issues/new/choose) to get my attention. 😀 ### Why is the XYZ formula called `XYZ-mac`? @@ -54,16 +49,19 @@ To avoid a naming conflict with the formula called `XYZ` that still exists in Ho ### Why does Homebrew say I need to build `XYZ-mac` from source? -It's likely one of the following: -1. You're using an M1 Mac. I don't have one, so there are no bottles (for now). -2. You're running Homebrew on an Intel Mac in a non-standard location, so the existing bottles won't install for you. +All my old Intel Mac hardware is dead, so I'm relying now on the free GitHub runners to build bottles. -### Why can't I build XYZ on an M1 Mac? +### Why can't I build XYZ on an ARM Mac? -Homebrew currently [filters out `/usr/local` entirely during M1-based builds](https://github.com/Homebrew/brew/blob/04532cb6216b69a5b067aa7a4e22cff0944b257d/Library/Homebrew/shims/super/cc#L266-L270). I've devised a workaround for this, and it works on Intel Big Sur with Homebrew installed in a non-standard location, but I don't have an M1 Mac, so I can't test it for real. If you still can't build it, please [file an issue](https://github.com/gromgit/homebrew-fuse/issues/new/choose). +Homebrew currently [filters out `/usr/local` entirely during ARM-based builds](https://github.com/Homebrew/brew/blob/04532cb6216b69a5b067aa7a4e22cff0944b257d/Library/Homebrew/shims/super/cc#L266-L270). I've devised a workaround for this, that seems to work well on both Intel and ARM GitHub runners. If you still can't build it, please [file an issue](https://github.com/gromgit/homebrew-fuse/issues/new/choose). -If you need the software urgently, you'll have to set up a Rosetta-based Homebrew installation (which has prebuilt bottles): -``` -arch -x86_64 /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" -/usr/local/bin/brew install -``` +## Why aren't you using fuse-t in place of MacFUSE? + +As of 2025-Feb-16, [fuse-t](https://github.com/macos-fuse-t/fuse-t) is certainly interesting, but not enough of an improvement to make me force everyone to move over. + +For this to happen, at least one of the following needs to happen: + +1. **open source**, so there's a hope of getting it into Homebrew core _a la_ `libfuse{,@2}`, and get rid of all the `require` hackery in these formulae +1. **FUSE 2 and 3 support**, so we're not stuck in the past with half these formulae, but are still able to build older FUSE 2 formulae + +If any macOS FUSE implementation achieves *all* the above, I'm prepared to move everything over. Heck, if point 1 is achieved, this repo may itself become defunct. diff --git a/formula_renames.json b/formula_renames.json index 201763a..6bd4616 100644 --- a/formula_renames.json +++ b/formula_renames.json @@ -1,6 +1,5 @@ { "afuse": "afuse-mac", - "alluxio": "alluxio-mac", "archivemount": "archivemount-mac", "avfs": "avfs-mac", "bindfs": "bindfs-mac", diff --git a/lib/funcs.sh b/lib/funcs.sh index 5d72e06..ddea59d 100644 --- a/lib/funcs.sh +++ b/lib/funcs.sh @@ -1,5 +1,8 @@ +# shellcheck shell=bash +# shellcheck disable=SC2034 # string formatters -if [[ -t 1 ]]; then +if [[ -t 1 ]] +then Tty_escape() { printf "\033[%sm" "$1"; } else Tty_escape() { :; } @@ -16,6 +19,8 @@ Tty_underscore=$(Tty_escape 38) Tty_bold=$(Tty_mkbold 39) Tty_reset=$(Tty_escape 0) +msg_prefix="" + # fatal: Report fatal error # USAGE: fatal ... fatal() { @@ -46,12 +51,13 @@ info() { need_progs() { local missing=() local i - for i in "$@"; do - type -P "$i" &>/dev/null || missing+=("$i") + for i in "$@" + do + type -P "${i}" &>/dev/null || missing+=("${i}") done - if [[ ${#missing[@]} -gt 0 ]]; then + if [[ ${#missing[@]} -gt 0 ]] + then fatal "Commands missing: ${missing[*]}" - exit 1 fi } @@ -65,8 +71,9 @@ cmd() { # git_in: Run Git command in repo # USAGE: git_in ... git_in() { - local repo=$1; shift - pushd "$repo" >/dev/null || fatal "Can't cd to '$repo'" + local repo=$1 + shift + pushd "${repo}" >/dev/null || fatal "Can't cd to '${repo}'" cmd git "$@" - popd >/dev/null + popd >/dev/null || exit } diff --git a/require/macfuse.rb b/require/macfuse.rb index 5649c28..e6227e2 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"].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 @@ -77,6 +89,14 @@ class Formula 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 + ENV.prepend_path "PKG_CONFIG_PATH", "#{alt_fuse_root}/lib/pkgconfig" + end + # def fuse_pkgconfig # return "#{alt_fuse_root}/bin/fuse-pkg-config" if need_alt_fuse? # "pkg-config" @@ -90,20 +110,66 @@ 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" + ENV.append "CXXFLAGS", "-DFUSE_DARWIN_ENABLE_EXTENSIONS=0" + ENV.append "CGO_CPPFLAGS", "-DFUSE_DARWIN_ENABLE_EXTENSIONS=0" + 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" ENV.append "CGO_LDFLAGS", "-L#{alt_fuse_root}/lib" + disable_macfuse_extensions + odebug "PKG_CONFIG = #{ENV.fetch("PKG_CONFIG", nil)}" + odebug "PKG_CONFIG_PATH = #{ENV.fetch("PKG_CONFIG_PATH", nil)}" + odebug "CFLAGS = #{ENV.fetch("CFLAGS", nil)}" + end + + 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" + disable_macfuse_extensions odebug "PKG_CONFIG = #{ENV.fetch("PKG_CONFIG", nil)}" odebug "PKG_CONFIG_PATH = #{ENV.fetch("PKG_CONFIG_PATH", nil)}" odebug "CFLAGS = #{ENV.fetch("CFLAGS", nil)}" @@ -115,4 +181,11 @@ class Formula setup_fuse_env setup_fuse_flags end + + def setup_fuse3 + return unless need_alt_fuse? + + setup_fuse3_env + setup_fuse3_flags + end end diff --git a/tap_migrations.json b/tap_migrations.json new file mode 100644 index 0000000..4350e68 --- /dev/null +++ b/tap_migrations.json @@ -0,0 +1,3 @@ +{ + "mounty": "homebrew/cask" +}