Compare commits

..

No commits in common. "main" and "sshfs@2-2.10" have entirely different histories.

49 changed files with 129 additions and 2606 deletions

View file

@ -1,28 +0,0 @@
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

View file

@ -1,45 +1,33 @@
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-22.04
permissions:
actions: read
checks: read
contents: write
issues: read
packages: write
pull-requests: write
runs-on: ubuntu-latest
steps:
- name: Set up Homebrew
uses: Homebrew/actions/setup-homebrew@main
with:
token: ${{ secrets.GITHUB_TOKEN }}
uses: Homebrew/actions/setup-homebrew@master
- name: Set up git
uses: Homebrew/actions/git-user-config@main
uses: Homebrew/actions/git-user-config@master
- name: Pull bottles
env:
HOMEBREW_GITHUB_API_TOKEN: ${{ secrets.GITHUB_TOKEN }}
HOMEBREW_GITHUB_PACKAGES_TOKEN: ${{ secrets.GITHUB_TOKEN }}
HOMEBREW_GITHUB_PACKAGES_USER: ${{ github.repository_owner }}
HOMEBREW_GITHUB_API_TOKEN: ${{ github.token }}
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@main
uses: Homebrew/actions/git-try-push@master
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

View file

@ -1,30 +1,30 @@
name: brew test-bot
on:
push:
branches:
- main
branches: main
pull_request:
jobs:
test-bot:
strategy:
matrix:
os: [macos-14, macos-15, macos-26]
os: [macOS-latest]
runs-on: ${{ matrix.os }}
steps:
- name: Set up Homebrew
id: set-up-homebrew
uses: Homebrew/actions/setup-homebrew@main
uses: Homebrew/actions/setup-homebrew@master
- name: Cache Homebrew Bundler RubyGems
uses: actions/cache@v4
id: cache
uses: actions/cache@v1
with:
path: ${{ steps.set-up-homebrew.outputs.gems-path }}
key: ${{ matrix.os }}-rubygems-${{ steps.set-up-homebrew.outputs.gems-hash }}
restore-keys: ${{ matrix.os }}-rubygems-
key: ${{ runner.os }}-rubygems-${{ steps.set-up-homebrew.outputs.gems-hash }}
restore-keys: ${{ runner.os }}-rubygems-
- run: brew install --cask macfuse
- name: Install Homebrew Bundler RubyGems
if: steps.cache.outputs.cache-hit != 'true'
run: brew install-bundler-gems
- run: brew test-bot --only-cleanup-before
@ -32,12 +32,12 @@ jobs:
- run: brew test-bot --only-tap-syntax
- run: brew test-bot --verbose --debug --only-formulae --root-url='https://ghcr.io/v2/gromgit/fuse'
- run: brew test-bot --only-formulae
if: github.event_name == 'pull_request'
- name: Upload bottles as artifact
if: always() && github.event_name == 'pull_request'
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@main
with:
name: bottles_${{ matrix.os }}
name: bottles
path: '*.bottle.*'

View file

@ -1,33 +0,0 @@
require_relative "../require/macfuse"
class AfuseMac < Formula
desc "Automounting file system implemented in userspace with FUSE"
homepage "https://github.com/pcarrier/afuse/"
url "https://github.com/pcarrier/afuse.git",
tag: "v0.5.0",
revision: "d7f07c32e58850fa092bb98b53c5c570fed8be69"
license "GPL-2.0-only"
bottle do
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
test do
assert_match "FUSE library version", pipe_output("#{bin}/afuse --version 2>&1")
end
end

View file

@ -1,31 +0,0 @@
require_relative "../require/macfuse"
class ArchivemountMac < Formula
desc "File system for accessing archives using libarchive"
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://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 "pkgconf" => :build
depends_on "libarchive"
depends_on MacfuseRequirement
depends_on :macos
def install
setup_fuse3
system "make", "PREFIX=#{prefix}", "install"
end
test do
system bin/"archivemount", "--version"
end
end

View file

@ -1,48 +0,0 @@
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.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/*
]
livecheck do
url :stable
regex(%r{url=.*?/avfs[._-]v?(\d+(?:\.\d+)+)\.t}i)
end
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 "xz"
depends_on "zlib"
def install
setup_fuse
system "./configure", "--disable-silent-rules",
"--enable-fuse",
"--enable-library",
"--with-system-zlib",
"--with-system-bzlib",
"--with-xz",
*std_configure_args
system "make", "install"
end
test do
system bin/"avfsd", "--version"
end
end

View file

@ -1,40 +0,0 @@
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.18.0.tar.gz"
sha256 "46fcf95b871109265e93cd42e5ae282c722716488ad9f0da1e1f98535be37f7a"
license "GPL-2.0-or-later"
bottle do
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", branch: "master"
depends_on "autoconf" => :build
depends_on "automake" => :build
depends_on "libtool" => :build
end
depends_on "pkg-config" => :build
depends_on MacfuseRequirement
depends_on :macos
def install
setup_fuse
# 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
test do
system "#{bin}/bindfs", "-V"
end
end

View file

@ -1,42 +0,0 @@
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/refs/tags/v2.24.tar.gz"
sha256 "d71ddefe3c572e05362542a0d9fd0240d8d4e1578ace55a8b3245176e7fd8935"
license "GPL-3.0-only"
revision 1
head "https://github.com/johang/btfs.git", branch: "master"
bottle do
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 "pkgconf" => :build
depends_on "libtorrent-rasterbar"
depends_on MacfuseRequirement
depends_on :macos
def install
setup_fuse
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
assert_match version.to_s, shell_output("#{bin}/btfs --version 2>&1")
end
end

View file

@ -1,63 +0,0 @@
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/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://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 "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 "range-v3"
depends_on "spdlog"
def install
setup_fuse
libomp = Formula["libomp"]
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",
]
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
ENV["CRYFS_FRONTEND"] = "noninteractive"
# Test showing help page
assert_match "CryFS", shell_output("#{bin}/cryfs 2>&1", 10)
# Test mounting a filesystem. This command will ultimately fail because homebrew tests
# don't have the required permissions to mount fuse filesystems, but before that
# it should display "Mounting filesystem". If that doesn't happen, there's something
# wrong. For example there was an ABI incompatibility issue between the crypto++ version
# the cryfs bottle was compiled with and the crypto++ library installed by homebrew to.
mkdir "basedir"
mkdir "mountdir"
assert_match "Operation not permitted", pipe_output("#{bin}/cryfs -f basedir mountdir 2>&1", "password")
end
end

View file

@ -1,38 +0,0 @@
require_relative "../require/macfuse"
class CurlftpfsMac < Formula
desc "Filesystem for accessing FTP hosts based on FUSE and libcurl"
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://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 "pkgconf" => :build
depends_on "curl"
depends_on "glib"
depends_on MacfuseRequirement
depends_on :macos
def install
setup_fuse
ENV.append "CPPFLAGS", "-D__off_t=off_t"
system "autoreconf", "--force", "--install", "--verbose"
system "./configure", *std_configure_args
system "make", "install"
end
test do
assert_match version.to_s, shell_output("#{bin}/curlftpfs --version 2>&1", 1)
end
end

View file

@ -1,74 +0,0 @@
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/refs/tags/v0.7.3.tar.gz"
sha256 "8d5275577c44f2bd87f6e05dd61971a71c0e56a9cbedf000bd38deadd8b6c1e6"
license "GPL-2.0-only"
revision 2
bottle do
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"
# 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", "-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
system "#{bin}/dislocker", "-h"
end
end
__END__
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index bd854d2..9ab137d 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -92,7 +92,7 @@ if("${CMAKE_SYSTEM_NAME}" STREQUAL "Darwin")
# Don't use `-read_only_relocs' here as it seems to only work for 32 bits
# binaries
set (CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -Wl,-bind_at_load")
- set (FUSE_LIB osxfuse_i64)
+ set (FUSE_LIB fuse)
else()
# Useless warnings when used within Darwin
set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wconversion")
diff --git a/src/dislocker-fuse.c b/src/dislocker-fuse.c
index f93523f..3dd106c 100644
--- a/src/dislocker-fuse.c
+++ b/src/dislocker-fuse.c
@@ -33,11 +33,7 @@
-#ifdef __DARWIN
-# include <osxfuse/fuse.h>
-#else
-# include <fuse.h>
-#endif /* __DARWIN */
+#include <fuse.h>
/** NTFS virtual partition's name */

