--- user.eclass 2012-06-22 19:31:13.000000000 +0000 +++ user.eclass 2013-09-01 07:03:41.917314705 +0000 @@ -127,25 +127,26 @@ # handle uid local euid=$1; shift - if [[ -n ${euid} && ${euid} != -1 ]] ; then - if [[ ${euid} -gt 0 ]] ; then - if [[ -n $(egetent passwd ${euid}) ]] ; then - euid="next" - fi - else - eerror "Userid given but is not greater than 0 !" - die "${euid} is not a valid UID" + if [[ -z ${euid} || ${euid} -eq -1 ]] ; then + euid="next" + elif [[ ${euid} -gt 0 ]] ; then + if [[ -n $(egetent passwd ${euid}) ]] ; then + euid="next" fi else - euid="next" + eerror "Userid given but is not greater than 0 !" + die "${euid} is not a valid UID" fi - if [[ ${euid} == "next" ]] ; then + # not nessesary on linux #477804 + if [[ ${CHOST} != *-linux* && ${euid} == "next" ]]; then for ((euid = 101; euid <= 999; euid++)); do [[ -z $(egetent passwd ${euid}) ]] && break done fi - opts+=( -u ${euid} ) - einfo " - Userid: ${euid}" + if [[ ${euid} != "next" ]] ; then + opts+=( -u ${euid} ) + einfo " - Userid: ${euid}" + fi # handle shell local eshell=$1; shift