Simon South <simon@simonsouth.net> writes: > Am I right in thinking there is no way to specify dependencies among the > outputs of a single package? To specify that a package's "out" output > depends on its "lib" output, for instance. > > I ask because the Knot package (in gnu/package/dns.scm) builds a number > of logically distinct targets---daemon, libraries, administrative > utilities, general-purpose utilities, and documentation---and it would > be nice to separate at least some of these into individual outputs, in > part because we could then specify only the libraries as a dependency of > Knot Resolver. > > However, Knot's daemon and utilities have the same dependency on its own > libraries, so pulling those into a separate "lib" output would be liable > to break everything else. > > I've searched and can't find an example of this being done, nor can I > find any mention of it in the documentation. So I assume it's simply not > possible, and you would need to define an entirely separate package that > builds from the same source code---right? Unless I am mistaken, this is not possible. When using a specific output, it still fetches the entire package closure. But only that specific output propagates to the profile. Adding an output as a dependency would surely cause a non-termination situation with the interpreter. I have cc'ed guix-devel as I think that is the better fit for this question. Best -- Brett M. Gilio <brettg@gnu.org> https://brettgilio.com