View file

@ -1,150 +0,0 @@
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 <iostream>
#include <dwarfs/version.h>
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
)

View file

@ -1,50 +0,0 @@
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/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 "GPL-3.0-or-later"
revision 2
head "https://github.com/vgough/encfs.git", branch: "master"
bottle do
root_url "https://ghcr.io/v2/gromgit/fuse"
sha256 arm64_sonoma: "04797584c9dde670d286a5369261def970ab4a5b84081999874fe84b9e24dee6"
sha256 ventura: "c1378c0f82327e7ad461b6215b7e88680d4326e94736955879313931ceacaf7a"
end
depends_on "cmake" => :build
depends_on "pkgconf" => :build
depends_on "gettext"
depends_on MacfuseRequirement
depends_on :macos
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
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
# Functional test violates sandboxing, so punt.
# Issue #50602; upstream issue vgough/encfs#151
assert_match version.to_s, shell_output("#{bin}/encfs 2>&1", 1)
end
end

48
Formula/encfs.rb Normal file
View file

@ -0,0 +1,48 @@
require_relative "../require/macfuse" if OS.mac?
class Encfs < 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"
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 "GPL-3.0"
head "https://github.com/vgough/encfs.git"
bottle do
root_url "https://github.com/gromgit/homebrew-fuse/releases/download/encfs-1.9.5"
sha256 big_sur: "a3ad5e221f05f624c74ff3015164ae6e2bac3a99537b3b0a9d8f0b546130abe7"
sha256 catalina: "41efd14389d04bf5d2a0bc957972b15b6e1ff511452c89749ddc68b6bca6e3e7"
sha256 mojave: "aaf2aa568786ed055114cf54ee4b46acd66f74a7bc10715b446198164afa1871"
sha256 x86_64_linux: "8f4401c6165c596ce0e9f4e526c355cd573581c64da5661e754afde9300e71b5"
end
depends_on "cmake" => :build
depends_on "pkg-config" => :build
depends_on "gettext"
depends_on "openssl@1.1"
on_macos do
depends_on MacfuseRequirement
end
on_linux do
depends_on "libfuse"
end
def install
ENV.cxx11
mkdir "build" do
system "cmake", "..", *std_cmake_args
system "make", "install"
end
end
test do
# Functional test violates sandboxing, so punt.
# Issue #50602; upstream issue vgough/encfs#151
assert_match version.to_s, shell_output("#{bin}/encfs 2>&1", 1)
end
end

View file

@ -1,36 +0,0 @@
require_relative "../require/macfuse"
class Ext2fuseMac < Formula
desc "Compact implementation of ext2 file system using FUSE"
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://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
depends_on "e2fsprogs"
depends_on MacfuseRequirement
depends_on :macos
def install
setup_fuse
ENV.append "LIBS", "-lfuse"
ENV.append "CFLAGS",
"-D__FreeBSD__=10 -DENABLE_SWAPFS -I/usr/local/include/fuse "
ENV.append "CFLAGS", "--std=gnu89" if ENV.compiler == :clang
system "./configure", *std_configure_args
system "make", "install"
end
test do
assert_match version.to_s, shell_output("#{bin}/ext2fuse --version 2>&1", 9)
end
end

View file

@ -1,31 +0,0 @@
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/refs/tags/v0.1.3.tar.gz"
sha256 "550f1e152c4de7d4ea517ee1c708f57bfebb0856281c508511419db45aa3ca9f"
license "GPL-2.0-only"
head "https://github.com/gerard/ext4fuse.git", branch: "master"
bottle do
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 "pkgconf" => :build
depends_on MacfuseRequirement
depends_on :macos
def install
setup_fuse
system "make"
bin.install "ext4fuse"
end
test do
assert_match version.to_s, shell_output("#{bin}/ext4fuse --version 2>&1", 1)
end
end

View file

@ -1,31 +0,0 @@
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/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, branch: "master"
bottle do
root_url "https://ghcr.io/v2/gromgit/fuse"
rebuild 1
sha256 cellar: :any, arm64_sonoma: "07d4a035c41b76adc6fa4e320ba0e002bc6ff6e8ca52e0e47d0ad42b267762f0"
sha256 cellar: :any, ventura: "185b074a45baad043449b409896b0425ffcdc83eeac02d903f6b5a84867cb7e2"
end
depends_on "pkgconf" => :build
depends_on "libzip"
depends_on MacfuseRequirement
depends_on :macos
def install
setup_fuse
system "make", "prefix=#{prefix}", "install"
end
test do
system bin/"fuse-zip", "--help"
end
end

View file

@ -1,47 +0,0 @@
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

View file

@ -1,72 +0,0 @@
require_relative "../require/macfuse"
class GcsfuseMac < Formula
desc "User-space file system for interacting with Google Cloud"
homepage "https://github.com/googlecloudplatform/gcsfuse"
url "https://github.com/GoogleCloudPlatform/gcsfuse/archive/refs/tags/v3.5.5.tar.gz"
sha256 "ae5f26ee6969081ecd71bdc581871ebb88cb7b03a00d3bab6f9939b80bcfa39a"
license "Apache-2.0"
head "https://github.com/GoogleCloudPlatform/gcsfuse.git", branch: "master"
livecheck do
url :stable
strategy :github_latest
end
bottle do
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
patch do
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
# libraries from the user's GOPATH; it should have no dependencies.
ENV.delete("GOPATH")
system "go", "build", "./tools/build_gcsfuse"
# Use that tool to build gcsfuse itself.
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 "#{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))

View file

@ -1,95 +0,0 @@
require_relative "../require/macfuse"
class GitfsMac < Formula
include Language::Python::Virtualenv
desc "Version controlled file system"
homepage "https://www.presslabs.com/gitfs"
url "https://github.com/vtemian/gitfs/archive/refs/tags/v1.0.0.tar.gz"
sha256 "75835c6e4cad400c06e86ecb2efedfa7a8ffe5c5939c4e70040f6e861b4e85d3"
license "Apache-2.0"
head "https://github.com/vtemian/gitfs.git", branch: "main"
bottle do
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.13"
uses_from_macos "libffi"
resource "atomiclong" do
url "https://files.pythonhosted.org/packages/86/8c/70aea8215c6ab990f2d91e7ec171787a41b7fbc83df32a067ba5d7f3324f/atomiclong-0.1.1.tar.gz"
sha256 "cb1378c4cd676d6f243641c50e277504abf45f70f1ea76e446efcdbb69624bbe"
end
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/fc/97/c783634659c2920c3fc70419e3af40972dbaf758daa229a7d6ea6135c90d/cffi-1.17.1.tar.gz"
sha256 "1c39c6016c32bc48dd54561950ebd6836e1670f2ae46128f67cf49e789c52824"
end
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/1d/b2/31537cf4b1ca988837256c910a668b553fceb8f069bedc4b1c826024b52c/pycparser-2.22.tar.gz"
sha256 "491c8be9c040f5390f5bf44a5b07752bd07f56edf992381b05c701439eec10f6"
end
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
end
def caveats
<<~EOS
gitfs clones repos in /var/lib/gitfs. You can either create it with
sudo mkdir -m 1777 /var/lib/gitfs or use another folder with the
repo_path argument.
EOS
end
test do
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
import gitfs
import pygit2
pygit2.init_repository('testing/.git', True)
EOS
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

