1 | # -*- coding: utf-8; mode: tcl; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- vim:fenc=utf-8:ft=tcl:et:sw=4:ts=4:sts=4 |
---|
2 | # $Id$ |
---|
3 | |
---|
4 | PortSystem 1.0 |
---|
5 | |
---|
6 | name osxfuse |
---|
7 | version 2.6.4 |
---|
8 | categories fuse devel |
---|
9 | platforms macosx |
---|
10 | license BSD APSL |
---|
11 | maintainers dports openmaintainer |
---|
12 | description A FUSE-Compliant File System Implementation Mechanism \ |
---|
13 | for Mac OS X |
---|
14 | |
---|
15 | long_description FUSE for OS X implements a mechanism that makes it possible to implement \ |
---|
16 | a fully functional file system in a user-space program on Mac OS X. It \ |
---|
17 | aims to be API-compliant with the FUSE (File-system in USErspace) \ |
---|
18 | mechanism that originated on Linux. Therefore, many existing FUSE file \ |
---|
19 | systems become readily usable on Mac OS X. This port provides the \ |
---|
20 | user-space library and header files for building filesystems. |
---|
21 | |
---|
22 | homepage http://osxfuse.github.io/ |
---|
23 | |
---|
24 | # We want to match the supported arch |
---|
25 | set kernel_arch [exec uname -m] |
---|
26 | switch ${kernel_arch} { |
---|
27 | i386 - |
---|
28 | x86_64 { |
---|
29 | supported_archs ${kernel_arch} |
---|
30 | } |
---|
31 | default { |
---|
32 | supported_archs i386 x86_64 |
---|
33 | } |
---|
34 | } |
---|
35 | |
---|
36 | distfiles |
---|
37 | set mp.dist { |
---|
38 | osxfuse 7b0d8d3 {rmd160 05a8896c7cd738966da1f3f18e8a17723b140dff sha256 bba529834f61fe79be00b4a6298f40a86dd8170f91979c4eeaf9378a1ce067cd} |
---|
39 | kext c59029c {rmd160 a19f4d8b0f4a4660b614e1716f21db749677444c sha256 77205fce0f289c3473d3621ca612cb33d86ebf4ea932712661c9527f91013bae} |
---|
40 | framework 9fdde8a {rmd160 4124b3e9c396ee41dfce35d480caff41936b8000 sha256 9dd705e05de0b346000853c08c143a15d73673684afcc9bbcf55e6c71b33fb87} |
---|
41 | prefpane 8c3ea24 {rmd160 08376d5848025074b4a4feee3d5ed99bc456dfeb sha256 a6a4c5397d7faf9a3f068ddf409e8afc19292a03db0b094bbd144d5c64757118} |
---|
42 | fuse 98b9960 {rmd160 589cbe0c819caded56dc4be64727580e1400fd9e sha256 f60205e19c2971228b78d180dc65cda2a6271a567229acdeb19567fcbcebb641} |
---|
43 | support 1213520 {rmd160 1f774cd0d5273c02716a533463c1d374c793dfc1 sha256 57ccf15e451c132874664c00990c2df12d0dced32ba2cfe6bc6c1be863b663a9} |
---|
44 | } |
---|
45 | |
---|
46 | depends_build port:automake port:autoconf |
---|
47 | |
---|
48 | set mp.osxfuse_rev [lindex ${mp.dist} [expr [lsearch ${mp.dist} osxfuse] + 1]] |
---|
49 | worksrcdir osxfuse-osxfuse-${mp.osxfuse_rev} |
---|
50 | |
---|
51 | foreach { mp.comp mp.rev mp.chksum } ${mp.dist} { |
---|
52 | set f ${mp.comp}-${mp.rev}.tar.gz |
---|
53 | master_sites-append https://github.com/osxfuse/${mp.comp}/tarball/${mp.rev}/:${mp.comp} |
---|
54 | distfiles-append ${f}:${mp.comp} |
---|
55 | checksums-append ${f} |
---|
56 | foreach {type chksum} ${mp.chksum} { |
---|
57 | checksums-append ${type} ${chksum} |
---|
58 | } |
---|
59 | } |
---|
60 | |
---|
61 | post-extract { |
---|
62 | foreach { mp.comp mp.rev mp.chksum } ${mp.dist} { |
---|
63 | if {${mp.comp} ne "osxfuse"} { |
---|
64 | # Replace existing empty directory if it exists |
---|
65 | file delete ${workpath}/${worksrcdir}/${mp.comp} |
---|
66 | move ${workpath}/osxfuse-${mp.comp}-${mp.rev} ${workpath}/${worksrcdir}/${mp.comp} |
---|
67 | } |
---|
68 | } |
---|
69 | } |
---|
70 | |
---|
71 | patchfiles patch-buildsystem.diff \ |
---|
72 | patch-kext-location.diff |
---|
73 | |
---|
74 | post-patch { |
---|
75 | # Perhaps the ports sandbox does not let us write to /tmp. |
---|
76 | # For a quick and temporary fix use this reinplace. |
---|
77 | file mkdir ${workpath}/tmp |
---|
78 | reinplace "s,@@TMP@@,${workpath}/tmp,g" ${worksrcpath}/build.sh |
---|
79 | |
---|
80 | # Only build the archs we want, not the hardcoded universal archs |
---|
81 | reinplace -E "s,@@ARCHS@@,[get_canonical_archs],g" ${worksrcpath}/build.sh |
---|
82 | |
---|
83 | # Inject the destroot path as the buildsystem tries to write to the prefix directly |
---|
84 | reinplace -E "s,@@DESTROOT@@,${destroot},g" ${worksrcpath}/build.sh |
---|
85 | |
---|
86 | # Correct the location of the kext |
---|
87 | reinplace -E "s,@@PREFIX@@,${prefix},g" ${worksrcpath}/kext/common/fuse_param.h |
---|
88 | } |
---|
89 | |
---|
90 | use_configure no |
---|
91 | |
---|
92 | build.cmd ./build.sh |
---|
93 | # Yes, they really named this target homebrew |
---|
94 | build.target -t homebrew |
---|
95 | build.args -f ${prefix} |
---|
96 | |
---|
97 | # The build step already does everything |
---|
98 | destroot {} |
---|
99 | |
---|
100 | # Move filesystem bundle into place |
---|
101 | post-destroot { |
---|
102 | # Set proper permissions |
---|
103 | fs-traverse f ${destroot}${prefix}/Library { |
---|
104 | file attributes $f -owner root -group wheel |
---|
105 | } |
---|
106 | # Enable setuid on helper binary |
---|
107 | file attributes ${destroot}${prefix}/Library/Filesystems/osxfusefs.fs/Support/load_osxfusefs -permissions 04755 |
---|
108 | } |
---|
109 | destroot.violate_mtree yes |
---|
110 | |
---|
111 | notes { |
---|
112 | When upgrading, unmount all FUSE filesystems and then unload the kernel extension. |
---|
113 | Unloading can be done via: sudo kextunload -b com.github.osxfuse.filesystems.osxfusefs |
---|
114 | Alternativley (or if this fails), just reboot your computer now. |
---|
115 | } |
---|
116 | |
---|
117 | # Could probably be supported by setting ARCHS correctly above |
---|
118 | universal_variant no |
---|