[36271] trunk/dports/fuse

eridius at macports.org eridius at macports.org
Fri Apr 25 04:30:49 PDT 2008


Revision: 36271
          http://trac.macosforge.org/projects/macports/changeset/36271
Author:   eridius at macports.org
Date:     2008-04-25 04:30:48 -0700 (Fri, 25 Apr 2008)

Log Message:
-----------
Update MacFUSE to 1.3. This involved obsoleting the fusefs and libfuse ports and introducing a new macfuse port.
Note that all fuse ports (besides sshfs) need to be updated for this change

Modified Paths:
--------------
    trunk/dports/fuse/fusefs/Portfile
    trunk/dports/fuse/libfuse/Portfile
    trunk/dports/fuse/sshfs/Portfile

Added Paths:
-----------
    trunk/dports/fuse/macfuse/
    trunk/dports/fuse/macfuse/Portfile

Modified: trunk/dports/fuse/fusefs/Portfile
===================================================================
--- trunk/dports/fuse/fusefs/Portfile	2008-04-25 11:30:05 UTC (rev 36270)
+++ trunk/dports/fuse/fusefs/Portfile	2008-04-25 11:30:48 UTC (rev 36271)
@@ -5,93 +5,17 @@
 
 name                fusefs
 version             1.1
-revision            3
+revision            4
 categories          fuse devel
 platforms           darwin
 maintainers         eridius at 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.
+description         dummy port, use macfuse instead
+long_description    $description
 
-homepage            http://code.google.com/p/macfuse/
-master_sites        macports
-distname            fusefs-${version}
-worksrcdir          fusefs
-checksums           md5 e34f44bcbb43a370a0ef204054276ae4 \
-                    sha1 776a7cf88c82bf63a8f086f086d06fb08a60c860
-
-livecheck.distname  MacFUSE-Core-(.*).dmg
-livecheck.version   10.5-${version}.1
-
-use_bzip2           yes
-
-destroot.violate_mtree yes
-
-xcode.configuration     Release
-xcode.target            fusefs load_fusefs fusefs.fs mount_fusefs
-xcode.build.settings    OBJROOT=build/ SYMROOT=build/
-
-platform darwin 8 {
-    worksrcdir fusefs/10.4
-}
-
-platform darwin 9 {
-    worksrcdir fusefs/10.5
-}
-
-# ensure that user is running OS X 10.4 or higher
 pre-fetch {
-    if {![variant_isset darwin_8] && ![variant_isset darwin_9]} {
-        return -code error "MacFUSE requires at least Mac OS X 10.4 to run"
-    }
-}
-
-destroot {
-    if {[variant_isset darwin_8]} {
-        set sysfsdir ${destroot}/System/Library/Filesystems
-    } else {
-        set sysfsdir ${destroot}/Library/Filesystems
-    }
-    set macfuse_bundle_dir ${sysfsdir}/fusefs.fs
-    set macfuse_support_dir ${macfuse_bundle_dir}/Support
-    
-    set builddir ${worksrcpath}/build/${xcode.configuration}
-    
-    # ensure sysfsdir exists
-    xinstall -d -m 755 -o root -g wheel ${sysfsdir}
-    
-    # copy fusefs.fs
-    file copy -- ${builddir}/fusefs.fs ${macfuse_bundle_dir}
-    
-    # ensure Support dir exists
-    xinstall -d -m 755 -o root -g wheel ${macfuse_support_dir}
-    
-    # copy Support files
-    file copy -- ${builddir}/fusefs.kext ${macfuse_support_dir}/fusefs.kext
-    xinstall -m 4555 ${builddir}/load_fusefs ${macfuse_support_dir}/load_fusefs
-    xinstall ${builddir}/mount_fusefs ${macfuse_support_dir}/mount_fusefs
-    
-    # set permissions
-    fs-traverse file [list ${macfuse_bundle_dir}] {
-        file attributes $file -owner root -group wheel
-    }
-    
-    # copy header files that libfuse needs
-    foreach file [list fuse_ioctl.h fuse_mount.h fuse_param.h fuse_version.h] {
-        file copy -- ${worksrcpath}/common/${file} ${destroot}${prefix}/include/${file}
-    }
-}
-
-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 "********************************************************"
-    }
-}
+    ui_msg "********************************"
+    ui_msg "*  This port no longer exists  *"
+    ui_msg "* Use the macfuse port instead *"
+    ui_msg "********************************"
+    throw ERROR "Obsolete port, use macfuse"
+}
\ No newline at end of file