View file

@ -1,35 +0,0 @@
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.6.1/gocryptfs_v2.6.1_src-deps.tar.gz"
sha256 "9a966c1340a1a1d92073091643687b1205c46b57017c5da2bf7e97e3f5729a5a"
license "MIT"
bottle do
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@3"
def install
setup_fuse
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_path_exists testpath/"encdir/gocryptfs.conf"
end
end

View file

@ -1,47 +0,0 @@
require_relative "../require/macfuse"
class GoofysMac < Formula
desc "Filey-System interface to Amazon S3"
homepage "https://github.com/kahing/goofys"
url "https://github.com/kahing/goofys.git",
tag: "v0.24.0",
revision: "45b8d78375af1b24604439d2e60c567654bcdf88"
license "Apache-2.0"
head "https://github.com/kahing/goofys.git"
bottle do
root_url "https://github.com/gromgit/homebrew-fuse/releases/download/goofys-mac-0.24.0"
sha256 cellar: :any_skip_relocation, monterey: "0edf3be0d9fb22e7637e981539a5e93158d4543050a61afb5d11ce0ec80f0e17"
sha256 cellar: :any_skip_relocation, big_sur: "f3f73dc39927ee0a94a26a3bc8ae4b097e083d48e311b79274a85ac7f547e85a"
sha256 cellar: :any_skip_relocation, catalina: "b61cf142b7a484520ad554d17947d7022ed0c3fdab04d6cf89da93b986d6de15"
sha256 cellar: :any_skip_relocation, mojave: "648d204e47b710662db2b778164346ef2b9fd77a4ec02af210fc8116eee7bb7f"
end
# 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
def install
setup_fuse
contents = Dir["*"]
gopath = buildpath/"gopath"
(gopath/"src/github.com/kahing/goofys").install contents
ENV["GOPATH"] = gopath
goofys_version = build.head? ? Utils.git_head : version
cd gopath/"src/github.com/kahing/goofys" do
system "go", "build", *std_go_args,
"-ldflags", "-X main.Version=#{goofys_version}",
"-o", "#{bin}/goofys"
prefix.install_metafiles
end
end
test do
system "#{bin}/goofys", "--version"
end
end

View file

@ -1,32 +0,0 @@
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

View file

@ -1,40 +0,0 @@
require_relative "../require/macfuse"
class IfuseMac < Formula
desc "FUSE module for iOS devices"
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://github.com/libimobiledevice/ifuse.git", branch: "master"
bottle do
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 "pkgconf" => :build
depends_on "glib"
depends_on "libimobiledevice"
depends_on "libplist"
depends_on MacfuseRequirement
depends_on :macos
def install
# 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
test do
# Actual test of functionality requires osxfuse, so test for expected failure instead
assert_match "ERROR: No device found!", shell_output("#{bin}/ifuse --list-apps", 1)
end
end

View file

@ -1,61 +0,0 @@
require_relative "../require/macfuse"
class Mp3fsMac < Formula
desc "Read-only FUSE file system: transcodes audio formats to MP3"
homepage "https://khenriks.github.io/mp3fs/"
url "https://github.com/khenriks/mp3fs/releases/download/v1.1.1/mp3fs-1.1.1.tar.gz"
sha256 "942b588fb623ea58ce8cac8844e6ff2829ad4bc9b4c163bba58e3fa9ebc15608"
license "GPL-3.0-or-later"
bottle do
root_url "https://ghcr.io/v2/gromgit/fuse"
rebuild 1
sha256 cellar: :any, arm64_sonoma: "4171a0e1383f1c17150ed12ecb88fb766df4a105ce789e79e3d67130208c4b60"
sha256 cellar: :any, ventura: "6d3d1bd7f5db566dbe51bf16dfd5c63ed79cc1ea98904d48921953ccc9b77c01"
end
depends_on "pkgconf" => :build
depends_on "flac"
depends_on "lame"
depends_on "libid3tag"
depends_on "libvorbis"
depends_on MacfuseRequirement
depends_on :macos
patch :DATA
def install
setup_fuse
system "./configure", *std_configure_args
system "make", "install"
end
test do
assert_match "mp3fs version: #{version}", shell_output("#{bin}/mp3fs -V")
end
end
__END__
diff --git a/src/mp3fs.cc b/src/mp3fs.cc
index f846da9..f215f10 100644
--- a/src/mp3fs.cc
+++ b/src/mp3fs.cc
@@ -28,9 +28,6 @@
#include <fuse.h>
#include <fuse_common.h>
#include <fuse_opt.h>
-#ifdef __APPLE__
-#include <fuse_darwin.h>
-#endif
#include <cstddef>
#include <cstdlib>
@@ -166,9 +163,6 @@ void print_versions(std::ostream&& out) {
print_codec_versions(out);
out << "FUSE library version: " << FUSE_MAJOR_VERSION << "."
<< FUSE_MINOR_VERSION << std::endl;
-#ifdef __APPLE__
- out << "OS X FUSE version: " << osxfuse_version() << std::endl;
-#endif
}
int mp3fs_opt_proc(void* /*unused*/, const char* arg, int key,

View file

@ -1,101 +0,0 @@
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.10.3.tgz"
sha256 "f20e36ee68074b845e3629e6bced4706ad053804cbaf062fbae60738f854170c"
license all_of: ["GPL-2.0-or-later", "LGPL-2.0-or-later"]
livecheck do
url :head
strategy :github_latest
end
bottle do
root_url "https://ghcr.io/v2/gromgit/fuse"
rebuild 1
sha256 cellar: :any, arm64_sonoma: "a00edf9e9abde1b447829c0e49267189a90713b66f651e498723915f2415284d"
sha256 cellar: :any, ventura: "6e5875dd0059b8a387cc0eba1d9e3f866758c0e711ab5db62ed91da2dd989faf"
end
head do
url "https://github.com/tuxera/ntfs-3g.git", branch: "edge"
depends_on "autoconf" => :build
depends_on "automake" => :build
depends_on "libgcrypt" => :build
depends_on "libtool" => :build
end
depends_on "pkgconf" => :build
depends_on "coreutils" => :test
depends_on "gettext"
depends_on MacfuseRequirement
depends_on :macos
def install
setup_fuse
ENV.append "LDFLAGS", "-lintl"
args = %W[
--exec-prefix=#{prefix}
--mandir=#{man}
--with-fuse=external
--enable-extras
]
system "./autogen.sh" if build.head?
# Workaround for hardcoded /sbin in ntfsprogs
inreplace Dir["{ntfsprogs,src}/Makefile.in"], "$(DESTDIR)/sbin/", "$(DESTDIR)#{sbin}/"
system "./configure", *args, *std_configure_args
system "make"
system "make", "install"
# Install a script that can be used to enable automount
File.open("#{sbin}/mount_ntfs", File::CREAT|File::TRUNC|File::RDWR, 0755) do |f|
f.puts <<~EOS
#!/bin/bash
VOLUME_NAME="${@:$#}"
VOLUME_NAME=${VOLUME_NAME#/Volumes/}
USER_ID=#{Process.uid}
GROUP_ID=#{Process.gid}
if [ "$(/usr/bin/stat -f %u /dev/console)" -ne 0 ]; then
USER_ID=$(/usr/bin/stat -f %u /dev/console)
GROUP_ID=$(/usr/bin/stat -f %g /dev/console)
fi
#{opt_bin}/ntfs-3g \\
-o volname="${VOLUME_NAME}" \\
-o local \\
-o negative_vncache \\
-o auto_xattr \\
-o auto_cache \\
-o noatime \\
-o windows_names \\
-o streams_interface=openxattr \\
-o inherit \\
-o uid="$USER_ID" \\
-o gid="$GROUP_ID" \\
-o allow_other \\
-o big_writes \\
"$@" >> /var/log/mount-ntfs-3g.log 2>&1
exit $?;
EOS
end
end
test do
# create a small raw image, format and check it
ntfs_raw = testpath/"ntfs.raw"
system Formula["coreutils"].libexec/"gnubin/truncate", "--size=10M", ntfs_raw
ntfs_label_input = "Homebrew"
system sbin/"mkntfs", "--force", "--fast", "--label", ntfs_label_input, ntfs_raw
system bin/"ntfsfix", "--no-action", ntfs_raw
ntfs_label_output = shell_output("#{sbin}/ntfslabel #{ntfs_raw}")
assert_match ntfs_label_input, ntfs_label_output
end
end

View file

@ -1,131 +0,0 @@
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

View file

@ -1,60 +0,0 @@
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/refs/tags/v1.72.1.tar.gz"
sha256 "322c73932b533571880832c0e07abdf9492c7f329b7d1dcdbd2a195fa2635a77"
license "MIT"
head "https://github.com/rclone/rclone.git", branch: "master"
bottle do
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
depends_on MacfuseRequirement
depends_on :macos
def install
setup_fuse
system "go", "build",
"-ldflags", "-s -X github.com/rclone/rclone/fs.Version=v#{version}",
"-tags", "cmount", *std_go_args
(libexec/"rclone").install_symlink bin/name.to_s => "rclone"
man1.install "rclone.1" => "#{name}.1"
system bin/name.to_s, "genautocomplete", "bash", "rclone.bash"
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}"
bash_completion.install "rclone.bash" => "rclone"
bash_completion.install "#{name}.bash" => name.to_s
zsh_completion.install "_rclone"
zsh_completion.install "_#{name}"
end
def caveats
<<~EOS
The rclone binary has been installed as `#{name}`,
to avoid conflict with the core `rclone` 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
test do
(testpath/"file1.txt").write "Test!"
system bin/name.to_s, "copy", testpath/"file1.txt", testpath/"dist"
assert_match File.read(testpath/"file1.txt"), File.read(testpath/"dist/file1.txt")
system opt_libexec/"rclone/rclone", "copy", testpath/"file1.txt", testpath/"dast"
assert_match File.read(testpath/"file1.txt"), File.read(testpath/"dast/file1.txt")
end
end

View file

@ -1,64 +0,0 @@
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/refs/tags/rel-1.7.tar.gz"
sha256 "d66066dfd0274a2fb7b71dd929445377dd23100b9fa43e3888dbe3fc7e8228e8"
license "GPL-2.0-or-later"
bottle do
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
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})

