Olivier Dion schreef op vr 08-04-2022 om 10:23 [-0400]: > > 0400]: > > > Headers of liburcu are used by headers of lttng. > > > > This can be addressed without propagation, by substitute*.  > > Something > > like: > > > >    (lambda* (#:key inputs #:allow-other-keys) > >      (substitute* (find-files ".h") > >        (("some-liburcu-header.h") > >         (search-input-file inputs "include/some-liburcu- > > header.h")))) > > > > Attached is some more generic and automated code I wrote a > > while ago. Maybe it's good enough for lttng? > > Is propagated-inputs not the use case for that or do I have a bad > understanding of how propagated-inputs works? Propagation is the standard work-around if not better alternatives are known. But it has some downsides: * if liburcu contained a binary 'bin/urcu', then if you install lttng-ust, you would also get 'bin/urcu' in the profile even though you did not ask for it. * propagation is a source of slowness. See, e.g., . * It can also make updating individual packages (with "guix pull && guix package -u this-package") more difficult since it might be necessary to update multiple packages at the same time to avoid propagation conflicts. * (not applicable to this case, given that the lttng-ust library (probably) refers to the liburcu library): "guix gc --references" does not known about these kind of ‘hidden’ references. As such, when feasible, propagation is avoided. Greetings, Maxime.