* Re: [PATCH 1/5] fuse: Convert from core to addon
[not found] <200e7c41-8779-b6e2-78ff-4aad8cb7c2ee@gmail.com>
@ 2021-01-13 17:55 ` Adolf Belka
0 siblings, 0 replies; 5+ messages in thread
From: Adolf Belka @ 2021-01-13 17:55 UTC (permalink / raw)
To: development
[-- Attachment #1: Type: text/plain, Size: 14241 bytes --]
Hi Arne,
I sent the below reply but it was slow getting delivered and by the time it got to the ipfire server I had changed my list address to the new ipfire.org one 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 Michael when I had updated fuse and sshfs. I had searched in git for any references 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, dependencies 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 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
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH 1/5] fuse: Convert from core to addon
2021-01-13 15:46 ` Michael Tremer
@ 2021-01-13 18:02 ` Adolf Belka
0 siblings, 0 replies; 5+ messages in thread
From: Adolf Belka @ 2021-01-13 18:02 UTC (permalink / raw)
To: development
[-- 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
>
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH 1/5] fuse: Convert from core to addon
2021-01-13 15:23 ` Arne Fitzenreiter
@ 2021-01-13 15:46 ` Michael Tremer
2021-01-13 18:02 ` Adolf Belka
0 siblings, 1 reply; 5+ messages in thread
From: Michael Tremer @ 2021-01-13 15:46 UTC (permalink / raw)
To: development
[-- 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
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH 1/5] fuse: Convert from core to addon
2021-01-13 14:59 Adolf Belka
@ 2021-01-13 15:23 ` Arne Fitzenreiter
2021-01-13 15:46 ` Michael Tremer
0 siblings, 1 reply; 5+ messages in thread
From: Arne Fitzenreiter @ 2021-01-13 15:23 UTC (permalink / raw)
To: development
[-- Attachment #1: Type: text/plain, Size: 13602 bytes --]
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
^ permalink raw reply [flat|nested] 5+ messages in thread
* [PATCH 1/5] fuse: Convert from core to addon
@ 2021-01-13 14:59 Adolf Belka
2021-01-13 15:23 ` Arne Fitzenreiter
0 siblings, 1 reply; 5+ messages in thread
From: Adolf Belka @ 2021-01-13 14:59 UTC (permalink / raw)
To: development
[-- Attachment #1: Type: text/plain, Size: 12580 bytes --]
- 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
--
2.30.0
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2021-01-13 18:02 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
[not found] <200e7c41-8779-b6e2-78ff-4aad8cb7c2ee@gmail.com>
2021-01-13 17:55 ` [PATCH 1/5] fuse: Convert from core to addon Adolf Belka
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 is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox