From owner-svn-ports-all@freebsd.org Thu Oct 22 16:25:53 2015 Return-Path: Delivered-To: svn-ports-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 7F33BA1CA4C; Thu, 22 Oct 2015 16:25:53 +0000 (UTC) (envelope-from brd@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 5348F1BA2; Thu, 22 Oct 2015 16:25:53 +0000 (UTC) (envelope-from brd@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id t9MGPqU1050933; Thu, 22 Oct 2015 16:25:52 GMT (envelope-from brd@FreeBSD.org) Received: (from brd@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id t9MGPqvo050932; Thu, 22 Oct 2015 16:25:52 GMT (envelope-from brd@FreeBSD.org) Message-Id: <201510221625.t9MGPqvo050932@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: brd set sender to brd@FreeBSD.org using -f From: Brad Davis Date: Thu, 22 Oct 2015 16:25:52 +0000 (UTC) To: ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org Subject: svn commit: r399992 - head/Mk X-SVN-Group: ports-head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-ports-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the ports tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 22 Oct 2015 16:25:53 -0000 Author: brd Date: Thu Oct 22 16:25:52 2015 New Revision: 399992 URL: https://svnweb.freebsd.org/changeset/ports/399992 Log: Teach the ports framework to handle creating users/groups when PKG_ROOTDIR is set. This will enable help support pkg cross installs. PR: 203489 Reviewed by: bapt Approved by: portmgr (bapt) Approved by: bdrewery (mentor) Modified: head/Mk/bsd.port.mk Modified: head/Mk/bsd.port.mk ============================================================================== --- head/Mk/bsd.port.mk Thu Oct 22 16:02:43 2015 (r399991) +++ head/Mk/bsd.port.mk Thu Oct 22 16:25:52 2015 (r399992) @@ -3688,6 +3688,11 @@ create-users-groups: @${RM} -f ${_UG_OUTPUT} || ${TRUE} @${ECHO_MSG} "===> Creating users and/or groups." @${ECHO_CMD} "echo \"===> Creating users and/or groups.\"" >> ${_UG_OUTPUT} +.if ${OPSYS} != FreeBSD || ${OSVERSION} < 1002000 + @${ECHO_CMD} "PW=${PW}" >> ${_UG_OUTPUT} +.else + @${ECHO_CMD} -e "if [ -n \"\$${PKG_ROOTDIR}\" -a \"\$${PKG_ROOTDIR}\" != \"/\" ]; then PW=\"${PW} -R \$${PKG_ROOTDIR}\"; else PW=${PW}; fi" >> ${_UG_OUTPUT} +.endif .for _group in ${GROUPS} # _bgpd:*:130: @if ! ${GREP} -h ^${_group}: ${GID_FILES} >/dev/null 2>&1; then \ @@ -3696,9 +3701,9 @@ create-users-groups: fi @IFS=":"; ${GREP} -h ^${_group}: ${GID_FILES} | head -n 1 | while read group foo gid members; do \ gid=$$(($$gid+${GID_OFFSET})); \ - ${ECHO_CMD} -e "if ! ${PW} groupshow $$group >/dev/null 2>&1; then \n \ + ${ECHO_CMD} -e "if ! \$${PW} groupshow $$group >/dev/null 2>&1; then \n \ echo \"Creating group '$$group' with gid '$$gid'.\" \n \ - ${PW} groupadd $$group -g $$gid; else echo \"Using existing group '$$group'.\"\nfi" >> ${_UG_OUTPUT}; \ + \$${PW} groupadd $$group -g $$gid; else echo \"Using existing group '$$group'.\"\nfi" >> ${_UG_OUTPUT}; \ done .endfor .endif @@ -3719,9 +3724,9 @@ create-users-groups: gid=$$(($$gid+${GID_OFFSET})); \ class="$${class:+-L }$$class"; \ homedir=$$(echo $$homedir | sed "s|^/usr/local|${PREFIX}|"); \ - ${ECHO_CMD} -e "if ! ${PW} usershow $$login >/dev/null 2>&1; then \n \ + ${ECHO_CMD} -e "if ! \$${PW} usershow $$login >/dev/null 2>&1; then \n \ echo \"Creating user '$$login' with uid '$$uid'.\" \n \ - ${PW} useradd $$login -u $$uid -g $$gid $$class -c \"$$gecos\" -d $$homedir -s $$shell \n \ + \$${PW} useradd $$login -u $$uid -g $$gid $$class -c \"$$gecos\" -d $$homedir -s $$shell \n \ else \necho \"Using existing user '$$login'.\" \nfi" >> ${_UG_OUTPUT}; \ case $$homedir in /|/nonexistent|/var/empty) ;; *) ${ECHO_CMD} "${INSTALL} -d -g $$gid -o $$uid $$homedir" >> ${_UG_OUTPUT};; esac; \ done @@ -3734,9 +3739,9 @@ create-users-groups: IFS=","; for _login in $$members; do \ for _user in ${USERS}; do \ if [ "x$${_user}" = "x$${_login}" ]; then \ - ${ECHO_CMD} -e "if ! ${PW} groupshow ${_group} | ${GREP} -qw $${_login}; then \n \ + ${ECHO_CMD} -e "if ! \$${PW} groupshow ${_group} | ${GREP} -qw $${_login}; then \n \ echo \"Adding user '$${_login}' to group '${_group}'.\" \n \ - ${PW} groupmod ${_group} -m $${_login} \nfi" >> ${_UG_OUTPUT}; \ + \$${PW} groupmod ${_group} -m $${_login} \nfi" >> ${_UG_OUTPUT}; \ fi; \ done; \ done; \ @@ -3745,10 +3750,19 @@ create-users-groups: .endif .if defined(USERS) .for _user in ${USERS} +.if ${OPSYS} != FreeBSD || ${OSVERSION} < 1002000 + @if [ ! ${USERS_BLACKLIST:M${_user}} ]; then \ + ${ECHO_CMD} "@unexec PW=${PW}; \ + if \$${PW} usershow ${_user} >/dev/null 2>&1; then \ + echo \"==> You should manually remove the \\\"${_user}\\\" user. \"; fi" >> ${TMPPLIST}; \ + fi +.else @if [ ! ${USERS_BLACKLIST:M${_user}} ]; then \ - ${ECHO_CMD} "@unexec if ${PW} usershow ${_user} >/dev/null 2>&1; then \ - echo \"==> You should manually remove the \\\"${_user}\\\" user. \"; fi" >> ${TMPPLIST}; \ + ${ECHO_CMD} "@unexec if [ -n \"\$${PKG_ROOTDIR}\" -a \"\$${PKG_ROOTDIR}\" != \"/\" ]; then PW=\"${PW} -R \$${PKG_ROOTDIR}\"; else PW=${PW}; fi; \ + if \$${PW} usershow ${_user} >/dev/null 2>&1; then \ + echo \"==> You should manually remove the \\\"${_user}\\\" user. \"; fi" >> ${TMPPLIST}; \ fi +.endif .endfor .endif .endif