From: Michael Tremer <michael.tremer@ipfire.org>
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 [thread overview]
Message-ID: <000B2235-3E7B-4810-A182-A2C185EA2945@ipfire.org> (raw)
In-Reply-To: <14464e616f1cf769f7a7f29e6c28b59b@ipfire.org>
[-- Attachment #1: Type: text/plain, Size: 14052 bytes --]
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 supposed 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=news_item&px=Paragon-Read-Write-NTFS-Linux
-Michael
> On 13 Jan 2021, at 15:23, Arne Fitzenreiter <arne_f(a)ipfire.org> wrote:
>
> fuse is a dependency of ntfs-3g read and so it is needed in the core system.
>
> Arne
>
>
> 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/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
next prev parent reply other threads:[~2021-01-13 15:46 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-01-13 14:59 Adolf Belka
2021-01-13 15:23 ` Arne Fitzenreiter
2021-01-13 15:46 ` Michael Tremer [this message]
2021-01-13 18:02 ` Adolf Belka
[not found] <200e7c41-8779-b6e2-78ff-4aad8cb7c2ee@gmail.com>
2021-01-13 17:55 ` Adolf Belka
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=000B2235-3E7B-4810-A182-A2C185EA2945@ipfire.org \
--to=michael.tremer@ipfire.org \
--cc=development@lists.ipfire.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox