<feed xmlns='http://www.w3.org/2005/Atom'>
<title>guix/tests/grafts.scm, branch master</title>
<subtitle>Transactional package manager, declarative GNU/Linux distribution, reproducible deployment tool, and more! https://guix.gnu.org</subtitle>
<link rel='alternate' type='text/html' href='https://git.vineetk.net/guix/'/>
<entry>
<title>grafts: Always depend on all the outputs of the original derivation.</title>
<updated>2025-10-05T18:30:45+00:00</updated>
<author>
<name>Danny Milosavljevic</name>
<email>dannym@friendly-machines.com</email>
</author>
<published>2025-08-02T15:45:45+00:00</published>
<link rel='alternate' type='text/html' href='https://git.vineetk.net/guix/commit/?id=548f225f3131b66d09fd4aa10750e47b93f146d0'/>
<id>548f225f3131b66d09fd4aa10750e47b93f146d0</id>
<content type='text'>
Fixes &lt;https://bugs.gnu.org/75157&gt;.
Fixes problem introduced with commit 482fda2729c3e76999892cb8f9a0391a7bd37119.

* guix/grafts.scm (cumulative-grafts): Remove parameter "outputs" and replace
it by always all outputs.
(graft-derivation): Fix calls of cumulative-grafts.
* tests/grafts.scm (graft-derivation with #:outputs): Remove.
(graft-derivation, no applicable grafts): Add.
(graft-derivation, unused outputs not depended on): Remove.
(graft-derivation, multi-output graft determinism): Add.
(graft-derivation, consistent cache keys): Add.

Change-Id: Ice924a45c483d6fd1acc9221a0ec650abb039610
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Fixes &lt;https://bugs.gnu.org/75157&gt;.
Fixes problem introduced with commit 482fda2729c3e76999892cb8f9a0391a7bd37119.

* guix/grafts.scm (cumulative-grafts): Remove parameter "outputs" and replace
it by always all outputs.
(graft-derivation): Fix calls of cumulative-grafts.
* tests/grafts.scm (graft-derivation with #:outputs): Remove.
(graft-derivation, no applicable grafts): Add.
(graft-derivation, unused outputs not depended on): Remove.
(graft-derivation, multi-output graft determinism): Add.
(graft-derivation, consistent cache keys): Add.

Change-Id: Ice924a45c483d6fd1acc9221a0ec650abb039610
</pre>
</div>
</content>
</entry>
<entry>
<title>grafts: Fix corner case involving multiple-output derivations.</title>
<updated>2023-10-27T22:17:23+00:00</updated>
<author>
<name>Ludovic Courtès</name>
<email>ludo@gnu.org</email>
</author>
<published>2023-10-27T21:44:39+00:00</published>
<link rel='alternate' type='text/html' href='https://git.vineetk.net/guix/commit/?id=67effc1560fc175dfbcb58ef5b965b08b3942d6c'/>
<id>67effc1560fc175dfbcb58ef5b965b08b3942d6c</id>
<content type='text'>
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 &lt;https://issues.guix.gnu.org/66662&gt;.

* 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
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
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 &lt;https://issues.guix.gnu.org/66662&gt;.

* 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
</pre>
</div>
</content>
</entry>
<entry>
<title>grafts: Run with a UTF-8 locale.</title>
<updated>2022-11-11T22:17:42+00:00</updated>
<author>
<name>Ludovic Courtès</name>
<email>ludo@gnu.org</email>
</author>
<published>2022-11-10T17:20:23+00:00</published>
<link rel='alternate' type='text/html' href='https://git.vineetk.net/guix/commit/?id=19206eee69e8c22d63104af1b7f1f815969bff7f'/>
<id>19206eee69e8c22d63104af1b7f1f815969bff7f</id>
<content type='text'>
Fixes &lt;https://issues.guix.gnu.org/55968&gt;.
Reported by Maxime Devos &lt;maximedevos@telenet.be&gt;.

* guix/grafts.scm (%graft-with-utf8-locale?): New parameter.
(graft-derivation/shallow)[glibc-locales, set-utf8-locale]: New
variables.
[build]: Use 'set-utf8-locale'.
* tests/gexp.scm, tests/grafts.scm, tests/packages.scm: Set
'%graft-with-utf8-locale?' to #f.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Fixes &lt;https://issues.guix.gnu.org/55968&gt;.
Reported by Maxime Devos &lt;maximedevos@telenet.be&gt;.

* guix/grafts.scm (%graft-with-utf8-locale?): New parameter.
(graft-derivation/shallow)[glibc-locales, set-utf8-locale]: New
variables.
[build]: Use 'set-utf8-locale'.
* tests/gexp.scm, tests/grafts.scm, tests/packages.scm: Set
'%graft-with-utf8-locale?' to #f.
</pre>
</div>
</content>
</entry>
<entry>
<title>grafts: Support rewriting UTF-16 and UTF-32 store references.</title>
<updated>2021-04-15T07:22:55+00:00</updated>
<author>
<name>Mark H Weaver</name>
<email>mhw@netris.org</email>
</author>
<published>2021-04-02T22:36:50+00:00</published>
<link rel='alternate' type='text/html' href='https://git.vineetk.net/guix/commit/?id=1bab9b9f17256a9e4f45f5b0cceb8b52e0a1b1ed'/>
<id>1bab9b9f17256a9e4f45f5b0cceb8b52e0a1b1ed</id>
<content type='text'>
Partially fixes &lt;https://bugs.gnu.org/33848&gt;.

* guix/build/graft.scm (replace-store-references): Add support for
finding and rewriting UTF-16 and UTF-32 store references.
* tests/grafts.scm: Add tests.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Partially fixes &lt;https://bugs.gnu.org/33848&gt;.

* guix/build/graft.scm (replace-store-references): Add support for
finding and rewriting UTF-16 and UTF-32 store references.
* tests/grafts.scm: Add tests.
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge branch 'master' into core-updates</title>
<updated>2019-06-27T21:33:48+00:00</updated>
<author>
<name>Ludovic Courtès</name>
<email>ludo@gnu.org</email>
</author>
<published>2019-06-27T21:33:48+00:00</published>
<link rel='alternate' type='text/html' href='https://git.vineetk.net/guix/commit/?id=5cc1075a76392666d3d733837f5c6252b1e48002'/>
<id>5cc1075a76392666d3d733837f5c6252b1e48002</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>derivations: Add 'derivation-input'.</title>
<updated>2019-06-27T09:14:41+00:00</updated>
<author>
<name>Ludovic Courtès</name>
<email>ludo@gnu.org</email>
</author>
<published>2019-06-23T09:46:17+00:00</published>
<link rel='alternate' type='text/html' href='https://git.vineetk.net/guix/commit/?id=c89985d91d2b44704fbcaebd7a097dee0c0e3e4a'/>
<id>c89985d91d2b44704fbcaebd7a097dee0c0e3e4a</id>
<content type='text'>
* guix/derivations.scm (derivation-input): New procedure.
* tests/grafts.scm (make-derivation-input): Remove.
("graft-derivation, unused outputs not depended on"): Use
'derivation-input'.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* guix/derivations.scm (derivation-input): New procedure.
* tests/grafts.scm (make-derivation-input): Remove.
("graft-derivation, unused outputs not depended on"): Use
'derivation-input'.
</pre>
</div>
</content>
</entry>
<entry>
<title>packages: Remove 'search-bootstrap-binary'.</title>
<updated>2019-06-14T19:57:39+00:00</updated>
<author>
<name>Ludovic Courtès</name>
<email>ludo@gnu.org</email>
</author>
<published>2019-06-14T19:35:08+00:00</published>
<link rel='alternate' type='text/html' href='https://git.vineetk.net/guix/commit/?id=1ba0b1e6ec41afd94a3c5f907b1122204dcb5d9d'/>
<id>1ba0b1e6ec41afd94a3c5f907b1122204dcb5d9d</id>
<content type='text'>
* gnu/packages.scm (%bootstrap-binaries-path, search-bootstrap-binary):
Remove.
* gnu/packages/bootstrap.scm (bootstrap-executable): Export.
* guix/tests.scm (bootstrap-binary-file, search-bootstrap-binary):
Export.
* tests/derivations.scm: Remove (gnu packages) import.
* tests/grafts.scm: Likewise.
* tests/guix-daemon.sh: Likewise.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* gnu/packages.scm (%bootstrap-binaries-path, search-bootstrap-binary):
Remove.
* gnu/packages/bootstrap.scm (bootstrap-executable): Export.
* guix/tests.scm (bootstrap-binary-file, search-bootstrap-binary):
Export.
* tests/derivations.scm: Remove (gnu packages) import.
* tests/grafts.scm: Likewise.
* tests/guix-daemon.sh: Likewise.
</pre>
</div>
</content>
</entry>
<entry>
<title>grafts: Record metadata as derivation properties.</title>
<updated>2018-11-28T09:39:58+00:00</updated>
<author>
<name>Ludovic Courtès</name>
<email>ludo@gnu.org</email>
</author>
<published>2018-11-26T21:27:39+00:00</published>
<link rel='alternate' type='text/html' href='https://git.vineetk.net/guix/commit/?id=64fd1c01bc6f1be6ffcafc08789d5dafb9850c2e'/>
<id>64fd1c01bc6f1be6ffcafc08789d5dafb9850c2e</id>
<content type='text'>
* guix/grafts.scm (graft-derivation/shallow): Pass #:properties to
'build-expression-&gt;derivation'.
* tests/grafts.scm ("graft-derivation, grafted item is a direct
dependency"): Check the value returned by 'derivation-properties'.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* guix/grafts.scm (graft-derivation/shallow): Pass #:properties to
'build-expression-&gt;derivation'.
* tests/grafts.scm ("graft-derivation, grafted item is a direct
dependency"): Check the value returned by 'derivation-properties'.
</pre>
</div>
</content>
</entry>
<entry>
<title>graft: Correctly replace references near the end of the scan buffer.</title>
<updated>2017-08-24T21:55:51+00:00</updated>
<author>
<name>Ludovic Courtès</name>
<email>ludo@gnu.org</email>
</author>
<published>2017-08-24T11:14:47+00:00</published>
<link rel='alternate' type='text/html' href='https://git.vineetk.net/guix/commit/?id=94e86a6b67c7a02f5f11358743f3b9f11997059c'/>
<id>94e86a6b67c7a02f5f11358743f3b9f11997059c</id>
<content type='text'>
Fixes &lt;http://bugs.gnu.org/28212&gt;.
Reported by Leo Famulari &lt;leo@famulari.name&gt;.

* guix/build/graft.scm (replace-store-references): When I &gt;= END, check
whether WRITTEN &gt; END and call 'get-bytevector-n!' when it is.
* tests/grafts.scm (buffer-size): New variable.
("replace-store-references, &lt;http://bugs.gnu.org/28212&gt;"): New test.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Fixes &lt;http://bugs.gnu.org/28212&gt;.
Reported by Leo Famulari &lt;leo@famulari.name&gt;.

* guix/build/graft.scm (replace-store-references): When I &gt;= END, check
whether WRITTEN &gt; END and call 'get-bytevector-n!' when it is.
* tests/grafts.scm (buffer-size): New variable.
("replace-store-references, &lt;http://bugs.gnu.org/28212&gt;"): New test.
</pre>
</div>
</content>
</entry>
<entry>
<title>grafts: Do not pull derivation outputs not depended on.</title>
<updated>2017-01-25T10:04:25+00:00</updated>
<author>
<name>Ludovic Courtès</name>
<email>ludo@gnu.org</email>
</author>
<published>2017-01-25T09:20:02+00:00</published>
<link rel='alternate' type='text/html' href='https://git.vineetk.net/guix/commit/?id=482fda2729c3e76999892cb8f9a0391a7bd37119'/>
<id>482fda2729c3e76999892cb8f9a0391a7bd37119</id>
<content type='text'>
Fixes &lt;http://bugs.gnu.org/24886&gt;.

Previously, the grafting derivation of, say, brdf-explorer would pull in
qt:doc even though brdf-explorer depends only on qt:out, not qt:doc.

* guix/grafts.scm (with-cache): Use 'vhash-assoc' and 'vhash-cons'
instead of 'vhash-assq' and 'vhash-consq'.
(cumulative-grafts): Pass #:outputs to 'graft-derivation/shallow'.  Use
OUTPUTS instead of (derivation-output-names drv).
(graft-derivation): Add #:outputs parameter; pass it to
'cumulative-grafts'.
* tests/grafts.scm (make-derivation-input): New variable.
("graft-derivation, replaced derivation has multiple outputs"): Make
sure P2:zzz is not part of the outputs of P3D.
("graft-derivation with #:outputs")
("graft-derivation, unused outputs not depended on"): New tests.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Fixes &lt;http://bugs.gnu.org/24886&gt;.

Previously, the grafting derivation of, say, brdf-explorer would pull in
qt:doc even though brdf-explorer depends only on qt:out, not qt:doc.

* guix/grafts.scm (with-cache): Use 'vhash-assoc' and 'vhash-cons'
instead of 'vhash-assq' and 'vhash-consq'.
(cumulative-grafts): Pass #:outputs to 'graft-derivation/shallow'.  Use
OUTPUTS instead of (derivation-output-names drv).
(graft-derivation): Add #:outputs parameter; pass it to
'cumulative-grafts'.
* tests/grafts.scm (make-derivation-input): New variable.
("graft-derivation, replaced derivation has multiple outputs"): Make
sure P2:zzz is not part of the outputs of P3D.
("graft-derivation with #:outputs")
("graft-derivation, unused outputs not depended on"): New tests.
</pre>
</div>
</content>
</entry>
</feed>
