diff options
Diffstat (limited to 'sysutils/fusefs-unionfs/files')
-rw-r--r-- | sysutils/fusefs-unionfs/files/patch-CMakeLists.txt | 12 | ||||
-rw-r--r-- | sysutils/fusefs-unionfs/files/patch-src__unionfs.c | 61 | ||||
-rw-r--r-- | sysutils/fusefs-unionfs/files/patch-src__usyslog.c | 19 | ||||
-rw-r--r-- | sysutils/fusefs-unionfs/files/pkg-message.in | 14 |
4 files changed, 65 insertions, 41 deletions
diff --git a/sysutils/fusefs-unionfs/files/patch-CMakeLists.txt b/sysutils/fusefs-unionfs/files/patch-CMakeLists.txt index a61f5a4a6eea..107d85a0e259 100644 --- a/sysutils/fusefs-unionfs/files/patch-CMakeLists.txt +++ b/sysutils/fusefs-unionfs/files/patch-CMakeLists.txt @@ -1,6 +1,6 @@ ---- ./CMakeLists.txt.orig 2012-09-11 00:06:32.000000000 +0200 -+++ ./CMakeLists.txt 2013-07-24 16:54:01.550064323 +0200 -@@ -9,12 +9,6 @@ +--- CMakeLists.txt.orig 2015-01-14 10:08:20 UTC ++++ CMakeLists.txt +@@ -9,12 +9,6 @@ IF(NOT CMAKE_CONFIGURATION_TYPES AND NOT SET(CMAKE_BUILD_TYPE RelWithDebInfo) ENDIF(NOT CMAKE_CONFIGURATION_TYPES AND NOT CMAKE_BUILD_TYPE) @@ -10,6 +10,6 @@ -SET(CMAKE_C_FLAGS_RELEASE "-O2") -SET(CMAKE_C_FLAGS_DEBUG "-O0 -g -DDEBUG") - - add_definitions(-D_FILE_OFFSET_BITS=64 -DFUSE_USE_VERSION=26) - - option(WITH_XATTR "Enable support for extended attributes" OFF) + if (UNIX AND APPLE) + include_directories("/usr/local/include/osxfuse/fuse") + endif() diff --git a/sysutils/fusefs-unionfs/files/patch-src__unionfs.c b/sysutils/fusefs-unionfs/files/patch-src__unionfs.c index 859351cb25c7..6b9fcbd1afee 100644 --- a/sysutils/fusefs-unionfs/files/patch-src__unionfs.c +++ b/sysutils/fusefs-unionfs/files/patch-src__unionfs.c @@ -1,9 +1,24 @@ ---- ./src/unionfs.c.orig 2012-09-11 00:06:32.000000000 +0200 -+++ ./src/unionfs.c 2013-07-24 16:54:01.555073796 +0200 -@@ -83,7 +83,11 @@ +--- src/unionfs.c.orig 2015-01-14 10:08:20 UTC ++++ src/unionfs.c +@@ -65,6 +65,13 @@ + #include "conf.h" + #include "uioctl.h" + ++// Patch pushed upstream: ++// https://github.com/rpodgorny/unionfs-fuse/pull/40 ++// Remove this as soon as pushed into a release. ++#ifdef IOCPARM_LEN ++#define _IOC_SIZE(nr) IOCPARM_LEN(nr) ++#endif ++ + static struct fuse_opt unionfs_opts[] = { + FUSE_OPT_KEY("chroot=%s,", KEY_CHROOT), + FUSE_OPT_KEY("cow", KEY_COW), +@@ -92,7 +99,12 @@ static int unionfs_chmod(const char *pat char p[PATHLEN_MAX]; if (BUILD_PATH(p, uopt.branches[i].path, path)) RETURN(-ENAMETOOLONG); ++// Unsure of origin. Patch needs review. +#if __FreeBSD__ + int res = lchmod(p, mode); +#else @@ -12,29 +27,25 @@ if (res == -1) RETURN(-errno); RETURN(0); -@@ -190,7 +194,7 @@ - DBG("%s\n", path); +@@ -671,6 +683,9 @@ static int unionfs_truncate(const char * + RETURN(0); + } - if (uopt.stats_enabled && strcmp(path, STATS_FILENAME) == 0) { -- memset(stbuf, 0, sizeof(stbuf)); -+ memset(stbuf, 0, sizeof(*stbuf)); - stbuf->st_mode = S_IFREG | 0444; - stbuf->st_nlink = 1; - stbuf->st_size = STATS_SIZE; -@@ -663,7 +667,16 @@ - char p[PATHLEN_MAX]; - if (BUILD_PATH(p, uopt.branches[i].path, path)) RETURN(-ENAMETOOLONG); ++// Patch pushed upstream: ++// https://github.com/rpodgorny/unionfs-fuse/pull/39 ++// Remove this as soon as pushed into a release. + static int unionfs_utimens(const char *path, const struct timespec ts[2]) { + DBG("%s\n", path); -+#ifdef __FreeBSD__ -+ struct timeval tv[2]; -+ tv[0].tv_sec = ts[0].tv_sec; +@@ -685,9 +700,9 @@ static int unionfs_utimens(const char *p + #else + struct timeval tv[2]; + tv[0].tv_sec = ts[0].tv_sec; +- tv[0].tv_usec = ts[0].tv_nsec * 1000; + tv[0].tv_usec = ts[0].tv_nsec / 1000; -+ tv[1].tv_sec = ts[0].tv_sec; -+ tv[1].tv_usec = ts[0].tv_nsec / 1000; -+ int res = lutimes(p, tv); -+#else - int res = utimensat(0, p, ts, AT_SYMLINK_NOFOLLOW); -+#endif - - if (res == -1) RETURN(-errno); + tv[1].tv_sec = ts[1].tv_sec; +- tv[1].tv_usec = ts[1].tv_nsec * 1000; ++ tv[1].tv_usec = ts[1].tv_nsec / 1000; + int res = utimes(p, tv); + #endif diff --git a/sysutils/fusefs-unionfs/files/patch-src__usyslog.c b/sysutils/fusefs-unionfs/files/patch-src__usyslog.c index 1f625090702c..42f8ec61068b 100644 --- a/sysutils/fusefs-unionfs/files/patch-src__usyslog.c +++ b/sysutils/fusefs-unionfs/files/patch-src__usyslog.c @@ -1,12 +1,11 @@ ---- ./src/usyslog.c.orig 2012-09-11 00:06:32.000000000 +0200 -+++ ./src/usyslog.c 2013-07-24 16:56:29.401473882 +0200 -@@ -20,7 +20,9 @@ - #include <string.h> - #include <stdlib.h> - #include <errno.h> -+#ifndef __FreeBSD__ +--- src/usyslog.c.orig 2015-01-14 10:08:20 UTC ++++ src/usyslog.c +@@ -23,7 +23,7 @@ + + #if __APPLE__ + #include <malloc/malloc.h> +-#else ++#elif !defined(__FreeBSD__) #include <malloc.h> -+#endif - #include <pthread.h> - #include <stdarg.h> + #endif diff --git a/sysutils/fusefs-unionfs/files/pkg-message.in b/sysutils/fusefs-unionfs/files/pkg-message.in new file mode 100644 index 000000000000..69e13810a121 --- /dev/null +++ b/sysutils/fusefs-unionfs/files/pkg-message.in @@ -0,0 +1,14 @@ +You will need to load the kernel module 'fuse' to use this package. To load +this at boot time, add the following line to /boot/loader.conf: + +fuse_load="YES" + +If you want unprivileged users to be able to use unionfs, add the following +line to /etc/sysctl.conf: + +vfs.usermount=1 + +You can enable them immediately with: + +kldload fuse +sysctl vfs.usermount=1 |