7099f54ef7
Creates a new requirement that dictates packages are unable to install due to requiring a signed kext to function. Closes Homebrew/homebrew#33404. Signed-off-by: Mike McQuaid <mike@mikemcquaid.com>
77 lines
2.4 KiB
Ruby
77 lines
2.4 KiB
Ruby
require "formula"
|
|
|
|
class Fuse4xKext < Formula
|
|
homepage "http://fuse4x.github.io"
|
|
url "https://github.com/fuse4x/kext/archive/fuse4x_0_9_2.tar.gz"
|
|
sha1 "4222c14b38325d9e41fb0925d2681dda3e73e861"
|
|
|
|
bottle do
|
|
cellar :any
|
|
revision 4
|
|
sha1 "1d1ab89b714ea897c981f356a659afaff977a0da" => :mavericks
|
|
sha1 "0a03e6a51e40fe3456b8f132549516e4cb996985" => :mountain_lion
|
|
sha1 "6f306f38557d016f5eaa0c999f2092d0767870e6" => :lion
|
|
end
|
|
|
|
depends_on :xcode => :build
|
|
depends_on UnsignedKextRequirement
|
|
|
|
def install
|
|
ENV.delete("CC")
|
|
ENV.delete("CXX")
|
|
|
|
args = [
|
|
"-sdk",
|
|
"macosx#{MacOS.version}",
|
|
"-configuration", "Release",
|
|
"-alltargets",
|
|
"MACOSX_DEPLOYMENT_TARGET=#{MacOS.version}",
|
|
"SYMROOT=build",
|
|
# Build a 32-bit kernel extension on Leopard and a fat binary for Snow
|
|
# Leopard/Lion.
|
|
"ARCHS=i386 #{"x86_64" if MacOS.prefer_64_bit?}", "ONLY_ACTIVE_ARCH=NO"
|
|
]
|
|
|
|
xcodebuild *args
|
|
system "/bin/mkdir -p build/Release/fuse4x.kext/Support"
|
|
system "/bin/cp build/Release/load_fuse4x build/Release/fuse4x.kext/Support"
|
|
|
|
kext_prefix.install "build/Release/fuse4x.kext"
|
|
end
|
|
|
|
def caveats
|
|
message = <<-EOS.undent
|
|
In order for FUSE-based filesystems to work, the fuse4x kernel extension
|
|
must be installed by the root user:
|
|
|
|
sudo /bin/cp -rfX #{kext_prefix}/fuse4x.kext /Library/Extensions
|
|
sudo chmod +s /Library/Extensions/fuse4x.kext/Support/load_fuse4x
|
|
|
|
If upgrading from a previous version of Fuse4x, the old kernel extension
|
|
will need to be unloaded before performing the steps listed above. First,
|
|
check that no FUSE-based filesystems are running:
|
|
|
|
mount -t fuse4x
|
|
|
|
Unmount all FUSE filesystems and then unload the kernel extension:
|
|
|
|
sudo kextunload -b org.fuse4x.kext.fuse4x
|
|
|
|
EOS
|
|
|
|
# In fuse4x version 0.9.0 the kext has been moved from /System to /Library to match
|
|
# filesystem layout convention from Apple.
|
|
# Check if the user has fuse4x kext in the old location.
|
|
# Remove this check Q4 2012 when it become clear that everyone migrated to 0.9.0+
|
|
if File.exist?("/System/Library/Extensions/fuse4x.kext/")
|
|
message += <<-EOS.undent
|
|
You have older version of fuse4x installed. Please remove it by running:
|
|
|
|
sudo rm -rf /System/Library/Extensions/fuse4x.kext/
|
|
|
|
EOS
|
|
end
|
|
|
|
return message
|
|
end
|
|
end
|