--- mk/pkginstall/usergroupfuncs.Linux-orig 2009-02-26 09:34:05.000000000 +0000 +++ mk/pkginstall/usergroupfuncs.Linux 2009-02-26 10:06:48.000000000 +0000 @@ -104,18 +104,26 @@ if ${TEST} -n "${USERADD}" -a -x "${USERADD}"; then ${ECHO} "${PKGNAME}: Creating user \`\`$user''" + case $userid in - "") - ${USERADD} \ + "") _extraopt="" ;; + *) _extraopt="-u ${userid}" ;; + esac + + _exitcode=0 + _exitmsg=$(${USERADD} \ -c "$descr" -d "$home" -s "$shell" \ - -g $group $user -M - ;; - *) + -g $group ${_extraopt} -M $user 2>&1 ) || _exitcode=$? + + # some versions useradd does not support '-M' + if [ ${_exitcode} -eq 2 ]; then ${USERADD} \ -c "$descr" -d "$home" -s "$shell" \ - -g $group -u $userid $user -M - ;; - esac + -g $group ${_extraopt} $user + elif [ ${_exitcode} -gt 0 ]; then + echo ${_exitmsg} + exit ${_exitcode} + fi fi return 0 }