Modified: trunk/dports/fuse/libfuse/Portfile
===================================================================
--- trunk/dports/fuse/libfuse/Portfile	2008-04-25 11:30:05 UTC (rev 36270)
+++ trunk/dports/fuse/libfuse/Portfile	2008-04-25 11:30:48 UTC (rev 36271)
@@ -8,80 +8,13 @@
 categories          fuse devel
 platforms           darwin
 maintainers         eridius at macports.org
-description         Filesystem in Userspace
-long_description    See the fusefs port for more information
+description         dummy port, use macfuse instead
+long_description    $description
 
-homepage            http://fuse.sourceforge.net/
-
-distname            fuse-${version}
-master_sites        sourceforge:fuse
-checksums           ${distfiles} md5 f95b4a238a3df5a92e9013ecb55c2c17 \
-                                 sha1 ea28a61ff63cd0cf12cd7c9c092a57d79c12edf8
-
-livecheck.distname  fuse-2.X
-
-depends_lib         port:pkgconfig
-
-platform darwin 8 {
-    patch_sites         http://macfuse.googlecode.com/svn/tags/macfuse-1.1/core/10.4/libfuse/
-    checksums-append    fuse-2.7.1-macosx.patch md5 36b116114c04f8e7c65a5c8aad753573 \
-                                                sha1 5cb3440a73b2634e18f76263c35044e58b0daaa5
-}
-
-platform darwin 9 {
-    patch_sites         http://macfuse.googlecode.com/svn/tags/macfuse-1.1/core/10.5/libfuse/
-    checksums-append    fuse-2.7.1-macosx.patch md5 85f1654ae01064ef1c398dbfde1a3f53 \
-                                                sha1 24d735331ec897c77e19203d3d38ab55ae56f292
-}
-
-platform darwin {
-    depends_run         port:fusefs
-    
-    patchfiles          fuse-2.7.1-macosx.patch
-    
-    configure.post_args-append CFLAGS="-D__FreeBSD__=10 -D_POSIX_C_SOURCE=200112L"
-    
-    # override patch.pre_args since it defaults to -p0
-    patch.pre_args -p1
-}
-
 pre-fetch {
-    # LibFUSE currently only works on OS X
-    # so error out if attempting to install elsewhere
-    if {![variant_isset darwin]} {
-        return -code error "LibFUSE is only supported for Mac OS X"
-    }
-    
-    patch_checksum
+    ui_msg "********************************"
+    ui_msg "*  This port no longer exists  *"
+    ui_msg "* Use the macfuse port instead *"
+    ui_msg "********************************"
+    throw ERROR "Obsolete port, use macfuse"
 }
-
-proc patch_checksum {} {
-    global checksums_array UI_PREFIX
-    # assume we only have one patchfile, because at the moment that's true
-    set patchfile [option patchfiles]
-    # do our own checksumming of an existing $patchfile because URL changes between revisions
-    # if the checksum fails, delete the patchfile
-    # a lot of this code is copied from checksum_main
-    # Eventually this technique should be replaced with a patchfile dist subdir
-    if {[file exists [option distpath]/$patchfile]} {
-        ui_info "$UI_PREFIX $patchfile exists, checksumming to detect URL change"
-        if {[parse_checksums [option checksums]] == "yes"} {
-            ui_info "$UI_PREFIX [format [msgcat::mc "Checksumming %s"] $patchfile]"
-            set fullpath [file join [option distpath] $patchfile]
-            if {[info exists checksums_array($patchfile)]} {
-                set checksums $checksums_array($patchfile)
-                
-                foreach {type sum} $checksums {
-                    set calculated_sum [calc_$type $fullpath]
-                    if {![string equal $sum $calculated_sum]} {
-                        ui_debug "Checksum mismatch for $patchfile"
-                        delete $fullpath
-                        break
-                    }
-                }
-            }
-        } else {
-            return -code error "Unable to parse checksum string"
-        }
-    }
-}
\ No newline at end of file