View file

@ -1,32 +0,0 @@
require_relative "../require/macfuse"
class S3BackerMac < Formula
desc "FUSE-based single file backing store via Amazon S3"
homepage "https://github.com/archiecobbs/s3backer"
url "https://archie-public.s3.amazonaws.com/s3backer/s3backer-2.1.4.tar.gz"
sha256 "0451471209cc872708e91b2784a4a1b9f3ca44c89a7bffb8f6145aed28c941e7"
license "GPL-2.0-or-later"
bottle do
root_url "https://ghcr.io/v2/gromgit/fuse"
sha256 cellar: :any, arm64_sonoma: "7f67d78e85e19ec2447968526fddc16c9285c32f2d81eb5cdbaa2771fb2e7153"
sha256 cellar: :any, ventura: "51f68b3c5cba34ac4e669b9cc8b2b1f37a940fc01e3d356decb4aaf750f1e96d"
end
depends_on "pkgconf" => :build
depends_on "curl"
depends_on "expat"
depends_on MacfuseRequirement
depends_on :macos
depends_on "openssl@3"
def install
setup_fuse
system "./configure", "--disable-silent-rules", *std_configure_args
system "make", "install"
end
test do
system bin/"s3backer", "--version"
end
end

View file

@ -1,53 +0,0 @@
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/refs/tags/v1.95.tar.gz"
sha256 "0c97b8922f005500d36f72aee29a1345c94191f61d795e2a7b79fb7e3e6f5517"
license "GPL-2.0-or-later"
head "https://github.com/s3fs-fuse/s3fs-fuse.git", branch: "master"
bottle do
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 "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", "--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
end

View file

