<feed xmlns='http://www.w3.org/2005/Atom'>
<title>guix/gnu/packages.scm, branch bootstrap-20190815</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>packages: 'specification-&gt;package+output' distinguishes "no output specified".</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-23T16:28:45+00:00</published>
<link rel='alternate' type='text/html' href='https://git.vineetk.net/guix/commit/?id=066eeae1a197b1926c7ffc42919d684686f56fdb'/>
<id>066eeae1a197b1926c7ffc42919d684686f56fdb</id>
<content type='text'>
Until now the caller couldn't tell the different between a spec like
"foo:out" and one like "foo".  This change allows users to distinguish
between these two cases.

* gnu/packages.scm (specification-&gt;package+output): Disable output
membership test when OUTPUT = #f and SUB-DRV = #f.
* tests/packages.scm ("specification-&gt;package+output")
("specification-&gt;package+output invalid output")
("specification-&gt;package+output no default output")
("specification-&gt;package+output invalid output, no default"): New tests.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Until now the caller couldn't tell the different between a spec like
"foo:out" and one like "foo".  This change allows users to distinguish
between these two cases.

* gnu/packages.scm (specification-&gt;package+output): Disable output
membership test when OUTPUT = #f and SUB-DRV = #f.
* tests/packages.scm ("specification-&gt;package+output")
("specification-&gt;package+output invalid output")
("specification-&gt;package+output no default output")
("specification-&gt;package+output invalid output, no default"): New tests.
</pre>
</div>
</content>
</entry>
<entry>
<title>packages: Reintroduce 'find-newest-available-packages'.</title>
<updated>2019-03-28T22:06:58+00:00</updated>
<author>
<name>Ludovic Courtès</name>
<email>ludo@gnu.org</email>
</author>
<published>2019-03-28T14:46:18+00:00</published>
<link rel='alternate' type='text/html' href='https://git.vineetk.net/guix/commit/?id=f2bf0407de70e7ae29518400d66ef968134f5169'/>
<id>f2bf0407de70e7ae29518400d66ef968134f5169</id>
<content type='text'>
This is a followup to e2a903c807ccacec5925f197ce26f626060e1953.

* gnu/packages.scm (find-newest-available-packages): New procedure.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This is a followup to e2a903c807ccacec5925f197ce26f626060e1953.

* gnu/packages.scm (find-newest-available-packages): New procedure.
</pre>
</div>
</content>
</entry>
<entry>
<title>packages: Add the channel .go files to the search path.</title>
<updated>2019-03-11T22:12:26+00:00</updated>
<author>
<name>Ludovic Courtès</name>
<email>ludo@gnu.org</email>
</author>
<published>2019-03-11T21:14:30+00:00</published>
<link rel='alternate' type='text/html' href='https://git.vineetk.net/guix/commit/?id=bfc9c339301ffe6dd15d156894dc27e05f6f081f'/>
<id>bfc9c339301ffe6dd15d156894dc27e05f6f081f</id>
<content type='text'>
Until now %LOAD-COMPILED-PATH would wrongfully contain:

  CHANNEL/share/guile/site/X.Y

for each channel, thereby ignoring all the .go files of channels.  This
fixes it so that %LOAD-COMPILED-PATH instead contains:

  CHANNEL/lib/guile/X.Y/site-ccache

* guix/describe.scm (current-channel-entries): New procedure.
(package-path-entries): Change to return the %LOAD-COMPILED-PATH entries
as a second value.
* gnu/packages.scm (%package-module-path): Expect two values from
'package-path-entries' and augment %LOAD-COMPILED-PATH accordingly.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Until now %LOAD-COMPILED-PATH would wrongfully contain:

  CHANNEL/share/guile/site/X.Y

for each channel, thereby ignoring all the .go files of channels.  This
fixes it so that %LOAD-COMPILED-PATH instead contains:

  CHANNEL/lib/guile/X.Y/site-ccache

* guix/describe.scm (current-channel-entries): New procedure.
(package-path-entries): Change to return the %LOAD-COMPILED-PATH entries
as a second value.
* gnu/packages.scm (%package-module-path): Expect two values from
'package-path-entries' and augment %LOAD-COMPILED-PATH accordingly.
</pre>
</div>
</content>
</entry>
<entry>
<title>packages: Remove duplicates from package cache.</title>
<updated>2019-02-16T00:00:08+00:00</updated>
<author>
<name>Ludovic Courtès</name>
<email>ludo@gnu.org</email>
</author>
<published>2019-02-15T21:58:29+00:00</published>
<link rel='alternate' type='text/html' href='https://git.vineetk.net/guix/commit/?id=36754eee28187b41e9a6ef15cd3c9911449a4e8d'/>
<id>36754eee28187b41e9a6ef15cd3c9911449a4e8d</id>
<content type='text'>
Previously the same package could appear several times if several
variables were bound to it, as is notably the case for "python"
currently.  This, in turn, would lead to obnoxious "ambiguous package
specification" messages.

