- Update to 1.0

- Pass maintainership to submitter

PR:		205617
Submitted by:	 Brendan Molloy
This commit is contained in:
Martin Wilke 2015-12-31 14:37:05 +00:00
parent 751a3143b3
commit 9705488d2b
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=404945
7 changed files with 84 additions and 60 deletions

View file

@ -2,31 +2,33 @@
# $FreeBSD$
PORTNAME= unionfs
PORTVERSION= 0.26
PORTREVISION= 1
PORTVERSION= 1.0
DISTVERSIONPREFIX= v
CATEGORIES= sysutils
MASTER_SITES= http://podgorny.cz/unionfs-fuse/releases/
PKGNAMEPREFIX= fusefs-
DISTNAME= unionfs-fuse-${PORTVERSION}
MAINTAINER= ports@FreeBSD.org
MAINTAINER= brendan+freebsd@bbqsrc.net
COMMENT= FUSE based implementation of the well-known unionfs
LICENSE= BSD3CLAUSE
LICENSE_FILE= ${WRKSRC}/LICENSE
USE_GITHUB= yes
GH_ACCOUNT= rpodgorny
GH_PROJECT= unionfs-fuse
SUB_FILES= pkg-message
PLIST_FILES= bin/unionfs \
man/man8/unionfs-fuse.8.gz
bin/unionfsctl \
man/man8/unionfs.8.gz
USES= fuse cmake tar:xz
CFLAGS+= -I${LOCALBASE}/include
LDFLAGS+= -L${LOCALBASE}/lib
USES= fuse cmake localbase
post-patch:
@${REINPLACE_CMD} "s,share/man,man,g" ${WRKSRC}/man/CMakeLists.txt
post-install:
${STRIP_CMD} ${STAGEDIR}${PREFIX}/bin/${PORTNAME}
@${STRIP_CMD} ${STAGEDIR}${PREFIX}/bin/*
.include <bsd.port.mk>

View file

@ -1,2 +1,2 @@
SHA256 (unionfs-fuse-0.26.tar.xz) = 8d5c9dcb51ecb9a9b03890e16d17e37d602b0c1f23ed6a9ddec2b0f719c9f662
SIZE (unionfs-fuse-0.26.tar.xz) = 38600
SHA256 (rpodgorny-unionfs-fuse-v1.0_GH0.tar.gz) = 2ee80bd0634a61adb2159212e155d607a0a82ad659214ae6edb3530396cccc09
SIZE (rpodgorny-unionfs-fuse-v1.0_GH0.tar.gz) = 48149

View file

@ -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()

View file

@ -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 @@
@@ -671,6 +683,9 @@ static int unionfs_truncate(const char *
RETURN(0);
}
+// 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);
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);
+#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

View file

@ -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__
#include <malloc.h>
+#endif
#include <pthread.h>
#include <stdarg.h>
--- 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

View file

@ -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

View file

@ -1,6 +1,4 @@
This is my effort to create a unionfs filesystem implementation which
is probably slower but way more flexible than the current in-kernel
unionfs solution. Currently it's almost fully usable, the only problem
is new file/directory creation which I will fix soon...
This is an effort to create a unionfs filesystem implementation which is way
more flexible than the current in-kernel unionfs solution.
WWW: http://podgorny.cz/moin/UnionFsFuse
WWW: https://github.com/rpodgorny/unionfs-fuse