Subject: Re: No way of replacing an input in modify-input syntax structure but keep all the outputs

From: Gordon Quad <[email-masked]>
Date: Fri, 11 Feb 2022 10:26:14 +0000

On Thu, Feb 10, 2022 at 09:03:56PM +0100, Liliana Marie Prikler wrote:
> Am Donnerstag, dem 10.02.2022 um 10:09 +0000 schrieb Gordon Quad:
> > poppler package include glib as a native-input with "bin" output.
> > 
> > If I am doing the following:
> > 
> > (package/inherit poppler
> >     (native-inputs
> >         (modify-inputs (package-native-inputs poppler)
> >             (replace "glib" my-glib))))
> > 
> > poppler's build will fail becuase replace syntax will replace "glib"
> > package erasing its outputs. I can specify output explicitly by doing
> > (replace "glib" (my-glib "bin")) in this case, but that makes mass
> > input modification difficult (e.g. if i want to replace all instances
> > of glib to my-glib).
> I think the problem here is that "glib" serves double duty as both
> "glib:out" and "glib:bin".  IMHO we should probably add the output
> argument to the label (with a colon separator, of course) if one is
> given.
> 
> I'm CC'ing Ludo because he implemented the feature and might know more
> than me regarding its design.
Well, just grepping the code for glib I found plenty of places where it
is specified as ("glib" ,glib "bin"), and glib is the only package that
I checked so far. So what you telling me that official policy is to use
labeling convesion as "package:output" but not all the old code converted
to that yet?