<feed xmlns='http://www.w3.org/2005/Atom'>
<title>guix.git/guix/grafts.scm, branch merge-deploy</title>
<subtitle>Personal branch of https://git.savannah.gnu.org/cgit/guix.git/ for implementing 'guix deploy'.
</subtitle>
<id>https://git.jakob.space/guix.git/atom?h=merge-deploy</id>
<link rel='self' href='https://git.jakob.space/guix.git/atom?h=merge-deploy'/>
<link rel='alternate' type='text/html' href='https://git.jakob.space/guix.git/'/>
<updated>2019-07-02T16:33:51Z</updated>
<entry>
<title>grafts: 'references-oracle' now takes a derivation input.</title>
<updated>2019-07-02T16:33:51Z</updated>
<author>
<name>Ludovic Courtès</name>
<email>ludo@gnu.org</email>
</author>
<published>2019-07-02T14:45:12Z</published>
<link rel='alternate' type='text/html' href='https://git.jakob.space/guix.git/commit/?id=9616b81e9861c831159a0e1a5993854b9ad3c3e5'/>
<id>urn:sha1:9616b81e9861c831159a0e1a5993854b9ad3c3e5</id>
<content type='text'>
That way, if we end up calling 'build-derivations', we'll only build the
outputs that we really need.

* guix/grafts.scm (references-oracle): Rename 'drv' to 'input'.
[output-paths]: Remove.
Adjust accordingly.
(graft-derivation): Adjust call to 'references-oracle'.
</content>
</entry>
<entry>
<title>grafts: Avoid 'query-valid-derivers' RPC.</title>
<updated>2019-06-19T20:56:27Z</updated>
<author>
<name>Ludovic Courtès</name>
<email>ludo@gnu.org</email>
</author>
<published>2019-06-19T19:50:45Z</published>
<link rel='alternate' type='text/html' href='https://git.jakob.space/guix.git/commit/?id=aad086d8717d8ee6fa0ec37dd7932b74fe6398c3'/>
<id>urn:sha1:aad086d8717d8ee6fa0ec37dd7932b74fe6398c3</id>
<content type='text'>
Previously we'd make 502 'query-valid-derivers' RPCs for
"guix build vim -d", and after this patch, we don't do any.

Furthermore, the previous strategy was "stateful" in the sense that
'item-&gt;deriver' could return a derivation that is not the one that was
actually computed by this process, but an "equivalent" one (due to
fixed-output derivations); which one is chosen would depend on the state
of the store.

This in turn means that we'd have to call 'read-derivation-from-file' to
actually read .drv files (as opposed to getting them from
%DERIVATION-CACHE).  This is costly and doesn't work with
GUIX_DAEMON_SOCKET=ssh://….

* guix/grafts.scm (item-&gt;deriver): Remove.
(reference-origin): New procedure.
(cumulative-grafts): Use it instead of 'item-&gt;deriver'.
</content>
</entry>
<entry>
<title>store: Rename '&amp;nix-error' to '&amp;store-error'.</title>
<updated>2019-01-21T22:09:55Z</updated>
<author>
<name>Ludovic Courtès</name>
<email>ludo@gnu.org</email>
</author>
<published>2019-01-21T16:41:11Z</published>
<link rel='alternate' type='text/html' href='https://git.jakob.space/guix.git/commit/?id=f9e8a12379c6fefc9e5c3c7fc3926599bbefc013'/>
<id>urn:sha1:f9e8a12379c6fefc9e5c3c7fc3926599bbefc013</id>
<content type='text'>
* guix/store.scm (&amp;nix-error): Rename to...
(&amp;store-error): ... this, and adjust users.
(&amp;nix-connection-error): Rename to...
(&amp;store-connection-error): ... this, and adjust users.
(&amp;nix-protocol-error): Rename to...
(&amp;store-protocol-error): ... this, adjust users.
(&amp;nix-error, &amp;nix-connection-error, &amp;nix-protocol-error): Define these
condition types and their getters as deprecrated aliases.
* build-aux/run-system-tests.scm, guix/derivations.scm,
guix/grafts.scm, guix/scripts/challenge.scm,
guix/scripts/graph.scm, guix/scripts/lint.scm,
guix/scripts/offload.scm, guix/serialization.scm,
guix/ssh.scm, guix/tests.scm, guix/ui.scm,
tests/derivations.scm, tests/gexp.scm, tests/guix-daemon.sh,
tests/packages.scm, tests/store.scm, doc/guix.texi: Adjust to use the
new names.
</content>
</entry>
<entry>
<title>grafts: Mark as non substitutable.</title>
<updated>2018-12-04T09:57:56Z</updated>
<author>
<name>Ludovic Courtès</name>
<email>ludo@gnu.org</email>
</author>
<published>2018-12-04T09:43:28Z</published>
<link rel='alternate' type='text/html' href='https://git.jakob.space/guix.git/commit/?id=7bc5657f8434de06d904c36f8960a1b1dddf10ae'/>
<id>urn:sha1:7bc5657f8434de06d904c36f8960a1b1dddf10ae</id>
<content type='text'>
* guix/grafts.scm (graft-derivation/shallow): Pass #:substitutable? to
'build-expression-&gt;derivation'.
</content>
</entry>
<entry>
<title>grafts: Record metadata as derivation properties.</title>
<updated>2018-11-28T09:39:58Z</updated>
<author>
<name>Ludovic Courtès</name>
<email>ludo@gnu.org</email>
</author>
<published>2018-11-26T21:27:39Z</published>
<link rel='alternate' type='text/html' href='https://git.jakob.space/guix.git/commit/?id=64fd1c01bc6f1be6ffcafc08789d5dafb9850c2e'/>
<id>urn:sha1: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>
</entry>
<entry>
<title>store: Add a functional object cache and use it in 'lower-object'.</title>
<updated>2018-11-12T22:37:13Z</updated>
<author>
<name>Ludovic Courtès</name>
<email>ludo@gnu.org</email>
</author>
<published>2015-11-20T17:44:29Z</published>
<link rel='alternate' type='text/html' href='https://git.jakob.space/guix.git/commit/?id=c6080c3249560ef777b9a4eb6a78e7605b8b98d8'/>
<id>urn:sha1:c6080c3249560ef777b9a4eb6a78e7605b8b98d8</id>
<content type='text'>
This leads to ~25% improvements on things like:

  guix system build desktop.tmpl --no-grafts -d

