Subject: Re: [PATCH] services: Let cups-service-type reuse base lp group.

From: Leo Prikler <[email-masked]>
Date: Wed, 20 Jan 2021 09:16:13 +0100

Am Montag, den 18.01.2021, 15:47 +0100 schrieb Ludovic Courtès:
> Hi,
> 
> Leo Prikler <[email-masked]> skribis:
> 
> > > > diff --git a/gnu/system/shadow.scm b/gnu/system/shadow.scm
> > > > index 0538fb1a24..7c57222716 100644
> > > > --- a/gnu/system/shadow.scm
> > > > +++ b/gnu/system/shadow.scm
> > > > @@ -321,13 +321,13 @@ of user '~a' is undeclared")
> > > >  <user-group> objects.  Raise an error if a user account refers
> > > > to
> > > > a undefined
> > > >  group."
> > > >    (define accounts
> > > > -    (filter user-account? accounts+groups))
> > > > +    (delete-duplicates (filter user-account? accounts+groups)
> > > > eq?))
> > > >  
> > > >    (define user-specs
> > > >      (map user-account->gexp accounts))
> > > >  
> > > >    (define groups
> > > > -    (filter user-group? accounts+groups))
> > > > +    (delete-duplicates (filter user-group? accounts+groups)
> > > > eq?))
> > > 
> > > Why use ‘eq?’?  I’d use ‘equal?’, but note that <user-account>
> > > records
> > > cannot necessarily be compared with ‘equal?’ because of the
> > > thunked
> > > ‘home-directory’ field (‘equal?’ is meaningless for procedures).
> > My personal reasoning (and perhaps a rather strong opinion) is,
> > that it
> > is an error to add duplicate users even if they happen to be
> > equal?. 
> > eq? is only provided as a way out for the specific case of
> > services,
> > that need to do so for safety reasons – e.g. cups to not allow
> > overriding of the lp group if it has been removed from the OS
> > groups
> > for whichever reason.
> 
> Ah I see, makes sense to me!
I've now pushed it with eq?, if there's a (good!) reason to change that
to equal?, it can still be done later.

Regards,
Leo