Hi, Gordon Quad skribis: > 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. Indeed: --8<---------------cut here---------------start------------->8--- scheme@(guile-user)> ,use(gnu packages pdf) scheme@(guile-user)> ,use(guix) scheme@(guile-user)> (package-native-inputs poppler) $4 = (("pkg-config" #) ("glib" # "bin") ("gobject-introspection" #)) scheme@(guile-user)> (package-propagated-inputs poppler) $5 = (("glib" #)) scheme@(guile-user)> (modify-inputs (append $5 $4) (replace "glib" xpdf)) $6 = (("glib" #) ("pkg-config" #) ("glib" #) ("gobject-introspection" #)) --8<---------------cut here---------------end--------------->8--- We see that both ‘glib’ packages have been replaced, but the “bin” part has been removed from the second one. With the patch below, we get more sensible behavior: --8<---------------cut here---------------start------------->8--- scheme@(guile-user)> (modify-inputs (append $5 $4) (replace "glib" xpdf)) $8 = (("glib" #) ("pkg-config" #) ("glib" # "bin") ("gobject-introspection" #)) --8<---------------cut here---------------end--------------->8--- If that makes sense to you, I’ll go ahead with this change and adjust documentation accordingly. Thanks for bringing it up! Ludo’.