From: Adolf Belka <adolf.belka@ipfire.org>
To: development@lists.ipfire.org
Subject: Re: [PATCH 1/5] fuse: Convert from core to addon
Date: Wed, 13 Jan 2021 19:02:50 +0100 [thread overview]
Message-ID: <c944f071-6451-885b-3ea6-e06201245680@ipfire.org> (raw)
In-Reply-To: <000B2235-3E7B-4810-A182-A2C185EA2945@ipfire.org>
[-- Attachment #1: Type: text/plain, Size: 14808 bytes --]
Hi All,
Two of the sub patches from this series never made it to the mailing list or patchwork because I changed my mailing list address to the ipfire.org one.
I will resend those two patches so there is a complete set in patchwork while it is decided whether to proceed or not. I just need to first update my git send-email details.
Regards,
Adolf.
On 13/01/2021 16:46, Michael Tremer wrote:
> 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 18:02 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
2021-01-13 18:02 ` Adolf Belka [this message]
[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=c944f071-6451-885b-3ea6-e06201245680@ipfire.org \
--to=adolf.belka@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