ports/180662: sysutils/fusefs-libs: add birthtime support
Pedro Giffuni
giffunip at tutopia.com
Fri Jul 19 19:50:00 UTC 2013
>Number: 180662
>Category: ports
>Synopsis: sysutils/fusefs-libs: add birthtime support
>Confidential: no
>Severity: non-critical
>Priority: low
>Responsible: freebsd-ports-bugs
>State: open
>Quarter:
>Keywords:
>Date-Required:
>Class: change-request
>Submitter-Id: current-users
>Arrival-Date: Fri Jul 19 19:50:00 UTC 2013
>Closed-Date:
>Last-Modified:
>Originator: Pedro Giffuni
>Release: 9.2-PRERELEASE
>Organization:
>Environment:
FreeBSD pcbsd-1465 9.2-PRERELEASE FreeBSD 9.2-PRERELEASE #2 r253398M: Tue Jul 16 16:26:12 COT 2013 pfg at pcbsd-1465:/usr/obj/usr/src/sys/DELL amd64
>Description:
FreeBSD 10 has added birthtime support to the fuse kernel module as
was done for MacFUSE.
The fusefs-libs port needs an update to use them.
The attached patch has been submitted upstream but we will have to
carry it until they accept it.
>How-To-Repeat:
>Fix:
Patch attached with submission follows:
Index: fusefs-libs/Makefile
===================================================================
--- fusefs-libs/Makefile (revision 323184)
+++ fusefs-libs/Makefile (working copy)
@@ -3,6 +3,7 @@
PORTNAME= fusefs
PORTVERSION= 2.9.2
+PORTREVISION= 1
CATEGORIES= sysutils
MASTER_SITES= SF/fuse/fuse-2.X/${PORTVERSION}
PKGNAMESUFFIX= -libs
@@ -20,6 +21,12 @@
TXT_DOCS= how-fuse-works \
kernel.txt
+.include <bsd.port.pre.mk>
+
+.if ${OSVERSION} >= 1000038
+EXTRA_PATCHES+= ${FILESDIR}/extrapatch-fuse-birthtime.diff
+.endif
+
post-install:
${INSTALL_DATA} ${WRKSRC}/include/fuse_kernel.h ${PREFIX}/include/fuse
@@ -34,4 +41,4 @@
ulockmgr_server.1
MAN8= mount.fuse.8
-.include <bsd.port.mk>
+.include <bsd.port.post.mk>
Index: fusefs-libs/files/extrapatch-fuse-birthtime.diff
===================================================================
--- fusefs-libs/files/extrapatch-fuse-birthtime.diff (revision 0)
+++ fusefs-libs/files/extrapatch-fuse-birthtime.diff (working copy)
@@ -0,0 +1,60 @@
+--- include/fuse_kernel.h.orig 2013-07-19 12:31:33.000000000 -0500
++++ include/fuse_kernel.h 2013-07-19 12:35:32.000000000 -0500
+@@ -134,16 +134,24 @@
+ __u64 atime;
+ __u64 mtime;
+ __u64 ctime;
++#ifdef __FreeBSD__
++ __u64 crtime;
++#endif
+ __u32 atimensec;
+ __u32 mtimensec;
+ __u32 ctimensec;
++#ifdef __FreeBSD__
++ __u32 crtimensec;
++#endif
+ __u32 mode;
+ __u32 nlink;
+ __u32 uid;
+ __u32 gid;
+ __u32 rdev;
+ __u32 blksize;
++#ifndef __FreeBSD__
+ __u32 padding;
++#endif
+ };
+
+ struct fuse_kstatfs {
+--- lib/fuse_lowlevel.c.orig 2012-09-04 05:17:46.000000000 -0500
++++ lib/fuse_lowlevel.c 2013-07-19 14:11:22.000000000 -0500
+@@ -67,9 +67,15 @@
+ attr->atime = stbuf->st_atime;
+ attr->mtime = stbuf->st_mtime;
+ attr->ctime = stbuf->st_ctime;
++#ifdef __FreeBSD__
++ attr->crtime = stbuf->st_birthtime;
++#endif
+ attr->atimensec = ST_ATIM_NSEC(stbuf);
+ attr->mtimensec = ST_MTIM_NSEC(stbuf);
+ attr->ctimensec = ST_CTIM_NSEC(stbuf);
++#ifdef __FreeBSD__
++ attr->crtimensec= ST_CRTIM_NSEC(stbuf);
++#endif
+ }
+
+ static void convert_attr(const struct fuse_setattr_in *attr, struct stat *stbuf)
+--- lib/fuse_misc.h.orig 2013-07-19 14:14:59.000000000 -0500
++++ lib/fuse_misc.h 2013-07-19 14:15:15.000000000 -0500
+@@ -41,8 +41,11 @@
+ #define ST_MTIM_NSEC(stbuf) ((stbuf)->st_mtim.tv_nsec)
+ #define ST_ATIM_NSEC_SET(stbuf, val) (stbuf)->st_atim.tv_nsec = (val)
+ #define ST_MTIM_NSEC_SET(stbuf, val) (stbuf)->st_mtim.tv_nsec = (val)
++#ifdef __FreeBSD__
++#define ST_CRTIM_NSEC(stbuf) ((stbuf)->st_birthtim.tv_nsec)
++#endif
+ #elif defined(HAVE_STRUCT_STAT_ST_ATIMESPEC)
+-/* FreeBSD */
++/* Older BSD ? */
+ #define ST_ATIM_NSEC(stbuf) ((stbuf)->st_atimespec.tv_nsec)
+ #define ST_CTIM_NSEC(stbuf) ((stbuf)->st_ctimespec.tv_nsec)
+ #define ST_MTIM_NSEC(stbuf) ((stbuf)->st_mtimespec.tv_nsec)
>Release-Note:
>Audit-Trail:
>Unformatted:
More information about the freebsd-ports-bugs
mailing list