* gnu/packages.scm (generate-package-cache)[expand-cache]: Change RESULT
to RESULT+SEEN and adjust accordingly.
Call 'first' on the result of 'fold-module-public-variables*'.
* tests/packages.scm ("fold-available-packages with/without cache"):
Check for lack of duplicates in FROM-CACHE.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Previously the same package could appear several times if several
variables were bound to it, as is notably the case for "python"
currently.  This, in turn, would lead to obnoxious "ambiguous package
specification" messages.

* gnu/packages.scm (generate-package-cache)[expand-cache]: Change RESULT
to RESULT+SEEN and adjust accordingly.
Call 'first' on the result of 'fold-module-public-variables*'.
* tests/packages.scm ("fold-available-packages with/without cache"):
Check for lack of duplicates in FROM-CACHE.
</pre>
</div>
</content>
</entry>
<entry>
<title>guix package: '--list-available' can use data from the cache.</title>
<updated>2019-01-15T19:24:09+00:00</updated>
<author>
<name>Ludovic Courtès</name>
<email>ludo@gnu.org</email>
</author>
<published>2019-01-13T14:36:49+00:00</published>
<link rel='alternate' type='text/html' href='https://git.vineetk.net/guix/commit/?id=0ea939fb796fdd4f0d46d3534b2ec6135e0f3dc7'/>
<id>0ea939fb796fdd4f0d46d3534b2ec6135e0f3dc7</id>
<content type='text'>
* gnu/packages.scm (fold-available-packages): New procedure.
* guix/scripts/package.scm (process-query): Use it instead of
'fold-packages'.
* tests/packages.scm ("fold-available-packages with/without cache"):
New test.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* gnu/packages.scm (fold-available-packages): New procedure.
* guix/scripts/package.scm (process-query): Use it instead of
'fold-packages'.
* tests/packages.scm ("fold-available-packages with/without cache"):
New test.
</pre>
</div>
</content>
</entry>
<entry>
<title>edit: Use 'specification-&gt;location' to read information from the cache.</title>
<updated>2019-01-15T19:24:09+00:00</updated>
<author>
<name>Ludovic Courtès</name>
<email>ludo@gnu.org</email>
</author>
<published>2019-01-13T13:27:10+00:00</published>
<link rel='alternate' type='text/html' href='https://git.vineetk.net/guix/commit/?id=ee8099f5b688ce5f57790db4122f0b5b91a26216'/>
<id>ee8099f5b688ce5f57790db4122f0b5b91a26216</id>
<content type='text'>
That way 'guix edit' doesn't need to load any package module.

* gnu/packages.scm (find-package-locations, specification-&gt;location):
New procedures.
* guix/scripts/edit.scm (package-&gt;location-specification): Rename to...
(location-&gt;location-specification): ... this.  Expect a location object
instead of a package.
(guix-edit): Use 'specification-&gt;location' instead of
'specification-&gt;package'.
* tests/packages.scm ("find-package-locations")
("find-package-locations with cache")
("specification-&gt;location"): New tests.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
That way 'guix edit' doesn't need to load any package module.

* gnu/packages.scm (find-package-locations, specification-&gt;location):
New procedures.
* guix/scripts/edit.scm (package-&gt;location-specification): Rename to...
(location-&gt;location-specification): ... this.  Expect a location object
instead of a package.
(guix-edit): Use 'specification-&gt;location' instead of
'specification-&gt;package'.
* tests/packages.scm ("find-package-locations")
("find-package-locations with cache")
("specification-&gt;location"): New tests.
</pre>
</div>
</content>
</entry>
<entry>
<title>channels: Compute a package cache and use it.</title>
<updated>2019-01-15T19:24:09+00:00</updated>
<author>
<name>Ludovic Courtès</name>
<email>ludo@gnu.org</email>
</author>
<published>2019-01-11T16:23:39+00:00</published>
<link rel='alternate' type='text/html' href='https://git.vineetk.net/guix/commit/?id=5fbdc9a5aa63fd51c65d30fe3d30608d01fe1bc8'/>
<id>5fbdc9a5aa63fd51c65d30fe3d30608d01fe1bc8</id>
<content type='text'>
* gnu/packages.scm (cache-is-authoritative?, load-package-cache)
(cache-lookup, generate-package-cache): New procedures.
(%package-cache-file): New variable.
(find-packages-by-name): Rename to...
(find-packages-by-name/direct): ... this.
(find-packages-by-name): Rewrite to use the package cache when
'cache-is-authoritative?' returns true.
* tests/packages.scm ("find-packages-by-name + version, with cache")
("find-packages-by-name with cache"): New tests.
* guix/channels.scm (package-cache-file): New procedure.
(%channel-profile-hooks): New variable.
(channel-instances-&gt;derivation): Use it in #:hooks.
* guix/scripts/package.scm (build-and-use-profile): Add #:hooks and
honor it.
* guix/scripts/pull.scm (build-and-install): Pass #:hooks to
UPDATE-PROFILE.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* gnu/packages.scm (cache-is-authoritative?, load-package-cache)
(cache-lookup, generate-package-cache): New procedures.
(%package-cache-file): New variable.
(find-packages-by-name): Rename to...
(find-packages-by-name/direct): ... this.
(find-packages-by-name): Rewrite to use the package cache when
'cache-is-authoritative?' returns true.
* tests/packages.scm ("find-packages-by-name + version, with cache")
("find-packages-by-name with cache"): New tests.
* guix/channels.scm (package-cache-file): New procedure.
(%channel-profile-hooks): New variable.
(channel-instances-&gt;derivation): Use it in #:hooks.
* guix/scripts/package.scm (build-and-use-profile): Add #:hooks and
honor it.
* guix/scripts/pull.scm (build-and-install): Pass #:hooks to
UPDATE-PROFILE.
</pre>
</div>
</content>
</entry>
<entry>
<title>packages: Remove 'find-newest-available-packages'.</title>
<updated>2019-01-15T19:24:09+00:00</updated>
<author>
<name>Ludovic Courtès</name>
<email>ludo@gnu.org</email>
</author>
<published>2019-01-11T14:19:41+00:00</published>
<link rel='alternate' type='text/html' href='https://git.vineetk.net/guix/commit/?id=e2a903c807ccacec5925f197ce26f626060e1953'/>
<id>e2a903c807ccacec5925f197ce26f626060e1953</id>
<content type='text'>
Since commit 9ffc1c00e55eb7931846dbb3fafcf54716fff57c,
'find-newest-available-packages' and 'find-packages-by-name' were both
building a vhash mapping package names to packages.  This factorizes
this bit, also reducing I/O, CPU, and memory usage.

