diff options
author | Ludovic Courtès <ludo@gnu.org> | 2023-10-27 23:44:39 +0200 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2023-10-28 00:17:23 +0200 |
commit | 67effc1560fc175dfbcb58ef5b965b08b3942d6c (patch) | |
tree | 34b28ec16e7b968ab02dac4bb56a721273c4c126 /gnu/packages/installers.scm | |
parent | 2de30042674197fe451c220745186e36465d06e2 (diff) |
grafts: Fix corner case involving multiple-output derivations.
Fixes a bug that would occur with references to two outputs of the same
derivation, with one of them referring to the other one.
For example, the references of libreoffice include both mariadb:dev and
mariadb:lib; additionally, mariadb:dev refers to mariadb:lib. In this
case, the glibc graft would not be applied on one of the mariadb paths,
and both the grafted and ungrafted glibc would end up in the closure of
libreoffice.
Fixes <https://issues.guix.gnu.org/66662>.
* guix/grafts.scm (non-self-references): Simplify and include references
to outputs of DRV other than OUTPUTS.
(reference-origins): Simplify and possibly return outputs of DRV itself.
(cumulative-grafts)[graft-origin?]: Add OUTPUT parameter and honor it.
[dependency-grafts]: Adjust accordingly.
* tests/grafts.scm ("graft-derivation, multiple outputs need to be replaced"):
New test.
Change-Id: Iac2005024ab7049037537b3af55298696ec90e3c
Diffstat (limited to 'gnu/packages/installers.scm')
0 files changed, 0 insertions, 0 deletions