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= 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
31 FPC_EQUIVALENT= sysutils/fusefs-libs
34 CONFIGURE_ARGS= --with-pkgconfigdir={{PREFIX}}/lib/pkgconfig
35 CONFIGURE_ENV= MOUNT_FUSE_PATH={{PREFIX}}/sbin
37 INSTALL_TARGET= install-strip
41 ${RM} -r ${STAGEDIR}/dev
44 ${INSTALL_DATA} ${WRKSRC}/include/fuse_kernel.h \
45 ${STAGEDIR}${PREFIX}/include/fuse
46 # This file conflicts with fuse3
47 ${RM} ${STAGEDIR}${PREFIX}/share/man/man8/mount.fuse.8
50 ${CP} ${LOCALBASE}/share/gettext/config.rpath ${WRKSRC}
52 [FILE:1174:descriptions/desc.single]
53 FUSE (Filesystem in Userspace) is an interface for userspace programs to
54 export a filesystem to the kernel. The FUSE project consists of two
55 components: the fuse kernel module (maintained by supported operating
56 system) and the libfuse userspace library (the contents of this package).
57 libfuse provides the reference implementation for communicating with the
60 A FUSE file system is typically implemented as a standalone application
61 that links with libfuse. libfuse provides functions to mount the file
62 system, unmount it, read requests from the kernel, and send responses
63 back. libfuse offers two APIs: a "high-level", synchronous API, and a
64 "low-level" asynchronous API. In both cases, incoming requests from the
65 kernel are passed to the main program using callbacks. When using the
66 high-level API, the callbacks may work with file names and paths instead
67 of inodes, and processing of a request finishes when the callback function
68 returns. When using the low-level API, the callbacks must work with inodes
69 and responses must be sent explicitly using a separate set of API
72 This package contains FUSE version 2, the legacy version.
77 e57a24721177c3b3dd71cb9239ca46b4dee283db9388d48f7ccd256184982194 212017 libfuse-libfuse-fuse-2.9.9.tar.gz
80 [FILE:675:manifests/plist.single]
81 %%ONLY-LINUX%%/etc/init.d/fuse
82 %%ONLY-LINUX%%/etc/udev/rules.d/99-fuse.rules
83 %%ONLY-LINUX%%@postunexec rm -f /dev/fuse
84 %%ONLY-LINUX%%@preexec mknod -m 0666 /dev/fuse c 10 229 || true
88 %%ONLY-LINUX%%sbin/mount.fuse
100 fuse_lowlevel_compat.h
105 libfuse.so.%%SOMAJOR%%
106 libfuse.so.%%SOVERSION%%
111 lib/pkgconfig/fuse.pc
117 [FILE:150:files/pkg-message-single-freebsd]
118 ================ FreeBSD Message ================
119 Install the fuse kernel module to use this port.
120 =================================================
123 [FILE:2065:freebsd/patch-lib_helper.c]
124 --- lib/helper.c.orig 2019-01-04 13:38:34 UTC
126 @@ -31,7 +31,7 @@ enum {
130 - int nodefault_subtype;
135 @@ -42,8 +42,7 @@ static const struct fuse_opt fuse_helper
136 FUSE_HELPER_OPT("debug", foreground),
137 FUSE_HELPER_OPT("-f", foreground),
138 FUSE_HELPER_OPT("-s", singlethread),
139 - FUSE_HELPER_OPT("fsname=", nodefault_subtype),
140 - FUSE_HELPER_OPT("subtype=", nodefault_subtype),
141 + FUSE_HELPER_OPT("fsname=", fsname),
143 FUSE_OPT_KEY("-h", KEY_HELP),
144 FUSE_OPT_KEY("--help", KEY_HELP),
145 @@ -53,7 +52,6 @@ static const struct fuse_opt fuse_helper
146 FUSE_OPT_KEY("-d", FUSE_OPT_KEY_KEEP),
147 FUSE_OPT_KEY("debug", FUSE_OPT_KEY_KEEP),
148 FUSE_OPT_KEY("fsname=", FUSE_OPT_KEY_KEEP),
149 - FUSE_OPT_KEY("subtype=", FUSE_OPT_KEY_KEEP),
153 @@ -123,24 +121,24 @@ static int fuse_helper_opt_proc(void *da
157 -static int add_default_subtype(const char *progname, struct fuse_args *args)
158 +static int add_default_fsname(const char *progname, struct fuse_args *args)
163 const char *basename = strrchr(progname, '/');
164 if (basename == NULL)
166 else if (basename[1] != '\0')
169 - subtype_opt = (char *) malloc(strlen(basename) + 64);
170 - if (subtype_opt == NULL) {
171 + fsname_opt = (char *) malloc(strlen(basename) + 64);
172 + if (fsname_opt == NULL) {
173 fprintf(stderr, "fuse: memory allocation failed\n");
176 - sprintf(subtype_opt, "-osubtype=%s", basename);
177 - res = fuse_opt_add_arg(args, subtype_opt);
179 + sprintf(fsname_opt, "-ofsname=%s", basename);
180 + res = fuse_opt_add_arg(args, fsname_opt);
185 @@ -156,8 +154,8 @@ int fuse_parse_cmdline(struct fuse_args
189 - if (!hopts.nodefault_subtype) {
190 - res = add_default_subtype(args->argv[0], args);
191 + if (!hopts.fsname) {
192 + res = add_default_fsname(args->argv[0], args);
198 [FILE:1611:freebsd/patch-lib_mount__bsd.c]
199 --- lib/mount_bsd.c.orig 2019-01-04 13:38:34 UTC
202 #include "fuse_misc.h"
203 #include "fuse_opt.h"
205 +#include <sys/param.h>
206 +#include <sys/mount.h>
207 #include <sys/stat.h>
208 #include <sys/wait.h>
209 #include <sys/sysctl.h>
210 @@ -78,6 +80,7 @@ static const struct fuse_opt fuse_mount_
211 FUSE_DUAL_OPT_KEY("ro", KEY_KERN),
212 FUSE_DUAL_OPT_KEY("rw", KEY_KERN),
213 FUSE_DUAL_OPT_KEY("auto", KEY_KERN),
214 + FUSE_DUAL_OPT_KEY("automounted", KEY_KERN),
215 /* options supported under both Linux and FBSD */
216 FUSE_DUAL_OPT_KEY("allow_other", KEY_KERN),
217 FUSE_DUAL_OPT_KEY("default_permissions",KEY_KERN),
218 @@ -192,56 +195,12 @@ void fuse_unmount_compat22(const char *m
222 -static void do_unmount(char *dev, int fd)
224 - char device_path[SPECNAMELEN + 12];
225 - const char *argv[4];
226 - const char umount_cmd[] = "/sbin/umount";
229 - snprintf(device_path, SPECNAMELEN + 12, _PATH_DEV "%s", dev);
231 - argv[0] = umount_cmd;
233 - argv[2] = device_path;
243 - execvp(umount_cmd, (char **)argv);
247 - waitpid(pid, NULL, 0);
250 void fuse_kern_unmount(const char *mountpoint, int fd)
257 - if (fstat(fd, &sbuf) == -1)
260 - devname_r(sbuf.st_rdev, S_IFCHR, dev, 128);
262 - if (strncmp(dev, "fuse", 4))
265 - strtol(dev + 4, &ep, 10);
269 - do_unmount(dev, fd);
272 + unmount(mountpoint, MNT_FORCE);
278 [FILE:414:freebsd/patch-lib_mount__util.c]
279 --- lib/mount_util.c.orig 2019-01-04 13:38:34 UTC
281 @@ -344,20 +344,3 @@ int fuse_mnt_check_empty(const char *pro
286 -int fuse_mnt_check_fuseblk(void)
289 - FILE *f = fopen("/proc/filesystems", "r");
293 - while (fgets(buf, sizeof(buf), f))
294 - if (strstr(buf, "fuseblk\n")) {
304 [FILE:339:freebsd/patch-lib_mount__util.h]
305 --- lib/mount_util.h.orig 2019-01-04 13:38:34 UTC
307 @@ -16,4 +16,3 @@ int fuse_mnt_umount(const char *progname
308 char *fuse_mnt_resolve_path(const char *progname, const char *orig);
309 int fuse_mnt_check_empty(const char *progname, const char *mnt,
310 mode_t rootmode, off_t rootsize);
311 -int fuse_mnt_check_fuseblk(void);