Thank you.
Kind Regards, Jaco On 2019/08/17 22:37, Michał Górny wrote: > On Wed, 2019-08-07 at 19:10 +0200, Michał Górny wrote: >> Allow a special value of '-1' to dynamically assign UID/GID for the user >> or group. This is intended to be used in overlays where proper >> assignment does not take place but whose owners wish to switch to acct-* >> packages. >> >> While technically it is possible to choose a free UID/GID, it could be >> taken afterwards by some Gentoo package and unnecessarily introduce >> a conflict. Using '999' was also suggested (as the first dynamic >> UID/GID) but it would cause issues for people enabling >> ACCT_*_ENFORCE_ID. To avoid this, '-1' does not trigger collision >> checks. >> >> Signed-off-by: Michał Górny <[email protected]> >> --- >> eclass/acct-group.eclass | 4 ++++ >> eclass/acct-user.eclass | 4 ++++ >> 2 files changed, 8 insertions(+) >> >> diff --git a/eclass/acct-group.eclass b/eclass/acct-group.eclass >> index 9eab00db690f..d5ccd209c9e3 100644 >> --- a/eclass/acct-group.eclass >> +++ b/eclass/acct-group.eclass >> @@ -59,6 +59,9 @@ readonly ACCT_GROUP_NAME >> # @DESCRIPTION: >> # Preferred GID for the new group. This variable is obligatory, and its >> # value must be unique across all group packages. >> +# >> +# Overlays should set this to -1 to dynamically allocate GID. Using -1 >> +# in ::gentoo is prohibited by policy. >> >> # @ECLASS-VARIABLE: ACCT_GROUP_ENFORCE_ID >> # @DESCRIPTION: >> @@ -87,6 +90,7 @@ acct-group_pkg_pretend() { >> >> # verify ACCT_GROUP_ID >> [[ -n ${ACCT_GROUP_ID} ]] || die "Ebuild error: ACCT_GROUP_ID must be >> set!" >> + [[ ${ACCT_GROUP_ID} -eq -1 ]] && return >> [[ ${ACCT_GROUP_ID} -ge 0 ]] || die "Ebuild errors: >> ACCT_GROUP_ID=${ACCT_GROUP_ID} invalid!" >> >> # check for ACCT_GROUP_ID collisions early >> diff --git a/eclass/acct-user.eclass b/eclass/acct-user.eclass >> index 60009643c144..17a58e9126e4 100644 >> --- a/eclass/acct-user.eclass >> +++ b/eclass/acct-user.eclass >> @@ -67,6 +67,9 @@ readonly ACCT_USER_NAME >> # @DESCRIPTION: >> # Preferred UID for the new user. This variable is obligatory, and its >> # value must be unique across all user packages. >> +# >> +# Overlays should set this to -1 to dynamically allocate GID. Using -1 >> +# in ::gentoo is prohibited by policy. >> >> # @ECLASS-VARIABLE: ACCT_USER_ENFORCE_ID >> # @DESCRIPTION: >> @@ -279,6 +282,7 @@ acct-user_pkg_pretend() { >> >> # verify ACCT_USER_ID >> [[ -n ${ACCT_USER_ID} ]] || die "Ebuild error: ACCT_USER_ID must be >> set!" >> + [[ ${ACCT_USER_ID} -eq -1 ]] && return >> [[ ${ACCT_USER_ID} -ge 0 ]] || die "Ebuild errors: >> ACCT_USER_ID=${ACCT_USER_ID} invalid!" >> >> # check for ACCT_USER_ID collisions early > Pushed now.
