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

From: Liliana Marie Prikler <[email-masked]>
Date: Thu, 10 Feb 2022 21:03:56 +0100

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.

Cheers