- Convert the fuse package from core to addon
- Modify lfs to include package version number
- Create initscript that loads the fuse module when fuse is installed/started
and unloads the module when fuse is uninstalled/stopped
- Create install/uninstall/update scripts for fuse
- Move the rootfile from common to packages
- Update the rootfile
- Split meson/ninja build statements into individual steps
Signed-off-by: Adolf Belka <ahb.ipfire(a)gmail.com>
---
config/rootfiles/common/fuse | 38 ------------------
config/rootfiles/packages/fuse | 21 ++++++++++
lfs/fuse | 25 ++++++++++--
src/initscripts/packages/fuse | 70 ++++++++++++++++++++++++++++++++++
src/paks/fuse/install.sh | 27 +++++++++++++
src/paks/fuse/uninstall.sh | 27 +++++++++++++
src/paks/fuse/update.sh | 27 +++++++++++++
7 files changed, 194 insertions(+), 41 deletions(-)
delete mode 100644 config/rootfiles/common/fuse
create mode 100644 config/rootfiles/packages/fuse
create mode 100644 src/initscripts/packages/fuse
create mode 100644 src/paks/fuse/install.sh
create mode 100644 src/paks/fuse/uninstall.sh
create mode 100644 src/paks/fuse/update.sh
diff --git a/config/rootfiles/common/fuse b/config/rootfiles/common/fuse
deleted file mode 100644
index bae55b321..000000000
--- a/config/rootfiles/common/fuse
+++ /dev/null
@@ -1,38 +0,0 @@
-#etc/rc.d/init.d/fuse3
-#lib/udev/rules.d/99-fuse3.rules
-etc/udev/rules.d/99-fuse3.rules
-sbin/mount.fuse3
-usr/bin/fusermount3
-#usr/local/bin/fusermount3
-#usr/local/etc
-#usr/local/etc/fuse.conf
-#usr/local/include/fuse3
-#usr/local/include/fuse3/cuse_lowlevel.h
-#usr/local/include/fuse3/fuse.h
-#usr/local/include/fuse3/fuse_common.h
-#usr/local/include/fuse3/fuse_log.h
-#usr/local/include/fuse3/fuse_lowlevel.h
-#usr/local/include/fuse3/fuse_opt.h
-#usr/local/lib/libfuse3.so
-#usr/local/lib/libfuse3.so.3
-#usr/local/lib/libfuse3.so.3.10.1
-#usr/local/lib/pkgconfig
-#usr/local/lib/pkgconfig/fuse3.pc
-#usr/local/sbin/mount.fuse3
-#usr/local/share/man/man1/fusermount3.1
-#usr/local/share/man/man8/mount.fuse3.8
-#etc/fuse.conf
-#usr/include/fuse3
-#usr/include/fuse3/cuse_lowlevel.h
-#usr/include/fuse3/fuse.h
-#usr/include/fuse3/fuse_common.h
-#usr/include/fuse3/fuse_log.h
-#usr/include/fuse3/fuse_lowlevel.h
-#usr/include/fuse3/fuse_opt.h
-#usr/lib/libfuse3.so
-usr/lib/libfuse3.so.3
-usr/lib/libfuse3.so.3.10.1
-#usr/lib/pkgconfig/fuse3.pc
-#usr/sbin/mount.fuse3
-#usr/share/man/man1/fusermount3.1
-#usr/share/man/man8/mount.fuse3.8
diff --git a/config/rootfiles/packages/fuse b/config/rootfiles/packages/fuse
new file mode 100644
index 000000000..917520bdf
--- /dev/null
+++ b/config/rootfiles/packages/fuse
@@ -0,0 +1,21 @@
+#etc/fuse.conf
+etc/rc.d/init.d/fuse
+etc/rc.d/rc0.d/K35fuse
+etc/rc.d/rc3.d/S65fuse
+etc/rc.d/rc6.d/K35fuse
+etc/udev/rules.d/99-fuse3.rules
+sbin/mount.fuse3
+usr/bin/fusermount3
+#usr/include/fuse3
+#usr/include/fuse3/cuse_lowlevel.h
+#usr/include/fuse3/fuse.h
+#usr/include/fuse3/fuse_common.h
+#usr/include/fuse3/fuse_log.h
+#usr/include/fuse3/fuse_lowlevel.h
+#usr/include/fuse3/fuse_opt.h
+#usr/lib/libfuse3.so
+usr/lib/libfuse3.so.3
+usr/lib/libfuse3.so.3.10.1
+#usr/lib/pkgconfig/fuse3.pc
+#usr/share/man/man1/fusermount3.1
+#usr/share/man/man8/mount.fuse3.8
diff --git a/lfs/fuse b/lfs/fuse
index 167612f68..c976bb4cd 100644
--- a/lfs/fuse
+++ b/lfs/fuse
@@ -31,6 +31,10 @@ DL_FILE = $(THISAPP).tar.xz
DL_FROM = $(URL_IPFIRE)
DIR_APP = $(DIR_SRC)/$(THISAPP)
TARGET = $(DIR_INFO)/$(THISAPP)
+PROG = fuse
+PAK_VER = 1
+
+DEPS =
###############################################################################
# Top-level Rules
@@ -73,13 +77,28 @@ $(subst %,%_MD5,$(objects)) :
$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
@$(PREBUILD)
@rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar axf $(DIR_DL)/$(DL_FILE)
- cd $(DIR_APP) && meson --prefix=/usr builddir && cd builddir && ninja && ninja install
+ cd $(DIR_APP) && meson --prefix=/usr builddir/
+ cd $(DIR_APP) && ninja -C builddir/
+ cd $(DIR_APP) && ninja -C builddir/ install
- # Move mount.fuse3 to same location as mount.fuse was in previous version
+ # Move mount.fuse3 to same location as mount.fuse was previously
mv -v /usr/sbin/mount.fuse3 /sbin
- # Move 99-fuse3 rules to same udev location as in previous version of fuse
+ # Move 99-fuse3 rules to same udev location as previously
mv -v /lib/udev/rules.d/99-fuse3.rules /etc/udev/rules.d
+ # Remove initscript installed from source code as it loads the module but
+ # also defines and sets up the mount points that will be used by fuse.
+ rm /etc/init.d/fuse3
+
+ # Module loading extracted from source code initscript and made into an IPFire initscript
+ #install initscripts
+ $(call INSTALL_INITSCRIPT,fuse)
+
+ # create startlinks
+ ln -sf ../init.d/fuse /etc/rc.d/rc0.d/K35fuse
+ ln -sf ../init.d/fuse /etc/rc.d/rc3.d/S65fuse
+ ln -sf ../init.d/fuse /etc/rc.d/rc6.d/K35fuse
+
@rm -rf $(DIR_APP)
@$(POSTBUILD)
diff --git a/src/initscripts/packages/fuse b/src/initscripts/packages/fuse
new file mode 100644
index 000000000..7127e1f87
--- /dev/null
+++ b/src/initscripts/packages/fuse
@@ -0,0 +1,70 @@
+#!/bin/sh
+########################################################################
+# Begin $rc_base/init.d/fuse
+#
+# Description : Load and unload the fuse3 module
+#
+# Authors : Adolf Belka
+#
+# Version : 01.00
+#
+# Notes :
+#
+########################################################################
+
+. /etc/sysconfig/rc
+. ${rc_functions}
+
+case "${1}" in
+ start)
+ boot_mesg "Loading fuse module."
+ if ! grep -qw fuse /proc/filesystems; then
+ echo -n "Loading fuse module"
+ if ! modprobe fuse >/dev/null 2>&1; then
+ echo " failed!"
+ exit 1
+ else
+ echo "."
+ fi
+ else
+ echo "fuse filesystem already available."
+ fi
+ ;;
+
+ stop)
+ boot_mesg "Unloading fuse module."
+ if grep -qw "^fuse" /proc/modules; then
+ echo -n "Unloading fuse module"
+ if ! rmmod fuse >/dev/null 2>&1; then
+ echo " failed!"
+ else
+ echo "."
+ fi
+ else
+ echo "fuse module not loaded."
+ fi
+ ;;
+
+ restart)
+ ${0} stop
+ sleep 1
+ ${0} start
+ ;;
+
+ status)
+ echo -n "Checking if fuse module loaded."
+ if ! grep -qw fuse /proc/filesystems; then
+ echo " fuse module not loaded."
+ exit 3
+ else
+ echo " ok."
+ fi
+ ;;
+
+ *)
+ echo "Usage: ${0} {start|stop|restart|status}"
+ exit 1
+ ;;
+esac
+
+# End $rc_base/init.d/fuse
diff --git a/src/paks/fuse/install.sh b/src/paks/fuse/install.sh
new file mode 100644
index 000000000..e6a5af92b
--- /dev/null
+++ b/src/paks/fuse/install.sh
@@ -0,0 +1,27 @@
+#!/bin/bash
+############################################################################
+# #
+# This file is part of the IPFire Firewall. #
+# #
+# IPFire is free software; you can redistribute it and/or modify #
+# it under the terms of the GNU General Public License as published by #
+# the Free Software Foundation; either version 2 of the License, or #
+# (at your option) any later version. #
+# #
+# IPFire is distributed in the hope that it will be useful, #
+# but WITHOUT ANY WARRANTY; without even the implied warranty of #
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the #
+# GNU General Public License for more details. #
+# #
+# You should have received a copy of the GNU General Public License #
+# along with IPFire; if not, write to the Free Software #
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA #
+# #
+# Copyright (C) 2007 IPFire-Team <info(a)ipfire.org>. #
+# #
+############################################################################
+#
+. /opt/pakfire/lib/functions.sh
+extract_files
+
+start_service --background ${NAME}
diff --git a/src/paks/fuse/uninstall.sh b/src/paks/fuse/uninstall.sh
new file mode 100644
index 000000000..dc37ea5b1
--- /dev/null
+++ b/src/paks/fuse/uninstall.sh
@@ -0,0 +1,27 @@
+#!/bin/bash
+############################################################################
+# #
+# This file is part of the IPFire Firewall. #
+# #
+# IPFire is free software; you can redistribute it and/or modify #
+# it under the terms of the GNU General Public License as published by #
+# the Free Software Foundation; either version 2 of the License, or #
+# (at your option) any later version. #
+# #
+# IPFire is distributed in the hope that it will be useful, #
+# but WITHOUT ANY WARRANTY; without even the implied warranty of #
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the #
+# GNU General Public License for more details. #
+# #
+# You should have received a copy of the GNU General Public License #
+# along with IPFire; if not, write to the Free Software #
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA #
+# #
+# Copyright (C) 2007 IPFire-Team <info(a)ipfire.org>. #
+# #
+############################################################################
+#
+. /opt/pakfire/lib/functions.sh
+stop_service ${NAME}
+
+remove_files
diff --git a/src/paks/fuse/update.sh b/src/paks/fuse/update.sh
new file mode 100644
index 000000000..99776659c
--- /dev/null
+++ b/src/paks/fuse/update.sh
@@ -0,0 +1,27 @@
+#!/bin/bash
+############################################################################
+# #
+# This file is part of the IPFire Firewall. #
+# #
+# IPFire is free software; you can redistribute it and/or modify #
+# it under the terms of the GNU General Public License as published by #
+# the Free Software Foundation; either version 2 of the License, or #
+# (at your option) any later version. #
+# #
+# IPFire is distributed in the hope that it will be useful, #
+# but WITHOUT ANY WARRANTY; without even the implied warranty of #
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the #
+# GNU General Public License for more details. #
+# #
+# You should have received a copy of the GNU General Public License #
+# along with IPFire; if not, write to the Free Software #
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA #
+# #
+# Copyright (C) 2007-2020 IPFire-Team <info(a)ipfire.org>. #
+# #
+############################################################################
+#
+. /opt/pakfire/lib/functions.sh
+extract_backup_includes
+./uninstall.sh
+./install.sh
--
2.30.0