On Wed, 2019-06-05 at 17:14 -0400, Michael Orlitzky wrote: > On 6/5/19 5:12 AM, Michał Górny wrote: > > + > > + # check for ACCT_USER_ID collisions early > > + if [[ -n ${ACCT_USER_ENFORCE_ID} ]]; then > > + local pwd=$(egetent passwd "${ACCT_USER_ID}") > > + if [[ -n ${pwd} ]]; then > > + eerror "The required UID is already taken by another > > user." > > + eerror " UID: ${ACCT_USER_ID} (needed for ${PN})" > > + eerror " current user: ${pwd}" > > + die "UID ${ACCT_USER_ID} taken already" > > + fi > > + fi > > +} > > If we set ACCT_USER_ENFORCE_ID=true in ftp-0.ebuild and then "emerge > acct-user/ftp" again, the second one dies with > > * The required UID is already taken by another user. > * UID: 21 (needed for ftp) > > This prevents "emerge -e @world" from working, and would prevent an > upgrade to ftp-1.ebuild in the future. > > We could augment the checks to ignore the existing user/group if its > name agrees with the one we're trying to create, but now I'm having deja > vu. I think this is another reason why I decided to go with a dummy file > installed under /var/lib to catch collisions: the PM will necessarily > ignore collisions from the same package.
Good catch. Let's see what others have to say. If we're going to check for username patches, we'd need another user.eclass portability knob. -- Best regards, Michał Górny
signature.asc
Description: This is a digitally signed message part