* gnu/packages.scm (find-best-packages-by-name): Remove.
(find-best-packages-by-name): Use 'find-packages-by-name' instead of
'find-newest-available-packages'.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Since commit 9ffc1c00e55eb7931846dbb3fafcf54716fff57c,
'find-newest-available-packages' and 'find-packages-by-name' were both
building a vhash mapping package names to packages.  This factorizes
this bit, also reducing I/O, CPU, and memory usage.

* gnu/packages.scm (find-best-packages-by-name): Remove.
(find-best-packages-by-name): Use 'find-packages-by-name' instead of
'find-newest-available-packages'.
</pre>
</div>
</content>
</entry>
<entry>
<title>Add (guix describe) and use it to initialize '%package-search-path'.</title>
<updated>2018-09-02T14:43:10+00:00</updated>
<author>
<name>Ludovic Courtès</name>
<email>ludo@gnu.org</email>
</author>
<published>2018-08-27T13:38:59+00:00</published>
<link rel='alternate' type='text/html' href='https://git.vineetk.net/guix/commit/?id=fe634eaf93ba40862acdf62d7f197c6f19f0651c'/>
<id>fe634eaf93ba40862acdf62d7f197c6f19f0651c</id>
<content type='text'>
* guix/describe.scm: New file.
* Makefile.am (MODULES): Add it.
* gnu/packages.scm (%default-package-module-path): New variable.
(%package-module-path): Honor 'package-path-entries'.
* build-aux/update-NEWS.scm (main): Use %DEFAULT-PACKAGE-MODULE-PATH
instead of (last (%package-module-path)).
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* guix/describe.scm: New file.
* Makefile.am (MODULES): Add it.
* gnu/packages.scm (%default-package-module-path): New variable.
(%package-module-path): Honor 'package-path-entries'.
* build-aux/update-NEWS.scm (main): Use %DEFAULT-PACKAGE-MODULE-PATH
instead of (last (%package-module-path)).
</pre>
</div>
</content>
</entry>
<entry>
<title>packages: 'find-packages-by-name' properly honors version prefixes.</title>
<updated>2018-05-13T11:29:27+00:00</updated>
<author>
<name>Ludovic Courtès</name>
<email>ludo@gnu.org</email>
</author>
<published>2018-05-13T10:16:34+00:00</published>
<link rel='alternate' type='text/html' href='https://git.vineetk.net/guix/commit/?id=348987d3d12ebaf11fdbcc3dbd56585e7d69a1f5'/>
<id>348987d3d12ebaf11fdbcc3dbd56585e7d69a1f5</id>
<content type='text'>
Fixes &lt;https://bugs.gnu.org/28446&gt;.
Reported by Mark H Weaver &lt;mhw@netris.org&gt;.

* gnu/packages.scm (find-packages-by-name): Use 'version-prefix?'
instead of 'string-prefix?'.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Fixes &lt;https://bugs.gnu.org/28446&gt;.
Reported by Mark H Weaver &lt;mhw@netris.org&gt;.

* gnu/packages.scm (find-packages-by-name): Use 'version-prefix?'
instead of 'string-prefix?'.
</pre>
</div>
</content>
</entry>
</feed>