@ -1,172 +0,0 @@
require_relative "../require/macfuse"
class S3qlMac < Formula
include Language::Python::Virtualenv
desc "POSIX-compliant FUSE filesystem using object store as block storage"
homepage "https://github.com/s3ql/s3ql"
url "https://github.com/s3ql/s3ql/releases/download/release-3.3.2/s3ql-3.3.2.tar.bz2"
sha256 "72b310052752e281a17468a8bbe9006db7fa1f0184b83b38c5667239dfd59e73"
license "GPL-3.0-only"
revision 1
bottle do
root_url "https://github.com/gromgit/homebrew-fuse/releases/download/s3ql-mac-3.3.2"
sha256 cellar: :any, arm64_monterey: "28591bf8f937e22571aebb9ea52b5a41a6674bca0e285d49009d3b6f3daff494"
sha256 cellar: :any, monterey: "f2b0297df187d806be556ec6ed6c6ad5f9d3866d505387a5aee0e0ec558f0afe"
sha256 cellar: :any, big_sur: "d25584692de92f2e9982ac22a60371844032fdd4461507eff126ff2ea5077414"
sha256 cellar: :any, catalina: "5263041b72989e71d60fd9dacf95fb3138d488fc04f25ff7438fd2f73e20e8a5"
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@3"
depends_on "python@3.13"
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
resource "cachetools" do
url "https://files.pythonhosted.org/packages/30/62/88fda08df9053141647b6941141b71b4c2a23d0fabab485feb917428ab46/cachetools-4.1.0.tar.gz"
sha256 "1d057645db16ca7fe1f3bd953558897603d6f0b9c51ed9d11eb4d071ec4e2aab"
end
resource "certifi" do
url "https://files.pythonhosted.org/packages/b8/e2/a3a86a67c3fc8249ed305fc7b7d290ebe5e4d46ad45573884761ef4dea7b/certifi-2020.4.5.1.tar.gz"
sha256 "51fcb31174be6e6664c5f69e3e1691a2d72a1a12e90f872cbdb1567eb47b6519"
end
resource "cffi" do
url "https://files.pythonhosted.org/packages/05/54/3324b0c46340c31b909fcec598696aaec7ddc8c18a63f2db352562d3354c/cffi-1.14.0.tar.gz"
sha256 "2d384f4a127a15ba701207f7639d94106693b6cd64173d6c8988e2c25f3ac2b6"
end
resource "chardet" do
url "https://files.pythonhosted.org/packages/fc/bb/a5768c230f9ddb03acc9ef3f0d4a3cf93462473795d18e9535498c8f929d/chardet-3.0.4.tar.gz"
sha256 "84ab92ed1c4d4f16916e05906b6b75a6c0fb5db821cc65e70cbd64a3e2a5eaae"
end
resource "cryptography" do
url "https://files.pythonhosted.org/packages/56/3b/78c6816918fdf2405d62c98e48589112669f36711e50158a0c15d804c30d/cryptography-2.9.2.tar.gz"
sha256 "a0c30272fb4ddda5f5ffc1089d7405b7a71b0b0f51993cb4e5dbb4590b2fc229"
end
resource "defusedxml" do
url "https://files.pythonhosted.org/packages/a4/5f/f8aa58ca0cf01cbcee728abc9d88bfeb74e95e6cb4334cfd5bed5673ea77/defusedxml-0.6.0.tar.gz"
sha256 "f684034d135af4c6cbb949b8a4d2ed61634515257a67299e5f940fbaa34377f5"
end
resource "dugong" do
url "https://files.pythonhosted.org/packages/db/68/74767cc13b9e7cfa9705fc9cf3b272e55350de8cd4a73c98508a95d9a52c/dugong-3.7.5.tar.bz2"
sha256 "d0d07606282230fd9832f2de647e4cb46882c227883e6a12a8ff811ac46d7283"
end
resource "google-auth" do
url "https://files.pythonhosted.org/packages/d8/47/0b6f9d832fe0699c8daf8b645408752e995f5afbb466cfa76d9954fcf8e1/google-auth-1.14.1.tar.gz"
sha256 "e63b2210e03c4ed829063b72c4af0c4b867c2788efb3210b6b9439b488bd3afd"
end
resource "google-auth-oauthlib" do
url "https://files.pythonhosted.org/packages/cd/5a/2b5a4c1294a4e8903bdba122083bd505dc51688a95d4670cde89dc45e6ed/google-auth-oauthlib-0.4.1.tar.gz"
sha256 "88d2cd115e3391eb85e1243ac6902e76e77c5fe438b7276b297fbe68015458dd"
end
resource "idna" do
url "https://files.pythonhosted.org/packages/cb/19/57503b5de719ee45e83472f339f617b0c01ad75cba44aba1e4c97c2b0abd/idna-2.9.tar.gz"
sha256 "7588d1c14ae4c77d74036e8c22ff447b26d0fde8f007354fd48a7814db15b7cb"
end
resource "llfuse" do
url "https://files.pythonhosted.org/packages/75/b4/5248459ec0e7e1608814915479cb13e5baf89034b572e3d74d5c9219dd31/llfuse-1.3.6.tar.bz2"
sha256 "31a267f7ec542b0cd62e0f1268e1880fdabf3f418ec9447def99acfa6eff2ec9"
end
resource "oauthlib" do
url "https://files.pythonhosted.org/packages/fc/c7/829c73c64d3749da7811c06319458e47f3461944da9d98bb4df1cb1598c2/oauthlib-3.1.0.tar.gz"
sha256 "bee41cc35fcca6e988463cacc3bcb8a96224f470ca547e697b604cc697b2f889"
end
resource "pyasn1" do
url "https://files.pythonhosted.org/packages/a4/db/fffec68299e6d7bad3d504147f9094830b704527a7fc098b721d38cc7fa7/pyasn1-0.4.8.tar.gz"
sha256 "aef77c9fb94a3ac588e87841208bdec464471d9871bd5050a287cc9a475cd0ba"
end
resource "pyasn1-modules" do
url "https://files.pythonhosted.org/packages/88/87/72eb9ccf8a58021c542de2588a867dbefc7556e14b2866d1e40e9e2b587e/pyasn1-modules-0.2.8.tar.gz"
sha256 "905f84c712230b2c592c19470d3ca8d552de726050d1d1716282a1f6146be65e"
end
resource "pycparser" do
url "https://files.pythonhosted.org/packages/0f/86/e19659527668d70be91d0369aeaa055b4eb396b0f387a4f92293a20035bd/pycparser-2.20.tar.gz"
sha256 "2d475327684562c3a96cc71adf7dc8c4f0565175cf86b6d7a404ff4c771f15f0"
end
resource "requests" do
url "https://files.pythonhosted.org/packages/f5/4f/280162d4bd4d8aad241a21aecff7a6e46891b905a4341e7ab549ebaf7915/requests-2.23.0.tar.gz"
sha256 "b3f43d496c6daba4493e7c431722aeb7dbc6288f52a6e04e7b6023b0247817e6"
end
resource "requests-oauthlib" do
url "https://files.pythonhosted.org/packages/23/eb/68fc8fa86e0f5789832f275c8289257d8dc44dbe93fce7ff819112b9df8f/requests-oauthlib-1.3.0.tar.gz"
sha256 "b4261601a71fd721a8bd6d7aa1cc1d6a8a93b4a9f5e96626f8e4d91e8beeaa6a"
end
resource "rsa" do
url "https://files.pythonhosted.org/packages/cb/d0/8f99b91432a60ca4b1cd478fd0bdf28c1901c58e3a9f14f4ba3dba86b57f/rsa-4.0.tar.gz"
sha256 "1a836406405730121ae9823e19c6e806c62bbad73f890574fff50efa4122c487"
end
resource "six" do
url "https://files.pythonhosted.org/packages/21/9f/b251f7f8a76dec1d6651be194dfba8fb8d7781d10ab3987190de8391d08e/six-1.14.0.tar.gz"
sha256 "236bdbdce46e6e6a3d61a337c0f8b763ca1e8717c03b369e87a7ec7ce1319c0a"
end
resource "urllib3" do
url "https://files.pythonhosted.org/packages/05/8c/40cd6949373e23081b3ea20d5594ae523e681b6f472e600fbc95ed046a36/urllib3-1.25.9.tar.gz"
sha256 "3018294ebefce6572a474f0604c2021e33b3fd8006ecd11d62107a5d2a963527"
end
def install
setup_fuse
venv = virtualenv_create(libexec, "python3")
resources.each do |r|
venv.pip_install r
end
# The inreplace changes the name of the (fsck|mkfs|mount|umount).s3ql
# utilities to use underscore (_) as a separator, which is consistent
# with other tools on macOS.
# Final names: fsck_s3ql, mkfs_s3ql, mount_s3ql, umount_s3ql
inreplace "setup.py", /'(?:(mkfs|fsck|mount|umount)\.)s3ql =/, "'\\1_s3ql ="
system libexec/"bin/python3", "setup.py", "build_ext", "--inplace"
venv.pip_install_and_link buildpath
end
def caveats
<<~EOS
This formula is outdated, and is provided only as a courtesy.
It cannot be updated until macFUSE supports FUSE API version 3.
If security issues are discovered with this old software,
it may be removed without notice.
EOS
end
test do
assert_match "S3QL ", shell_output(bin/"mount_s3ql --version")
# create a local filesystem, and run an fsck on it
assert_equal "Library\n", shell_output("ls")
assert_match "Creating metadata", shell_output(bin/"mkfs_s3ql --plain local://#{testpath} 2>&1")
assert_match "s3ql_metadata", shell_output("ls s3ql_metadata")
system bin/"fsck_s3ql", "local://#{testpath}"
end
end

