diff --git a/sysutils/fusefs-libs/Makefile b/sysutils/fusefs-libs/Makefile index ee6e1d50badd..4a1698ec5e49 100644 --- a/sysutils/fusefs-libs/Makefile +++ b/sysutils/fusefs-libs/Makefile @@ -3,29 +3,36 @@ PORTNAME= fusefs PORTVERSION= 2.9.4 +PORTREVISION= 1 CATEGORIES= sysutils -MASTER_SITES= SF/fuse/fuse-2.X/${PORTVERSION} PKGNAMESUFFIX= -libs -DISTNAME= fuse-${PORTVERSION} -MAINTAINER= ports@FreeBSD.org +MAINTAINER= brendan+freebsd@bbqsrc.net COMMENT= FUSE allows filesystem implementation in userspace -OPTIONS_DEFINE= DOCS - LICENSE= LGPL21 LICENSE_FILE= ${WRKSRC}/COPYING.LIB +OPTIONS_DEFINE= DOCS + +USE_GITHUB= yes +GH_ACCOUNT= libfuse +GH_PROJECT= libfuse +GH_TAGNAME= 6adcb71 + GNU_CONFIGURE= yes CONFIGURE_ENV= MOUNT_FUSE_PATH=${PREFIX}/sbin CONFIGURE_ARGS= --prefix=${PREFIX} \ --with-pkgconfigdir=${PREFIX}/libdata/pkgconfig INSTALL_TARGET= install-strip -USES= iconv libtool +USES= iconv libtool autoreconf gettext-tools USE_LDCONFIG= yes PORTDOCS= * +pre-configure: + ${CP} ${LOCALBASE}/share/gettext/config.rpath ${WRKSRC} + post-install: ${INSTALL_DATA} ${WRKSRC}/include/fuse_kernel.h ${STAGEDIR}${PREFIX}/include/fuse @${MKDIR} ${STAGEDIR}${DOCSDIR}/libs diff --git a/sysutils/fusefs-libs/distinfo b/sysutils/fusefs-libs/distinfo index 979209a25844..04db851ca930 100644 --- a/sysutils/fusefs-libs/distinfo +++ b/sysutils/fusefs-libs/distinfo @@ -1,2 +1,2 @@ -SHA256 (fuse-2.9.4.tar.gz) = 6be9c0bff6af8c677414935f31699ea5a7f8f5f791cfa5205be02ea186b97ce1 -SIZE (fuse-2.9.4.tar.gz) = 577282 +SHA256 (libfuse-libfuse-2.9.4-6adcb71_GH0.tar.gz) = 756c1a3e84febcbf41fc64dea2b1234f890c4098742b3861f7ede63a711a4bcf +SIZE (libfuse-libfuse-2.9.4-6adcb71_GH0.tar.gz) = 215632 diff --git a/sysutils/fusefs-libs/files/patch-configure.ac b/sysutils/fusefs-libs/files/patch-configure.ac new file mode 100644 index 000000000000..ab5e3a948a16 --- /dev/null +++ b/sysutils/fusefs-libs/files/patch-configure.ac @@ -0,0 +1,22 @@ +--- configure.ac.orig 2015-05-22 09:24:02 UTC ++++ configure.ac +@@ -3,7 +3,7 @@ AC_INIT(fuse, 2.9.4) + AC_PREREQ(2.59d) + AC_CONFIG_MACRO_DIR([m4]) + AC_CANONICAL_TARGET +-AM_INIT_AUTOMAKE ++AM_INIT_AUTOMAKE([subdir-objects]) + m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES(yes)]) + AC_CONFIG_HEADERS(include/config.h) + +--- configure.ac.orig 2015-05-22 09:24:02 UTC ++++ configure.ac +@@ -3,7 +3,7 @@ AC_INIT(fuse, 2.9.4) + AC_PREREQ(2.59d) + AC_CONFIG_MACRO_DIR([m4]) + AC_CANONICAL_TARGET +-AM_INIT_AUTOMAKE ++AM_INIT_AUTOMAKE([subdir-objects]) + m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES(yes)]) + AC_CONFIG_HEADERS(include/config.h) + diff --git a/sysutils/fusefs-libs/files/patch-lib_helper.c b/sysutils/fusefs-libs/files/patch-lib_helper.c index c8b88076b132..a9cb4b6fd1aa 100644 --- a/sysutils/fusefs-libs/files/patch-lib_helper.c +++ b/sysutils/fusefs-libs/files/patch-lib_helper.c @@ -1,6 +1,6 @@ ---- lib/helper.c.orig 2012-04-10 15:28:55.000000000 +0200 -+++ lib/helper.c 2012-07-31 00:06:11.384938678 +0200 -@@ -31,7 +31,7 @@ +--- lib/helper.c.orig 2015-05-22 09:24:02 UTC ++++ lib/helper.c +@@ -31,7 +31,7 @@ enum { struct helper_opts { int singlethread; int foreground; @@ -9,7 +9,7 @@ char *mountpoint; }; -@@ -42,8 +42,7 @@ +@@ -42,8 +42,7 @@ static const struct fuse_opt fuse_helper FUSE_HELPER_OPT("debug", foreground), FUSE_HELPER_OPT("-f", foreground), FUSE_HELPER_OPT("-s", singlethread), @@ -19,7 +19,7 @@ FUSE_OPT_KEY("-h", KEY_HELP), FUSE_OPT_KEY("--help", KEY_HELP), -@@ -53,7 +52,6 @@ +@@ -53,7 +52,6 @@ static const struct fuse_opt fuse_helper FUSE_OPT_KEY("-d", FUSE_OPT_KEY_KEEP), FUSE_OPT_KEY("debug", FUSE_OPT_KEY_KEEP), FUSE_OPT_KEY("fsname=", FUSE_OPT_KEY_KEEP), @@ -27,7 +27,7 @@ FUSE_OPT_END }; -@@ -123,24 +121,24 @@ +@@ -123,24 +121,24 @@ static int fuse_helper_opt_proc(void *da } } @@ -59,7 +59,7 @@ return res; } -@@ -156,8 +154,8 @@ +@@ -156,8 +154,8 @@ int fuse_parse_cmdline(struct fuse_args if (res == -1) return -1; diff --git a/sysutils/fusefs-libs/files/patch-lib_mount__bsd.c b/sysutils/fusefs-libs/files/patch-lib_mount__bsd.c new file mode 100644 index 000000000000..e8536a6ce028 --- /dev/null +++ b/sysutils/fusefs-libs/files/patch-lib_mount__bsd.c @@ -0,0 +1,154 @@ +--- lib/mount_bsd.c.orig 2015-05-22 09:24:02 UTC ++++ lib/mount_bsd.c +@@ -10,6 +10,8 @@ + #include "fuse_misc.h" + #include "fuse_opt.h" + ++#include ++#include + #include + #include + #include +@@ -78,6 +80,7 @@ static const struct fuse_opt fuse_mount_ + FUSE_DUAL_OPT_KEY("ro", KEY_KERN), + FUSE_DUAL_OPT_KEY("rw", KEY_KERN), + FUSE_DUAL_OPT_KEY("auto", KEY_KERN), ++ FUSE_DUAL_OPT_KEY("automounted", KEY_KERN), + /* options supported under both Linux and FBSD */ + FUSE_DUAL_OPT_KEY("allow_other", KEY_KERN), + FUSE_DUAL_OPT_KEY("default_permissions",KEY_KERN), +@@ -192,56 +195,12 @@ void fuse_unmount_compat22(const char *m + free(umount_cmd); + } + +-static void do_unmount(char *dev, int fd) +-{ +- char device_path[SPECNAMELEN + 12]; +- const char *argv[4]; +- const char umount_cmd[] = "/sbin/umount"; +- pid_t pid; +- +- snprintf(device_path, SPECNAMELEN + 12, _PATH_DEV "%s", dev); +- +- argv[0] = umount_cmd; +- argv[1] = "-f"; +- argv[2] = device_path; +- argv[3] = NULL; +- +- pid = fork(); +- +- if (pid == -1) +- return; +- +- if (pid == 0) { +- close(fd); +- execvp(umount_cmd, (char **)argv); +- exit(1); +- } +- +- waitpid(pid, NULL, 0); +-} +- + void fuse_kern_unmount(const char *mountpoint, int fd) + { + char *ep, dev[128]; + struct stat sbuf; + +- (void)mountpoint; +- +- if (fstat(fd, &sbuf) == -1) +- goto out; +- +- devname_r(sbuf.st_rdev, S_IFCHR, dev, 128); +- +- if (strncmp(dev, "fuse", 4)) +- goto out; +- +- strtol(dev + 4, &ep, 10); +- if (*ep != '\0') +- goto out; +- +- do_unmount(dev, fd); +- +-out: ++ unmount(mountpoint, MNT_FORCE); + close(fd); + } + +--- lib/mount_bsd.c.orig 2015-05-22 09:24:02 UTC ++++ lib/mount_bsd.c +@@ -10,6 +10,8 @@ + #include "fuse_misc.h" + #include "fuse_opt.h" + ++#include ++#include + #include + #include + #include +@@ -78,6 +80,7 @@ static const struct fuse_opt fuse_mount_ + FUSE_DUAL_OPT_KEY("ro", KEY_KERN), + FUSE_DUAL_OPT_KEY("rw", KEY_KERN), + FUSE_DUAL_OPT_KEY("auto", KEY_KERN), ++ FUSE_DUAL_OPT_KEY("automounted", KEY_KERN), + /* options supported under both Linux and FBSD */ + FUSE_DUAL_OPT_KEY("allow_other", KEY_KERN), + FUSE_DUAL_OPT_KEY("default_permissions",KEY_KERN), +@@ -192,56 +195,12 @@ void fuse_unmount_compat22(const char *m + free(umount_cmd); + } + +-static void do_unmount(char *dev, int fd) +-{ +- char device_path[SPECNAMELEN + 12]; +- const char *argv[4]; +- const char umount_cmd[] = "/sbin/umount"; +- pid_t pid; +- +- snprintf(device_path, SPECNAMELEN + 12, _PATH_DEV "%s", dev); +- +- argv[0] = umount_cmd; +- argv[1] = "-f"; +- argv[2] = device_path; +- argv[3] = NULL; +- +- pid = fork(); +- +- if (pid == -1) +- return; +- +- if (pid == 0) { +- close(fd); +- execvp(umount_cmd, (char **)argv); +- exit(1); +- } +- +- waitpid(pid, NULL, 0); +-} +- + void fuse_kern_unmount(const char *mountpoint, int fd) + { + char *ep, dev[128]; + struct stat sbuf; + +- (void)mountpoint; +- +- if (fstat(fd, &sbuf) == -1) +- goto out; +- +- devname_r(sbuf.st_rdev, S_IFCHR, dev, 128); +- +- if (strncmp(dev, "fuse", 4)) +- goto out; +- +- strtol(dev + 4, &ep, 10); +- if (*ep != '\0') +- goto out; +- +- do_unmount(dev, fd); +- +-out: ++ unmount(mountpoint, MNT_FORCE); + close(fd); + } + diff --git a/sysutils/fusefs-libs/files/patch-lib_mount__util.c b/sysutils/fusefs-libs/files/patch-lib_mount__util.c new file mode 100644 index 000000000000..8c4588998525 --- /dev/null +++ b/sysutils/fusefs-libs/files/patch-lib_mount__util.c @@ -0,0 +1,46 @@ +--- lib/mount_util.c.orig 2015-05-22 09:24:02 UTC ++++ lib/mount_util.c +@@ -344,20 +344,3 @@ int fuse_mnt_check_empty(const char *pro + } + return 0; + } +- +-int fuse_mnt_check_fuseblk(void) +-{ +- char buf[256]; +- FILE *f = fopen("/proc/filesystems", "r"); +- if (!f) +- return 1; +- +- while (fgets(buf, sizeof(buf), f)) +- if (strstr(buf, "fuseblk\n")) { +- fclose(f); +- return 1; +- } +- +- fclose(f); +- return 0; +-} +--- lib/mount_util.c.orig 2015-05-22 09:24:02 UTC ++++ lib/mount_util.c +@@ -344,20 +344,3 @@ int fuse_mnt_check_empty(const char *pro + } + return 0; + } +- +-int fuse_mnt_check_fuseblk(void) +-{ +- char buf[256]; +- FILE *f = fopen("/proc/filesystems", "r"); +- if (!f) +- return 1; +- +- while (fgets(buf, sizeof(buf), f)) +- if (strstr(buf, "fuseblk\n")) { +- fclose(f); +- return 1; +- } +- +- fclose(f); +- return 0; +-} diff --git a/sysutils/fusefs-libs/files/patch-lib_mount__util.h b/sysutils/fusefs-libs/files/patch-lib_mount__util.h new file mode 100644 index 000000000000..34b778cfe6f8 --- /dev/null +++ b/sysutils/fusefs-libs/files/patch-lib_mount__util.h @@ -0,0 +1,14 @@ +--- lib/mount_util.h.orig 2015-05-22 09:24:02 UTC ++++ lib/mount_util.h +@@ -16,4 +16,3 @@ int fuse_mnt_umount(const char *progname + char *fuse_mnt_resolve_path(const char *progname, const char *orig); + int fuse_mnt_check_empty(const char *progname, const char *mnt, + mode_t rootmode, off_t rootsize); +-int fuse_mnt_check_fuseblk(void); +--- lib/mount_util.h.orig 2015-05-22 09:24:02 UTC ++++ lib/mount_util.h +@@ -16,4 +16,3 @@ int fuse_mnt_umount(const char *progname + char *fuse_mnt_resolve_path(const char *progname, const char *orig); + int fuse_mnt_check_empty(const char *progname, const char *mnt, + mode_t rootmode, off_t rootsize); +-int fuse_mnt_check_fuseblk(void); diff --git a/sysutils/fusefs-libs/files/patch-lib_mount_bsd.c b/sysutils/fusefs-libs/files/patch-lib_mount_bsd.c deleted file mode 100644 index 281d585fb50b..000000000000 --- a/sysutils/fusefs-libs/files/patch-lib_mount_bsd.c +++ /dev/null @@ -1,77 +0,0 @@ ---- lib/mount_bsd.c.orig 2013-07-01 09:40:53.000000000 +0200 -+++ lib/mount_bsd.c 2013-07-24 16:20:34.533073286 +0200 -@@ -10,6 +10,8 @@ - #include "fuse_misc.h" - #include "fuse_opt.h" - -+#include -+#include - #include - #include - #include -@@ -78,6 +80,7 @@ static const struct fuse_opt fuse_mount_ - FUSE_DUAL_OPT_KEY("ro", KEY_KERN), - FUSE_DUAL_OPT_KEY("rw", KEY_KERN), - FUSE_DUAL_OPT_KEY("auto", KEY_KERN), -+ FUSE_DUAL_OPT_KEY("automounted", KEY_KERN), - /* options supported under both Linux and FBSD */ - FUSE_DUAL_OPT_KEY("allow_other", KEY_KERN), - FUSE_DUAL_OPT_KEY("default_permissions",KEY_KERN), -@@ -192,56 +194,12 @@ - free(umount_cmd); - } - --static void do_unmount(char *dev, int fd) --{ -- char device_path[SPECNAMELEN + 12]; -- const char *argv[4]; -- const char umount_cmd[] = "/sbin/umount"; -- pid_t pid; -- -- snprintf(device_path, SPECNAMELEN + 12, _PATH_DEV "%s", dev); -- -- argv[0] = umount_cmd; -- argv[1] = "-f"; -- argv[2] = device_path; -- argv[3] = NULL; -- -- pid = fork(); -- -- if (pid == -1) -- return; -- -- if (pid == 0) { -- close(fd); -- execvp(umount_cmd, (char **)argv); -- exit(1); -- } -- -- waitpid(pid, NULL, 0); --} -- - void fuse_kern_unmount(const char *mountpoint, int fd) - { - char *ep, dev[128]; - struct stat sbuf; - -- (void)mountpoint; -- -- if (fstat(fd, &sbuf) == -1) -- goto out; -- -- devname_r(sbuf.st_rdev, S_IFCHR, dev, 128); -- -- if (strncmp(dev, "fuse", 4)) -- goto out; -- -- strtol(dev + 4, &ep, 10); -- if (*ep != '\0') -- goto out; -- -- do_unmount(dev, fd); -- --out: -+ unmount(mountpoint, MNT_FORCE); - close(fd); - } - diff --git a/sysutils/fusefs-libs/files/patch-lib_mount_util.c b/sysutils/fusefs-libs/files/patch-lib_mount_util.c deleted file mode 100644 index b81a34084aee..000000000000 --- a/sysutils/fusefs-libs/files/patch-lib_mount_util.c +++ /dev/null @@ -1,23 +0,0 @@ ---- lib/mount_util.c.orig 2008-02-04 00:23:30.000000000 -0500 -+++ lib/mount_util.c 2008-02-04 00:23:58.000000000 -0500 -@@ -224,20 +224,3 @@ - } - return 0; - } -- --int fuse_mnt_check_fuseblk(void) --{ -- char buf[256]; -- FILE *f = fopen("/proc/filesystems", "r"); -- if (!f) -- return 1; -- -- while (fgets(buf, sizeof(buf), f)) -- if (strstr(buf, "fuseblk\n")) { -- fclose(f); -- return 1; -- } -- -- fclose(f); -- return 0; --} diff --git a/sysutils/fusefs-libs/files/patch-lib_mount_util.h b/sysutils/fusefs-libs/files/patch-lib_mount_util.h deleted file mode 100644 index 836fdc133e9d..000000000000 --- a/sysutils/fusefs-libs/files/patch-lib_mount_util.h +++ /dev/null @@ -1,7 +0,0 @@ ---- lib/mount_util.h.orig 2008-02-04 00:24:07.000000000 -0500 -+++ lib/mount_util.h 2008-02-04 00:24:20.000000000 -0500 -@@ -14,4 +14,3 @@ - char *fuse_mnt_resolve_path(const char *progname, const char *orig); - int fuse_mnt_check_empty(const char *progname, const char *mnt, - mode_t rootmode, off_t rootsize); --int fuse_mnt_check_fuseblk(void);