From mboxrd@z Thu Jan  1 00:00:00 1970
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 18:55:39 +0100
Message-ID: <f732de85-2046-c543-c267-a3cd004048d1@ipfire.org>
In-Reply-To: <200e7c41-8779-b6e2-78ff-4aad8cb7c2ee@gmail.com>
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="===============0891547077574348231=="
List-Id: <development.lists.ipfire.org>

--===============0891547077574348231==
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: quoted-printable

Hi Arne,

I sent the below reply but it was slow getting delivered and by the time it g=
ot to the ipfire server I had changed my list address to the new ipfire.org o=
ne so the mail got bounced back to me together with two of the sub patches I =
had sent earlier.

Regards,

Adolf.

On 13/01/2021 16:36, Adolf Belka wrote:
> Hi Arne,
>
> My apologies. The question about why it was not an addon came up with Micha=
el when I had updated fuse and sshfs. I had searched in git for any reference=
s to fuse and only found it in sshfs, borgbackup, samba and openvmtools.
>
> That was obviously wrong, so this whole patch set can be deleted.
>
> How can you tell that fuse is needed for ntfs-3g. If I look at the lfs, dep=
endencies are not mentioned for core programmes
>
> Regards,
>
> Adolf.
>
> On 13/01/2021 16:23, Arne Fitzenreiter wrote:
>> fuse is a dependency of ntfs-3g read and so it is needed in the core syste=
m.
>>
>> 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/sta=
rted
>>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 and unloads the module when fu=
se 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>
>>> ---
>>> =C2=A0config/rootfiles/common/fuse=C2=A0=C2=A0 | 38 ------------------
>>> =C2=A0config/rootfiles/packages/fuse | 21 ++++++++++
>>> =C2=A0lfs/fuse=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 |=
 25 ++++++++++--
>>> =C2=A0src/initscripts/packages/fuse=C2=A0 | 70 ++++++++++++++++++++++++++=
++++++++
>>> =C2=A0src/paks/fuse/install.sh=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 | 27 +=
++++++++++++
>>> =C2=A0src/paks/fuse/uninstall.sh=C2=A0=C2=A0=C2=A0=C2=A0 | 27 +++++++++++=
++
>>> =C2=A0src/paks/fuse/update.sh=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 |=
 27 +++++++++++++
>>> =C2=A07 files changed, 194 insertions(+), 41 deletions(-)
>>> =C2=A0delete mode 100644 config/rootfiles/common/fuse
>>> =C2=A0create mode 100644 config/rootfiles/packages/fuse
>>> =C2=A0create mode 100644 src/initscripts/packages/fuse
>>> =C2=A0create mode 100644 src/paks/fuse/install.sh
>>> =C2=A0create mode 100644 src/paks/fuse/uninstall.sh
>>> =C2=A0create 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/f=
use
>>> 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=C2=A0=C2=A0=C2=A0 =3D $(THISAPP).tar.xz
>>> =C2=A0DL_FROM=C2=A0=C2=A0=C2=A0 =3D $(URL_IPFIRE)
>>> =C2=A0DIR_APP=C2=A0=C2=A0=C2=A0 =3D $(DIR_SRC)/$(THISAPP)
>>> =C2=A0TARGET=C2=A0=C2=A0=C2=A0=C2=A0 =3D $(DIR_INFO)/$(THISAPP)
>>> +PROG=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 =3D fuse
>>> +PAK_VER=C2=A0=C2=A0=C2=A0 =3D 1
>>> +
>>> +DEPS=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 =3D
>>>
>>>
>>> #########################################################################=
######
>>> =C2=A0# Top-level Rules
>>> @@ -73,13 +77,28 @@ $(subst %,%_MD5,$(objects)) :
>>> =C2=A0$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
>>> =C2=A0=C2=A0=C2=A0=C2=A0 @$(PREBUILD)
>>> =C2=A0=C2=A0=C2=A0=C2=A0 @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar axf $=
(DIR_DL)/$(DL_FILE)
>>> -=C2=A0=C2=A0=C2=A0 cd $(DIR_APP) && meson --prefix=3D/usr builddir && cd=
 builddir &&
>>> ninja && ninja install
>>> +=C2=A0=C2=A0=C2=A0 cd $(DIR_APP) && meson --prefix=3D/usr builddir/
>>> +=C2=A0=C2=A0=C2=A0 cd $(DIR_APP) && ninja -C builddir/
>>> +=C2=A0=C2=A0=C2=A0 cd $(DIR_APP) && ninja -C builddir/ install
>>>
>>> -=C2=A0=C2=A0=C2=A0 # Move mount.fuse3 to same location as mount.fuse was=
 in previous version
>>> +=C2=A0=C2=A0=C2=A0 # Move mount.fuse3 to same location as mount.fuse was=
 previously
