public inbox for development@lists.ipfire.org
 help / color / mirror / Atom feed
From: Adolf Belka <adolf.belka@ipfire.org>
To: development@lists.ipfire.org
Subject: Re: [PATCH 1/2] wsdd: Install wsdd - fixes bug13445
Date: Fri, 16 Feb 2024 18:15:11 +0100	[thread overview]
Message-ID: <0a69afd9-6fe5-4897-8967-cbc12b4f6101@ipfire.org> (raw)
In-Reply-To: <14d2e2fe07dfcbad2fc01a7ab62025b0c2e3cf61@ipfire.org>

[-- Attachment #1: Type: text/plain, Size: 25531 bytes --]

Hi Michael,

On 16/01/2024 11:30, daniel.weismueller(a)ipfire.org wrote:
> Hi there.
> 
> I've installed and testetd the latest / modified version of the wsdd 
> addon on two machines.
> Nearly everything works as exspected. Also my Winodws PCs see the IPFIRE 
> as a menber of the workgroup and could browse and use the samba shares.
> If you use the firewall option "Drop all Microsoft ports 
> 135,137,138,139,445,1025" the clients in the blue network see the IPFIRE 
> but aren't able to browse or connect to the shares.
> 
> I've recogniced only one thing that don't work like I exspected.
> 
> - If you stop or restart samba the wsdd addon won't stop or restart, too.
> 
> 
> I think it would be better if the wssd stop too because if you change 
> the workgroup and start the samba again the wsdd won't recognice it.

To make a patch to support this I need to have the wsdd patches that you 
created merged into next. Then I can work on having samba trigger the 
start and stop of wsdd so that it does not run independently but is 
synchronised with samba.

Regards,
Adolf.

> 
> -
> Daniel
> 
> 
> Am 12. Januar 2024 um 16:09 schrieb "Adolf Belka" 
> <adolf.belka(a)ipfire.org 
> <mailto:adolf.belka(a)ipfire.org?to=%22Adolf%20Belka%22%20%3Cadolf.belka%40ipfire.org%3E>>:
> 
> 
> 
>     Hi Michael,
> 
> 
>     On 12/01/2024 14:40, Michael Tremer wrote:
> 
>         Hello,
> 
>         On 12 Jan 2024, at 11:14, Adolf Belka <adolf.belka(a)ipfire.org
>         <mailto:adolf.belka(a)ipfire.org>> wrote:
> 
>             Hi Daniel,
> 
> 
>             On 11/01/2024 17:11, daniel.weismueller(a)ipfire.org
>             <mailto:daniel.weismueller(a)ipfire.org> wrote:
> 
> 
>         Hi Adolf.
> 
>         We have looked at your work. First of all, thank you very much.
> 
>         Your scripts seems to work fine. I will start tomorrow to test
>         them in whole. However we have made a few changes.
> 
>         In particular, we have adapted the code to the existing code in
>         IPFire.
> 
>         Please take look at Michaels wsdd branch.
> 
>         https://git.ipfire.org/?p=people/ms/ipfire-2.x.git;a=shortlog;h=refs/heads/wsdd <https://git.ipfire.org/?p=people/ms/ipfire-2.x.git;a=shortlog;h=refs/heads/wsdd> <https://git.ipfire.org/?p=people/ms/ipfire-2.x.git;a=shortlog;h=refs/heads/wsdd> <https://git.ipfire.org/?p=people/ms/ipfire-2.x.git;a=shortlog;h=refs/heads/wsdd>>
> 
>             That looks very good. I clearly still have a bit to learn
>             about how to code in a more tidy manner.
> 
> 
>         It worked… I was just in the swing of it :)
> 
>         I also see that Michael fixed the pid fault in the
>         loadproc/statusproc/killproc while I just created a workaround
>         solution for the wsdd initscript alone.
> 
>         loadproc/statusproc/killproc are really difficult to handle.
>         They are supposed to be LSB-conformant functions, but I believe
>         that it never really happened that they because universally used
>         and compatible between distributions. Now with systemd, there is
>         no more need…
> 
>         And it is also because of systemd that daemons behave
>         differently now - actually not even like daemons whatsoever any
>         more. They used to fork themselves into the background which
>         made all the PID processing necessary, because the init script
>         could not know the PID of the process forked in the background.
>         Now, they don’t do this any more because without the fork,
>         things are easier for systemd to manage.
> 
>         The new -b switch that was added some while ago is already
>         helping us to launch such new processes into the background, but
>         we don’t have PID files any more. And since scripts don’t work
>         with statusproc/killproc, I thought it might be a good idea to
>         add this to loadproc as I am expecting us to need this more
>         often in the future.
> 
>         And while I was thinking about the problem, I figured it would
>         be easier to send a patch for those few lines instead of
>         explaining it in words - which probably would have been a little
>         bit longer.
> 
>         The only noteworthy thing is that there was a potential security
>         issue in passing around the shell arguments as strings because
>         the workgroup variable could have been almost anything. I am not
>         sure what validation samba would do, but I thought it would be
>         best not to rely on that. A two words (with a space) workgroup
>         would have caused wsdd not to start, because it would have seen
>         a command line like “—-workgroup ABC DEF” with ABC being
>         interpreted as the workgroup and DEF being some garbage that
>         wsdd would not understand. The trick with the array is that it
>         would pass the arguments like this “—-workgroup ‘ABC DEF’” which
>         prevents that “DEF” would be interpreted as an extra parameter.
> 
>         So, everything is fine :) Especially after I added the “restart”
>         command :)
> 
>         I did have a look at the code in the functions file but
>         struggled to understand it enough to be able to figure out what
>         was giving the problem I was experiencing.
> 
>         Which functions?
> 
> 
>     The /src/initscripts/system/functions file from the git repo that
>     has the loadproc, statusproc and killproc functions in it.
> 
> 
>     Regards,
> 
> 
>     Adolf.
> 
> 
>         I am glad that has been sorted and the initscript tidied up in
>         line with IPFire coding style.
> 
>         That is why we are all working together...
> 
>         Will try and remember that in future.
> 
>         If not, we are here to help :)
> 
>         -Michael
> 
>         Regards,
> 
>             Adolf.
> 
> 
>         -
> 
>         Daniel
> 
>         Am 10. Januar 2024 um 14:30 schrieb "Adolf Belka"
>         <adolf.belka(a)ipfire.org <mailto:adolf.belka(a)ipfire.org>
>         <mailto:adolf.belka(a)ipfire.org?to=%22Adolf%20Belka%22%20%3Cadolf
>         <mailto:adolf.belka(a)ipfire.org?to=%22Adolf%20Belka%22%20%3Cadolf>.belka%40ipfire.org%3E>>:
> 
>         - lfs and toorfile created for wsdd
> 
>         - wsdd added to make.sh script
> 
>         - created install/update/uninstall scripts for wsdd that create an
> 
>         unpriveleged user and
> 
>         group.
> 
>         - initscript created for wsdd. As wsdd is a python3 script, when it
> 
>         is run as a daemon the
> 
>         pidof command does not find any pid for wsdd. So a directory/file
> 
>         for a pid file was
> 
>         created. This is then passed to the loadproc and killproc commands.
> 
>         After the loadproc
> 
>         command has been created the pid is extracted from the ps aux
> 
>         command and put into the
> 
>         pid file. This then works when running the killproc command for it
> 
>         to know what to go
> 
>         and stop. The statusproc command does not have the ability to feed
> 
>         in the pid from a
> 
>         pid file and so it fails to find a running wsdd as it uses the pidof
> 
>         command. Code was
> 
>         added to the status section of the initscript to check if the pid
> 
>         file exists and if so
> 
>         to print the same command as used with the statusproc command, and
> 
>         also the same
> 
>         wording if the pid file does not exist because wsdd is not running.
> 
>         - info from the ethernet/settings file is used to identify if only
> 
>         green0 is available or
> 
>         if blue0 is also used and based on this the appropriate interface
> 
>         commands are added to
> 
>         the wsdd command.
> 
>         - wsdd is also set up to run in a chroot
> 
>         - Has been tested on my vm testbed, initially by editing the files
> 
>         on the vm clone. After
> 
>         everything confiremd to be working, the build was successfully
> 
>         carried out and the
> 
>         .ipfire package was copied to a new vm clone installed and shown to
> 
>         perform as expected.
> 
>         This test only confirms that wsdd is correctly installed and
> 
>         started. Shutsdown and
> 
>         restarts on reboot successfully. Confirmed from the ps aux info that
> 
>         wsdd has been
> 
>         started with the correct options. Thge testing can not evaluate if
> 
>         wsdd enables windows
> 
>         systems newer than version 7 top be able to detect the samba shares
> 
>         as I have no
> 
>         windows systems.
> 
>         Fixes: Bug13445
> 
>         Tested-by: Adolf Belka <adolf.belka(a)ipfire.org
>         <mailto:adolf.belka(a)ipfire.org>>
> 
>         Signed-off-by: Adolf Belka <adolf.belka(a)ipfire.org
>         <mailto:adolf.belka(a)ipfire.org>>
> 
>         ---
> 
>         config/rootfiles/packages/wsdd | 2 +
> 
>         lfs/wsdd | 89 ++++++++++++++++++++++++++++++++++
> 
>         make.sh | 1 +
> 
>         src/initscripts/packages/wsdd | 63 ++++++++++++++++++++++++
> 
>         src/paks/wsdd/install.sh | 40 +++++++++++++++
> 
>         src/paks/wsdd/uninstall.sh | 30 ++++++++++++
> 
>         src/paks/wsdd/update.sh | 27 +++++++++++
> 
>         7 files changed, 252 insertions(+)
> 
>         create mode 100644 config/rootfiles/packages/wsdd
> 
>         create mode 100644 lfs/wsdd
> 
>         create mode 100644 src/initscripts/packages/wsdd
> 
>         create mode 100644 src/paks/wsdd/install.sh
> 
>         create mode 100644 src/paks/wsdd/uninstall.sh
> 
>         create mode 100644 src/paks/wsdd/update.sh
> 
>         diff --git a/config/rootfiles/packages/wsdd
> 
>         b/config/rootfiles/packages/wsdd
> 
>         new file mode 100644
> 
>         index 000000000..ce225043a
> 
>         --- /dev/null
> 
>         +++ b/config/rootfiles/packages/wsdd
> 
>         @@ -0,0 +1,2 @@
> 
>         +etc/rc.d/init.d/wsdd
> 
>         +usr/bin/wsdd
> 
>         diff --git a/lfs/wsdd b/lfs/wsdd
> 
>         new file mode 100644
> 
>         index 000000000..aa65e47ef
> 
>         --- /dev/null
> 
>         +++ b/lfs/wsdd
> 
>         @@ -0,0 +1,89 @@
> 
>         +###############################################################################
> 
>         +# #
> 
>         +# IPFire.org - A linux based firewall #
> 
>         +# Copyright (C) 2007-2024 IPFire Team <info(a)ipfire.org
>         <mailto:info(a)ipfire.org>> #
> 
>         +# #
> 
>         +# This program 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 3 of the
>         License, or #
> 
>         +# (at your option) any later version. #
> 
>         +# #
> 
>         +# This program 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 this program. If not, see
> 
>         <http://www.gnu.org/licenses/> <http://www.gnu.org/licenses/>>
>         <http://www.gnu.org/licenses/>> <http://www.gnu.org/licenses/>>>. #
> 
>         +# #
> 
>         +###############################################################################
> 
>         +
> 
>         +###############################################################################
> 
>         +# Definitions
> 
>         +###############################################################################
> 
>         +
> 
>         +include Config
> 
>         +
> 
>         +VER = 0.7.1
> 
>         +SUMMARY = A Web Service Discovery host daemon.
> 
>         +
> 
>         +THISAPP = wsdd-$(VER)
> 
>         +DL_FILE = $(THISAPP).tar.gz
> 
>         +DL_FROM = $(URL_IPFIRE)
> 
>         +DIR_APP = $(DIR_SRC)/$(THISAPP)
> 
>         +TARGET = $(DIR_INFO)/$(THISAPP)
> 
>         +PROG = wsdd
> 
>         +PAK_VER = 1
> 
>         +
> 
>         +DEPS =
> 
>         +
> 
>         +SERVICES = wsdd
> 
>         +
> 
>         +###############################################################################
> 
>         +# Top-level Rules
> 
>         +###############################################################################
> 
>         +
> 
>         +objects = $(DL_FILE)
> 
>         +
> 
>         +$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
> 
>         +
> 
>         +$(DL_FILE)_BLAKE2 =
> 
>         ce43022c3bd9f7ff1fd7169ac0d5ab6b2ff78d35c221c05b2e20908a5772d563ab2aca571d4e6ae48a55d19d4adcb9cde60f720ae47af8ee950198224fcfdb26
> 
>         +
> 
>         +install : $(TARGET)
> 
>         +
> 
>         +check : $(patsubst %,$(DIR_CHK)/%,$(objects))
> 
>         +
> 
>         +download :$(patsubst %,$(DIR_DL)/%,$(objects))
> 
>         +
> 
>         +b2 : $(subst %,%_BLAKE2,$(objects))
> 
>         +
> 
>         +dist:
> 
>         + @$(PAK)
> 
>         +
> 
>         +###############################################################################
> 
>         +# Downloading, checking, b2sum
> 
>         +###############################################################################
> 
>         +
> 
>         +$(patsubst %,$(DIR_CHK)/%,$(objects)) :
> 
>         + @$(CHECK)
> 
>         +
> 
>         +$(patsubst %,$(DIR_DL)/%,$(objects)) :
> 
>         + @$(LOAD)
> 
>         +
> 
>         +$(subst %,%_BLAKE2,$(objects)) :
> 
>         + @$(B2SUM)
> 
>         +
> 
>         +###############################################################################
> 
>         +# Installation Details
> 
>         +###############################################################################
> 
>         +
> 
>         +$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
> 
>         + @$(PREBUILD)
> 
>         + @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar axf
>         $(DIR_DL)/$(DL_FILE)
> 
>         + cd $(DIR_APP) && cp src/wsdd.py /usr/bin/wsdd
> 
>         +
> 
>         + #install initscripts
> 
>         + $(call INSTALL_INITSCRIPTS,$(SERVICES))
> 
>         +
> 
>         + @rm -rf $(DIR_APP)
> 
>         + @$(POSTBUILD)
> 
>         diff --git a/make.sh b/make.sh
> 
>         index 06e09c9a3..5af3dedc3 100755
> 
>         --- a/make.sh
> 
>         +++ b/make.sh
> 
>         @@ -1699,6 +1699,7 @@ buildipfire() {
> 
>         lfsmake2 perl-MIME-Base32
> 
>         lfsmake2 perl-URI-Encode
> 
>         lfsmake2 rsnapshot
> 
>         + lfsmake2 wsdd
> 
>         # Kernelbuild ... current we have no platform that need
> 
>         # multi kernel builds so KCFG is empty
> 
>         diff --git a/src/initscripts/packages/wsdd
> 
>         b/src/initscripts/packages/wsdd
> 
>         new file mode 100644
> 
>         index 000000000..c5207f872
> 
>         --- /dev/null
> 
>         +++ b/src/initscripts/packages/wsdd
> 
>         @@ -0,0 +1,63 @@
> 
>         +#!/bin/sh
> 
>         +###############################################################################
> 
>         +# #
> 
>         +# IPFire.org - A linux based firewall #
> 
>         +# Copyright (C) 2007-2024 IPFire Team <info(a)ipfire.org
>         <mailto:info(a)ipfire.org>> #
> 
>         +# #
> 
>         +# This program 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 3 of the
>         License, or #
> 
>         +# (at your option) any later version. #
> 
>         +# #
> 
>         +# This program 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 this program. If not, see
> 
>         <http://www.gnu.org/licenses/> <http://www.gnu.org/licenses/>>
>         <http://www.gnu.org/licenses/>> <http://www.gnu.org/licenses/>>>. #
> 
>         +# #
> 
>         +###############################################################################
> 
>         +
> 
>         +. /etc/sysconfig/rc
> 
>         +. $rc_functions
> 
>         +
> 
>         +eval $(/usr/local/bin/readhash /var/ipfire/ethernet/settings)
> 
>         +
> 
>         +# Create chroot directory for wsdd
> 
>         +mkdir -p /var/run/wsdd
> 
>         +
> 
>         +INTERFACES="-i ${GREEN_DEV}"
> 
>         + if [ -n "${BLUE_DEV}" ]; then
> 
>         + INTERFACES="${INTERFACES} -i ${BLUE_DEV}"
> 
>         + fi
> 
>         +WSDD_WORKGROUP="-w $(/usr/bin/testparm -s --parameter-name
> 
>         workgroup 2>/dev/null)"
> 
>         +WSDD_USER="-u wsdd:wsdd"
> 
>         +WSDD_CHROOT="-c /var/run/wsdd"
> 
>         +
> 
>         +case "$1" in
> 
>         + start)
> 
>         + boot_mesg "Starting wsdd daemon..."
> 
>         + loadproc -b /usr/bin/wsdd -4 ${WSDD_USER} ${INTERFACES}
> 
>         ${WSDD_WORKGROUP} ${WSDD_CHROOT}
> 
>         + sleep 1
> 
>         + echo $(ps aux | grep "/usr/bin/wsdd" | grep -v grep | awk '{print
> 
>         $2}') > /var/run/wsdd/pid
> 
>         + ;;
> 
>         + stop)
> 
>         + boot_mesg "Stopping wsdd daemon..."
> 
>         + killproc -p /var/run/wsdd/pid /usr/bin/wsdd
> 
>         + ;;
> 
>         + status)
> 
>         + WSDD_PID=$(ps aux | grep "/usr/bin/wsdd" | grep -v grep | awk
> 
>         '{print $2}')
> 
>         + if [ -n "${WSDD_PID}" ]; then
> 
>         + echo -e "\\033[1;36m /usr/bin/wsdd is running with Process"\
> 
>         + "ID(s) $WSDD_PID.\\033[0;39m"
> 
>         + else
> 
>         + echo -e "\\033[1;36m /usr/bin/wsdd is not running.\\033[0;39m"
> 
>         + fi
> 
>         + ;;
> 
>         + *)
> 
>         + echo "Usage: $0 (start|stop|status)"
> 
>         + exit 1
> 
>         + ;;
> 
>         +esac
> 
>         +
> 
>         diff --git a/src/paks/wsdd/install.sh b/src/paks/wsdd/install.sh
> 
>         new file mode 100644
> 
>         index 000000000..181b84eb9
> 
>         --- /dev/null
> 
>         +++ b/src/paks/wsdd/install.sh
> 
>         @@ -0,0 +1,40 @@
> 
>         +#!/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
>         <mailto:info(a)ipfire.org>>. #
> 
>         +# #
> 
>         +############################################################################
> 
>         +#
> 
>         +. /opt/pakfire/lib/functions.sh
> 
>         +
> 
>         +# If the wsdd user does not exist yet, then create it and add to
> 
>         wsdd group.
> 
>         +if ! getent user wsdd >/dev/null; then
> 
>         + useradd -r -U -d / -s /bin/false -c "wsdd user" wsdd
> 
>         + usermod -a -G wsdd wsdd
> 
>         +fi
> 
>         +
> 
>         +extract_files
> 
>         +restore_backup ${NAME}
> 
>         +
> 
>         +# Create startlinks
> 
>         +ln -sf ../init.d/wsdd /etc/rc.d/rc0.d/K35wsdd
> 
>         +ln -sf ../init.d/wsdd /etc/rc.d/rc3.d/S65wsdd
> 
>         +ln -sf ../init.d/wsdd /etc/rc.d/rc6.d/K35wsdd
> 
>         +start_service ${NAME}
> 
>         +exit 0
> 
>         diff --git a/src/paks/wsdd/uninstall.sh b/src/paks/wsdd/uninstall.sh
> 
>         new file mode 100644
> 
>         index 000000000..4c52ee281
> 
>         --- /dev/null
> 
>         +++ b/src/paks/wsdd/uninstall.sh
> 
>         @@ -0,0 +1,30 @@
> 
>         +#!/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
>         <mailto:info(a)ipfire.org>>. #
> 
>         +# #
> 
>         +############################################################################
> 
>         +#
> 
>         +. /opt/pakfire/lib/functions.sh
> 
>         +stop_service ${NAME}
> 
>         +make_backup ${NAME}
> 
>         +remove_files
> 
>         +# Remove all start links.
> 
>         +rm -rf /etc/rc.d/rc*.d/*wsdd
> 
>         +exit 0
> 
>         diff --git a/src/paks/wsdd/update.sh b/src/paks/wsdd/update.sh
> 
>         new file mode 100644
> 
>         index 000000000..99776659c
> 
>         --- /dev/null
> 
>         +++ b/src/paks/wsdd/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
>         <mailto:info(a)ipfire.org>>. #
> 
>         +# #
> 
>         +############################################################################
> 
>         +#
> 
>         +. /opt/pakfire/lib/functions.sh
> 
>         +extract_backup_includes
> 
>         +./uninstall.sh
> 
>         +./install.sh
> 
>         -- 2.43.0
> 
>             -- >> Sent from my laptop
> 
> 
>     -- Sent from my laptop
> 
> 

-- 
Sent from my laptop

       reply	other threads:[~2024-02-16 17:15 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <14d2e2fe07dfcbad2fc01a7ab62025b0c2e3cf61@ipfire.org>
2024-02-16 17:15 ` Adolf Belka [this message]
2024-02-28 16:45   ` Michael Tremer
     [not found] <f5b3cf46-97d8-4e7e-824b-9f294feea88e@ipfire.org>
2024-03-01 16:17 ` Michael Tremer
     [not found] <31ed55928f921d6f36c4559a2e41b4a9e1c53e1c@ipfire.org>
2024-01-12 11:14 ` Adolf Belka
2024-01-12 13:40   ` Michael Tremer
2024-01-12 15:09     ` Adolf Belka
2024-01-10 13:30 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=0a69afd9-6fe5-4897-8967-cbc12b4f6101@ipfire.org \
    --to=adolf.belka@ipfire.org \
    --cc=development@lists.ipfire.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox