Subject: bug#45836: closed (Re: [PATCH] services: Let cups-service-type reuse base lp group.)

From: [email-masked] (GNU bug Tracking System)
Date: Wed, 20 Jan 2021 08:17:02 +0000

Your bug report

#45836: cups-service-type duplicates lp group

which was filed against the guix package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to [email-masked].

-- 
45836: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=45836
GNU Bug Tracking System
Contact [email-masked] with problems

Subject: Re: [PATCH] services: Let cups-service-type reuse base lp group.
From: Leo Prikler <[email-masked]>
To: Ludovic Courtès <[email-masked]>
Cc: [email-masked]
Date: Wed, 20 Jan 2021 09:16:13 +0100
List-Id: <debbugs-submit.debbugs.gnu.org>

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

Subject: cups-service-type duplicates lp group
From: Leo Prikler <[email-masked]>
To: [email-masked]
Date: Wed, 13 Jan 2021 02:09:23 +0100
List-Id: <debbugs-submit.debbugs.gnu.org>

Hello Guix,

it has come to my attention due to the recent reporting of #45830 and
some conversation in IRC, that cups-service-type adds an lp group,
which is already defined in %base-groups.  Since both share the same
definition, this is not too big an issue, but it prohibits us from
using a hard error for #45770.

I can currently think of two solutions: Either remove the lp group from
cups-service-type or remove it from base-groups.  Neither sounds
particularly awesome.  Perhaps we could also delete identical
duplicates before asserting that there are none for #45770, but that
sounds like a little much effort.  Any ideas how else to solve this?

Regards,
Leo