guix-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Why does %build-inputs contain the transitive closure of inputs?!


From: Carlo Zancanaro
Subject: Re: Why does %build-inputs contain the transitive closure of inputs?!
Date: Sat, 08 Aug 2020 10:26:08 +1000
User-agent: mu4e 1.4.12; emacs 26.3

Hi Jakub,

On Sat, Aug 08 2020, Jakub Kądziołka wrote:
Why? I would expect only libgit2 to be present, and not all of its dependencies. ...

If you take a look at the definition for libgit2 in gnu/packages/version-control.scm you'll see that this isn't all the dependencies for libgit2, it's only the propagated-inputs. For instance, libssh2 and http-parser are both inputs for libgit2, but they don't appear in your list because they're not propagated.

... It seems to me that this has only downsides - the entire transitive closure needs to be present during build, even when the actually used dependencies don't reference it, and the names of inputs used by packages are now public API, and changing them can break the build of any transitively dependent package.

The way propagated inputs work is that they're installed alongside the package, so in some sense they are part of the public API of the package. They should be used with care, but as far as I can tell everything is working properly here.

Carlo



reply via email to

[Prev in Thread] Current Thread [Next in Thread]