* guix/store.scm (&lt;nix-server&gt;)[object-cache]: New field.
* guix/store.scm (open-connection): Initialize it.
(cache-object-mapping, lookup-cached-object, %mcached): New procedures.
(mcached): New macro.
* guix/gexp.scm (lower-object): Use it.
* guix/grafts.scm (grafting?): New procedure.
</content>
</entry>
<entry>
<title>grafts: Add (guix build debug-link) and use it.</title>
<updated>2018-08-24T16:01:05Z</updated>
<author>
<name>Ludovic Courtès</name>
<email>ludo@gnu.org</email>
</author>
<published>2018-08-21T20:39:41Z</published>
<link rel='alternate' type='text/html' href='https://git.jakob.space/guix.git/commit/?id=93c333895a4e2dc9baabec8ade60d9d2ac0a91e2'/>
<id>urn:sha1:93c333895a4e2dc9baabec8ade60d9d2ac0a91e2</id>
<content type='text'>
Fixes &lt;https://bugs.gnu.org/19973&gt;.
Reported by Mark H Weaver &lt;mhw@netris.org&gt;.

* guix/build/debug-link.scm: New file.
* guix/build/graft.scm (%graft-hooks): New variable.
(graft): Add #:hooks and honor it.
* guix/grafts.scm (graft-derivation/shallow): Add (guix build
debug-link) and (guix elf) to #:modules.
* tests/debug-link.scm: New file.
* Makefile.am (MODULES): Add guix/build/debug-link.scm.
(SCM_TESTS): Add tests/debug-link.scm.
</content>
</entry>
<entry>
<title>grafts: Add high-level 'graft' procedure on the build side.</title>
<updated>2018-08-24T15:57:56Z</updated>
<author>
<name>Ludovic Courtès</name>
<email>ludo@gnu.org</email>
</author>
<published>2018-08-21T13:09:11Z</published>
<link rel='alternate' type='text/html' href='https://git.jakob.space/guix.git/commit/?id=e4297aa8b95cefa32e2595ce58886fc03b0561f7'/>
<id>urn:sha1:e4297aa8b95cefa32e2595ce58886fc03b0561f7</id>
<content type='text'>
* guix/build/graft.scm (graft): New procedure.
* guix/grafts.scm (graft-derivation/shallow)[build]: Use it instead of
inline code.
</content>
</entry>
<entry>
<title>derivations: Introduce 'read-derivation-from-file'.</title>
<updated>2017-06-12T15:53:51Z</updated>
<author>
<name>Ludovic Courtès</name>
<email>ludovic.courtes@inria.fr</email>
</author>
<published>2017-06-12T15:11:22Z</published>
<link rel='alternate' type='text/html' href='https://git.jakob.space/guix.git/commit/?id=015f17e8b9eff97f656852180ac51c75438d7f9d'/>
<id>urn:sha1:015f17e8b9eff97f656852180ac51c75438d7f9d</id>
<content type='text'>
This avoids the open/fstat/close syscalls upon a cache hit that we had
with the previous idiom:

  (call-with-input-file file read-derivation)

where caching happened in 'read-derivation' itself.

* guix/derivations.scm (%read-derivation): Rename to...
(read-derivation): ... this.
(read-derivation-from-file): New procedure.
(derivation-prerequisites, substitution-oracle)
(derivation-prerequisites-to-build):
(derivation-path-&gt;output-path, derivation-path-&gt;output-paths):
(derivation-path-&gt;base16-hash, map-derivation): Use
'read-derivation-from-file' instead of (call-with-input-file …
read-derivation).
* guix/grafts.scm (item-&gt;deriver): Likewise.
* guix/scripts/build.scm (log-url, options-&gt;things-to-build): Likewise.
* guix/scripts/graph.scm (file-&gt;derivation): Remove.
(derivation-dependencies, %derivation-node-type): Use
'read-derivation-from-file' instead.
* guix/scripts/offload.scm (guix-offload): Likewise.
* guix/scripts/perform-download.scm (guix-perform-download): Likewise.
* guix/scripts/publish.scm (load-derivation): Remove.
(narinfo-string): Use 'read-derivation-from-file'.
</content>
</entry>
<entry>
<title>grafts: Do not pull derivation outputs not depended on.</title>
<updated>2017-01-25T10:04:25Z</updated>
<author>
<name>Ludovic Courtès</name>
<email>ludo@gnu.org</email>
</author>
<published>2017-01-25T09:20:02Z</published>
<link rel='alternate' type='text/html' href='https://git.jakob.space/guix.git/commit/?id=482fda2729c3e76999892cb8f9a0391a7bd37119'/>
<id>urn:sha1: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>
</entry>
</feed>