View file

@ -1,52 +0,0 @@
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/archive/refs/tags/v2.0.0.tar.gz"
sha256 "d7fac7adc70c09473173aeadee5b7041d7e63fbf392ef40bdd77888590bb12a2"
license "MIT"
head "https://github.com/netheril96/securefs.git", branch: "master"
livecheck do
url :stable
strategy :github_latest
end
bottle do
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
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
end
end

View file

@ -1,55 +0,0 @@
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/refs/tags/v0.4.0.tar.gz"
sha256 "1d011df3fa09ad0a5c09d48d84c03e6cddf86390af9eb4e0c178193f32f0e2fc"
license "GPL-2.0-or-later"
bottle do
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 "pkgconf" => :build
depends_on "libmtp"
depends_on "libusb"
depends_on MacfuseRequirement
depends_on :macos
patch :DATA
def install
setup_fuse
system "./autogen.sh"
system "./configure", "--disable-silent-rules", *std_configure_args
system "make"
system "make", "install"
end
test do
system bin/"simple-mtpfs", "-h"
end
end
__END__
diff --git a/configure.ac b/configure.ac
index 321cfec..a5e9294 100644
--- a/configure.ac
+++ b/configure.ac
@@ -25,8 +25,8 @@ test "x$os_name" == "xDarwin" || AC_CHECK_FUNCS([fdatasync])
PKG_CHECK_MODULES([FUSE], [fuse >= 2.7.3])
if test "x$os_name" == "xDarwin"; then
- AC_SUBST([FUSE_CFLAGS],["-D_FILE_OFFSET_BITS=64 -D_DARWIN_USE_64_BIT_INODE -I/usr/local/include/osxfuse"])
- AC_SUBST([FUSE_LIBS],["-L/usr/local/lib -losxfuse -pthread -liconv"])
+ AC_SUBST([FUSE_CFLAGS],["-D_FILE_OFFSET_BITS=64 -D_DARWIN_USE_64_BIT_INODE -I/usr/local/include/fuse"])
+ AC_SUBST([FUSE_LIBS],["-L/usr/local/lib -lfuse -pthread -liconv"])
fi
PKG_CHECK_MODULES(

View file

@ -1,41 +0,0 @@
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.6.1/squashfuse-0.6.1.tar.gz"
sha256 "7b18a58c40a3161b5c329ae925b72336b5316941f906b446b8ed6c5a90989f8c"
license "BSD-2-Clause"
bottle do
root_url "https://ghcr.io/v2/gromgit/fuse"
sha256 cellar: :any, arm64_sonoma: "9618c3556506fecc5234a9f2f238fe7e6f51cd3782fdc0d6580d222bbaff3485"
sha256 cellar: :any, ventura: "03092b26301eb86ed81db27cf2a7558d55f9ed3099ee09262065edcacb9ea8b1"
end
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", *std_configure_args
system "make", "install"
end
# Unfortunately, making/testing a squash mount requires sudo privileges, so
# just test that squashfuse execs for now.
test do
output = shell_output("#{bin}/squashfuse --version 2>&1", 254)
assert_match version.to_s, output
end
end

View file

@ -1,84 +0,0 @@
require_relative "../require/macfuse"
class SshfsMac < Formula
desc "File system client based on SSH File Transfer Protocol"
homepage "https://github.com/libfuse/sshfs"
url "https://github.com/libfuse/sshfs/archive/refs/tags/sshfs-2.10.tar.gz"
sha256 "6af13acda03a4632e3deb559ecc3f35881cb92e16098049a7ba4cc502650ab18"
license any_of: ["LGPL-2.1-only", "GPL-2.0-only"]
revision 1
bottle do
root_url "https://github.com/gromgit/homebrew-fuse/releases/download/sshfs-mac-2.10"
sha256 cellar: :any, arm64_monterey: "422abbbbd1804e67c27a21b976e4e82cfdffd977b5aa2cf7ee4e21fc2b548167"
sha256 cellar: :any, monterey: "ffbc11b371d196dd6a32c13b21dfc28af7f7577145a62a165062228c2c661263"
sha256 cellar: :any, big_sur: "9e021d24580ec55f4ab034dba0e264906d9db5c57036fe83710bc601bc6885c6"
sha256 cellar: :any, catalina: "09f254420411218a784c783df760d2c652acd280eecc875d60e41014f80011cc"
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
depends_on "pkg-config" => :build
depends_on "glib"
depends_on MacfuseRequirement
depends_on :macos
patch do
url "https://github.com/libfuse/sshfs/commit/667cf34622e2e873db776791df275c7a582d6295.patch?full_index=1"
sha256 "ab2aa697d66457bf8a3f469e89572165b58edb0771aa1e9c2070f54071fad5f6"
end
patch :DATA
def install
setup_fuse
system "autoreconf", "-fiv"
system "./configure", "--disable-dependency-tracking", "--prefix=#{prefix}"
system "make", "install"
end
def caveats
<<~EOS
This formula is outdated, and is provided only as a courtesy.
It cannot be updated until macFUSE supports FUSE API version 3.
If security issues are discovered with this old software,
it may be removed without notice.
EOS
end
test do
system "#{bin}/sshfs", "--version"
end
end
__END__
diff --git a/configure.ac b/configure.ac
index 76026ad..671810b 100644
--- a/configure.ac
+++ b/configure.ac
@@ -16,7 +16,6 @@ case "$target_os" in
*) osname=unknown;;
esac
-export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH
PKG_CHECK_MODULES([SSHFS], [fuse >= 2.3 glib-2.0 gthread-2.0])
have_fuse_opt_parse=no
oldlibs="$LIBS"
diff --git a/sshfs.c b/sshfs.c
index 97eaf06..d442577 100644
--- a/sshfs.c
+++ b/sshfs.c
@@ -14,9 +14,6 @@
#if !defined(__CYGWIN__)
#include <fuse_lowlevel.h>
#endif
-#ifdef __APPLE__
-# include <fuse_darwin.h>
-#endif
#include <assert.h>
#include <stdio.h>
#include <stdlib.h>

49
Formula/sshfs@2.rb Normal file
View file

@ -0,0 +1,49 @@
require_relative "../require/macfuse"
class SshfsAT2 < Formula
desc "File system client based on SSH File Transfer Protocol"
homepage "https://github.com/libfuse/sshfs"
url "https://github.com/libfuse/sshfs/archive/refs/tags/sshfs-2.10.tar.gz"
sha256 "6af13acda03a4632e3deb559ecc3f35881cb92e16098049a7ba4cc502650ab18"
license any_of: ["LGPL-2.1-only", "GPL-2.0-only"]
depends_on "autoconf" => :build
depends_on "automake" => :build
depends_on "libtool" => :build
depends_on "pkg-config" => :build
depends_on "glib"
depends_on MacfuseRequirement
depends_on :macos
patch do
url "https://github.com/libfuse/sshfs/commit/667cf34622e2e873db776791df275c7a582d6295.patch?full_index=1"
sha256 "ab2aa697d66457bf8a3f469e89572165b58edb0771aa1e9c2070f54071fad5f6"
end
patch :DATA
def install
system "autoreconf", "-fiv"
system "./configure", "--disable-dependency-tracking", "--prefix=#{prefix}"
system "make", "install"
end
test do
system "#{bin}/sshfs", "--version"
end
end
__END__
diff --git a/sshfs.c b/sshfs.c
index 97eaf06..d442577 100644
--- a/sshfs.c
+++ b/sshfs.c
@@ -14,9 +14,6 @@
#if !defined(__CYGWIN__)
#include <fuse_lowlevel.h>
#endif
-#ifdef __APPLE__
-# include <fuse_darwin.h>
-#endif
#include <assert.h>
#include <stdio.h>
#include <stdlib.h>

