FreeBSD Bugzilla – Attachment 75086 Details for
Bug 108514
[feature request] Automatic registering of UID and GID (bsd.port.mk)
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
file.diff
file.diff (text/plain), 8.09 KB, created by
Martin Matuska
on 2007-01-29 13:50:14 UTC
(
hide
)
Description:
file.diff
Filename:
MIME Type:
Creator:
Martin Matuska
Created:
2007-01-29 13:50:14 UTC
Size:
8.09 KB
patch
obsolete
>--- bsd.port.mk.orig Fri Jan 26 11:53:11 2007 >+++ bsd.port.mk Mon Jan 29 14:20:23 2007 >@@ -490,6 +490,44 @@ > ## > # USE_APACHE - If set, this port relies on an apache webserver. > # >+## >+# >+# Add required user and group entries on install. Use if your port needs user and group entries. >+# Uses existing groups/users, if available (does not overwrite). Groups are created before users. >+# >+# Group entries >+# >+# ADDGROUP - A list of group names to be added to the system on port >+# or package install. Existing groups will not be overwritten. >+# Default: not set. >+# >+# The following variables are effective only if [group] is in the ADDGROUP list >+# >+# ADDGROUP_[group]_gid - gid for [group] >+# Default: not set. (= use next gid from pw.conf) >+# ADDGROUP_[group]_members - members for [group] >+# Default: not set. >+# >+# User entries >+# >+# ADDUSER - A list of user names to be added to the system on port >+# or package install. Existing users will not be overwritten. >+# Default: not set. >+# >+# The following variables are effective only if [user] is in the ADDUSER list >+# >+# ADDUSER_[user]_uid - uid for [user] >+# Default: not set. (= use next uid from pw.conf) >+# ADDUSER_[user]_group - group name or gid for [user] >+# Default: not set. (= if a group with same name as [user] >+# exists it is used, else uses default gid from pw.conf) >+# ADDUSER_[user]_comment - comment for [user] >+# Default: "Sandbox" >+# ADDUSER_[user]_homedir - homedir for [user] >+# Default: / >+# ADDUSER_[user]_shell - shell for [user] >+# Default: nologin >+# > # Conflict checking. Use if your port cannot be installed at the same time as > # another package. > # >@@ -1085,11 +1123,13 @@ > MKDIR?= /bin/mkdir -p > MKTEMP?= /usr/bin/mktemp > MV?= /bin/mv >+NOLOGIN?= /usr/sbin/nologin > OBJCOPY?= /usr/bin/objcopy > OBJDUMP?= /usr/bin/objdump > PASTE?= /usr/bin/paste > PAX?= /bin/pax > PRINTF?= /usr/bin/printf >+PW?= /usr/sbin/pw > REALPATH?= /bin/realpath > RM?= /bin/rm > RMDIR?= /bin/rmdir >@@ -3675,6 +3715,92 @@ > .endif > .endif > >+# Add users and groups >+ >+INSTALL_USERGROUP= ${WRKDIR}/.install-usergroup >+DEINSTALL_USERGROUP= ${WRKDIR}/.deinstall-usergroup >+ >+.if !target(add-user-group) >+add-user-group: >+.if defined(ADDGROUP) || defined(ADDUSER) >+ @${ECHO_CMD} \#\!${SH} > ${INSTALL_USERGROUP} >+ @${ECHO_CMD} \#\!${SH} > ${DEINSTALL_USERGROUP} >+.endif >+.if defined(ADDGROUP) >+ @${ECHO_CMD} ${ECHO_MSG} \"===\> The port may have added the following group\(s\):\" >> ${DEINSTALL_USERGROUP} >+ @${ECHO_CMD} -n "${ECHO_MSG} " >> ${DEINSTALL_USERGROUP} >+.for _ADDGROUP in ${ADDGROUP} >+ @${ECHO_CMD} ${ECHO_MSG} \"===\> Checking if group ${_ADDGROUP} exists\" >> ${INSTALL_USERGROUP} >+ @${ECHO_CMD} ${PW} groupshow ${_ADDGROUP} \>/dev/null 2\>/dev/null \|\| err=\"1\" >> ${INSTALL_USERGROUP} >+ @${ECHO_CMD} if [ \"$$\{err\}\" != \"1\" ] \; then >> ${INSTALL_USERGROUP} >+ @${ECHO_CMD} ${ECHO_MSG} \"===\> Group ${_ADDGROUP} already exists, using existing\"\; ${TRUE} >> ${INSTALL_USERGROUP} >+ @${ECHO_CMD} else >> ${INSTALL_USERGROUP} >+ @${ECHO_CMD} -n err=0\; >> ${INSTALL_USERGROUP} >+.if defined(ADDGROUP_${_ADDGROUP}_gid) >+ @${ECHO_CMD} PW_GID=\"-g ${ADDGROUP_${_ADDGROUP}_gid}\" >> ${INSTALL_USERGROUP} >+.endif >+.if defined(ADDGROUP_${_ADDGROUP}_members) >+ @${ECHO_CMD} PW_MEMBERS=\"-M ${ADDGROUP_${_ADDGROUP}_members}\" >> ${INSTALL_USERGROUP} >+.endif >+ @${ECHO_CMD} ${PW} groupadd ${_ADDGROUP} -q \$${PW_GID} \$${PW_MEMBERS} \|\| err="1" >> ${INSTALL_USERGROUP} >+ @${ECHO_CMD} if [ \"$$\{err\}\" = \"1\" ] \; then >> ${INSTALL_USERGROUP} >+ @${ECHO_CMD} ${ECHO_MSG} \"Error: Could not add group ${_ADDGROUP}\"\; ${FALSE} >> ${INSTALL_USERGROUP} >+ @${ECHO_CMD} else >> ${INSTALL_USERGROUP} >+ @${ECHO_CMD} ${ECHO_MSG} \"===\> Added group ${_ADDGROUP}\"\; ${ECHO_MSG} \`${PW} groupshow ${_ADDGROUP}\` >> ${INSTALL_USERGROUP} >+ @${ECHO_CMD} fi\; fi >> ${INSTALL_USERGROUP} >+ @${ECHO_CMD} -n "${_ADDGROUP} " >> ${DEINSTALL_USERGROUP} >+.endfor >+ @${ECHO_CMD} >> ${DEINSTALL_USERGROUP} >+.endif >+.if defined(ADDUSER) >+ @${ECHO_CMD} ${ECHO_MSG} \"===\> The port may have added the following user\(s\):\" >> ${DEINSTALL_USERGROUP} >+ @${ECHO_CMD} -n "${ECHO_MSG} " >> ${DEINSTALL_USERGROUP} >+.for _ADDUSER in ${ADDUSER} >+ @${ECHO_CMD} ${ECHO_MSG} \"===\> Checking if user ${_ADDUSER} exists\" >> ${INSTALL_USERGROUP} >+ @${ECHO_CMD} ${PW} usershow ${_ADDUSER} \>/dev/null 2\>/dev/null \|\| err=\"1\" >> ${INSTALL_USERGROUP} >+ @${ECHO_CMD} if [ \"$$\{err\}\" != \"1\" ] \; then >> ${INSTALL_USERGROUP} >+ @${ECHO_CMD} ${ECHO_MSG} \"===\> User ${_ADDUSER} already exists, using existing\"\; err=0\; ${TRUE} >> ${INSTALL_USERGROUP} >+ @${ECHO_CMD} else err=0\;>> ${INSTALL_USERGROUP} >+.if defined(ADDUSER_${_ADDUSER}_uid) >+ @${ECHO_CMD} PW_UID=\"-u ${ADDUSER_${_ADDUSER}_uid}\" >> ${INSTALL_USERGROUP} >+.endif >+.if defined(ADDUSER_${_ADDUSER}_group) >+ @${ECHO_CMD} PW_GROUP=\"-g ${ADDUSER_${_ADDUSER}_group}\" >> ${INSTALL_USERGROUP} >+.else >+ @${ECHO_CMD} ${PW} groupshow ${_ADDUSER} \>/dev/null 2\>/dev/null || err=\"1\"; >> ${INSTALL_USERGROUP} >+ @${ECHO_CMD} if [ \"$$\{err\}\" != \"1\" ] \; then >> ${INSTALL_USERGROUP} >+ @${ECHO_CMD} PW_GROUP=\"-g ${_ADDUSER}\"\; fi\; err=0\; >> ${INSTALL_USERGROUP} >+.endif >+.if defined(ADDUSER_${_ADDUSER}_comment) >+ @${ECHO_CMD} PW_COMMENT=\"${ADDUSER_${_ADDUSER}_comment}\" >> ${INSTALL_USERGROUP} >+.else >+ @${ECHO_CMD} PW_COMMENT=\"Sandbox\" >> ${INSTALL_USERGROUP} >+.endif >+.if defined(ADDUSER_${_ADDUSER}_homedir) >+ @${ECHO_CMD} PW_HOMEDIR=\"${ADDUSER_${_ADDUSER}_homedir}\" >> ${INSTALL_USERGROUP} >+.else >+ @${ECHO_CMD} PW_HOMEDIR=\"/\" >> ${INSTALL_USERGROUP} >+.endif >+.if defined(ADDUSER_${_ADDUSER}_shell) >+ @${ECHO_CMD} PW_SHELL=\"${ADDUSER_${_ADDUSER}_shell}\" >> ${INSTALL_USERGROUP} >+.else >+ @${ECHO_CMD} PW_SHELL=\"${NOLOGIN}\" >> ${INSTALL_USERGROUP} >+.endif >+ @${ECHO_CMD} ${PW} useradd ${_ADDUSER} -q \$${PW_UID} \$${PW_GROUP} -c \"\$${PW_COMMENT}\" -d \"\$${PW_HOMEDIR}\" -s \"\$${PW_SHELL}\" \|\| err=\"1\" >> ${INSTALL_USERGROUP} >+ @${ECHO_CMD} if [ \"\$$\{err\}\" = \"1\" ] \; then >> ${INSTALL_USERGROUP} >+ @${ECHO_CMD} ${ECHO_MSG} "Error: Could not add user ${_ADDUSER}"\; err=0\; ${FALSE} >> ${INSTALL_USERGROUP} >+ @${ECHO_CMD} else >> ${INSTALL_USERGROUP} >+ @${ECHO_CMD} ${ECHO_MSG} \"===\> Added user ${_ADDUSER}\"\; ${ECHO_MSG} \`${PW} usershow ${_ADDUSER}\` >> ${INSTALL_USERGROUP} >+ @${ECHO_CMD} fi\; fi >> ${INSTALL_USERGROUP} >+ @${ECHO_CMD} -n "${_ADDUSER} " >> ${DEINSTALL_USERGROUP} >+.endfor >+ @${ECHO_CMD} >> ${DEINSTALL_USERGROUP} >+.endif >+.if defined(ADDGROUP) || defined(ADDUSER) >+ @${SH} ${INSTALL_USERGROUP} >+.endif >+.endif >+ > # Package > > .if !target(do-package) >@@ -3695,6 +3821,12 @@ > if [ -f ${PKGDEINSTALL} ]; then \ > _LATE_PKG_ARGS="$${_LATE_PKG_ARGS} -k ${PKGDEINSTALL}"; \ > fi; \ >+ if [ -f ${INSTALL_USERGROUP} ]; then \ >+ _LATE_PKG_ARGS="$${_LATE_PKG_ARGS} -I ${INSTALL_USERGROUP}"; \ >+ fi; \ >+ if [ -f ${DEINSTALL_USERGROUP} ]; then \ >+ _LATE_PKG_ARGS="$${_LATE_PKG_ARGS} -K ${DEINSTALL_USERGROUP}"; \ >+ fi; \ > if [ -f ${PKGREQ} ]; then \ > _LATE_PKG_ARGS="$${_LATE_PKG_ARGS} -r ${PKGREQ}"; \ > fi; \ >@@ -4144,8 +4276,9 @@ > _INSTALL_SUSEQ= check-umask install-mtree pre-su-install \ > pre-su-install-script do-install install-desktop-entries \ > post-install post-install-script add-plist-info \ >- add-plist-docs add-plist-post install-rc-script compress-man \ >- install-ldconfig-file fake-pkg security-check >+ add-plist-docs add-plist-post \ >+ add-user-group install-rc-script \ >+ compress-man install-ldconfig-file fake-pkg security-check > _PACKAGE_DEP= install > _PACKAGE_SEQ= package-message pre-package pre-package-script \ > do-package post-package-script >@@ -5622,8 +5755,14 @@ > if [ -f ${PKGINSTALL} ]; then \ > ${CP} ${PKGINSTALL} ${PKG_DBDIR}/${PKGNAME}/+INSTALL; \ > fi; \ >+ if [ -f ${INSTALL_USERGROUP} ]; then \ >+ ${CP} ${INSTALL_USERGROUP} ${PKG_DBDIR}/${PKGNAME}/+POST-INSTALL; \ >+ fi; \ > if [ -f ${PKGDEINSTALL} ]; then \ > ${CP} ${PKGDEINSTALL} ${PKG_DBDIR}/${PKGNAME}/+DEINSTALL; \ >+ fi; \ >+ if [ -f ${DEINSTALL_USERGROUP} ]; then \ >+ ${CP} ${DEINSTALL_USERGROUP} ${PKG_DBDIR}/${PKGNAME}/+POST-DEINSTALL; \ > fi; \ > if [ -f ${PKGREQ} ]; then \ > ${CP} ${PKGREQ} ${PKG_DBDIR}/${PKGNAME}/+REQUIRE; \
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 108514
: 75086