1 # Buildsheet autogenerated by ravenadm tool -- Do not edit.
7 SDESC[standard]= File System in Userspace (FUSE), legacy
8 HOMEPAGE= https://github.com/libfuse/libfuse
12 SITES[main]= GITHUB/libfuse:libfuse:fuse-2.9.7
13 DISTFILE[1]= generated:main
15 SPKGS[standard]= single
17 OPTIONS_AVAILABLE= none
18 OPTIONS_STANDARD= none
20 NOT_FOR_OPSYS= dragonfly sunos
22 USES= iconv libtool autoreconf gettext-tools
24 LICENSE= LGPL21:single
26 LICENSE_FILE= LGPL21:{{WRKSRC}}/COPYING.LIB
28 FPC_EQUIVALENT= sysutils/fusefs-libs
31 CONFIGURE_ARGS= --with-pkgconfigdir={{PREFIX}}/lib/pkgconfig
32 CONFIGURE_ENV= MOUNT_FUSE_PATH={{PREFIX}}/sbin
34 INSTALL_TARGET= install-strip
35 PLIST_SUB= SOVERSION=2.9.7
39 ${RM} -r ${STAGEDIR}/dev
42 ${INSTALL_DATA} ${WRKSRC}/include/fuse_kernel.h \
43 ${STAGEDIR}${PREFIX}/include/fuse
44 # This file conflicts with fuse3
45 ${RM} ${STAGEDIR}${PREFIX}/share/man/man8/mount.fuse.8
48 ${CP} ${LOCALBASE}/share/gettext/config.rpath ${WRKSRC}
50 [FILE:1174:descriptions/desc.single]
51 FUSE (Filesystem in Userspace) is an interface for userspace programs to
52 export a filesystem to the kernel. The FUSE project consists of two
53 components: the fuse kernel module (maintained by supported operating
54 system) and the libfuse userspace library (the contents of this package).
55 libfuse provides the reference implementation for communicating with the
58 A FUSE file system is typically implemented as a standalone application
59 that links with libfuse. libfuse provides functions to mount the file
60 system, unmount it, read requests from the kernel, and send responses
61 back. libfuse offers two APIs: a "high-level", synchronous API, and a
62 "low-level" asynchronous API. In both cases, incoming requests from the
63 kernel are passed to the main program using callbacks. When using the
64 high-level API, the callbacks may work with file names and paths instead
65 of inodes, and processing of a request finishes when the callback function
66 returns. When using the low-level API, the callbacks must work with inodes
67 and responses must be sent explicitly using a separate set of API
70 This package contains FUSE version 2, the legacy version.
75 2a62adb901aae9226ebd5bc40e2201e29f62c3b2a251c67cd1abb17b4d523175 209571 libfuse-libfuse-fuse-2.9.7.tar.gz
78 [FILE:684:manifests/plist.single]
79 %%ONLY-LINUX%%/etc/udev/rules.d/99-fuse.rules
80 %%ONLY-LINUX%%/etc/init.d/fuse
81 %%ONLY-LINUX%%sbin/mount.fuse
85 %%ONLY-LINUX%%@preexec mknod -m 0666 /dev/fuse c 10 229 || true
86 %%ONLY-LINUX%%@postunexec rm -f /dev/fuse
97 fuse_lowlevel_compat.h
104 libfuse.so.%%SOMAJOR%%
105 libfuse.so.%%SOVERSION%%
110 lib/pkgconfig/fuse.pc
116 [FILE:150:files/pkg-message-single-freebsd]
117 ================ FreeBSD Message ================
118 Install the fuse kernel module to use this port.
119 =================================================
122 [FILE:2066:freebsd/patch-lib_helper.c]
123 --- lib/helper.c.orig 2015-05-22 09:24:02 UTC
125 @@ -31,7 +31,7 @@ enum {
129 - int nodefault_subtype;
134 @@ -42,8 +42,7 @@ static const struct fuse_opt fuse_helper
135 FUSE_HELPER_OPT("debug", foreground),
136 FUSE_HELPER_OPT("-f", foreground),
137 FUSE_HELPER_OPT("-s", singlethread),
138 - FUSE_HELPER_OPT("fsname=", nodefault_subtype),
139 - FUSE_HELPER_OPT("subtype=", nodefault_subtype),
140 + FUSE_HELPER_OPT("fsname=", fsname),
142 FUSE_OPT_KEY("-h", KEY_HELP),
143 FUSE_OPT_KEY("--help", KEY_HELP),
144 @@ -53,7 +52,6 @@ static const struct fuse_opt fuse_helper
145 FUSE_OPT_KEY("-d", FUSE_OPT_KEY_KEEP),
146 FUSE_OPT_KEY("debug", FUSE_OPT_KEY_KEEP),
147 FUSE_OPT_KEY("fsname=", FUSE_OPT_KEY_KEEP),
148 - FUSE_OPT_KEY("subtype=", FUSE_OPT_KEY_KEEP),
152 @@ -123,24 +121,24 @@ static int fuse_helper_opt_proc(void *da
156 -static int add_default_subtype(const char *progname, struct fuse_args *args)
157 +static int add_default_fsname(const char *progname, struct fuse_args *args)
162 const char *basename = strrchr(progname, '/');
163 if (basename == NULL)
165 else if (basename[1] != '\0')
168 - subtype_opt = (char *) malloc(strlen(basename) + 64);
169 - if (subtype_opt == NULL) {
170 + fsname_opt = (char *) malloc(strlen(basename) + 64);
171 + if (fsname_opt == NULL) {
172 fprintf(stderr, "fuse: memory allocation failed\n");
175 - sprintf(subtype_opt, "-osubtype=%s", basename);
176 - res = fuse_opt_add_arg(args, subtype_opt);
178 + sprintf(fsname_opt, "-ofsname=%s", basename);
179 + res = fuse_opt_add_arg(args, fsname_opt);
184 @@ -156,8 +154,8 @@ int fuse_parse_cmdline(struct fuse_args
188 - if (!hopts.nodefault_subtype) {
189 - res = add_default_subtype(args->argv[0], args);
190 + if (!hopts.fsname) {
191 + res = add_default_fsname(args->argv[0], args);
197 [FILE:1611:freebsd/patch-lib_mount__bsd.c]
198 --- lib/mount_bsd.c.orig 2015-05-22 09:24:02 UTC
201 #include "fuse_misc.h"
202 #include "fuse_opt.h"
204 +#include <sys/param.h>
205 +#include <sys/mount.h>
206 #include <sys/stat.h>
207 #include <sys/wait.h>
208 #include <sys/sysctl.h>
209 @@ -78,6 +80,7 @@ static const struct fuse_opt fuse_mount_
210 FUSE_DUAL_OPT_KEY("ro", KEY_KERN),
211 FUSE_DUAL_OPT_KEY("rw", KEY_KERN),
212 FUSE_DUAL_OPT_KEY("auto", KEY_KERN),
213 + FUSE_DUAL_OPT_KEY("automounted", KEY_KERN),
214 /* options supported under both Linux and FBSD */
215 FUSE_DUAL_OPT_KEY("allow_other", KEY_KERN),
216 FUSE_DUAL_OPT_KEY("default_permissions",KEY_KERN),
217 @@ -192,56 +195,12 @@ void fuse_unmount_compat22(const char *m
221 -static void do_unmount(char *dev, int fd)
223 - char device_path[SPECNAMELEN + 12];
224 - const char *argv[4];
225 - const char umount_cmd[] = "/sbin/umount";
228 - snprintf(device_path, SPECNAMELEN + 12, _PATH_DEV "%s", dev);
230 - argv[0] = umount_cmd;
232 - argv[2] = device_path;
242 - execvp(umount_cmd, (char **)argv);
246 - waitpid(pid, NULL, 0);
249 void fuse_kern_unmount(const char *mountpoint, int fd)
256 - if (fstat(fd, &sbuf) == -1)
259 - devname_r(sbuf.st_rdev, S_IFCHR, dev, 128);
261 - if (strncmp(dev, "fuse", 4))
264 - strtol(dev + 4, &ep, 10);
268 - do_unmount(dev, fd);
271 + unmount(mountpoint, MNT_FORCE);
277 [FILE:414:freebsd/patch-lib_mount__util.c]
278 --- lib/mount_util.c.orig 2015-05-22 09:24:02 UTC
280 @@ -344,20 +344,3 @@ int fuse_mnt_check_empty(const char *pro
285 -int fuse_mnt_check_fuseblk(void)
288 - FILE *f = fopen("/proc/filesystems", "r");
292 - while (fgets(buf, sizeof(buf), f))
293 - if (strstr(buf, "fuseblk\n")) {
303 [FILE:339:freebsd/patch-lib_mount__util.h]
304 --- lib/mount_util.h.orig 2015-05-22 09:24:02 UTC
306 @@ -16,4 +16,3 @@ int fuse_mnt_umount(const char *progname
307 char *fuse_mnt_resolve_path(const char *progname, const char *orig);
308 int fuse_mnt_check_empty(const char *progname, const char *mnt,
309 mode_t rootmode, off_t rootsize);
310 -int fuse_mnt_check_fuseblk(void);