public inbox for development@lists.ipfire.org
 help / color / mirror / Atom feed
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


  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