FreeBSD Bugzilla – Attachment 145071 Details for
Bug 184042
[patch] sysutils/fusefs-kmod backport fuse from head
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
fusefs-kmod.shar
fusefs-kmod.shar (text/plain), 18.71 KB, created by
David Shane Holden
on 2014-07-28 12:11:44 UTC
(
hide
)
Description:
fusefs-kmod.shar
Filename:
MIME Type:
Creator:
David Shane Holden
Created:
2014-07-28 12:11:44 UTC
Size:
18.71 KB
patch
obsolete
># This is a shell archive. Save it in a file, remove anything before ># this line, and then unpack it by entering "sh file". Note, it may ># create directories; files and directories will be owned by you and ># have default permissions. ># ># This archive contains: ># ># fusefs-kmod ># fusefs-kmod/pkg-descr ># fusefs-kmod/pkg-plist ># fusefs-kmod/files ># fusefs-kmod/files/fusefs.in ># fusefs-kmod/files/extra-patch-9-fuse_vfsops.c ># fusefs-kmod/files/patch-fuse_node.c ># fusefs-kmod/files/extra-patch-8-fuse_vnops.c ># fusefs-kmod/files/extra-patch-9-fuse_vnops.c ># fusefs-kmod/files/extra-patch-8-fuse_vfsops.c ># fusefs-kmod/files/pkg-message.in ># fusefs-kmod/files/patch-fuse_io.c ># fusefs-kmod/distinfo ># fusefs-kmod/Makefile ># >echo c - fusefs-kmod >mkdir -p fusefs-kmod > /dev/null 2>&1 >echo x - fusefs-kmod/pkg-descr >sed 's/^X//' >fusefs-kmod/pkg-descr << '976e1d6423d47303f7d248164ba7bd4b' >XFUSE kernel module >976e1d6423d47303f7d248164ba7bd4b >echo x - fusefs-kmod/pkg-plist >sed 's/^X//' >fusefs-kmod/pkg-plist << '69c70d0c758a23af8e72330513353875' >Xman/man8/mount_fusefs.8.gz >Xsbin/mount_fusefs >X@exec ln -fs %D/%F /usr/sbin >X@unexec rm -f /usr/sbin/mount_fusefs >X@cwd / >X%%KMODDIR%%/fuse.ko >69c70d0c758a23af8e72330513353875 >echo c - fusefs-kmod/files >mkdir -p fusefs-kmod/files > /dev/null 2>&1 >echo x - fusefs-kmod/files/fusefs.in >sed 's/^X//' >fusefs-kmod/files/fusefs.in << '7553f2816448b1cd9fc3dd042169b6ea' >X#!/bin/sh >X# >X# $FreeBSD$ >X# >X# PROVIDE: fusefs >X# REQUIRE: sysctl >X# BEFORE: mountlate >X# KEYWORD: shutdown >X# >X# Add the following lines to /etc/rc.conf.local or /etc/rc.conf >X# to enable this service: >X# >X# fusefs_enable (bool): Set to NO by default. >X# Set it to YES to enable fusefs. >X# >X# fusefs_safe (bool): Set to NO by default. >X# Set it to YES to wait for all write operations >X# to finish before terminating. >X# >X# fusefs_safe_evil (bool): Set to NO by default. >X# Set it to YES to pause the watchdog timer >X# while waiting for write operations. >X# >X >X. /etc/rc.subr >X >Xname="fusefs" >Xrcvar=fusefs_enable >X >Xkmod="%%KMODDIR%%/fuse.ko" >X >Xstart_cmd="fusefs_start" >Xstop_cmd="fusefs_stop" >X >Xfusefs_start() >X{ >X if kldstat | grep -q fuse\\.ko; then >X echo "${name} is already running." >X return 0 >X fi >X echo "Starting ${name}." >X kldload $kmod >X} >X >Xfusefs_stop() >X{ >X if ! kldstat | grep -q fuse\\.ko; then >X echo "${name} is not running." >X return 1 >X fi >X echo "Stopping ${name}." >X# Unmount FUSE filesystems in reverse order (in case they are nested) to >X# allow recent FUSE implementation to synchronize disks before shutdown. >X mount | sed -e '1!G;h;$!d' | while read dev d1 mountpoint d2; do >X case "$dev" in >X /dev/fuse[0-9]*) >X echo "fusefs: unmounting ${mountpoint}." >X umount -f $mountpoint >X ;; >X esac >X done >X if checkyesno "${name}_safe_evil"; then >X if [ -n "$_rcshutdown_watchdog" ]; then >X echo "fusefs: pausing watchdog timer." >X kill -STOP "$_rcshutdown_watchdog" >X fi >X fi >X if checkyesno "${name}_safe"; then >X printf "fusefs: unloading $kmod... " >X while ! kldunload $kmod 2> /dev/null; do >X sleep 0.25 >X done >X echo "done." >X else >X kldunload $kmod >X fi >X if checkyesno "${name}_safe_evil"; then >X if [ -n "$_rcshutdown_watchdog" ]; then >X echo "fusefs: continuing watchdog timer." >X kill -CONT "$_rcshutdown_watchdog" >X fi >X fi >X} >Xload_rc_config $name >X >X: ${fusefs_enable="NO"} >X: ${fusefs_safe="NO"} >X: ${fusefs_safe_evil="NO"} >X >Xrun_rc_command "$1" >7553f2816448b1cd9fc3dd042169b6ea >echo x - fusefs-kmod/files/extra-patch-9-fuse_vfsops.c >sed 's/^X//' >fusefs-kmod/files/extra-patch-9-fuse_vfsops.c << 'b52fa66013c8558e5c850d6cf7f1ff6d' >X--- fs/fuse/fuse_vfsops.c.orig >X+++ fs/fuse/fuse_vfsops.c >X@@ -62,7 +62,7 @@ __FBSDID("$FreeBSD$"); >X #include <sys/errno.h> >X #include <sys/param.h> >X #include <sys/kernel.h> >X-#include <sys/capsicum.h> >X+#include <sys/capability.h> >X #include <sys/conf.h> >X #include <sys/filedesc.h> >X #include <sys/uio.h> >X@@ -220,7 +220,6 @@ fuse_vfsop_mount(struct mount *mp) >X struct file *fp, *fptmp; >X char *fspec, *subtype; >X struct vfsoptlist *opts; >X- cap_rights_t rights; >X >X subtype = NULL; >X max_read_set = 0; >X@@ -290,7 +289,7 @@ fuse_vfsop_mount(struct mount *mp) >X >X FS_DEBUG2G("mntopts 0x%jx\n", (uintmax_t)mntopts); >X >X- err = fget(td, fd, cap_rights_init(&rights, CAP_READ), &fp); >X+ err = fget(td, fd, CAP_READ, &fp); >X if (err != 0) { >X FS_DEBUG("invalid or not opened device: data=%p\n", data); >X goto out; >X@@ -459,7 +458,7 @@ fuse_vfsop_root(struct mount *mp, int lkflags, struct vnode **vpp) >X FUSE_UNLOCK(); >X VOP_UNLOCK(*vpp, 0); >X vrele(*vpp); >X- vrecycle(*vpp); >X+ vrecycle(*vpp, curthread); >X *vpp = data->vroot; >X } else >X FUSE_UNLOCK(); >b52fa66013c8558e5c850d6cf7f1ff6d >echo x - fusefs-kmod/files/patch-fuse_node.c >sed 's/^X//' >fusefs-kmod/files/patch-fuse_node.c << 'e5ae3e511f2975c4d8805d5066f248f8' >X--- fs/fuse/fuse_node.c.orig >X+++ fs/fuse/fuse_node.c >X@@ -362,7 +362,7 @@ fuse_vnode_setsize(struct vnode *vp, struct ucred *cred, off_t newsize) >X fvdat->flag |= FN_SIZECHANGE; >X >X if (newsize < oldsize) { >X- err = vtruncbuf(vp, cred, newsize, fuse_iosize(vp)); >X+ err = vtruncbuf(vp, cred, curthread, newsize, fuse_iosize(vp)); >X } >X vnode_pager_setsize(vp, newsize); >X return err; >e5ae3e511f2975c4d8805d5066f248f8 >echo x - fusefs-kmod/files/extra-patch-8-fuse_vnops.c >sed 's/^X//' >fusefs-kmod/files/extra-patch-8-fuse_vnops.c << 'ab9cf8f9e79dee3e71b2ba355451b8e7' >X--- fs/fuse/fuse_vnops.c.orig >X+++ fs/fuse/fuse_vnops.c >X@@ -190,10 +190,10 @@ >X >X int fuse_pbuf_freecnt = -1; >X >X-#define fuse_vm_page_lock(m) vm_page_lock((m)); >X-#define fuse_vm_page_unlock(m) vm_page_unlock((m)); >X-#define fuse_vm_page_lock_queues() ((void)0) >X-#define fuse_vm_page_unlock_queues() ((void)0) >X+#define fuse_vm_page_lock(m) ((void)0) >X+#define fuse_vm_page_unlock(m) ((void)0) >X+#define fuse_vm_page_lock_queues() vm_page_lock_queues() >X+#define fuse_vm_page_unlock_queues() vm_page_unlock_queues() >X >X /* >X struct vnop_access_args { >X@@ -579,7 +579,7 @@ >X } >X >X if ((fvdat->flag & FN_REVOKED) != 0 && fuse_reclaim_revoked) { >X- vrecycle(vp); >X+ vrecycle(vp, curthread); >X } >X return 0; >X } >X@@ -706,7 +706,7 @@ >X op = FUSE_GETATTR; >X goto calldaemon; >X } else if (fuse_lookup_cache_enable) { >X- err = cache_lookup(dvp, vpp, cnp, NULL, NULL); >X+ err = cache_lookup(dvp, vpp, cnp); >X switch (err) { >X >X case -1: /* positive match */ >X@@ -1758,7 +1758,7 @@ >X * can only occur at the file EOF. >X */ >X >X- VM_OBJECT_WLOCK(vp->v_object); >X+ VM_OBJECT_LOCK(vp->v_object); >X fuse_vm_page_lock_queues(); >X if (pages[ap->a_reqpage]->valid != 0) { >X for (i = 0; i < npages; ++i) { >X@@ -1769,11 +1769,11 @@ >X } >X } >X fuse_vm_page_unlock_queues(); >X- VM_OBJECT_WUNLOCK(vp->v_object); >X+ VM_OBJECT_UNLOCK(vp->v_object); >X return 0; >X } >X fuse_vm_page_unlock_queues(); >X- VM_OBJECT_WUNLOCK(vp->v_object); >X+ VM_OBJECT_UNLOCK(vp->v_object); >X >X /* >X * We use only the kva address for the buffer, but this is extremely >X@@ -1803,7 +1803,7 @@ >X >X if (error && (uio.uio_resid == count)) { >X FS_DEBUG("error %d\n", error); >X- VM_OBJECT_WLOCK(vp->v_object); >X+ VM_OBJECT_LOCK(vp->v_object); >X fuse_vm_page_lock_queues(); >X for (i = 0; i < npages; ++i) { >X if (i != ap->a_reqpage) { >X@@ -1813,7 +1813,7 @@ >X } >X } >X fuse_vm_page_unlock_queues(); >X- VM_OBJECT_WUNLOCK(vp->v_object); >X+ VM_OBJECT_UNLOCK(vp->v_object); >X return VM_PAGER_ERROR; >X } >X /* >X@@ -1823,7 +1823,7 @@ >X */ >X >X size = count - uio.uio_resid; >X- VM_OBJECT_WLOCK(vp->v_object); >X+ VM_OBJECT_LOCK(vp->v_object); >X fuse_vm_page_lock_queues(); >X for (i = 0, toff = 0; i < npages; i++, toff = nextoff) { >X vm_page_t m; >X@@ -1843,7 +1843,7 @@ >X * Read operation filled a partial page. >X */ >X m->valid = 0; >X- vm_page_set_valid_range(m, 0, size - toff); >X+ vm_page_set_valid(m, 0, size - toff); >X KASSERT(m->dirty == 0, >X ("fuse_getpages: page %p is dirty", m)); >X } else { >X@@ -1854,11 +1854,36 @@ >X */ >X ; >X } >X- if (i != ap->a_reqpage) >X- vm_page_readahead_finish(m); >X+ if (i != ap->a_reqpage) { >X+ /* >X+ * whether or not to leave the page activated is up in >X+ * the air, but we should put the page on a page queue >X+ * somewhere. (it already is in the object). Result: >X+ * It appears that empirical results show that >X+ * deactivating pages is best. >X+ */ >X+ >X+ /* >X+ * just in case someone was asking for this page we >X+ * now tell them that it is ok to use >X+ */ >X+ if (!error) { >X+#ifdef VPO_WANTED >X+ if (m->oflags & VPO_WANTED) >X+#else >X+ if (m->flags & PG_WANTED) >X+#endif >X+ vm_page_activate(m); >X+ else >X+ vm_page_deactivate(m); >X+ vm_page_wakeup(m); >X+ } else { >X+ vm_page_free(m); >X+ } >X+ } >X } >X fuse_vm_page_unlock_queues(); >X- VM_OBJECT_WUNLOCK(vp->v_object); >X+ VM_OBJECT_UNLOCK(vp->v_object); >X return 0; >X } >X >X@@ -1947,9 +1972,9 @@ >X >X for (i = 0; i < nwritten; i++) { >X rtvals[i] = VM_PAGER_OK; >X- VM_OBJECT_WLOCK(pages[i]->object); >X+ VM_OBJECT_LOCK(pages[i]->object); >X vm_page_undirty(pages[i]); >X- VM_OBJECT_WUNLOCK(pages[i]->object); >X+ VM_OBJECT_UNLOCK(pages[i]->object); >X } >X } >X return rtvals[0]; >ab9cf8f9e79dee3e71b2ba355451b8e7 >echo x - fusefs-kmod/files/extra-patch-9-fuse_vnops.c >sed 's/^X//' >fusefs-kmod/files/extra-patch-9-fuse_vnops.c << '46cfbaf2c385ac7188ce6ec97b84ab81' >X--- fs/fuse/fuse_vnops.c.orig >X+++ fs/fuse/fuse_vnops.c >X@@ -579,7 +579,7 @@ fuse_vnop_inactive(struct vop_inactive_args *ap) >X } >X >X if ((fvdat->flag & FN_REVOKED) != 0 && fuse_reclaim_revoked) { >X- vrecycle(vp); >X+ vrecycle(vp, curthread); >X } >X return 0; >X } >X@@ -706,7 +706,7 @@ fuse_vnop_lookup(struct vop_lookup_args *ap) >X op = FUSE_GETATTR; >X goto calldaemon; >X } else if (fuse_lookup_cache_enable) { >X- err = cache_lookup(dvp, vpp, cnp, NULL, NULL); >X+ err = cache_lookup(dvp, vpp, cnp); >X switch (err) { >X >X case -1: /* positive match */ >X@@ -1758,7 +1758,7 @@ fuse_vnop_getpages(struct vop_getpages_args *ap) >X * can only occur at the file EOF. >X */ >X >X- VM_OBJECT_WLOCK(vp->v_object); >X+ VM_OBJECT_LOCK(vp->v_object); >X fuse_vm_page_lock_queues(); >X if (pages[ap->a_reqpage]->valid != 0) { >X for (i = 0; i < npages; ++i) { >X@@ -1769,11 +1769,11 @@ fuse_vnop_getpages(struct vop_getpages_args *ap) >X } >X } >X fuse_vm_page_unlock_queues(); >X- VM_OBJECT_WUNLOCK(vp->v_object); >X+ VM_OBJECT_UNLOCK(vp->v_object); >X return 0; >X } >X fuse_vm_page_unlock_queues(); >X- VM_OBJECT_WUNLOCK(vp->v_object); >X+ VM_OBJECT_UNLOCK(vp->v_object); >X >X /* >X * We use only the kva address for the buffer, but this is extremely >X@@ -1803,7 +1803,7 @@ fuse_vnop_getpages(struct vop_getpages_args *ap) >X >X if (error && (uio.uio_resid == count)) { >X FS_DEBUG("error %d\n", error); >X- VM_OBJECT_WLOCK(vp->v_object); >X+ VM_OBJECT_LOCK(vp->v_object); >X fuse_vm_page_lock_queues(); >X for (i = 0; i < npages; ++i) { >X if (i != ap->a_reqpage) { >X@@ -1813,7 +1813,7 @@ fuse_vnop_getpages(struct vop_getpages_args *ap) >X } >X } >X fuse_vm_page_unlock_queues(); >X- VM_OBJECT_WUNLOCK(vp->v_object); >X+ VM_OBJECT_UNLOCK(vp->v_object); >X return VM_PAGER_ERROR; >X } >X /* >X@@ -1823,7 +1823,7 @@ fuse_vnop_getpages(struct vop_getpages_args *ap) >X */ >X >X size = count - uio.uio_resid; >X- VM_OBJECT_WLOCK(vp->v_object); >X+ VM_OBJECT_LOCK(vp->v_object); >X fuse_vm_page_lock_queues(); >X for (i = 0, toff = 0; i < npages; i++, toff = nextoff) { >X vm_page_t m; >X@@ -1843,7 +1843,7 @@ fuse_vnop_getpages(struct vop_getpages_args *ap) >X * Read operation filled a partial page. >X */ >X m->valid = 0; >X- vm_page_set_valid_range(m, 0, size - toff); >X+ vm_page_set_valid(m, 0, size - toff); >X KASSERT(m->dirty == 0, >X ("fuse_getpages: page %p is dirty", m)); >X } else { >X@@ -1854,11 +1854,39 @@ fuse_vnop_getpages(struct vop_getpages_args *ap) >X */ >X ; >X } >X- if (i != ap->a_reqpage) >X- vm_page_readahead_finish(m); >X+ if (i != ap->a_reqpage) { >X+ /* >X+ * whether or not to leave the page activated is up in >X+ * the air, but we should put the page on a page queue >X+ * somewhere. (it already is in the object). Result: >X+ * It appears that empirical results show that >X+ * deactivating pages is best. >X+ */ >X+ >X+ /* >X+ * just in case someone was asking for this page we >X+ * now tell them that it is ok to use >X+ */ >X+ if (!error) { >X+ if (m->oflags & VPO_WANTED) { >X+ vm_page_lock(m); >X+ vm_page_activate(m); >X+ vm_page_unlock(m); >X+ } else { >X+ vm_page_lock(m); >X+ vm_page_deactivate(m); >X+ vm_page_unlock(m); >X+ } >X+ vm_page_wakeup(m); >X+ } else { >X+ vm_page_lock(m); >X+ vm_page_free(m); >X+ vm_page_unlock(m); >X+ } >X+ } >X } >X fuse_vm_page_unlock_queues(); >X- VM_OBJECT_WUNLOCK(vp->v_object); >X+ VM_OBJECT_UNLOCK(vp->v_object); >X return 0; >X } >X >X@@ -1947,9 +1975,9 @@ fuse_vnop_putpages(struct vop_putpages_args *ap) >X >X for (i = 0; i < nwritten; i++) { >X rtvals[i] = VM_PAGER_OK; >X- VM_OBJECT_WLOCK(pages[i]->object); >X+ VM_OBJECT_LOCK(pages[i]->object); >X vm_page_undirty(pages[i]); >X- VM_OBJECT_WUNLOCK(pages[i]->object); >X+ VM_OBJECT_UNLOCK(pages[i]->object); >X } >X } >X return rtvals[0]; >46cfbaf2c385ac7188ce6ec97b84ab81 >echo x - fusefs-kmod/files/extra-patch-8-fuse_vfsops.c >sed 's/^X//' >fusefs-kmod/files/extra-patch-8-fuse_vfsops.c << '7cbcb77c75ae7469b63afc3babf2c216' >X--- fs/fuse/fuse_vfsops.c.orig >X+++ fs/fuse/fuse_vfsops.c >X@@ -62,8 +62,8 @@ >X #include <sys/errno.h> >X #include <sys/param.h> >X #include <sys/kernel.h> >X-#include <sys/capsicum.h> >X #include <sys/conf.h> >X+#include <sys/file.h> >X #include <sys/filedesc.h> >X #include <sys/uio.h> >X #include <sys/malloc.h> >X@@ -206,7 +206,7 @@ >X { >X int err; >X >X- uint64_t mntopts, __mntopts; >X+ u_int mntopts, __mntopts; >X int max_read_set; >X uint32_t max_read; >X int daemon_timeout; >X@@ -220,7 +220,6 @@ >X struct file *fp, *fptmp; >X char *fspec, *subtype; >X struct vfsoptlist *opts; >X- cap_rights_t rights; >X >X subtype = NULL; >X max_read_set = 0; >X@@ -290,7 +289,7 @@ >X >X FS_DEBUG2G("mntopts 0x%jx\n", (uintmax_t)mntopts); >X >X- err = fget(td, fd, cap_rights_init(&rights, CAP_READ), &fp); >X+ err = fget(td, fd, &fp); >X if (err != 0) { >X FS_DEBUG("invalid or not opened device: data=%p\n", data); >X goto out; >X@@ -459,7 +458,7 @@ >X FUSE_UNLOCK(); >X VOP_UNLOCK(*vpp, 0); >X vrele(*vpp); >X- vrecycle(*vpp); >X+ vrecycle(*vpp, curthread); >X *vpp = data->vroot; >X } else >X FUSE_UNLOCK(); >7cbcb77c75ae7469b63afc3babf2c216 >echo x - fusefs-kmod/files/pkg-message.in >sed 's/^X//' >fusefs-kmod/files/pkg-message.in << '16196159f86251e054bfbc038afafbfb' >X============================================================================== >X >XIn order to automatically load the fuse module on startup, you need to: >X >X - Add fusefs_enable="YES" to your /etc/rc.conf. >X - Run "%%PREFIX%%/etc/rc.d/fusefs start" (for the first time). >X >XSet "sysctl vfs.usermount=1" if you want to be able to mount fuse devices as >Xan ordinary user. >X >XNow fuse filesystems (sysutils/fusefs-*) can be mounted at startup from >X/etc/fstab with the "late" parameter. This requires a symlink in /usr/sbin >Xnamed "mount_<fstype>", which is not created by all the fusefs ports. >X >XNote that the rc.d script will unmount all fuse filesystems when called with >X"stop" (in reverse order in case of nested mounts), so it can unload the >Xkernel module. >X >X============================================================================== >16196159f86251e054bfbc038afafbfb >echo x - fusefs-kmod/files/patch-fuse_io.c >sed 's/^X//' >fusefs-kmod/files/patch-fuse_io.c << 'c86a06977fbc346ca6ed6f204230a6ce' >X--- fs/fuse/fuse_io.c.orig >X+++ fs/fuse/fuse_io.c >X@@ -785,9 +785,9 @@ fuse_io_invalbuf(struct vnode *vp, struct thread *td) >X fvdat->flag |= FN_FLUSHINPROG; >X >X if (vp->v_bufobj.bo_object != NULL) { >X- VM_OBJECT_WLOCK(vp->v_bufobj.bo_object); >X+ VM_OBJECT_LOCK(vp->v_bufobj.bo_object); >X vm_object_page_clean(vp->v_bufobj.bo_object, 0, 0, OBJPC_SYNC); >X- VM_OBJECT_WUNLOCK(vp->v_bufobj.bo_object); >X+ VM_OBJECT_UNLOCK(vp->v_bufobj.bo_object); >X } >X error = vinvalbuf(vp, V_SAVE, PCATCH, 0); >X while (error) { >c86a06977fbc346ca6ed6f204230a6ce >echo x - fusefs-kmod/distinfo >sed 's/^X//' >fusefs-kmod/distinfo << '0b8bec39ef44d9d85b34886bbc0127f9' >XSHA256 (fusefs-kmod-0.263233.tar.gz) = 68e0e5505cab651d089e6b0824b779676ae2a07d264724844f4980ffd6032933 >XSIZE (fusefs-kmod-0.263233.tar.gz) = 58262 >0b8bec39ef44d9d85b34886bbc0127f9 >echo x - fusefs-kmod/Makefile >sed 's/^X//' >fusefs-kmod/Makefile << 'bd7ee314a92ce825efd9a56a305504ca' >XPORTNAME= fusefs-kmod >XPORTVERSION= 0.263233 >XCATEGORIES= sysutils kld >X >XMAINTAINER= dpejesh@yahoo.com >XCOMMENT= FUSE kernel module >X >XMASTER_SITES= https://googledrive.com/host/0B0OQnKtejJEMQlpoTy11SG1nN2s/ >X >XONLY_FOR_ARCHS= amd64 i386 >X >XWRKSRC= ${WRKDIR} >X >XUSE_RC_SUBR= fusefs >XUSES= kmod uidfix >X >XBUILD_DEPENDS= fusefs-libs>2.4.1:${PORTSDIR}/sysutils/fusefs-libs >X >XMAKE_ENV= BINDIR="${PREFIX}/sbin" \ >X MANDIR="${MANPREFIX}/man/man" >X >XSUB_LIST+= KMODDIR=${KMODDIR} >XSUB_FILES= pkg-message >X >X.include <bsd.port.pre.mk> >X >X.if ${OSVERSION} >= 800000 && ${OSVERSION} < 900000 >XEXTRA_PATCHES+= ${FILESDIR}/extra-patch-8-fuse_vfsops.c >XEXTRA_PATCHES+= ${FILESDIR}/extra-patch-8-fuse_vnops.c >X.endif >X.if ${OSVERSION} >= 900000 && ${OSVERSION} < 1000000 >XEXTRA_PATCHES+= ${FILESDIR}/extra-patch-9-fuse_vfsops.c >XEXTRA_PATCHES+= ${FILESDIR}/extra-patch-9-fuse_vnops.c >X.endif >X.if ${OSVERSION} >= 1000000 >XIGNORE= integrated into base >X.endif >X >Xdo-build: >X cd ${WRKDIR}/modules/fuse; ${MAKE} >X cd ${WRKDIR}/mount_fusefs; ${MAKE} >X >Xdo-install: >X ${INSTALL_KLD} ${WRKSRC}/modules/fuse/fuse.ko ${STAGEDIR}${KMODDIR} >X ${INSTALL_MAN} ${WRKSRC}/mount_fusefs/mount_fusefs.8 ${STAGEDIR}${PREFIX}/man/man8 >X ${INSTALL_PROGRAM} ${WRKSRC}/mount_fusefs/mount_fusefs ${STAGEDIR}${PREFIX}/sbin >X >Xpost-install: >X ${CAT} ${PKGMESSAGE} >X >XSVN_REV= 263233 >XSVN_MIRROR?= http://svn.freebsd.org/base >XEXPDIR= ${WRKSRC}/src >Xmaintainer-tar: >X ${MKDIR} ${EXPDIR} >X cd ${EXPDIR} && svn export -r ${SVN_REV} ${SVN_MIRROR}/head/sys/fs/fuse/ fs/fuse >X cd ${EXPDIR} && svn export -r ${SVN_REV} ${SVN_MIRROR}/head/sys/modules/fuse/ modules/fuse >X cd ${EXPDIR} && svn export -r ${SVN_REV} ${SVN_MIRROR}/head/sbin/mount_fusefs mount_fusefs >X cd ${EXPDIR} && svn export -r ${SVN_REV} ${SVN_MIRROR}/head/sbin/mount/getmntopts.c mount_fusefs/getmntopts.c >X cd ${EXPDIR} && svn export -r ${SVN_REV} ${SVN_MIRROR}/head/sbin/mount/mntopts.h mount_fusefs/ >X cd ${EXPDIR} && ${TAR} --uname root --uid 0 --gname wheel --gid 0 -zcvf ${DISTDIR}/${PORTNAME}-0.${SVN_REV}${EXTRACT_SUFX} fs modules mount_fusefs >X >Xmaintainer-check: >X @new=`svn log -ql 1 ${SVN_MIRROR}@HEAD head/sys/fs/fuse | ${GREP} -v ^- | ${SED} -e 's| .*||; s|r||'`;\ >X old="${SVN_REV}";\ >X if [ "$${new}" -gt "$${old}" ]; then ${ECHO_MSG} "New fuse rev: r$${new} (was $${old})"; fi >X >X.include <bsd.port.post.mk> >bd7ee314a92ce825efd9a56a305504ca >exit >
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Raw
Actions:
View
Attachments on
bug 184042
:
138166
| 145071