[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