View file

@ -1,34 +0,0 @@
require_relative "../require/macfuse"
class TupMac < Formula
desc "File-based build system"
homepage "http://gittup.org/tup/"
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://ghcr.io/v2/gromgit/fuse"
sha256 cellar: :any_skip_relocation, arm64_sonoma: "c560a370134cbe065d983bc0f40a3fb7481524eeae8463c891b91853ff2813a8"
sha256 cellar: :any, ventura: "1553e833231b266f2c270dfe8e7e21933af45ffe8c37aba141cd3ce2706f6f46"
end
depends_on "pkg-config" => :build
depends_on MacfuseRequirement
depends_on :macos
def install
setup_fuse
ENV["TUP_LABEL"] = version
system "./build.sh"
bin.install "build/tup"
man1.install "tup.1"
doc.install (buildpath/"docs").children
pkgshare.install "contrib/syntax"
end
test do
system "#{bin}/tup", "-v"
end
end

View file

@ -1,53 +0,0 @@
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/v3.7.tar.gz"
sha256 "026f5302279110ceb7465e5c9e863cd0319ea0dc32ad253d162cf9db0f5e9a81"
license "BSD-3-Clause"
bottle do
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
def install
setup_fuse
inreplace "CMakeLists.txt", "/usr/local", alt_fuse_root.to_s
mkdir "build" do
system "cmake", "..",
"-DCMAKE_C_COMPILER=clang",
"-DCMAKE_C_FLAGS=-std=gnu99",
*std_cmake_args
system "make", "install"
end
end
test do
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

View file

@ -1,32 +0,0 @@
require_relative "../require/macfuse"
class WdfsMac < Formula
desc "Webdav file system"
homepage "http://noedler.de/projekte/wdfs/"
url "http://noedler.de/projekte/wdfs/wdfs-1.4.2.tar.gz"
sha256 "fcf2e1584568b07c7f3683a983a9be26fae6534b8109e09167e5dff9114ba2e5"
license "GPL-2.0-or-later"
bottle do
root_url "https://ghcr.io/v2/gromgit/fuse"
rebuild 1
sha256 cellar: :any, arm64_sonoma: "470836a78df1eefa59cf45a46d2592313bdb32a51d0797266fe2c6ee1c588867"
sha256 cellar: :any, ventura: "d4350a182eeecb7003c5ff582c5a1329e156f894d9ac0a0aa64485f607fdc55d"
end
depends_on "pkgconf" => :build
depends_on "glib"
depends_on MacfuseRequirement
depends_on :macos
depends_on "neon"
def install
setup_fuse
system "./configure", *std_configure_args
system "make", "install"
end
test do
system bin/"wdfs", "-v"
end
end

View file

@ -1,79 +0,0 @@
require_relative "../require/macfuse"
class XmountMac < Formula
desc "Convert between multiple input & output disk image types"
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://ghcr.io/v2/gromgit/fuse"
sha256 arm64_sequoia: "cc8c7f233c8e40a6512736f137aff799dc3f986e6be60c3eea476a8d9b127383"
sha256 arm64_sonoma: "61f67c7481c3f76e4d9d8b11a7100bae495b5b655524739722d867593fc494a2"
end
depends_on "cmake" => :build
depends_on "pkgconf" => :build
depends_on "afflib"
depends_on "libewf"
depends_on MacfuseRequirement
depends_on :macos
depends_on "openssl@3"
patch :DATA
def install
setup_fuse
ENV.prepend_path "PKG_CONFIG_PATH", Formula["openssl@3"].opt_lib/"pkgconfig"
system "cmake", "-S", ".", "-B", "build", *fuse_cmake_args, *std_cmake_args
system "cmake", "--build", "build"
system "cmake", "--install", "build"
end
test do
system bin/"xmount", "--version"
end
end
__END__
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)

View file

@ -1,25 +0,0 @@
BSD 2-Clause License
Copyright (c) 2009-present, Homebrew contributors
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
* Redistributions of source code must retain the above copyright notice, this
list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright notice,
this list of conditions and the following disclaimer in the documentation
and/or other materials provided with the distribution.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

View file

