diff --git a/boot.fuse b/boot.fuse new file mode 100644 index 0000000..4fc6e59 --- /dev/null +++ b/boot.fuse @@ -0,0 +1,83 @@ +#! /bin/sh + +### BEGIN INIT INFO +# Provides: boot.fuse +# Required-Start: +# Should-Start: boot.udev +# Required-Stop: +# Default-Start: B +# Default-Stop: +# Short-Description: Start and stop fuse. +# Description: Load the fuse module and mount the fuse control +# filesystem. +### END INIT INFO + +PATH="/sbin:/bin" +MOUNTPOINT=/sys/fs/fuse/connections + +test -x /usr/bin/fusermount || exit 5 + +. /etc/rc.status + +case "$1" in + start|restart|force-reload) + if ! grep -qw fuse /proc/filesystems; then + echo -n "Loading fuse module " + if ! modprobe fuse >/dev/null 2>&1; then + rc_status -v + rc_exit + fi + else + echo -n "Fuse filesystem already available" + fi + rc_status -v + if grep -qw fusectl /proc/filesystems && \ + ! grep -qw $MOUNTPOINT /proc/mounts; then + echo -n "Mounting fuse control filesystem" + mount -t fusectl none $MOUNTPOINT >/dev/null 2>&1 + else + echo -n "Fuse control filesystem already available" + fi + rc_status -v + ;; + stop) + if ! grep -qw fuse /proc/filesystems; then + echo -n "Fuse filesystem not loaded" + rc_failed 7 + rc_status -v + rc_exit + fi + if grep -qw $MOUNTPOINT /proc/mounts; then + echo -n "Unmounting fuse control filesystem" + umount $MOUNTPOINT >/dev/null 2>&1 + else + echo -n "Fuse control filesystem not mounted" + fi + rc_status -v + if grep -qw "^fuse" /proc/modules; then + echo -n "Unloading fuse module" + rmmod fuse >/dev/null 2>&1 + else + echo -n "Fuse module not loaded" + fi + rc_status -v + ;; + reload) + echo -n "Reloading fuse filesystem" + rc_failed 3 + rc_status -v + ;; + status) + echo -n "Checking fuse filesystem" + rc_reset + if ! grep -qw fuse /proc/filesystems; then + rc_failed 3 + fi + rc_status -v + ;; + *) + echo "Usage: $0 {start|stop|restart|reload|force-reload|status}" + exit 1 + ;; +esac +rc_exit diff --git a/fuse.changes b/fuse.changes index ac3a6f4..4091f0c 100644 --- a/fuse.changes +++ b/fuse.changes @@ -1,3 +1,15 @@ +------------------------------------------------------------------- +Fri Feb 9 01:08:24 CET 2007 - ro@suse.de + +- change fillup_and_insserv to insserv_force_if_yast in post-script + (there is no sysconfig file involved here) + +------------------------------------------------------------------- +Wed Feb 7 16:43:36 CET 2007 - mszeredi@suse.cz + +- added init script which loads the fuse module and mounts the control + filesystem (#223663) + ------------------------------------------------------------------- Mon Feb 5 18:25:50 CET 2007 - mszeredi@suse.cz diff --git a/fuse.spec b/fuse.spec index ad4e52b..16f2d98 100644 --- a/fuse.spec +++ b/fuse.spec @@ -13,14 +13,15 @@ Name: fuse Summary: Userspace File System Version: 2.6.3 -Release: 1 +Release: 3 License: GNU General Public License (GPL), GNU Library General Public License v. 2.0 and 2.1 (LGPL) Group: System/Filesystems Source: %{name}-%{version}.tar.bz2 +Source1: boot.fuse Patch: fuse-install-fix.diff -URL: http://fuse.sf.net +URL: http://fuse.sourceforge.net BuildRoot: %{_tmppath}/%{name}-%{version}-build -PreReq: permissions +PreReq: %insserv_prereq permissions %description With FUSE, a userspace program can export a file system through the @@ -32,7 +33,7 @@ To use fuse, you need an additional fuse module, like sshfs. Authors: -------- - Miklos Szeredi + Miklos Szeredi %package devel Summary: user space filesystem @@ -69,21 +70,29 @@ make %install make DESTDIR="$RPM_BUILD_ROOT" install rm -rf $RPM_BUILD_ROOT/%{_sysconfdir}/init.d +install -m755 -D %{S:1} $RPM_BUILD_ROOT/%{_sysconfdir}/init.d/boot.fuse %post -/sbin/ldconfig +%{insserv_force_if_yast boot.fuse} +%run_ldconfig %run_permissions %verifyscript %verify_permissions -e %{_bindir}/fusermount -%postun -p /sbin/ldconfig +%preun +%stop_on_removal boot.fuse + +%postun +%run_ldconfig +%insserv_cleanup %clean rm -rf $RPM_BUILD_ROOT %files %defattr(-,root,root) +%config %{_sysconfdir}/init.d/boot.fuse %doc AUTHORS COPYING* ChangeLog FAQ NEWS README* %{_libdir}/lib*.so.* %verify(not mode) %attr(4750,root,trusted) %{_bindir}/fusermount @@ -103,6 +112,12 @@ rm -rf $RPM_BUILD_ROOT %{_libdir}/pkgconfig/*.pc %changelog -n fuse +* Fri Feb 09 2007 - ro@suse.de +- change fillup_and_insserv to insserv_force_if_yast in post-script + (there is no sysconfig file involved here) +* Wed Feb 07 2007 - mszeredi@suse.cz +- added init script which loads the fuse module and mounts the control + filesystem (#223663) * Mon Feb 05 2007 - mszeredi@suse.cz - updated to version 2.6.3: * fix regression causing an abort during heavy filesystem use