Portfile

# $Id: Portfile 22308 2007-02-26 02:56:04Z eridius@macports.org $

PortSystem 1.0
PortGroup xcode 1.0

name fusefs
version 0.2.2
categories fuse devel
platforms darwin
maintainers eridius@macports.org
description A FUSE-Compliant File System Implementation Mechanism for Mac OS X
long_description MacFUSE implements a mechanism that makes it possible to implement \
a fully functional file system in a user-space program on Mac OS X \
(10.4 and above). It aims to be API-compliant with the FUSE \
(File-system in USErspace) mechanism that originated on Linux. \
Therefore, many existing FUSE file systems become readily usable on \
Mac OS X. The core of MacFUSE is in a dynamically loadable kernel extension.

homepage http://code.google.com/p/macfuse/
master_sites http://svn.macosforge.org/repository/macports/distfiles/eridius/
distname fusefs-${version}
worksrcdir fusefs
checksums md5 036e55e7203be82974c55f56504b30a1 \
sha1 07b782e71e6b30e3181171feb7618052587af592

use_bzip2 yes

xcode.configuration Release
xcode.target fusefs load_fusefs fusefs.fs mount_fusefs
xcode.build.settings OBJROOT=build/ SYMROOT=build/

# ensure that user is running OS X 10.4
platform darwin {}
pre-fetch {
if {[variant_isset darwin]} {
set vers [split [exec sw_vers -productVersion] .]
set majorVersion [lindex $vers 0]
set minorVersion [lindex $vers 1]
if {"$majorVersion.$minorVersion" < 10.4} {
return -code error "MacFUSE requires at least Mac OS X 10.4 to run"
}
} else {
return -code error "MacFUSE is for Mac OS X only"
}
}

destroot {
set libdir ${destroot}/Library
set extdir ${libdir}/Extensions
set syslibdir ${destroot}/System/Library
set sysfsdir ${syslibdir}/Filesystems

set builddir ${worksrcpath}/build/${xcode.configuration}

# ensure appropriate permissions
xinstall -d -m 1774 -o root -g admin ${libdir}
xinstall -d -m 1755 -o root -g wheel ${extdir}

# copy fusefs.kext
file copy -- ${builddir}/fusefs.kext ${extdir}/
foreach filename [split [exec find ${extdir}/fusefs.kext] \n] {
file attributes $filename -owner root -group wheel
}

# copy load_fusefs
xinstall -o root -g wheel -m 4555 ${builddir}/load_fusefs \
${extdir}/fusefs.kext/Contents/Resources/

# copy fusefs.fs
xinstall -d -m 755 -o root -g wheel ${sysfsdir}
file copy -- ${builddir}/fusefs.fs ${sysfsdir}
foreach filename [split [exec find ${sysfsdir}/fusefs.fs] \n] {
file attributes $filename -owner root -group wheel
}

# copy mount_fusefs
xinstall -o root -g wheel ${builddir}/mount_fusefs \
${sysfsdir}/fusefs.fs/mount_fusefs
}

post-activate {
if {[string length [exec kextstat -lb com.google.filesystems.fusefs]] > 0} {
ui_msg "********************************************************"
ui_msg "* fusefs is already loaded. You may need to restart. *"
ui_msg "* Alternatively, if feeling adventurous, you can run *"
ui_msg "* `sudo kextunload -b com.google.filesystems.fusefs` *"
ui_msg "********************************************************"
}
}