Copied: trunk/dports/fuse/macfuse/Portfile (from rev 36268, trunk/dports/fuse/fusefs/Portfile)
===================================================================
--- trunk/dports/fuse/macfuse/Portfile	                        (rev 0)
+++ trunk/dports/fuse/macfuse/Portfile	2008-04-25 11:30:48 UTC (rev 36271)
@@ -0,0 +1,90 @@
+# $Id$
+
+PortSystem 1.0
+
+name                macfuse
+version             1.3
+categories          fuse devel
+platforms           darwin
+maintainers         eridius at 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        macports
+distname            macfuse-${version}
+worksrcdir          macfuse-core
+checksums           md5 fd80b07221174f1636502c0062c43690 \
+                    sha1 d840ba3dbd56850b6b9d10a3937fb2cbdacbffbc
+
+livecheck.distname  MacFUSE-Core-(.*).dmg
+livecheck.version   10.5-${version}.1
+
+use_bzip2           yes
+
+use_configure       no
+
+destroot.violate_mtree yes
+
+# patchfiles          patch-project.pbxproj
+
+platform darwin 8 {
+    # dummy for pre-fetch
+}
+platform darwin 9 {
+    # dummy for pre-fetch
+}
+
+variant universal {
+    # provide a dummy variant since the script will actually build universal
+    # and we don't want to error out if someone says +universal
+}
+
+# ensure that user is running OS X 10.4 or higher
+pre-fetch {
+    if {![variant_isset darwin_8] && ![variant_isset darwin_9]} {
+        return -code error "MacFUSE requires at least Mac OS X 10.4 to run"
+    }
+}
+
+build {
+    system "cd ${worksrcpath} && ./build_macfuse.sh | sed -ne '/^created: /h;p;$\{g;s/^created: //
+                w ../dmgname
+            \}'; exit $\{PIPESTATUS\[0\]\}"
+}
+
+destroot {
+    set dmgname [exec cat ${workpath}/dmgname]
+    # we know the build script generates a .tar.bz2 right next to the dmg
+    set tarname [string replace $dmgname end-2 end "tar.bz2"]
+    system "tar -xjf $tarname -C ${destpath}"
+    delete ${destpath}/opt
+    file rename ${destpath}/usr ${destpath}/opt
+    foreach f [list "pkgconfig/fuse.pc" "libfuse.la" "libulockmgr.la"] {
+        set path "${destpath}/opt/local/lib/${f}"
+        reinplace s,/usr/local,/opt/local, $path
+    }
+    foreach lib [list "libulockmgr.0" "libfuse.0"] {
+        set libpath "/opt/local/lib/${lib}.dylib"
+        system "install_name_tool -id ${libpath} ${destpath}${libpath}"
+    }
+    system "install_name_tool -change /usr/local/lib/libfuse.0.dylib /opt/local/lib/libfuse.0.dylib ${destpath}/Library/Frameworks/MacFUSE.framework/Versions/A/MacFUSE"
+    # delete the whole directory the build script creates
+    # when updating this Portfile DOUBLE CHECK THIS LINE
+    delete [file dirname $dmgname]
+}
+
+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 "********************************************************"
+    }
+}

Modified: trunk/dports/fuse/sshfs/Portfile
===================================================================
--- trunk/dports/fuse/sshfs/Portfile	2008-04-25 11:30:05 UTC (rev 36270)
+++ trunk/dports/fuse/sshfs/Portfile	2008-04-25 11:30:48 UTC (rev 36271)
@@ -4,7 +4,7 @@
 
 name                sshfs
 version             1.8
-revision            2
+revision            3
 categories          fuse
 platforms           darwin
 maintainers         eridius at macports.org
@@ -28,7 +28,7 @@
 
 depends_lib         port:gettext \
                     port:glib2 \
-                    port:libfuse \
+                    port:macfuse \
                     port:libiconv \
                     port:pkgconfig
 
@@ -37,8 +37,7 @@
 configure.post_args-append --disable-dependency-tracking
 
 platform darwin {
-    depends_run         port:fusefs
-    patch_sites         http://macfuse.googlecode.com/svn/tags/macfuse-1.1/filesystems/sshfs
+    patch_sites         http://macfuse.googlecode.com/svn/tags/macfuse-1.3/filesystems/sshfs
     patchfiles          sshfs-fuse-${version}-macosx.patch
     checksums-append    sshfs-fuse-${version}-macosx.patch md5 5d3cec641c22e89dd840c6bbc3af89d4 \
                                                            sha1 79f058e0ae4b90ec09d50ab39401773d146bdf95

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.macosforge.org/pipermail/macports-changes/attachments/20080425/b062a730/attachment-0001.html


More information about the macports-changes mailing list