ports/149177: Samba rc script gives wrong output format for rcvar command

Anselm Strauss amsibamsi at gmail.com
Sun Aug 1 13:00:12 UTC 2010


>Number:         149177
>Category:       ports
>Synopsis:       Samba rc script gives wrong output format for rcvar command
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    freebsd-ports-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Sun Aug 01 13:00:10 UTC 2010
>Closed-Date:
>Last-Modified:
>Originator:     Anselm Strauss
>Release:        8.1-RELEASE
>Organization:
-
>Environment:
FreeBSD hulk.l.ttyv0.net 8.1-RELEASE FreeBSD 8.1-RELEASE #0: Mon Jul 19 02:36:49 UTC 2010     root at mason.cse.buffalo.edu:/usr/obj/usr/src/sys/GENERIC  amd64
>Description:
Port: net/samba34

/usr/loca/etc/rc.d/samba rcvar gives:

# samba
$samba_enable=YES
# nmbd
#
nmbd_enable="YES"
#   (default: "")

# smbd
#
nmbd_enable="YES"
#   (default: "")
smbd_enable="YES"
#   (default: "")

Compared to /etc/rc.d/sshd rcvar:

# sshd
#
sshd_enable="YES"
#   (default: "")

The output from samba uses an initial dollar sign and no double quotes in the variable name. This is different from all other rc scripts I've seen and is annoying when automatically parsing output from the command.
>How-To-Repeat:
Execute "/usr/local/etc/rc.d/samba rcvar" in a shell.
>Fix:
Patch /usr/local/etc/rc.d/samba.

Patch attached with submission follows:

*** /usr/local/etc/rc.d/samba	Sun Aug  1 14:27:05 2010
--- /usr/local/etc/rc.d/samba.new	Sun Aug  1 14:25:24 2010
***************
*** 102,113 ****
      unset "${rc_arg}_cmd" "${rc_arg}_precmd" "${rc_arg}_postcmd"
      # Check master variable
      echo "# ${name}"
      if [ -n "${rcvar}" ]; then
  	# Use original configured value
  	if checkyesno "real_${rcvar}"; then
! 	    echo "\$${rcvar}=YES"
  	else
! 	    echo "\$${rcvar}=NO"
  	fi
      fi
      # Check dependent variables
--- 102,114 ----
      unset "${rc_arg}_cmd" "${rc_arg}_precmd" "${rc_arg}_postcmd"
      # Check master variable
      echo "# ${name}"
+     echo "#"
      if [ -n "${rcvar}" ]; then
  	# Use original configured value
  	if checkyesno "real_${rcvar}"; then
! 	    echo "${rcvar}=\"YES\""
  	else
! 	    echo "${rcvar}=\"NO\""
  	fi
      fi
      # Check dependent variables


>Release-Note:
>Audit-Trail:
>Unformatted:



More information about the freebsd-ports-bugs mailing list