- This integrates the wsdd initscript functions into the samba initscript. When samba is started or stopped or the status requested then wsdd is part of that process. - Tested in my vm testbed and confirmed to work for start, stop and status. Confirmed pid's shown with status command are in the appropriate pid files.
Fixes: bug#13445 Tested-by: Adolf Belka adolf.belka@ipfire.org Signed-off-by: Adolf Belka adolf.belka@ipfire.org --- src/initscripts/packages/samba | 40 +++++++++++++++++++++++++++++++++- 1 file changed, 39 insertions(+), 1 deletion(-)
diff --git a/src/initscripts/packages/samba b/src/initscripts/packages/samba index 93f14cd29..3945f4384 100644 --- a/src/initscripts/packages/samba +++ b/src/initscripts/packages/samba @@ -2,7 +2,7 @@ ############################################################################### # # # IPFire.org - A linux based firewall # -# Copyright (C) 2007-2022 IPFire Team info@ipfire.org # +# Copyright (C) 2007-2024 IPFire Team info@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 # @@ -30,6 +30,8 @@ function fix_permissions() { mkdir -p /var/run/samba/{nmbd,ncalrpc,winbindd} }
+eval $(/usr/local/bin/readhash /var/ipfire/ethernet/settings) + case "$1" in start) fix_permissions @@ -42,6 +44,35 @@ case "$1" in
boot_mesg "Starting winbind..." loadproc /usr/sbin/winbindd + + # Arguments for wsdd command + ARGS=( + # Launch as non-privileged user + "--user" "wsdd:wsdd" + + # Launch in chroot + "--chroot" "/var/run/wsdd" + + # Only use IPv4 + "--ipv4only" + + # Configure the workgroup + "--workgroup" "$(testparm -s --parameter-name workgroup 2>/dev/null)" + ) + + # Conditionally add the GREEN/BLUE interface + for intf in GREEN_DEV BLUE_DEV; do + if [ -n "${!intf}" ]; then + ARGS+=( "--interface" "${!intf}" ) + fi + done + + # Create chroot directory for wsdd + mkdir -p /var/run/wsdd + + PIDFILE="/var/run/wsdd.pid" + boot_mesg "Starting Web Service Discovery Host Daemon..." + loadproc -b -p "${PIDFILE}" /usr/bin/wsdd "${ARGS[@]}" ;;
stop) @@ -53,6 +84,10 @@ case "$1" in
boot_mesg "Stopping winbind..." killproc /usr/sbin/winbindd + + PIDFILE="/var/run/wsdd.pid" + boot_mesg "Stopping Web Service Discovery Host Daemon..." + killproc -p "${PIDFILE}" /usr/bin/wsdd ;;
reload) @@ -76,6 +111,9 @@ case "$1" in statusproc /usr/sbin/nmbd statusproc /usr/sbin/smbd statusproc /usr/sbin/winbindd + + PIDFILE="/var/run/wsdd.pid" + statusproc /usr/bin/wsdd ;;
*)
Fixes: bug#13445 Tested-by: Adolf Belka adolf.belka@ipfire.org Signed-off-by: Adolf Belka adolf.belka@ipfire.org --- src/initscripts/packages/wsdd | 78 ----------------------------------- 1 file changed, 78 deletions(-) delete mode 100644 src/initscripts/packages/wsdd
diff --git a/src/initscripts/packages/wsdd b/src/initscripts/packages/wsdd deleted file mode 100644 index 68e8f3de0..000000000 --- a/src/initscripts/packages/wsdd +++ /dev/null @@ -1,78 +0,0 @@ -#!/bin/sh -############################################################################### -# # -# IPFire.org - A linux based firewall # -# Copyright (C) 2007-2024 IPFire Team info@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/. # -# # -############################################################################### - -. /etc/sysconfig/rc -. $rc_functions - -eval $(/usr/local/bin/readhash /var/ipfire/ethernet/settings) - -PIDFILE="/var/run/wsdd.pid" - -case "$1" in - start) - ARGS=( - # Launch as non-privileged user - "--user" "wsdd:wsdd" - - # Launch in chroot - "--chroot" "/var/run/wsdd" - - # Only use IPv4 - "--ipv4only" - - # Configure the workgroup - "--workgroup" "$(testparm -s --parameter-name workgroup 2>/dev/null)" - ) - - # Conditionally add the GREEN/BLUE interface - for intf in GREEN_DEV BLUE_DEV; do - if [ -n "${!intf}" ]; then - ARGS+=( "--interface" "${!intf}" ) - fi - done - - # Create chroot directory for wsdd - mkdir -p /var/run/wsdd - - boot_mesg "Starting Web Service Discovery Host Daemon..." - loadproc -b -p "${PIDFILE}" /usr/bin/wsdd "${ARGS[@]}" - ;; - - stop) - boot_mesg "Stopping Web Service Discovery Host Daemon..." - killproc -p "${PIDFILE}" /usr/bin/wsdd - ;; - - status) - statusproc /usr/bin/wsdd - ;; - - restart) - $0 stop - $0 start - ;; - - *) - echo "Usage: $0 (start|stop|status|restart)" - exit 1 - ;; -esac -
This patch seems to remove the initscript but does not remove it from the root file.
I merged the whole lot and updated the root file. Please let me know if that was incorrect.
-Michael
On 18 Mar 2024, at 18:43, Adolf Belka adolf.belka@ipfire.org wrote:
Fixes: bug#13445 Tested-by: Adolf Belka adolf.belka@ipfire.org Signed-off-by: Adolf Belka adolf.belka@ipfire.org
src/initscripts/packages/wsdd | 78 ----------------------------------- 1 file changed, 78 deletions(-) delete mode 100644 src/initscripts/packages/wsdd
diff --git a/src/initscripts/packages/wsdd b/src/initscripts/packages/wsdd deleted file mode 100644 index 68e8f3de0..000000000 --- a/src/initscripts/packages/wsdd +++ /dev/null @@ -1,78 +0,0 @@ -#!/bin/sh -############################################################################### -# # -# IPFire.org - A linux based firewall # -# Copyright (C) 2007-2024 IPFire Team info@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/. # -# # -###############################################################################
-. /etc/sysconfig/rc -. $rc_functions
-eval $(/usr/local/bin/readhash /var/ipfire/ethernet/settings)
-PIDFILE="/var/run/wsdd.pid"
-case "$1" in
- start)
- ARGS=(
- # Launch as non-privileged user
- "--user" "wsdd:wsdd"
- # Launch in chroot
- "--chroot" "/var/run/wsdd"
- # Only use IPv4
- "--ipv4only"
- # Configure the workgroup
- "--workgroup" "$(testparm -s --parameter-name workgroup 2>/dev/null)"
- )
- # Conditionally add the GREEN/BLUE interface
- for intf in GREEN_DEV BLUE_DEV; do
- if [ -n "${!intf}" ]; then
- ARGS+=( "--interface" "${!intf}" )
- fi
- done
- # Create chroot directory for wsdd
- mkdir -p /var/run/wsdd
- boot_mesg "Starting Web Service Discovery Host Daemon..."
- loadproc -b -p "${PIDFILE}" /usr/bin/wsdd "${ARGS[@]}"
- ;;
- stop)
- boot_mesg "Stopping Web Service Discovery Host Daemon..."
- killproc -p "${PIDFILE}" /usr/bin/wsdd
- ;;
- status)
- statusproc /usr/bin/wsdd
- ;;
- restart)
- $0 stop
- $0 start
- ;;
- *)
- echo "Usage: $0 (start|stop|status|restart)"
- exit 1
- ;;
-esac
-- 2.44.0
On 19/03/2024 12:15, Michael Tremer wrote:
This patch seems to remove the initscript but does not remove it from the root file.
I merged the whole lot and updated the root file. Please let me know if that was incorrect.
Whoops, my error. Removing it from the rootfile was absolutely the correct thing to do. I removed the bits from the LFS but forgot the rootfile.
Thanks for catching that.
Regards, Adolf.
-Michael
On 18 Mar 2024, at 18:43, Adolf Belka adolf.belka@ipfire.org wrote:
Fixes: bug#13445 Tested-by: Adolf Belka adolf.belka@ipfire.org Signed-off-by: Adolf Belka adolf.belka@ipfire.org
src/initscripts/packages/wsdd | 78 ----------------------------------- 1 file changed, 78 deletions(-) delete mode 100644 src/initscripts/packages/wsdd
diff --git a/src/initscripts/packages/wsdd b/src/initscripts/packages/wsdd deleted file mode 100644 index 68e8f3de0..000000000 --- a/src/initscripts/packages/wsdd +++ /dev/null @@ -1,78 +0,0 @@ -#!/bin/sh -############################################################################### -# # -# IPFire.org - A linux based firewall # -# Copyright (C) 2007-2024 IPFire Team info@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/. # -# # -###############################################################################
-. /etc/sysconfig/rc -. $rc_functions
-eval $(/usr/local/bin/readhash /var/ipfire/ethernet/settings)
-PIDFILE="/var/run/wsdd.pid"
-case "$1" in
- start)
- ARGS=(
- # Launch as non-privileged user
- "--user" "wsdd:wsdd"
- # Launch in chroot
- "--chroot" "/var/run/wsdd"
- # Only use IPv4
- "--ipv4only"
- # Configure the workgroup
- "--workgroup" "$(testparm -s --parameter-name workgroup 2>/dev/null)"
- )
- # Conditionally add the GREEN/BLUE interface
- for intf in GREEN_DEV BLUE_DEV; do
- if [ -n "${!intf}" ]; then
- ARGS+=( "--interface" "${!intf}" )
- fi
- done
- # Create chroot directory for wsdd
- mkdir -p /var/run/wsdd
- boot_mesg "Starting Web Service Discovery Host Daemon..."
- loadproc -b -p "${PIDFILE}" /usr/bin/wsdd "${ARGS[@]}"
- ;;
- stop)
- boot_mesg "Stopping Web Service Discovery Host Daemon..."
- killproc -p "${PIDFILE}" /usr/bin/wsdd
- ;;
- status)
- statusproc /usr/bin/wsdd
- ;;
- restart)
- $0 stop
- $0 start
- ;;
- *)
- echo "Usage: $0 (start|stop|status|restart)"
- exit 1
- ;;
-esac
-- 2.44.0
- Removal of services line as wsdd will now be started by the samba option in the addon services wui page - Removal of installing separate wsdd initscript as it is nowe integrated into the samba initscript.
Fixes: bug#13445 Tested-by: Adolf Belka adolf.belka@ipfire.org Signed-off-by: Adolf Belka adolf.belka@ipfire.org --- lfs/wsdd | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-)
diff --git a/lfs/wsdd b/lfs/wsdd index aa65e47ef..bf2a1a032 100644 --- a/lfs/wsdd +++ b/lfs/wsdd @@ -33,11 +33,11 @@ DL_FROM = $(URL_IPFIRE) DIR_APP = $(DIR_SRC)/$(THISAPP) TARGET = $(DIR_INFO)/$(THISAPP) PROG = wsdd -PAK_VER = 1 +PAK_VER = 2
DEPS =
-SERVICES = wsdd +SERVICES =
############################################################################### # Top-level Rules @@ -82,8 +82,5 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @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)
- As wsdd is now started by samba when it is started then the wsdd install and uninstall paks no longer need to create the symlinks for starting and stopping wsdd and no longer need the start_service and stop_service commands in the paks.
Fixes: bug#13445 Tested-by: Adolf Belka adolf.belka@ipfire.org Signed-off-by: Adolf Belka adolf.belka@ipfire.org --- src/paks/wsdd/install.sh | 7 +------ src/paks/wsdd/uninstall.sh | 3 --- 2 files changed, 1 insertion(+), 9 deletions(-)
diff --git a/src/paks/wsdd/install.sh b/src/paks/wsdd/install.sh index 181b84eb9..12fde4802 100644 --- a/src/paks/wsdd/install.sh +++ b/src/paks/wsdd/install.sh @@ -24,7 +24,7 @@ . /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 +if ! getent passwd wsdd >/dev/null; then useradd -r -U -d / -s /bin/false -c "wsdd user" wsdd usermod -a -G wsdd wsdd fi @@ -32,9 +32,4 @@ 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 index 4c52ee281..9dc5202f4 100644 --- a/src/paks/wsdd/uninstall.sh +++ b/src/paks/wsdd/uninstall.sh @@ -22,9 +22,6 @@ ############################################################################ # . /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