>>> =C2=A0=C2=A0=C2=A0=C2=A0 mv -v /usr/sbin/mount.fuse3 /sbin
>>>
>>> -=C2=A0=C2=A0=C2=A0 # Move 99-fuse3 rules to same udev location as in pre=
vious version of fuse
>>> +=C2=A0=C2=A0=C2=A0 # Move 99-fuse3 rules to same udev location as previo=
usly
>>> =C2=A0=C2=A0=C2=A0=C2=A0 mv -v /lib/udev/rules.d/99-fuse3.rules /etc/udev=
/rules.d
>>>
>>> +=C2=A0=C2=A0=C2=A0 # Remove initscript installed from source code as it =
loads the module but
>>> +=C2=A0=C2=A0=C2=A0 # also defines and sets up the mount points that will=
 be used by fuse.
>>> +=C2=A0=C2=A0=C2=A0 rm /etc/init.d/fuse3
>>> +
>>> +=C2=A0=C2=A0=C2=A0 # Module loading extracted from source code initscrip=
t and made into
>>> an IPFire initscript
>>> +=C2=A0=C2=A0=C2=A0 #install initscripts
>>> +=C2=A0=C2=A0=C2=A0 $(call INSTALL_INITSCRIPT,fuse)
>>> +
>>> +=C2=A0=C2=A0=C2=A0 # create startlinks
>>> +=C2=A0=C2=A0=C2=A0 ln -sf ../init.d/fuse /etc/rc.d/rc0.d/K35fuse
>>> +=C2=A0=C2=A0=C2=A0 ln -sf ../init.d/fuse /etc/rc.d/rc3.d/S65fuse
>>> +=C2=A0=C2=A0=C2=A0 ln -sf ../init.d/fuse /etc/rc.d/rc6.d/K35fuse
>>> +
>>> =C2=A0=C2=A0=C2=A0=C2=A0 @rm -rf $(DIR_APP)
>>> =C2=A0=C2=A0=C2=A0=C2=A0 @$(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=C2=A0=C2=A0=C2=A0=C2=A0 : Adolf Belka
>>> +#
>>> +# Version=C2=A0=C2=A0=C2=A0=C2=A0 : 01.00
>>> +#
>>> +# Notes=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 :
>>> +#
>>> +########################################################################
>>> +
>>> +. /etc/sysconfig/rc
>>> +. ${rc_functions}
>>> +
>>> +case "${1}" in
>>> +=C2=A0=C2=A0=C2=A0 start)
>>> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 boot_mesg "Loading fuse modul=
e."
>>> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 if ! grep -qw fuse /proc/file=
systems; then
>>> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 echo =
-n "Loading fuse module"
>>> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 if ! =
modprobe fuse >/dev/null 2>&1; then
>>> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0 echo " failed!"
>>> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0 exit 1
>>> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 else
>>> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 echo =
"."
>>> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 fi
>>> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 else
>>> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 echo =
"fuse filesystem already available."
>>> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 fi
>>> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 ;;
>>> +
>>> +=C2=A0=C2=A0=C2=A0 stop)
>>> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 boot_mesg "Unloading fuse mod=
ule."
>>> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 if grep -qw "^fuse" /proc/mod=
ules; then
>>> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 echo =
-n "Unloading fuse module"
>>> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 if ! =
rmmod fuse >/dev/null 2>&1; then
>>> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0 echo " failed!"
>>> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 else
>>> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0 echo "."
>>> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 fi
>>> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 else
>>> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 echo =
"fuse module not loaded."
>>> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 fi
>>> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 ;;
>>> +
>>> +=C2=A0=C2=A0=C2=A0 restart)
>>> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 ${0} stop
>>> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 sleep 1
>>> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 ${0} start
>>> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 ;;
>>> +
>>> +=C2=A0=C2=A0=C2=A0 status)
>>> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 echo -n "Checking if fuse mod=
ule loaded."
>>> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 if ! grep -qw fuse /proc/file=
systems; then
>>> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 echo =
" fuse module not loaded."
>>> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 exit 3
>>> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 else
>>> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 echo =
" ok."
>>> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 fi
>>> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 ;;
>>> +
>>> +=C2=A0=C2=A0=C2=A0 *)
>>> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 echo "Usage: ${0} {start|stop=
|restart|status}"
>>> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 exit 1
>>> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 ;;
>>> +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
>>> +########################################################################=
####
>>> +# =C2=A0=C2=A0=C2=A0 #
>>> +# This file is part of the IPFire Firewall. =C2=A0=C2=A0=C2=A0 #
>>> +# =C2=A0=C2=A0=C2=A0 #
>>> +# IPFire is free software; you can redistribute it and/or modify =C2=A0=
=C2=A0=C2=A0 #
>>> +# it under the terms of the GNU General Public License as published by =
=C2=A0=C2=A0=C2=A0 #
>>> +# the Free Software Foundation; either version 2 of the License, or =C2=
=A0=C2=A0=C2=A0 #
>>> +# (at your option) any later version. =C2=A0=C2=A0=C2=A0 #
>>> +# =C2=A0=C2=A0=C2=A0 #
>>> +# IPFire is distributed in the hope that it will be useful, =C2=A0=C2=A0=
=C2=A0 #
>>> +# but WITHOUT ANY WARRANTY; without even the implied warranty of =C2=A0=
=C2=A0=C2=A0 #
>>> +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.=C2=A0 See the =C2=
=A0=C2=A0=C2=A0 #
>>> +# GNU General Public License for more details. =C2=A0=C2=A0=C2=A0 #
>>> +# =C2=A0=C2=A0=C2=A0 #
>>> +# You should have received a copy of the GNU General Public License =C2=
=A0=C2=A0=C2=A0 #
>>> +# along with IPFire; if not, write to the Free Software =C2=A0=C2=A0=C2=
=A0 #
>>> +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 US=
A #
>>> +# =C2=A0=C2=A0=C2=A0 #
>>> +# Copyright (C) 2007 IPFire-Team <info(a)ipfire.org>. #
>>> +# =C2=A0=C2=A0=C2=A0 #
>>> +########################################################################=
####
>>> +#
>>> +. /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
>>> +########################################################################=
####
>>> +# =C2=A0=C2=A0=C2=A0 #
>>> +# This file is part of the IPFire Firewall. =C2=A0=C2=A0=C2=A0 #
>>> +# =C2=A0=C2=A0=C2=A0 #
>>> +# IPFire is free software; you can redistribute it and/or modify =C2=A0=
=C2=A0=C2=A0 #
>>> +# it under the terms of the GNU General Public License as published by =
=C2=A0=C2=A0=C2=A0 #
>>> +# the Free Software Foundation; either version 2 of the License, or =C2=
=A0=C2=A0=C2=A0 #
>>> +# (at your option) any later version. =C2=A0=C2=A0=C2=A0 #
>>> +# =C2=A0=C2=A0=C2=A0 #
>>> +# IPFire is distributed in the hope that it will be useful, =C2=A0=C2=A0=
=C2=A0 #
>>> +# but WITHOUT ANY WARRANTY; without even the implied warranty of =C2=A0=
=C2=A0=C2=A0 #
>>> +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.=C2=A0 See the =C2=
=A0=C2=A0=C2=A0 #
>>> +# GNU General Public License for more details. =C2=A0=C2=A0=C2=A0 #
>>> +# =C2=A0=C2=A0=C2=A0 #
>>> +# You should have received a copy of the GNU General Public License =C2=
=A0=C2=A0=C2=A0 #
>>> +# along with IPFire; if not, write to the Free Software =C2=A0=C2=A0=C2=
=A0 #
>>> +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 US=
A #
>>> +# =C2=A0=C2=A0=C2=A0 #
>>> +# Copyright (C) 2007 IPFire-Team <info(a)ipfire.org>. #
>>> +# =C2=A0=C2=A0=C2=A0 #
>>> +########################################################################=
####
>>> +#
>>> +. /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
>>> +########################################################################=
####
>>> +# =C2=A0=C2=A0=C2=A0 #
>>> +# This file is part of the IPFire Firewall. =C2=A0=C2=A0=C2=A0 #
>>> +# =C2=A0=C2=A0=C2=A0 #
>>> +# IPFire is free software; you can redistribute it and/or modify =C2=A0=
=C2=A0=C2=A0 #
>>> +# it under the terms of the GNU General Public License as published by =
=C2=A0=C2=A0=C2=A0 #
>>> +# the Free Software Foundation; either version 2 of the License, or =C2=
=A0=C2=A0=C2=A0 #
>>> +# (at your option) any later version. =C2=A0=C2=A0=C2=A0 #
>>> +# =C2=A0=C2=A0=C2=A0 #
>>> +# IPFire is distributed in the hope that it will be useful, =C2=A0=C2=A0=
=C2=A0 #
>>> +# but WITHOUT ANY WARRANTY; without even the implied warranty of =C2=A0=
=C2=A0=C2=A0 #
>>> +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.=C2=A0 See the =C2=
=A0=C2=A0=C2=A0 #
>>> +# GNU General Public License for more details. =C2=A0=C2=A0=C2=A0 #
>>> +# =C2=A0=C2=A0=C2=A0 #
>>> +# You should have received a copy of the GNU General Public License =C2=
=A0=C2=A0=C2=A0 #
>>> +# along with IPFire; if not, write to the Free Software =C2=A0=C2=A0=C2=
=A0 #
>>> +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 US=
A #
>>> +# =C2=A0=C2=A0=C2=A0 #
>>> +# Copyright (C) 2007-2020 IPFire-Team <info(a)ipfire.org>. =C2=A0=C2=A0=
=C2=A0 #
>>> +# =C2=A0=C2=A0=C2=A0 #
>>> +########################################################################=
####
>>> +#
>>> +. /opt/pakfire/lib/functions.sh
>>> +extract_backup_includes
>>> +./uninstall.sh
>>> +./install.sh

--===============0891547077574348231==--