FreeBSD Bugzilla – Attachment 84426 Details for
Bug 120420
[UPDATE] sysutils/fusefs-kmod: update to version 0.3.9.20080208
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
fusefs-kmod.diff
fusefs-kmod.diff (text/plain), 18.77 KB, created by
Alejandro Pulver
on 2008-02-08 21:40:00 UTC
(
hide
)
Description:
fusefs-kmod.diff
Filename:
MIME Type:
Creator:
Alejandro Pulver
Created:
2008-02-08 21:40:00 UTC
Size:
18.77 KB
patch
obsolete
>Index: fusefs-kmod/Makefile >=================================================================== >RCS file: /home/pcvs/ports/sysutils/fusefs-kmod/Makefile,v >retrieving revision 1.18 >diff -u -r1.18 Makefile >--- fusefs-kmod/Makefile 8 Feb 2008 19:44:43 -0000 1.18 >+++ fusefs-kmod/Makefile 8 Feb 2008 20:51:12 -0000 >@@ -6,13 +6,12 @@ > # > > PORTNAME= fusefs >-DISTVERSION= 0.3.9-pre1 >-PORTREVISION= 3 >+PORTVERSION= 0.3.9.20080208 > CATEGORIES= sysutils kld >-MASTER_SITES= http://fuse4bsd.creo.hu/downloads/ \ >- http://am-productions.biz/docs/ >+MASTER_SITES= http://mercurial.creo.hu/repos/fuse4bsd-hg/index.cgi/archive/ > PKGNAMESUFFIX= -kmod >-DISTNAME= fuse4bsd-${DISTVERSION} >+DISTNAME= ${HG_SHORTREV} >+DIST_SUBDIR= fuse4bsd > > MAINTAINER= amistry@am-productions.biz > COMMENT= Kernel module for fuse >@@ -23,15 +22,16 @@ > BUILD_DEPENDS+= deplate:${PORTSDIR}/textproc/ruby-deplate > .endif > >-USE_BZIP2= yes >-MAKE_ENV= BINDIR="${PREFIX}/sbin" MANDIR="${PREFIX}/man/man" >+USE_RC_SUBR= fusefs >+MAKE_ENV= BINDIR="${PREFIX}/sbin" MANDIR="${MANPREFIX}/man/man" \ >+ KMODDIR="${KMODDIR}" SRC_BASE="${SRC_BASE}" >+WRKSRC= ${WRKDIR}/fuse4bsd-${HG_SHORTREV} >+DISABLE_SIZE= yes > > SRC_BASE?= /usr/src > KMODDIR= ${PREFIX}/modules >-MAKE_ARGS= KMODDIR=${KMODDIR} >-MODULE_PATH= `/sbin/sysctl -n kern.module_path`;${KMODDIR} >-USE_RC_SUBR= fusefs > SETUP= setup.sh >+HG_SHORTREV= 498acaef33b0 > > MAN8= mount_fusefs.8 > TXT_DOCS= doc.text >@@ -66,8 +66,10 @@ > IGNORE= requires the userland sources to be installed. Set SRC_BASE if it is not in /usr/src > .endif > >-.if !defined(WITH_AUTOSETUP) >-SUB_FILES= pkg-message >+.if defined(WITH_AUTOSETUP) >+SUB_FILES+= ${SETUP} >+.else >+SUB_FILES+= pkg-message > .endif > > post-patch: >@@ -88,10 +90,8 @@ > post-install: > @${LN} -fs ${PREFIX}/sbin/mount_fusefs /usr/sbin > .if defined(WITH_AUTOSETUP) && !defined(PACKAGE_BUILDING) >- @${SED} -e 's|@@PREFIX@@|${PREFIX}|g' \ >- ${FILESDIR}/${SETUP} > ${WRKDIR}/${SETUP} >- @${ECHO} "Modifying global startup config files and loading module..."; >- ${SH} ${WRKDIR}/${SETUP} >+ @${ECHO} "Modifying global startup config files and loading module..." >+ @${SH} ${WRKDIR}/${SETUP} > .else > @${ECHO_CMD}; ${CAT} ${PKGMESSAGE}; ${ECHO_CMD} > .endif >Index: fusefs-kmod/distinfo >=================================================================== >RCS file: /home/pcvs/ports/sysutils/fusefs-kmod/distinfo,v >retrieving revision 1.5 >diff -u -r1.5 distinfo >--- fusefs-kmod/distinfo 13 Aug 2007 10:48:41 -0000 1.5 >+++ fusefs-kmod/distinfo 8 Feb 2008 20:51:12 -0000 >@@ -1,3 +1,3 @@ >-MD5 (fuse4bsd-0.3.9-pre1.tar.bz2) = d427d6c831794f6d62ce1aef9f254f9e >-SHA256 (fuse4bsd-0.3.9-pre1.tar.bz2) = e339fce188b3667ca267f8d672d3f9657d61e384d54997a93d64ddd178fd55d7 >-SIZE (fuse4bsd-0.3.9-pre1.tar.bz2) = 112627 >+MD5 (fuse4bsd/498acaef33b0.tar.gz) = 9fd12d284be9450dae0ec5e718a5bc8e >+SHA256 (fuse4bsd/498acaef33b0.tar.gz) = 70ec94c6700f6395316c68d60ba0307236b20cddd6aeeedd4597870e7670ff2a >+SIZE (fuse4bsd/498acaef33b0.tar.gz) = 116037 >Index: fusefs-kmod/files/fusefs.in >=================================================================== >RCS file: /home/pcvs/ports/sysutils/fusefs-kmod/files/fusefs.in,v >retrieving revision 1.5 >diff -u -r1.5 fusefs.in >--- fusefs-kmod/files/fusefs.in 17 Dec 2007 17:22:09 -0000 1.5 >+++ fusefs-kmod/files/fusefs.in 8 Feb 2008 20:51:12 -0000 >@@ -40,13 +40,13 @@ > return 1 > fi > echo "Stopping ${name}." >-# Unmount FUSE filesystems in reverse order (in case they are nested) with >-# a delay of one second after, to allow 'umount' finish. >+# Unmount FUSE filesystems in reverse order (in case they are nested) to >+# allow recent FUSE implementation to synchronize disks before shutdown. > mount | sed -e '1!G;h;$!d' | while read dev d1 mountpoint d2; do > case "$dev" in > /dev/fuse[0-9]*) > echo "fusefs: unmounting ${mountpoint}." >- umount $mountpoint ; sleep 1 >+ umount $mountpoint > ;; > esac > done >Index: fusefs-kmod/files/patch-fuse_io.c >=================================================================== >RCS file: fusefs-kmod/files/patch-fuse_io.c >diff -N fusefs-kmod/files/patch-fuse_io.c >--- fusefs-kmod/files/patch-fuse_io.c 17 Dec 2007 17:22:09 -0000 1.1 >+++ /dev/null 1 Jan 1970 00:00:00 -0000 >@@ -1,11 +0,0 @@ >---- fuse_module/fuse_io.c.orig Tue Jun 19 09:35:22 2007 >-+++ fuse_module/fuse_io.c Thu Dec 13 02:46:05 2007 >-@@ -148,7 +148,7 @@ >- } >- >- if (uio->uio_resid == 0) >-- return (0); >-+ goto out; >- >- if (uio->uio_rw == UIO_WRITE && fp->f_flag & O_APPEND) { >- if ((err = VOP_GETATTR(vp, &va, cred, td))) >Index: fusefs-kmod/files/patch-fuse_module_Makefile >=================================================================== >RCS file: fusefs-kmod/files/patch-fuse_module_Makefile >diff -N fusefs-kmod/files/patch-fuse_module_Makefile >--- fusefs-kmod/files/patch-fuse_module_Makefile 1 Jan 2008 10:52:38 -0000 1.4 >+++ /dev/null 1 Jan 1970 00:00:00 -0000 >@@ -1,18 +0,0 @@ >---- fuse_module/Makefile.orig 2007-06-19 14:35:22.000000000 +0200 >-+++ fuse_module/Makefile 2007-08-16 18:31:50.000000000 +0200 >-@@ -21,7 +21,14 @@ >- .endif >- >- .if defined(KERNCONF) >--KERNCONFDIR= /usr/obj/usr/src/sys/${KERNCONF} >-+.if !defined(MAKEOBJDIRPREFIX) >-+MAKEOBJDIRPREFIX=/usr/obj >-+.endif >-+.if !defined(SRC_BASE) >-+SRC_BASE=/usr/src >-+.endif >-+KERNCONF1!= echo ${KERNCONF} | sed -e 's/ .*//g' >-+KERNCONFDIR= ${MAKEOBJDIRPREFIX}${SRC_BASE}/sys/${KERNCONF1} >- .endif >- >- .if defined(KERNCONFDIR) >Index: fusefs-kmod/files/patch-fuse_module_fuse.h >=================================================================== >RCS file: fusefs-kmod/files/patch-fuse_module_fuse.h >diff -N fusefs-kmod/files/patch-fuse_module_fuse.h >--- fusefs-kmod/files/patch-fuse_module_fuse.h 13 Aug 2007 10:48:41 -0000 1.3 >+++ /dev/null 1 Jan 1970 00:00:00 -0000 >@@ -1,36 +0,0 @@ >---- fuse_module/fuse.h.orig Tue Jun 19 14:35:22 2007 >-+++ fuse_module/fuse.h Sat Jul 14 13:23:37 2007 >-@@ -33,6 +33,24 @@ >- #endif >- #endif >- >-+#ifndef USE_PRIVILEGE_API >-+/* >-+ * __FreeBSD_version bump was omitted for introduction of >-+ * the privilege API (both when it's been added and when the >-+ * legacy API has been removed), so here we just use the first >-+ * value of __FreeBSD_version after adding the priv stuff. >-+ */ >-+#if __FreeBSD_version >= 700025 >-+#define USE_PRIVILEGE_API 1 >-+#else >-+#define USE_PRIVILEGE_API 0 >-+#endif >-+#endif >-+#if ! USE_PRIVILEGE_API >-+#define priv_check(td, priv) suser(td) >-+#define priv_check_cred(cred, priv, flag) suser_cred(cred, SUSER_ALLOWJAIL) >-+#endif >-+ >- /* >- * Appearance of new FUSE operations is not always in par with version >- * numbering... At least, 7.3 is a sufficient condition for having >-@@ -210,7 +228,7 @@ >- void fprettyprint(struct fuse_iov *fiov, size_t dlen); >- #endif >- >--#if _DEBUG || _DEBUG2G || _DEBUG3G || defined(INVARIANTS) >-+#if _DEBUG || _DEBUG2G || _DEBUG3G || defined(INVARIANTS) || FUSELIB_CONFORM_BIOREAD >- int isbzero(void *buf, size_t len); >- #endif >- >Index: fusefs-kmod/files/patch-fuse_vfsops.c >=================================================================== >RCS file: fusefs-kmod/files/patch-fuse_vfsops.c >diff -N fusefs-kmod/files/patch-fuse_vfsops.c >--- fusefs-kmod/files/patch-fuse_vfsops.c 13 Aug 2007 10:48:41 -0000 1.1 >+++ /dev/null 1 Jan 1970 00:00:00 -0000 >@@ -1,63 +0,0 @@ >---- fuse_module/fuse_vfsops.c Sat Jul 14 13:13:55 2007 >-+++ fuse_module/fuse_vfsops.c Sat Jul 14 13:13:55 2007 >-@@ -23,6 +23,20 @@ >- #include "fuse_session.h" >- #include "fuse_vnode.h" >- >-+#if USE_PRIVILEGE_API >-+#include <sys/priv.h> >-+#endif >-+ >-+ >-+/* This will do for privilege types for now */ >-+#ifndef PRIV_VFS_FUSE_ALLOWOTHER >-+#define PRIV_VFS_FUSE_ALLOWOTHER PRIV_VFS_MOUNT_NONUSER >-+#endif >-+#ifndef PRIV_VFS_FUSE_MOUNT_NONUSER >-+#define PRIV_VFS_FUSE_MOUNT_NONUSER PRIV_VFS_MOUNT_NONUSER >-+#endif >-+ >-+ >- static int fuse_init_handler(struct fuse_ticket *tick, struct uio *uio); >- static void fuse_send_init(struct fuse_data *data, struct thread *td); >- static vfs_hash_cmp_t fuse_vnode_bgdrop_cmp; >-@@ -207,10 +221,8 @@ fuse_mount(struct mount *mp, struct thre >- KASSERT(fuse_useco >= 0, >- ("negative fuse usecount despite Giant")); >- >-- if (mp->mnt_flag & MNT_UPDATE) { >-- uprintf("fuse: updating mounts is not supported\n"); >-+ if (mp->mnt_flag & MNT_UPDATE) >- return (EOPNOTSUPP); >-- } >- >- mp->mnt_flag |= MNT_SYNCHRONOUS; >- /* Get the new options passed to mount */ >-@@ -293,10 +305,8 @@ fuse_mount(struct mount *mp, struct thre >- >- if (fdata_kick_get(data)) >- err = ENOTCONN; >-- if (mntopts & FSESS_DAEMON_CAN_SPY && suser(td)) { >-- uprintf("only root can use \"allow_other\"\n"); >-- err = EPERM; >-- } >-+ if (mntopts & FSESS_DAEMON_CAN_SPY) >-+ err = priv_check(td, PRIV_VFS_FUSE_ALLOWOTHER); >- >- slock = &data->mhierlock; >- /* Note that sx_try_xlock returns 0 on _failure_ */ >-@@ -334,10 +344,9 @@ fuse_mount(struct mount *mp, struct thre >- */ >- err = EINVAL; >- } else { >-- if (suser(td) && >-- td->td_ucred->cr_uid != data->daemoncred->cr_uid) >-- /* we are not allowed to do the first mount */ >-- err = EPERM; >-+ if (td->td_ucred->cr_uid != data->daemoncred->cr_uid) >-+ /* are we allowed to do the first mount? */ >-+ err = priv_check(td, PRIV_VFS_FUSE_MOUNT_NONUSER); >- } >- >- if (err) { >- >Index: fusefs-kmod/files/patch-fuse_vnops.c >=================================================================== >RCS file: fusefs-kmod/files/patch-fuse_vnops.c >diff -N fusefs-kmod/files/patch-fuse_vnops.c >--- fusefs-kmod/files/patch-fuse_vnops.c 13 Aug 2007 10:48:41 -0000 1.1 >+++ /dev/null 1 Jan 1970 00:00:00 -0000 >@@ -1,106 +0,0 @@ >---- fuse_module/fuse_vnops.c Sat Jul 14 13:14:27 2007 >-+++ fuse_module/fuse_vnops.c Sat Jul 14 13:14:27 2007 >-@@ -42,6 +42,10 @@ >- #include "fuse_vnode.h" >- #include "fuse_io.h" >- >-+#if USE_PRIVILEGE_API >-+#include <sys/priv.h> >-+#endif >-+ >- /* function prototype for iterators over filehandles (of a vp) */ >- typedef int fuse_metrics_t(struct vnode *vp, struct thread *td, >- struct ucred *cred, struct fuse_filehandle *fufh, >-@@ -63,7 +67,9 @@ struct fuse_access_param { >- #define FACCESS_CHOWN 0x08 /* do permission check for owner changing */ >- #define FACCESS_NOCHECKSPY 0x10 /* don't check if daemon is allowed to spy on >- user */ >--#define FACCESS_XQUERIES FACCESS_STICKY | FACCESS_CHOWN >-+#define FACCESS_SETGID 0x12 /* do permission check for setting setgid flag */ >-+ >-+#define FACCESS_XQUERIES FACCESS_STICKY | FACCESS_CHOWN | FACCESS_SETGID >- >- #define FVP_ACCESS_NOOP 0x01 /* vnode based control flag for doing access check */ >- >-@@ -855,6 +861,7 @@ fuse_access(ap) >- >- /* >- * Attribute caching hasn't yet been implemented. >-+ * [... Update: it _has been_ implemented.] >- * However, within one function we don't wanna query attributes >- * several times. Now it's enough pull the attributes once, and throw >- * it into the following routine with various modes. >-@@ -929,12 +936,16 @@ fuse_access_i(struct vnode *vp, mode_t m >- mode == VWRITE) { >- if (cred->cr_uid != facp->xuid && >- cred->cr_uid != VTOVA(vp)->va_uid) >-- err = suser_cred(cred, SUSER_ALLOWJAIL); >-+ err = priv_check_cred(cred, >-+ PRIV_VFS_ADMIN, >-+ 0); >- } >- /* >- * We return here because this flags is exlusive >- * with the others >- */ >-+ KASSERT(facp->facc_flags == FACCESS_STICKY, >-+ ("sticky access check comes in mixed")); >- return (err); >- } >- >-@@ -947,10 +958,21 @@ fuse_access_i(struct vnode *vp, mode_t m >- (cred->cr_gid != facp->xgid && >- facp->xgid != (gid_t)VNOVAL && >- ! groupmember(facp->xgid, cred))) >-- err = suser_cred(cred, SUSER_ALLOWJAIL); >-- return (err); >-+ err = priv_check_cred(cred, PRIV_VFS_CHOWN, 0); >-+ if (err) >-+ return (err); >- } >- >-+ if (facp->facc_flags & FACCESS_SETGID) { >-+ gid_t sgid = facp->xgid; >-+ >-+ if (sgid == (gid_t)VNOVAL) >-+ sgid = VTOVA(vp)->va_gid; >-+ >-+ if (! groupmember(sgid, cred)) >-+ err = priv_check_cred(cred, PRIV_VFS_SETGID, 0); >-+ return (err); >-+ } >- >- } else { >- #if FUSE_HAS_ACCESS >-@@ -1234,7 +1256,13 @@ fuse_lookup(ap) >- */ >- if (nameiop == RENAME && wantparent && islastcn) { >- DEBUG("something to rename...\n"); >-- if ((err = fuse_access_i(dvp, VWRITE, cred, td, &facp))) >-+ >-+ facp.xuid = fattr->uid; >-+ facp.facc_flags |= FACCESS_STICKY; >-+ err = fuse_access_i(dvp, VWRITE, cred, td, &facp); >-+ facp.facc_flags &= ~FACCESS_XQUERIES; >-+ >-+ if (err) >- goto out; >- >- /* >-@@ -2948,8 +2976,14 @@ fuse_setattr(ap) >- } >- >- if (vap->va_mode != (mode_t)VNOVAL) { >-+#if _DEBUG >- if (vap->va_mode & S_IFMT) >-- DEBUG("fuse_setattr -- weird: format bits in mode field, 0%o\n", vap->va_mode); >-+ DEBUG("fuse_setattr -- weird: " >-+ "format bits in mode field, 0%o\n", >-+ vap->va_mode); >-+#endif >-+ if (vap->va_mode & S_ISGID) >-+ facp.facc_flags |= FACCESS_SETGID; >- fsai->FUSEATTR(mode) = vap->va_mode & ALLPERMS; >- fsai->valid |= FATTR_MODE; >- } >- >Index: fusefs-kmod/files/patch-mount_fusefs-mount_fusefs.c >=================================================================== >RCS file: fusefs-kmod/files/patch-mount_fusefs-mount_fusefs.c >diff -N fusefs-kmod/files/patch-mount_fusefs-mount_fusefs.c >--- fusefs-kmod/files/patch-mount_fusefs-mount_fusefs.c 17 Dec 2007 17:22:09 -0000 1.2 >+++ /dev/null 1 Jan 1970 00:00:00 -0000 >@@ -1,21 +0,0 @@ >---- mount_fusefs/mount_fusefs.c.orig Tue Jun 19 09:35:22 2007 >-+++ mount_fusefs/mount_fusefs.c Thu Dec 13 02:44:12 2007 >-@@ -70,6 +70,8 @@ >- { "user_id=", 0, 0x00, 1 }, >- { "group_id=", 0, 0x00, 1 }, >- { "large_read", 0, 0x00, 1 }, >-+ /* "nonempty", just the first two chars are stripped off during parsing */ >-+ { "nempty", 0, 0x00, 1 }, >- MOPT_STDOPTS, >- MOPT_END >- }; >-@@ -469,7 +471,8 @@ >- int >- init_backgrounded(void) >- { >-- int ibg, len; >-+ int ibg; >-+ size_t len; >- >- len = sizeof(ibg); >- >Index: fusefs-kmod/files/pkg-message.in >=================================================================== >RCS file: /home/pcvs/ports/sysutils/fusefs-kmod/files/pkg-message.in,v >retrieving revision 1.2 >diff -u -r1.2 pkg-message.in >--- fusefs-kmod/files/pkg-message.in 17 Dec 2007 17:22:09 -0000 1.2 >+++ fusefs-kmod/files/pkg-message.in 8 Feb 2008 20:51:12 -0000 >@@ -13,8 +13,7 @@ > named "mount_<fstype>", which is not created by all the fusefs ports. > > Note that the rc.d script will unmount all fuse filesystems when called with >-"stop", so it can unload the kernel module, and as a temporary workaround to >-flush cache in drivers like NTFS-3G (sysutils/fusefs-ntfs) at shutdown (until >-a proper solution is implemented). >+"stop" (in reverse order in case of nested mounts), so it can unload the >+kernel module. > > ============================================================================== >Index: fusefs-kmod/files/setup.sh >=================================================================== >RCS file: fusefs-kmod/files/setup.sh >diff -N fusefs-kmod/files/setup.sh >--- fusefs-kmod/files/setup.sh 5 Apr 2006 02:53:39 -0000 1.2 >+++ /dev/null 1 Jan 1970 00:00:00 -0000 >@@ -1,52 +0,0 @@ >-#!/bin/sh >-# >-# Automatically setup the loading of the module without polluting /boot/modules >-SYSCTL_CONFIG=/etc/sysctl.conf >-LOADER_CONFIG=/etc/rc.conf >- >-sysctl kern.module_path | grep "[:space:;=]@@PREFIX@@/modules[;]\?\b" > /dev/null 2>&1; RESULT=$? >-if [ ${RESULT} -eq 1 ]; then >- MODULE_PATH="`sysctl -n kern.module_path`;@@PREFIX@@/modules" >- sysctl "kern.module_path=${MODULE_PATH}" >-else >- MODULE_PATH=`sysctl -n kern.module_path` >-fi >- >-grep "kern\.module_path" ${SYSCTL_CONFIG} > /dev/null 2>&1; RESULT=$? >-if [ ${RESULT} -eq 0 ]; then >- # Variable present >- grep "kern\.module_path" ${SYSCTL_CONFIG} | grep "[:space:;=]@@PREFIX@@/modules[;]\?\b" ${SYSCTL_CONFIG} > /dev/null 2>&1; RESULT=$? >- if [ ${RESULT} -eq 1 ]; then >- # Not present in variable, so add >- ESC_PREFIX=`echo '@@PREFIX@@' | sed -e 's/\//\\\\\//g'` >- sed -i .orig -e 's/kern\.module_path[:space:]*=[:space:]*["]*\([[:alnum:][:space:]\.,;\/_-]*\)["]*/kern\.module_path="\1;'${ESC_PREFIX}'\/modules"/g' ${SYSCTL_CONFIG} >- fi >-else >- # Not present. >- echo kern.module_path="${MODULE_PATH}" >> ${SYSCTL_CONFIG} >-fi >- >- >-kldstat -n fuse > /dev/null 2>&1; RESULT=$? >-if [ ${RESULT} -eq 0 ]; then >- kldunload -n fuse > /dev/null 2>&1; RESULT=$? >- if [ ${RESULT} -ne 0 ]; then >- echo 'NOTICE: Failed to unload the Fuse module!' >- echo 'NOTICE: Is fuse.ko in use?' >- fi >-fi >- >-grep fusefs_enable ${LOADER_CONFIG} > /dev/null 2>&1; RESULT=$? >-if [ ${RESULT} -eq 0 ]; then >- # Present, we should leave it alone >-# sed -e s/fusefs_enable.*/fuse_load=\"YES\"/g -i.orig ${LOADER_CONFIG} >-else >- # Not present. First time install, so lets start it up >- echo 'fusefs_enable="YES"' >> ${LOADER_CONFIG} >-fi >- >-@@PREFIX@@/etc/rc.d/fusefs start > /dev/null 2>&1 ; RESULT=$? >-if [ ${RESULT} -ne 0 ]; then >- echo 'NOTICE: Failed to load the Fuse module!' >- echo 'NOTICE: Unload and load Fuse module manually, or reboot.' >-fi >Index: fusefs-kmod/files/setup.sh.in >=================================================================== >RCS file: fusefs-kmod/files/setup.sh.in >diff -N fusefs-kmod/files/setup.sh.in >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ fusefs-kmod/files/setup.sh.in 8 Feb 2008 20:51:12 -0000 >@@ -0,0 +1,52 @@ >+#!/bin/sh >+# >+# Automatically setup the loading of the module without polluting /boot/modules >+SYSCTL_CONFIG=/etc/sysctl.conf >+LOADER_CONFIG=/etc/rc.conf >+ >+sysctl kern.module_path | grep "[:space:;=]%%PREFIX%%/modules[;]\?\b" > /dev/null 2>&1; RESULT=$? >+if [ ${RESULT} -eq 1 ]; then >+ MODULE_PATH="`sysctl -n kern.module_path`;%%PREFIX%%/modules" >+ sysctl "kern.module_path=${MODULE_PATH}" >+else >+ MODULE_PATH=`sysctl -n kern.module_path` >+fi >+ >+grep "kern\.module_path" ${SYSCTL_CONFIG} > /dev/null 2>&1; RESULT=$? >+if [ ${RESULT} -eq 0 ]; then >+ # Variable present >+ grep "kern\.module_path" ${SYSCTL_CONFIG} | grep "[:space:;=]%%PREFIX%%/modules[;]\?\b" ${SYSCTL_CONFIG} > /dev/null 2>&1; RESULT=$? >+ if [ ${RESULT} -eq 1 ]; then >+ # Not present in variable, so add >+ ESC_PREFIX=`echo '%%PREFIX%%' | sed -e 's/\//\\\\\//g'` >+ sed -i .orig -e 's/kern\.module_path[:space:]*=[:space:]*["]*\([[:alnum:][:space:]\.,;\/_-]*\)["]*/kern\.module_path="\1;'${ESC_PREFIX}'\/modules"/g' ${SYSCTL_CONFIG} >+ fi >+else >+ # Not present. >+ echo kern.module_path="${MODULE_PATH}" >> ${SYSCTL_CONFIG} >+fi >+ >+ >+kldstat -n fuse > /dev/null 2>&1; RESULT=$? >+if [ ${RESULT} -eq 0 ]; then >+ kldunload -n fuse > /dev/null 2>&1; RESULT=$? >+ if [ ${RESULT} -ne 0 ]; then >+ echo 'NOTICE: Failed to unload the Fuse module!' >+ echo 'NOTICE: Is fuse.ko in use?' >+ fi >+fi >+ >+grep fusefs_enable ${LOADER_CONFIG} > /dev/null 2>&1; RESULT=$? >+if [ ${RESULT} -eq 0 ]; then >+ # Present, we should leave it alone >+# sed -e s/fusefs_enable.*/fuse_load=\"YES\"/g -i.orig ${LOADER_CONFIG} >+else >+ # Not present. First time install, so lets start it up >+ echo 'fusefs_enable="YES"' >> ${LOADER_CONFIG} >+fi >+ >+kldload fuse > /dev/null 2>&1 ; RESULT=$? >+if [ ${RESULT} -ne 0 ]; then >+ echo 'NOTICE: Failed to load the Fuse module!' >+ echo 'NOTICE: Unload and load Fuse module manually, or reboot.' >+fi
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 Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 120420
: 84426