diff --git a/net/py-wsdd/Makefile b/net/py-wsdd/Makefile index d67599d25e8b..338fa9f54341 100644 --- a/net/py-wsdd/Makefile +++ b/net/py-wsdd/Makefile @@ -1,40 +1,45 @@ PORTNAME= wsdd DISTVERSIONPREFIX= v DISTVERSION= 0.9 +PORTREVISION= 1 CATEGORIES= net python PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX} MAINTAINER= hiroo.ono+freebsd@gmail.com COMMENT= Web Service Discovery (WSD) host daemon for Samba WWW= https://github.com/christgau/wsdd LICENSE= MIT LICENSE_FILE= ${WRKSRC}/LICENSE USES= python:run shebangfix USE_GITHUB= yes GH_ACCOUNT= christgau SHEBANG_FILES= src/${PORTNAME}.py NO_ARCH= yes NO_BUILD= yes USERS= _wsdd GROUPS= _wsdd PLIST_FILES= bin/${PORTNAME} \ etc/rc.d/${PORTNAME} \ share/man/man8/${PORTNAME}.8.gz +SUB_FILES= pkg-message post-patch: - ${REINPLACE_CMD} 's|PYTHON|${PYTHON_CMD}|' ${WRKSRC}/etc/rc.d/${PORTNAME}.freebsd + ${REINPLACE_CMD} \ + -e 's|%%PYTHON_CMD%%|${PYTHON_CMD}|' \ + -e 's|%%LOCALBASE%%|${LOCALBASE}|' \ + ${WRKSRC}/etc/rc.d/${PORTNAME}.freebsd do-install: ${INSTALL_SCRIPT} ${WRKSRC}/src/${PORTNAME}.py \ ${STAGEDIR}${PREFIX}/bin/${PORTNAME} @${MKDIR} ${STAGEDIR}${PREFIX}/etc/rc.d ${INSTALL_SCRIPT} ${WRKSRC}/etc/rc.d/${PORTNAME}.freebsd \ ${STAGEDIR}${PREFIX}/etc/rc.d/${PORTNAME} ${INSTALL_MAN} ${WRKSRC}/man/${PORTNAME}.8 \ ${STAGEDIR}${PREFIX}/share/man/man8/ .include diff --git a/net/py-wsdd/files/patch-etc_rc.d_wsdd.freebsd b/net/py-wsdd/files/patch-etc_rc.d_wsdd.freebsd index 99cea996ddb8..131d8e807745 100644 --- a/net/py-wsdd/files/patch-etc_rc.d_wsdd.freebsd +++ b/net/py-wsdd/files/patch-etc_rc.d_wsdd.freebsd @@ -1,78 +1,84 @@ ---- etc/rc.d/wsdd.freebsd.orig 2020-06-28 19:10:44 UTC +--- etc/rc.d/wsdd.freebsd.orig 2025-06-01 20:58:08 UTC +++ etc/rc.d/wsdd.freebsd -@@ -2,28 +2,64 @@ +@@ -2,28 +2,69 @@ # PROVIDE: wsdd # REQUIRE: DAEMON samba_server -# BEFORE: login +# BEFORE: LOGIN # KEYWORD: shutdown +# Add the following line in /etc/rc.conf to enable wsdd: +# +# wsdd_enable="YES" +# wsdd_flags="" +# wsdd_domain="" -+# wsdd_group="" ++# wsdd_workgroup="" ++# ++# The wsdd_domain option will override the wsdd_workgroup option. +# +# 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. ++# wsdd_domain="DOMAIN" or wsdd_workgroup="WORKGROUP", otherwise it ++# will be overridden by automatically detected workgroup. +# + . /etc/rc.subr - name=wsdd - rcvar=wsdd_enable +-name=wsdd +-rcvar=wsdd_enable -wsdd_group=$(/usr/local/bin/testparm -s --parameter-name workgroup 2>/dev/null) ++name="wsdd" ++rcvar="wsdd_enable" -: ${wsdd_smb_config_file="/usr/local/etc/smb4.conf"} +load_rc_config ${name} -# 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:]')" +: ${wsdd_enable:="NO"} +: ${wsdd_flags:=""} +: ${wsdd_domain:=""} -+: ${wsdd_group:=""} -+: ${wsdd_smb_config_file:="/usr/local/etc/smb4.conf"} ++: ${wsdd_workgroup:=""} ++: ${wsdd_smb_config_file:="%%LOCALBASE%%/etc/smb4.conf"} + -+if [ -z "${wsdd_group}" ]; then ++if [ -n "${wsdd_group}" ]; then ++ warn "wsdd_group is replaced by wsdd_workgroup, check your configuration." ++ wsdd_workgroup="${wsdd_workgroup:-$wsdd_group}" ++ wsdd_group="" + fi + +-if [ -n "$wsdd_group" ]; then +- wsdd_opts="-w ${wsdd_group}" ++if [ -z "${wsdd_workgroup}" ]; then + # automatic detection of workgroup -+ wsdd_group=$(/usr/local/bin/testparm -s --parameter-name workgroup 2>/dev/null) ++ wsdd_workgroup=$(/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:]')" ++ if [ -z "$wsdd_workgroup" ] && [ -r $wsdd_smb_config_file ]; then ++ wsdd_workgroup="$(grep -i '^[[:space:]]*workgroup[[:space:]]*=' $wsdd_smb_config_file | cut -f2 -d= | tr -d '[:blank:]')" + fi fi --if [ -n "$wsdd_group" ]; then -- wsdd_opts="-w ${wsdd_group}" +wsdd_opts="" +if [ -n "${wsdd_flags}" ]; then + wsdd_opts="${wsdd_flags}" - fi ++ # wsdd_flags is added just after ${command}, so clear it. ++ wsdd_flags="" ++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}" ++elif [ -n "$wsdd_workgroup" ]; then ++ wsdd_opts="${wsdd_opts} -w ${wsdd_workgroup}" +fi - --command="/usr/sbin/daemon" --command_args="-u daemon -S /usr/local/bin/wsdd $wsdd_opts" -+command="/usr/local/bin/wsdd" -+procname="PYTHON" ++ ++procname="%%LOCALBASE%%/bin/wsdd" +pidfile="/var/run/${name}.pid" + command="/usr/sbin/daemon" +-command_args="-u daemon -S /usr/local/bin/wsdd $wsdd_opts" ++command_interpreter="%%PYTHON_CMD%%" ++command_args="-u _wsdd -S -p ${pidfile} -- ${procname} ${wsdd_opts}" -load_rc_config $name -+start_cmd="${name}_start" -+ -+wsdd_start() -+{ -+ echo "Starting ${name}." -+ /usr/sbin/daemon -u _wsdd -S -p ${pidfile} ${command} ${wsdd_opts} -+} + run_rc_command "$1" diff --git a/net/py-wsdd/files/pkg-message.in b/net/py-wsdd/files/pkg-message.in new file mode 100644 index 000000000000..dc1572452fe5 --- /dev/null +++ b/net/py-wsdd/files/pkg-message.in @@ -0,0 +1,9 @@ +[ +{ type: install + message: <