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.9
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= cpe iconv libtool autoreconf gettext-tools
24 LICENSE= LGPL21:single
25 LICENSE_TERMS= single:{{WRKDIR}}/TERMS
26 LICENSE_FILE= LGPL21:{{WRKSRC}}/COPYING.LIB
27 LICENSE_AWK= TERMS:"\*\/"
28 LICENSE_SOURCE= TERMS:{{WRKSRC}}/include/fuse.h
32 CPE_VENDOR= fuse_project
33 FPC_EQUIVALENT= sysutils/fusefs-libs
36 CONFIGURE_ARGS= --with-pkgconfigdir={{PREFIX}}/lib/pkgconfig
37 CONFIGURE_ENV= MOUNT_FUSE_PATH={{PREFIX}}/sbin
39 INSTALL_TARGET= install-strip
43 ${RM} -r ${STAGEDIR}/dev
46 ${INSTALL_DATA} ${WRKSRC}/include/fuse_kernel.h \
47 ${STAGEDIR}${PREFIX}/include/fuse
48 # This file conflicts with fuse3
49 ${RM} ${STAGEDIR}${PREFIX}/share/man/man8/mount.fuse.8
52 ${CP} ${LOCALBASE}/share/gettext/config.rpath ${WRKSRC}
54 [FILE:1174:descriptions/desc.single]
55 FUSE (Filesystem in Userspace) is an interface for userspace programs to
56 export a filesystem to the kernel. The FUSE project consists of two
57 components: the fuse kernel module (maintained by supported operating
58 system) and the libfuse userspace library (the contents of this package).
59 libfuse provides the reference implementation for communicating with the
62 A FUSE file system is typically implemented as a standalone application
63 that links with libfuse. libfuse provides functions to mount the file
64 system, unmount it, read requests from the kernel, and send responses
65 back. libfuse offers two APIs: a "high-level", synchronous API, and a
66 "low-level" asynchronous API. In both cases, incoming requests from the
67 kernel are passed to the main program using callbacks. When using the
68 high-level API, the callbacks may work with file names and paths instead
69 of inodes, and processing of a request finishes when the callback function
70 returns. When using the low-level API, the callbacks must work with inodes
71 and responses must be sent explicitly using a separate set of API
74 This package contains FUSE version 2, the legacy version.
79 e57a24721177c3b3dd71cb9239ca46b4dee283db9388d48f7ccd256184982194 212017 libfuse-libfuse-fuse-2.9.9.tar.gz
82 [FILE:675:manifests/plist.single]
83 %%ONLY-LINUX%%/etc/init.d/fuse
84 %%ONLY-LINUX%%/etc/udev/rules.d/99-fuse.rules
85 %%ONLY-LINUX%%@postunexec rm -f /dev/fuse
86 %%ONLY-LINUX%%@preexec mknod -m 0666 /dev/fuse c 10 229 || true
90 %%ONLY-LINUX%%sbin/mount.fuse
102 fuse_lowlevel_compat.h
107 libfuse.so.%%SOMAJOR%%
108 libfuse.so.%%SOVERSION%%
113 lib/pkgconfig/fuse.pc
119 [FILE:150:files/pkg-message-single-freebsd]
120 ================ FreeBSD Message ================
121 Install the fuse kernel module to use this port.
122 =================================================
125 [FILE:2065:freebsd/patch-lib_helper.c]
126 --- lib/helper.c.orig 2019-01-04 13:38:34 UTC
128 @@ -31,7 +31,7 @@ enum {
132 - int nodefault_subtype;
137 @@ -42,8 +42,7 @@ static const struct fuse_opt fuse_helper
138 FUSE_HELPER_OPT("debug", foreground),
139 FUSE_HELPER_OPT("-f", foreground),
140 FUSE_HELPER_OPT("-s", singlethread),
141 - FUSE_HELPER_OPT("fsname=", nodefault_subtype),
142 - FUSE_HELPER_OPT("subtype=", nodefault_subtype),
143 + FUSE_HELPER_OPT("fsname=", fsname),
145 FUSE_OPT_KEY("-h", KEY_HELP),
146 FUSE_OPT_KEY("--help", KEY_HELP),
147 @@ -53,7 +52,6 @@ static const struct fuse_opt fuse_helper
148 FUSE_OPT_KEY("-d", FUSE_OPT_KEY_KEEP),
149 FUSE_OPT_KEY("debug", FUSE_OPT_KEY_KEEP),
150 FUSE_OPT_KEY("fsname=", FUSE_OPT_KEY_KEEP),
151 - FUSE_OPT_KEY("subtype=", FUSE_OPT_KEY_KEEP),
155 @@ -123,24 +121,24 @@ static int fuse_helper_opt_proc(void *da
159 -static int add_default_subtype(const char *progname, struct fuse_args *args)
160 +static int add_default_fsname(const char *progname, struct fuse_args *args)
165 const char *basename = strrchr(progname, '/');
166 if (basename == NULL)
168 else if (basename[1] != '\0')
171 - subtype_opt = (char *) malloc(strlen(basename) + 64);
172 - if (subtype_opt == NULL) {
173 + fsname_opt = (char *) malloc(strlen(basename) + 64);
174 + if (fsname_opt == NULL) {
175 fprintf(stderr, "fuse: memory allocation failed\n");
178 - sprintf(subtype_opt, "-osubtype=%s", basename);
179 - res = fuse_opt_add_arg(args, subtype_opt);
181 + sprintf(fsname_opt, "-ofsname=%s", basename);
182 + res = fuse_opt_add_arg(args, fsname_opt);
187 @@ -156,8 +154,8 @@ int fuse_parse_cmdline(struct fuse_args
191 - if (!hopts.nodefault_subtype) {
192 - res = add_default_subtype(args->argv[0], args);
193 + if (!hopts.fsname) {
194 + res = add_default_fsname(args->argv[0], args);
200 [FILE:1611:freebsd/patch-lib_mount__bsd.c]
201 --- lib/mount_bsd.c.orig 2019-01-04 13:38:34 UTC
204 #include "fuse_misc.h"
205 #include "fuse_opt.h"
207 +#include <sys/param.h>
208 +#include <sys/mount.h>
209 #include <sys/stat.h>
210 #include <sys/wait.h>
211 #include <sys/sysctl.h>
212 @@ -78,6 +80,7 @@ static const struct fuse_opt fuse_mount_
213 FUSE_DUAL_OPT_KEY("ro", KEY_KERN),
214 FUSE_DUAL_OPT_KEY("rw", KEY_KERN),
215 FUSE_DUAL_OPT_KEY("auto", KEY_KERN),
216 + FUSE_DUAL_OPT_KEY("automounted", KEY_KERN),
217 /* options supported under both Linux and FBSD */
218 FUSE_DUAL_OPT_KEY("allow_other", KEY_KERN),
219 FUSE_DUAL_OPT_KEY("default_permissions",KEY_KERN),
220 @@ -192,56 +195,12 @@ void fuse_unmount_compat22(const char *m
224 -static void do_unmount(char *dev, int fd)
226 - char device_path[SPECNAMELEN + 12];
227 - const char *argv[4];
228 - const char umount_cmd[] = "/sbin/umount";
231 - snprintf(device_path, SPECNAMELEN + 12, _PATH_DEV "%s", dev);
233 - argv[0] = umount_cmd;
235 - argv[2] = device_path;
245 - execvp(umount_cmd, (char **)argv);
249 - waitpid(pid, NULL, 0);
252 void fuse_kern_unmount(const char *mountpoint, int fd)
259 - if (fstat(fd, &sbuf) == -1)
262 - devname_r(sbuf.st_rdev, S_IFCHR, dev, 128);
264 - if (strncmp(dev, "fuse", 4))
267 - strtol(dev + 4, &ep, 10);
271 - do_unmount(dev, fd);
274 + unmount(mountpoint, MNT_FORCE);
280 [FILE:414:freebsd/patch-lib_mount__util.c]
281 --- lib/mount_util.c.orig 2019-01-04 13:38:34 UTC
283 @@ -344,20 +344,3 @@ int fuse_mnt_check_empty(const char *pro
288 -int fuse_mnt_check_fuseblk(void)
291 - FILE *f = fopen("/proc/filesystems", "r");
295 - while (fgets(buf, sizeof(buf), f))
296 - if (strstr(buf, "fuseblk\n")) {
306 [FILE:339:freebsd/patch-lib_mount__util.h]
307 --- lib/mount_util.h.orig 2019-01-04 13:38:34 UTC
309 @@ -16,4 +16,3 @@ int fuse_mnt_umount(const char *progname
310 char *fuse_mnt_resolve_path(const char *progname, const char *orig);
311 int fuse_mnt_check_empty(const char *progname, const char *mnt,
312 mode_t rootmode, off_t rootsize);
313 -int fuse_mnt_check_fuseblk(void);