On Tue, Jan 23, 2018 at 07:45:12PM +0000, Christopher Baines wrote: > > Leo Famulari writes: > > > On Mon, Jan 22, 2018 at 09:08:22PM +0000, Christopher Baines wrote: > >> * gnu/packages/terminals.scm (go-github.com-howeyc-gopass): New variable. > > > >> + (native-inputs > >> + `(("go-golang.org-x-crypto-ssh-terminal" > >> + ,go-golang.org-x-crypto-ssh-terminal))) > > > > Is it really just a native-input? Or could it need this library later, > > at run-time? > > Well, the package doesn't build without it, and as far as I can tell the > store output doesn't reference it. I believe that > go-golang.org-x-crypto-ssh-terminal is a dependency of > go-github.com-howeyc-gopass, so if you're using > go-github.com-howeyc-gopass, then you'll need > go-golang.org-x-crypto-ssh-terminal. Maybe it should be a propagated > input instead? Go looks for dependencies by first looking for their source code (this is why the go-build-system installs the source code by default). Once it finds the source code, then it looks up the compiled objects. Finally, when building the end-user application (not just some library) it links everything together in what's basically a static archive. If everything seems to work even though x-crypto-ssh-terminal is a native-input, then I bet that whatever is using howeyc-gopass does not exercise the part of howeyc-gopass's code using x-crypto-ssh-terminal. I think it's more correct here to propagate, unless x-crypto-ssh-terminal is only used for howeyc-gopass's test suite or something like that.