[Bug 292051] net/py-wsdd: 'service wsdd status' fails to report status correctly

From: <bugzilla-noreply_at_freebsd.org>
Date: Tue, 30 Dec 2025 19:07:01 UTC
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=292051

            Bug ID: 292051
           Summary: net/py-wsdd: 'service wsdd status' fails to report
                    status correctly
           Product: Ports & Packages
           Version: Latest
          Hardware: Any
                OS: Any
            Status: New
          Severity: Affects Only Me
          Priority: ---
         Component: Individual Port(s)
          Assignee: ports-bugs@FreeBSD.org
          Reporter: igor.arabesc.pavlov@gmail.com
                CC: hiroo.ono+freebsd@gmail.com
                CC: hiroo.ono+freebsd@gmail.com
             Flags: maintainer-feedback?(hiroo.ono+freebsd@gmail.com)

'service wsdd status' command doesn't work for me.

The service wsdd status command does not work as expected in my environment. It
fails to correctly identify whether the service is running. Even if the service
is running, the command reports that it is not.
I would like to suggest the following changes to the rc-script:
--- --- ---
#!/bin/sh

# PROVIDE: wsdd
# REQUIRE: DAEMON samba_server
# BEFORE: LOGIN
# KEYWORD: shutdown

# Add the following line in /etc/rc.conf to enable wsdd:
#
# wsdd_enable="YES"
# wsdd_flags="<set as needed>"
# wsdd_domain="<set if your host is an AD member>"
# wsdd_group="<set if you want to set the workgroup manually>"
#
# Do not specify -d DOMAIN or -w WORKGROUP in wsdd_flags. Instead, set
# wsdd_domain="DOMAIN" or wsdd_group="WORKGROUP", otherwise it will be
# overridden by automatically detected workgroup.
#

. /etc/rc.subr

name="wsdd"
rcvar="wsdd_enable"

pidfile="/var/run/${name}.pid"
procname="/usr/local/bin/wsdd"
command_interpreter="python3"

load_rc_config ${name}

: ${wsdd_enable:="NO"}
: ${wsdd_flags:=""}
: ${wsdd_domain:=""}
: ${wsdd_group:=""}
: ${wsdd_smb_config_file:="/usr/local/etc/smb4.conf"}

if [ -z "${wsdd_group}" ]; then
    # automatic detection of workgroup
    wsdd_group=$(/usr/local/bin/testparm -s --parameter-name workgroup
2>/dev/null)

    # try to manually extract workgroup from samba configuration if testparm
failed
    if [ -z "$wsdd_group" ] && [ -r $wsdd_smb_config_file ]; then
        wsdd_group="$(grep -i '^[[:space:]]*workgroup[[:space:]]*='
$wsdd_smb_config_file | cut -f2 -d= | tr -d '[:blank:]')"
    fi
fi

wsdd_opts=""
if [ -n "${wsdd_flags}" ]; then
    wsdd_opts="${wsdd_flags}"
    wsdd_flags="" # The variable should be cleared because its content is
implicitly inserted right after ${command}, which is unexpected for the daemon.
fi
if [ -n "$wsdd_domain" ]; then
    wsdd_opts="${wsdd_opts} -d ${wsdd_domain}"
elif [ -n "$wsdd_group" ]; then
    wsdd_opts="${wsdd_opts} -w ${wsdd_group}"
fi

command="/usr/sbin/daemon"
command_args="-u _wsdd -S -p ${pidfile} -- ${procname} ${wsdd_opts}"

run_rc_command "$1"
--- --- ---
This version works correctly for me.

-- 
You are receiving this mail because:
You are the assignee for the bug.