Gentoo Archives: gentoo-dev

From: "Michał Górny" <mgorny@g.o>
To: gentoo-dev@l.g.o
Subject: Re: [gentoo-dev] [PATCH] acct-*.eclass: Allow dynamic UID/GID assignment via -1
Date: Sat, 17 Aug 2019 20:37:20
Message-Id: faf7b6b4dacb4a07afa2a9e3c7f6e8b6214b4da8.camel@gentoo.org
In Reply to: [gentoo-dev] [PATCH] acct-*.eclass: Allow dynamic UID/GID assignment via -1 by "Michał Górny"
1 On Wed, 2019-08-07 at 19:10 +0200, Michał Górny wrote:
2 > Allow a special value of '-1' to dynamically assign UID/GID for the user
3 > or group. This is intended to be used in overlays where proper
4 > assignment does not take place but whose owners wish to switch to acct-*
5 > packages.
6 >
7 > While technically it is possible to choose a free UID/GID, it could be
8 > taken afterwards by some Gentoo package and unnecessarily introduce
9 > a conflict. Using '999' was also suggested (as the first dynamic
10 > UID/GID) but it would cause issues for people enabling
11 > ACCT_*_ENFORCE_ID. To avoid this, '-1' does not trigger collision
12 > checks.
13 >
14 > Signed-off-by: Michał Górny <mgorny@g.o>
15 > ---
16 > eclass/acct-group.eclass | 4 ++++
17 > eclass/acct-user.eclass | 4 ++++
18 > 2 files changed, 8 insertions(+)
19 >
20 > diff --git a/eclass/acct-group.eclass b/eclass/acct-group.eclass
21 > index 9eab00db690f..d5ccd209c9e3 100644
22 > --- a/eclass/acct-group.eclass
23 > +++ b/eclass/acct-group.eclass
24 > @@ -59,6 +59,9 @@ readonly ACCT_GROUP_NAME
25 > # @DESCRIPTION:
26 > # Preferred GID for the new group. This variable is obligatory, and its
27 > # value must be unique across all group packages.
28 > +#
29 > +# Overlays should set this to -1 to dynamically allocate GID. Using -1
30 > +# in ::gentoo is prohibited by policy.
31 >
32 > # @ECLASS-VARIABLE: ACCT_GROUP_ENFORCE_ID
33 > # @DESCRIPTION:
34 > @@ -87,6 +90,7 @@ acct-group_pkg_pretend() {
35 >
36 > # verify ACCT_GROUP_ID
37 > [[ -n ${ACCT_GROUP_ID} ]] || die "Ebuild error: ACCT_GROUP_ID must be set!"
38 > + [[ ${ACCT_GROUP_ID} -eq -1 ]] && return
39 > [[ ${ACCT_GROUP_ID} -ge 0 ]] || die "Ebuild errors: ACCT_GROUP_ID=${ACCT_GROUP_ID} invalid!"
40 >
41 > # check for ACCT_GROUP_ID collisions early
42 > diff --git a/eclass/acct-user.eclass b/eclass/acct-user.eclass
43 > index 60009643c144..17a58e9126e4 100644
44 > --- a/eclass/acct-user.eclass
45 > +++ b/eclass/acct-user.eclass
46 > @@ -67,6 +67,9 @@ readonly ACCT_USER_NAME
47 > # @DESCRIPTION:
48 > # Preferred UID for the new user. This variable is obligatory, and its
49 > # value must be unique across all user packages.
50 > +#
51 > +# Overlays should set this to -1 to dynamically allocate GID. Using -1
52 > +# in ::gentoo is prohibited by policy.
53 >
54 > # @ECLASS-VARIABLE: ACCT_USER_ENFORCE_ID
55 > # @DESCRIPTION:
56 > @@ -279,6 +282,7 @@ acct-user_pkg_pretend() {
57 >
58 > # verify ACCT_USER_ID
59 > [[ -n ${ACCT_USER_ID} ]] || die "Ebuild error: ACCT_USER_ID must be set!"
60 > + [[ ${ACCT_USER_ID} -eq -1 ]] && return
61 > [[ ${ACCT_USER_ID} -ge 0 ]] || die "Ebuild errors: ACCT_USER_ID=${ACCT_USER_ID} invalid!"
62 >
63 > # check for ACCT_USER_ID collisions early
64
65 Pushed now.
66 --
67 Best regards,
68 Michał Górny

Attachments

File name MIME type
signature.asc application/pgp-signature

Replies