@ -1,67 +1,14 @@
# gromgit's macOS FUSE stuff
This tap exists to support macOS FUSE-related software that have been dropped from Homebrew core.
---
# !!! WARNING: Reduced Build Coverage !!!
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.
---
This tap exists to support macOS FUSE-related software that will be dropped from Homebrew core at some point.
## How do I install these formulae?
`brew install gromgit/fuse/<formula>`
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.
1. Many of these formulae are rather old, so you're unlikely to find updates anyway.
Or `brew tap gromgit/fuse` and then `brew install <formula>`.
But if you _do_ want to install my formulae over the core ones, you should uninstall the core formulae first.
## Hey, why is XYZ not available?
Probably because I haven't gotten around to putting it in yet. If you need it, [file an issue](https://github.com/gromgit/homebrew-fuse/issues/new/choose) and I'll see what can be done.
## Documentation
`brew help`, `man brew` or check [Homebrew's documentation](https://docs.brew.sh).
## FAQ
### Why is XYZ not available?
It's probably available, but with a `-mac` suffix to avoid name clashes with Homebrew core (e.g. `sshfs` becomes `sshfs-mac`).
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.
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 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`?
To avoid a naming conflict with the formula called `XYZ` that still exists in Homebrew core.
### Why is the XYZ _program_ installed as `XYZ-mac`?
`brew info gromgit/fuse/XYZ-mac` and read the _Caveats_ section.
### Why does Homebrew say I need to build `XYZ-mac` from source?
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 ARM Mac?
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).
## 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.

View file

@ -1,32 +0,0 @@
#!/usr/bin/env bash
#:`brew test-fuse`
#: Tests local FUSE installation
. "$(dirname "$0")"/../lib/funcs.sh
tmpdir=/tmp/fuse-test.$$
mkdir -p "$tmpdir"/test_mount
trap 'rm -fr "$tmpdir"' EXIT
[[ $(uname -s) == "Darwin" ]] || fatal "This script can only be run on macOS"
cd "$tmpdir"
eval "$(brew shellenv)"
info "Checking for FUSE installation"
cmd pkgutil --pkg-info io.macfuse.installer.components.core
cmd pkgutil --lsbom io.macfuse.installer.components.core
info "Test FUSE build"
examples=(
https://raw.githubusercontent.com/libfuse/libfuse/46b9c3326d50aebe52c33d63885b83a47a2e74ea/example/hello.c
https://raw.githubusercontent.com/libfuse/libfuse/46b9c3326d50aebe52c33d63885b83a47a2e74ea/example/hello_ll.c
https://raw.githubusercontent.com/libfuse/libfuse/46b9c3326d50aebe52c33d63885b83a47a2e74ea/example/null.c
)
for u in "${examples[@]}"; do
# Get the last FUSE 2.x lowlevel example file
cmd curl -sOL "$u"
# Build it Homebrew-style
f=${u##*/}; p=${f%.c}
cmd clang -D_FILE_OFFSET_BITS=64 -I/usr/local/include/fuse -L/usr/local/lib -g -O2 -Wall -o "$p" "$f" -lfuse -lpthread
done

View file

@ -1,14 +0,0 @@
{
"afuse": "afuse-mac",
"archivemount": "archivemount-mac",
"avfs": "avfs-mac",
"bindfs": "bindfs-mac",
"curlftpfs": "curlftpfs-mac",
"dislocker": "dislocker-mac",
"encfs": "encfs-mac",
"ext4fuse": "ext4fuse-mac",
"fuse-zip": "fuse-zip-mac",
"gcsfuse": "gcsfuse-mac",
"ntfs-3g": "ntfs-3g-mac",
"sshfs": "sshfs-mac"
}

View file

@ -1,79 +0,0 @@
# shellcheck shell=bash
# shellcheck disable=SC2034
# string formatters
if [[ -t 1 ]]
then
Tty_escape() { printf "\033[%sm" "$1"; }
else
Tty_escape() { :; }
fi
Tty_mkbold() { Tty_escape "1;${1:-39}"; }
Tty_red=$(Tty_mkbold 31)
Tty_green=$(Tty_mkbold 32)
Tty_brown=$(Tty_mkbold 33)
Tty_blue=$(Tty_mkbold 34)
Tty_magenta=$(Tty_mkbold 35)
Tty_cyan=$(Tty_mkbold 36)
Tty_white=$(Tty_mkbold 37)
Tty_underscore=$(Tty_escape 38)
Tty_bold=$(Tty_mkbold 39)
Tty_reset=$(Tty_escape 0)
msg_prefix=""
# fatal: Report fatal error
# USAGE: fatal <msg> ...
fatal() {
echo "${Tty_red}${msg_prefix}FATAL ERROR:${Tty_reset} $*" >&2
exit 1
}
# error: Report error
# USAGE: error <msg> ...
error() {
echo "${Tty_red}${msg_prefix}ERROR:${Tty_reset} $*" >&2
}
# warn: Report warning
# USAGE: warn <msg> ...
warn() {
echo "${Tty_blue}${msg_prefix}Warning:${Tty_reset} $*" >&2
}
# info: Informational message
# USAGE: info <msg> ...
info() {
echo "${Tty_green}${msg_prefix}Info:${Tty_reset} $*" >&2
}
# need_progs: Checks for command dependencies
# USAGE: need_progs <cmd> ...
need_progs() {
local missing=()
local i
for i in "$@"
do
type -P "${i}" &>/dev/null || missing+=("${i}")
done
if [[ ${#missing[@]} -gt 0 ]]
then
fatal "Commands missing: ${missing[*]}"
fi
}
# cmd: Show command being run
# USAGE: cmd <cmd> ...
cmd() {
echo "${Tty_cyan}>>> $*${Tty_reset}" >&2
command "$@"
}
# git_in: Run Git command in repo
# USAGE: git_in <repo> <cmd> ...
git_in() {
local repo=$1
shift
pushd "${repo}" >/dev/null || fatal "Can't cd to '${repo}'"
cmd git "$@"
popd >/dev/null || exit
}

View file

@ -1,23 +0,0 @@
#!/usr/bin/env bash
fuse_root=%FUSE_ROOT%
# Collect args
pkgs=()
flags=()
for a in "$@"; do
[[ $a == -* ]] && flags+=("$a") || pkgs+=("$a")
done
if [[ ${#pkgs[@]} -eq 0 ]]; then
pkg-config "${flags[@]}"
else
for p in "${pkgs[@]}"; do
if [[ $p == fuse ]]; then
pkg-config "${flags[@]}" "$p" | sed "s@/usr/local@${fuse_root}@g"
else
pkg-config "${flags[@]}" "$p"
fi
done
fi

View file

@ -1,7 +1,5 @@
# typed: false
# frozen_string_literal: true
# USAGE: `depends_on MacfuseRequirement`
class MacfuseRequirement < Requirement
fatal true
@ -14,178 +12,14 @@ class MacfuseRequirement < Requirement
env do
ENV.append_path "PKG_CONFIG_PATH", HOMEBREW_LIBRARY/"Homebrew/os/mac/pkgconfig/fuse"
unless HOMEBREW_PREFIX.to_s == "/usr/local"
ENV.append_path "HOMEBREW_LIBRARY_PATHS", "/usr/local/lib"
ENV.append_path "HOMEBREW_INCLUDE_PATHS", "/usr/local/include"
end
end
def message
"This formula requires macFUSE. Please run `brew install --cask macfuse` first."
end
def display_s
"macFUSE"
end
end
# Add `setup_fuse` to base Formula class, for use by FUSE formulae
class Formula
def need_alt_fuse?
HOMEBREW_PREFIX.to_s != "/usr/local"
end
def alt_fuse_root
buildpath/"temp"
end
def fuse_cmake_args
return unless need_alt_fuse?
%W[
-DCMAKE_INCLUDE_PATH=#{alt_fuse_root}/include/fuse;#{alt_fuse_root}/include
-DCMAKE_LIBRARY_PATH=#{alt_fuse_root}/lib
-DCMAKE_CXX_FLAGS=-I#{alt_fuse_root}/include/fuse\ -D_USE_FILE_OFFSET_BITS=64
]
# -DPKG_CONFIG=#{fuse_pkgconfig}
# -DPKG_CONFIG_EXECUTABLE=#{fuse_pkgconfig}
# -DFUSE_INCLUDE_DIR=#{alt_fuse_root}/include/fuse
# -DFUSE_LIBRARIES=#{alt_fuse_root}/lib/libfuse.dylib
end
def setup_fuse_includes
mkdir "#{alt_fuse_root}/include" do
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/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
def setup_fuse_pkgconfig
### OLD METHOD: Fake pkg-config
# mkdir "#{alt_fuse_root}/bin" do
# cp path/"../../lib/fuse-pkg-config", "."
# inreplace "fuse-pkg-config", "%FUSE_ROOT%", "#{alt_fuse_root}"
# end
# ENV["PKG_CONFIG"] = "#{fuse_pkgconfig}"
### NEW METHOD: Fix fuse.pc in alt root
mkdir "#{alt_fuse_root}/lib/pkgconfig" do
cp "/usr/local/lib/pkgconfig/fuse.pc", "."
inreplace "fuse.pc", "/usr/local", alt_fuse_root.to_s
end
ENV.prepend_path "PKG_CONFIG_PATH", "#{alt_fuse_root}/lib/pkgconfig"
end
def setup_fuse3_pkgconfig
mkdir "#{alt_fuse_root}/lib/pkgconfig" do
cp "/usr/local/lib/pkgconfig/fuse3.pc", "."
inreplace "fuse3.pc", "/usr/local", alt_fuse_root.to_s
end
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"
# end
def setup_fuse_env
odebug "Setting up FUSE temp environment under #{alt_fuse_root}"
setup_fuse_includes
setup_fuse_libs
setup_fuse_pkgconfig
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/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/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/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)}"
end
def setup_fuse
return unless need_alt_fuse?
setup_fuse_env
setup_fuse_flags
end
def setup_fuse3
return unless need_alt_fuse?
setup_fuse3_env
setup_fuse3_flags
"This formula requires MacFUSE. Please run `brew install --cask macfuse` first."
end
end

View file

@ -1,3 +0,0 @@
{
"mounty": "homebrew/cask"
}