From mboxrd@z Thu Jan 1 00:00:00 1970 From: Michael Tremer To: development@lists.ipfire.org Subject: Re: [PATCH 1/5] fuse: Convert from core to addon Date: Wed, 13 Jan 2021 15:46:57 +0000 Message-ID: <000B2235-3E7B-4810-A182-A2C185EA2945@ipfire.org> In-Reply-To: <14464e616f1cf769f7a7f29e6c28b59b@ipfire.org> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="===============1840860827393162815==" List-Id: --===============1840860827393162815== Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Hi, Okay, I did not know that. Do we really want to keep that NTFS driver in the core system? There was an attempt to include a better one into the Linux kernel which is s= upposed to be better than ntfs-3g, but I do not know if it made it into 5.10: https://www.phoronix.com/scan.php?page=3Dnews_item&px=3DParagon-Read-Write-N= TFS-Linux -Michael > On 13 Jan 2021, at 15:23, Arne Fitzenreiter wrote: >=20 > fuse is a dependency of ntfs-3g read and so it is needed in the core system. >=20 > Arne >=20 >=20 > Am 2021-01-13 15:59, schrieb Adolf Belka: >> - 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/star= ted >> 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 >> --- >> 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/fu= se >> 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 =3D $(THISAPP).tar.xz >> DL_FROM =3D $(URL_IPFIRE) >> DIR_APP =3D $(DIR_SRC)/$(THISAPP) >> TARGET =3D $(DIR_INFO)/$(THISAPP) >> +PROG =3D fuse >> +PAK_VER =3D 1 >> + >> +DEPS =3D >> ##########################################################################= ##### >> # 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=3D/usr builddir && cd builddir && >> ninja && ninja install >> + cd $(DIR_APP) && meson --prefix=3D/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 fu= se >> + # 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 US= A # >> +# = # >> +# Copyright (C) 2007 IPFire-Team . = # >> +# = # >> +#########################################################################= ### >> +# >> +. /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 US= A # >> +# = # >> +# Copyright (C) 2007 IPFire-Team . = # >> +# = # >> +#########################################################################= ### >> +# >> +. /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 US= A # >> +# = # >> +# Copyright (C) 2007-2020 IPFire-Team . = # >> +# = # >> +#########################################################################= ### >> +# >> +. /opt/pakfire/lib/functions.sh >> +extract_backup_includes >> +./uninstall.sh >> +./install.sh --===============1840860827393162815==--