ports/159577: [PATCH] ports/Mk/bsd.port.mk: fix and simplify adding USERS to GROUPS

Sahil Tandon sahil at FreeBSD.org
Sun Aug 7 08:00:22 UTC 2011


>Number:         159577
>Category:       ports
>Synopsis:       [PATCH] ports/Mk/bsd.port.mk: fix and simplify adding USERS to GROUPS
>Confidential:   no
>Severity:       non-critical
>Priority:       medium
>Responsible:    freebsd-ports-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          change-request
>Submitter-Id:   current-users
>Arrival-Date:   Sun Aug 07 08:00:21 UTC 2011
>Closed-Date:
>Last-Modified:
>Originator:     Sahil Tandon
>Release:        FreeBSD 9.0-CURRENT i386
>Organization:
>Environment:

	
>Description:
In the attached patch, I aim to fix the USERS/GROUPS problem described 
in a recent thread on freebsd-ports:

 http://lists.freebsd.org/pipermail/freebsd-ports/2011-August/069053.html

I also removed a DEBUG line that I believe was unintentionally
committed as an artifact of ports/152498 (see flz's last comment in the
audit-trail).

>How-To-Repeat:
See abovementioned thread.
>Fix:

	



--- bsd.port.mk.diff begins here ---
Index: bsd.port.mk
===================================================================
RCS file: /home/pcvs/ports/Mk/bsd.port.mk,v
retrieving revision 1.690
diff -u -r1.690 bsd.port.mk
--- bsd.port.mk	21 Jul 2011 15:10:46 -0000	1.690
+++ bsd.port.mk	7 Aug 2011 07:36:02 -0000
@@ -4237,14 +4237,13 @@
 		IFS=","; for _login in $$members; do \
 			for _user in ${USERS}; do \
 				if [ "x$${_user}" = "x$${_login}" ]; then \
-					list=`${PW} usershow $${_login} -P | ${SED} -ne 's/.*Groups: //p'`; \
-					${ECHO_MSG} "Setting \`$${_login}' groups to \`$$list$${list:+,}${_group}'."; \
-					${PW} usermod $${_login} -G $$list$${list:+,}${_group}; \
-					${ECHO_CMD} "@exec list=\`${PW} usershow $${_login} -P | ${SED} -ne 's/.*Groups: //p'\`; \
-					echo \"Setting '$${_login}' groups to '$$list$${list:+,}${_group}'.\";  \
-					${PW} usermod $${_login} -G $${list},${_group}" >> ${TMPPLIST}; \
-				else \
-					${ECHO_MSG} "==> DEBUG skip login $${_login} =>  not defined in USERS \"( ${USERS} )\""; \
+					if ! ${PW} groupshow ${_group} | ${GREP} -qw $${_login}; then \
+						${ECHO_MSG} "Adding user \`$${_login}' to group \`${_group}'."; \
+						${PW} groupmod ${_group} -m $${_login}; \
+					fi; \
+					${ECHO_CMD} "@exec if ! ${PW} groupshow ${_group} | ${GREP} -qw $${_login}; then \
+						echo \"Adding user '$${_login}' to group '${_group}'.\"; \
+						${PW} groupmod ${_group} -m $${_login}; fi" >> ${TMPPLIST}; \
 				fi; \
 			done; \
 		done; \
--- bsd.port.mk.diff ends here ---

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



More information about the freebsd-ports-bugs mailing list