<feed xmlns='http://www.w3.org/2005/Atom'>
<title>guix/tests, branch v1.3.0</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>diagnostics, ui: Adjust to 'read-error' and 'syntax-error' in Guile 3.0.6.</title>
<updated>2021-05-09T21:45:36+00:00</updated>
<author>
<name>Ludovic Courtès</name>
<email>ludo@gnu.org</email>
</author>
<published>2021-04-28T22:38:03+00:00</published>
<link rel='alternate' type='text/html' href='https://git.vineetk.net/guix/commit/?id=9562a2eb6162ea6712fe31529c30002a83313dd8'/>
<id>9562a2eb6162ea6712fe31529c30002a83313dd8</id>
<content type='text'>
* guix/diagnostics.scm (source-properties-&gt;location): Add clause for
vectors.
* guix/ui.scm (report-load-error): Tweak 'read-error' handling for 3.0.6.
* tests/guix-package.sh: Relax regexp for the "unbound variable"
diagnostic check.
* tests/guix-system.sh: Adjust "missing closing paren" check for 3.0.6.
* tests/records.scm (location-alist): New procedure.
("define-record-type* &amp; wrong field specifier")
("define-record-type* &amp; wrong field specifier, identifier")
("define-record-type* &amp; duplicate initializers"): Use it.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* guix/diagnostics.scm (source-properties-&gt;location): Add clause for
vectors.
* guix/ui.scm (report-load-error): Tweak 'read-error' handling for 3.0.6.
* tests/guix-package.sh: Relax regexp for the "unbound variable"
diagnostic check.
* tests/guix-system.sh: Adjust "missing closing paren" check for 3.0.6.
* tests/records.scm (location-alist): New procedure.
("define-record-type* &amp; wrong field specifier")
("define-record-type* &amp; wrong field specifier, identifier")
("define-record-type* &amp; duplicate initializers"): Use it.
</pre>
</div>
</content>
</entry>
<entry>
<title>import: Remove Nix importer.</title>
<updated>2021-04-25T12:34:09+00:00</updated>
<author>
<name>Ludovic Courtès</name>
<email>ludo@gnu.org</email>
</author>
<published>2021-04-18T13:37:20+00:00</published>
<link rel='alternate' type='text/html' href='https://git.vineetk.net/guix/commit/?id=c59cc2383d6620f6ebbed80ce1feecae41a64d69'/>
<id>c59cc2383d6620f6ebbed80ce1feecae41a64d69</id>
<content type='text'>
This importer has suffered from bitrot and no longer works with current
Nix and Nixpkgs.  See &lt;https://bugs.gnu.org/32339&gt; and
&lt;https://bugs.gnu.org/36255&gt;.

* guix/import/snix.scm, guix/scripts/import/nix.scm,
tests/snix.scm: Remove.
* Makefile.am (MODULES, SCM_TESTS): Remove them.
* guix/scripts/import.scm (importers): Remove "nix".
* build-aux/test-env.in: Remove NIXPKGS variable.
* configure.ac: Remove '--with-nixpkgs' option.
* doc/guix.texi (Invoking guix import): Remove bit about "guix import
nix".
* etc/completion/fish/guix.fish: Likewise.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This importer has suffered from bitrot and no longer works with current
Nix and Nixpkgs.  See &lt;https://bugs.gnu.org/32339&gt; and
&lt;https://bugs.gnu.org/36255&gt;.

* guix/import/snix.scm, guix/scripts/import/nix.scm,
tests/snix.scm: Remove.
* Makefile.am (MODULES, SCM_TESTS): Remove them.
* guix/scripts/import.scm (importers): Remove "nix".
* build-aux/test-env.in: Remove NIXPKGS variable.
* configure.ac: Remove '--with-nixpkgs' option.
* doc/guix.texi (Invoking guix import): Remove bit about "guix import
nix".
* etc/completion/fish/guix.fish: Likewise.
</pre>
</div>
</content>
</entry>
<entry>
<title>lint: Warn about underscores in package names.</title>
<updated>2021-04-16T21:25:23+00:00</updated>
<author>
<name>Xinglu Chen</name>
<email>public@yoctocell.xyz</email>
</author>
<published>2021-04-15T18:31:44+00:00</published>
<link rel='alternate' type='text/html' href='https://git.vineetk.net/guix/commit/?id=c68070e4eefd25118b368bd7af872f65ab739fc7'/>
<id>c68070e4eefd25118b368bd7af872f65ab739fc7</id>
<content type='text'>
As per section '16.4.2 Package Naming' in the manual, use hyphens
instead of underscores in package names.

* guix/lint.scm (check-name): Check whether the package name contains
underscores.
* tests/lint.scm ("name: use underscore in package name"): New test.

Signed-off-by: Ludovic Courtès &lt;ludo@gnu.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
As per section '16.4.2 Package Naming' in the manual, use hyphens
instead of underscores in package names.

* guix/lint.scm (check-name): Check whether the package name contains
underscores.
* tests/lint.scm ("name: use underscore in package name"): New test.

Signed-off-by: Ludovic Courtès &lt;ludo@gnu.org&gt;
</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>Add (guix ipfs).</title>
<updated>2021-04-12T16:42:22+00:00</updated>
<author>
<name>Ludovic Courtès</name>
<email>ludo@gnu.org</email>
</author>
<published>2018-12-28T00:07:58+00:00</published>
<link rel='alternate' type='text/html' href='https://git.vineetk.net/guix/commit/?id=b18f45c21f5d697d384a7bd5c9d3ee314bba9e35'/>
<id>b18f45c21f5d697d384a7bd5c9d3ee314bba9e35</id>
<content type='text'>
This module allows for communicating with the IPFS
gateway over the HTTP interface.  The commit has been
cherry-picked from &lt;https://issues.guix.gnu.org/33899&gt;.

The procedures for adding and restoring file trees have
been removed as according to a reply issue 33899, a different
format will be used.  The procedure 'add-data' has been
exported as it will be used in the system test for IPFS.

* guix/ipfs.scm: New file.
* Makefile.am (MODULES): Add it.

Signed-off-by: Ludovic Courtès &lt;ludo@gnu.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This module allows for communicating with the IPFS
gateway over the HTTP interface.  The commit has been
cherry-picked from &lt;https://issues.guix.gnu.org/33899&gt;.

The procedures for adding and restoring file trees have
been removed as according to a reply issue 33899, a different
format will be used.  The procedure 'add-data' has been
exported as it will be used in the system test for IPFS.

* guix/ipfs.scm: New file.
* Makefile.am (MODULES): Add it.

Signed-off-by: Ludovic Courtès &lt;ludo@gnu.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>import: go: Add an option to use pinned versions.</title>
<updated>2021-04-10T02:41:32+00:00</updated>
<author>
<name>Maxim Cournoyer</name>
<email>maxim.cournoyer@gmail.com</email>
</author>
<published>2021-03-19T20:41:51+00:00</published>
<link rel='alternate' type='text/html' href='https://git.vineetk.net/guix/commit/?id=a8b927a562aad7e5f77d0e4db2d9cee3434446d2'/>
<id>a8b927a562aad7e5f77d0e4db2d9cee3434446d2</id>
<content type='text'>
The ability to pin versions is handy when having to deal to packages that
bootstrap themselves through a chain of former versions.  Not using pinned
versions in these case could introduce dependency cycles.

* guix/build-system/go.scm (guix)
(%go-version-rx): Rename to...
(%go-pseudo-version-rx): ... this.  Simplify the regular expression, which in
turns makes it more robust.
* guix/build-system/go.scm (go-version-&gt;git-ref): Adjust following the above
rename.
(go-pseudo-version?): New predicate.
(go-module-latest-version): Rename to ...
(go-module-version-string): ... this.  Rename goproxy-url argument to just
goproxy.  Add a VERSION keyword argument, update docstring and adjust to have
it used.
(go-module-available-versions): New procedure.
(%go.mod-require-directive-rx): Document regexp.
(parse-go.mod): Harmonize the way dependencies are recorded to a list of lists
rather than a list of pairs, as done for other importers.  Rewrite to directly pass
multiple values rather than a record object.  Filter the replaced modules in a
functional style.
(go-module-&gt;guix-package): Add docstring.
[version, pin-versions?]: New arguments.  Rename the GOPROXY-URL argument to
GOPROXY.  Adjust to the new returned value of fetch-go.mod, which is a string.
Fail when the provided version doesn't exist.  Return a list dependencies and
their versions when in pinned versions mode, else just the dependencies.
(go-module-recursive-import)[version, pin-versions?]: New arguments.
Honor the new arguments and guard against network errors.
* guix/scripts/import/go.scm (%default-options): Register a default value for
the goproxy argument.
(show-help): Document that a version can be specified.  Remove the --version
argument and add a --pin-versions argument.
(%options)[version]: Remove option.
[pin-versions]: Add option.
(guix-import-go): Adjust so the version provided from the module name is
honored, along the new pin-versions? argument.
* tests/go.scm: Adjust and add new tests.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The ability to pin versions is handy when having to deal to packages that
bootstrap themselves through a chain of former versions.  Not using pinned
versions in these case could introduce dependency cycles.

* guix/build-system/go.scm (guix)
(%go-version-rx): Rename to...
(%go-pseudo-version-rx): ... this.  Simplify the regular expression, which in
turns makes it more robust.
* guix/build-system/go.scm (go-version-&gt;git-ref): Adjust following the above
rename.
(go-pseudo-version?): New predicate.
(go-module-latest-version): Rename to ...
(go-module-version-string): ... this.  Rename goproxy-url argument to just
goproxy.  Add a VERSION keyword argument, update docstring and adjust to have
it used.
(go-module-available-versions): New procedure.
(%go.mod-require-directive-rx): Document regexp.
(parse-go.mod): Harmonize the way dependencies are recorded to a list of lists
rather than a list of pairs, as done for other importers.  Rewrite to directly pass
multiple values rather than a record object.  Filter the replaced modules in a
functional style.
(go-module-&gt;guix-package): Add docstring.
[version, pin-versions?]: New arguments.  Rename the GOPROXY-URL argument to
GOPROXY.  Adjust to the new returned value of fetch-go.mod, which is a string.
Fail when the provided version doesn't exist.  Return a list dependencies and
their versions when in pinned versions mode, else just the dependencies.
(go-module-recursive-import)[version, pin-versions?]: New arguments.
Honor the new arguments and guard against network errors.
* guix/scripts/import/go.scm (%default-options): Register a default value for
the goproxy argument.
(show-help): Document that a version can be specified.  Remove the --version
argument and add a --pin-versions argument.
(%options)[version]: Remove option.
[pin-versions]: Add option.
(guix-import-go): Adjust so the version provided from the module name is
honored, along the new pin-versions? argument.
* tests/go.scm: Adjust and add new tests.
</pre>
</div>
</content>
</entry>
<entry>
<title>import: go: Improve synopsis and description parsing.</title>
<updated>2021-04-10T02:41:31+00:00</updated>
<author>
<name>Maxim Cournoyer</name>
<email>maxim.cournoyer@gmail.com</email>
</author>
<published>2021-03-22T03:53:21+00:00</published>
<link rel='alternate' type='text/html' href='https://git.vineetk.net/guix/commit/?id=6aee902eaf9e38d5f41f568ef787fa0cc5203318'/>
<id>6aee902eaf9e38d5f41f568ef787fa0cc5203318</id>
<content type='text'>
* guix/import/go.scm (%strict-tokenizer?): Set parameter to #t.
(go-path-escape): Redefine to prevent inlining.
(http-get*): Replace by ...
(http-fetch*): this ...
(json-fetch*): New procedure.
(go.pkg.dev-info): Use http-fetch*.
(go-package-licenses): Rewrite in terms of go.pkg.dev-info.
(go-package-description): Likewise.
(go-package-synopsis): Likewise.
(fetch-go.mod): Use the memoized http-fetch*.
(parse-go.mod): Adjust to receive content as a string.
(fetch-module-meta-data): Adjust to use http-fetch*.
(go-module-&gt;guix-package): Adjust to the modified fetch-go.mod return value.
[inputs]: Use propagated inputs, which is the most common situations for Go
libraries.
[description]: Beautify description.
[licenses]: Do no check for #f.  The result of the license parsing is always a
list.
* tests/go.scm: Adjust following above changes.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* guix/import/go.scm (%strict-tokenizer?): Set parameter to #t.
(go-path-escape): Redefine to prevent inlining.
(http-get*): Replace by ...
(http-fetch*): this ...
(json-fetch*): New procedure.
(go.pkg.dev-info): Use http-fetch*.
(go-package-licenses): Rewrite in terms of go.pkg.dev-info.
(go-package-description): Likewise.
(go-package-synopsis): Likewise.
(fetch-go.mod): Use the memoized http-fetch*.
(parse-go.mod): Adjust to receive content as a string.
(fetch-module-meta-data): Adjust to use http-fetch*.
(go-module-&gt;guix-package): Adjust to the modified fetch-go.mod return value.
[inputs]: Use propagated inputs, which is the most common situations for Go
libraries.
[description]: Beautify description.
[licenses]: Do no check for #f.  The result of the license parsing is always a
list.
* tests/go.scm: Adjust following above changes.
</pre>
</div>
</content>
</entry>
<entry>
<title>daemon: 'guix substitute' replies on FD 4.</title>
<updated>2021-04-09T15:46:38+00:00</updated>
<author>
<name>Ludovic Courtès</name>
<email>ludo@gnu.org</email>
</author>
<published>2021-04-06T10:10:29+00:00</published>
<link rel='alternate' type='text/html' href='https://git.vineetk.net/guix/commit/?id=2d73086262e1fb33cd0f0f16f74a495fe06b38aa'/>
<id>2d73086262e1fb33cd0f0f16f74a495fe06b38aa</id>
<content type='text'>
This avoids the situation where error messages would unintentionally go
to stderr and be wrongfully interpreted as a reply by the daemon.

Fixes &lt;https://bugs.gnu.org/46362&gt;.
This is a followup to ee3226e9d54891c7e696912245e4904435be191c.

* guix/scripts/substitute.scm (display-narinfo-data): Add 'port'
parameter and honor it.
(process-query): Likewise.
(process-substitution): Likewise.
(%error-to-file-descriptor-4?, with-redirected-error-port): Remove.
(%reply-file-descriptor): New variable.
(guix-substitute): Remove use of 'with-redirected-error-port'.  Define
'reply-port' and pass it to 'process-query' and 'process-substitution'.
* nix/libstore/build.cc (SubstitutionGoal::handleChildOutput): Swap
'builderOut' and 'fromAgent'.
* nix/libstore/local-store.cc (LocalStore::getLineFromSubstituter):
Likewise.
* tests/substitute.scm &lt;top level&gt;: Set '%reply-file-descriptor'
rather than '%error-to-file-descriptor-4?'.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This avoids the situation where error messages would unintentionally go
to stderr and be wrongfully interpreted as a reply by the daemon.

Fixes &lt;https://bugs.gnu.org/46362&gt;.
This is a followup to ee3226e9d54891c7e696912245e4904435be191c.

* guix/scripts/substitute.scm (display-narinfo-data): Add 'port'
parameter and honor it.
(process-query): Likewise.
(process-substitution): Likewise.
(%error-to-file-descriptor-4?, with-redirected-error-port): Remove.
(%reply-file-descriptor): New variable.
(guix-substitute): Remove use of 'with-redirected-error-port'.  Define
'reply-port' and pass it to 'process-query' and 'process-substitution'.
* nix/libstore/build.cc (SubstitutionGoal::handleChildOutput): Swap
'builderOut' and 'fromAgent'.
* nix/libstore/local-store.cc (LocalStore::getLineFromSubstituter):
Likewise.
* tests/substitute.scm &lt;top level&gt;: Set '%reply-file-descriptor'
rather than '%error-to-file-descriptor-4?'.
</pre>
</div>
</content>
</entry>
<entry>
<title>gnu-maintenance: Recognize more source tarball naming schemes.</title>
<updated>2021-04-05T10:03:09+00:00</updated>
<author>
<name>Ludovic Courtès</name>
<email>ludo@gnu.org</email>
</author>
<published>2021-04-05T09:30:20+00:00</published>
<link rel='alternate' type='text/html' href='https://git.vineetk.net/guix/commit/?id=ceeea60bbc1e2be6a86cef208fcd80eb61c92934'/>
<id>ceeea60bbc1e2be6a86cef208fcd80eb61c92934</id>
<content type='text'>
* guix/gnu-maintenance.scm (%package-name-rx): Add ".src" and ".orig"
suffixes.
* tests/gnu-maintenance.scm ("release-file?"): Add mpg321 and bvi
examples.
("tarball-&gt;version"): New test.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* guix/gnu-maintenance.scm (%package-name-rx): Add ".src" and ".orig"
suffixes.
* tests/gnu-maintenance.scm ("release-file?"): Add mpg321 and bvi
examples.
("tarball-&gt;version"): New test.
</pre>
</div>
</content>
</entry>
<entry>
<title>tests: Make 'publish' test umask-insensitive.</title>
<updated>2021-03-31T13:36:48+00:00</updated>
<author>
<name>Cees de Groot</name>
<email>cg@evrl.com</email>
</author>
<published>2021-03-30T15:11:48+00:00</published>
<link rel='alternate' type='text/html' href='https://git.vineetk.net/guix/commit/?id=c536f0b217714917988d2f412999d978c2f2f495'/>
<id>c536f0b217714917988d2f412999d978c2f2f495</id>
<content type='text'>
Fixes &lt;https://bugs.gnu.org/47239&gt;.
Reported by Konrad Hinsen &lt;konrad.hinsen@fastmail.net&gt;.

* tests/publish.scm ("with cache"): Pass the result of 'stat:perms' to
'logand' to be umask-insensitive.

Signed-off-by: Ludovic Courtès &lt;ludo@gnu.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Fixes &lt;https://bugs.gnu.org/47239&gt;.
Reported by Konrad Hinsen &lt;konrad.hinsen@fastmail.net&gt;.

* tests/publish.scm ("with cache"): Pass the result of 'stat:perms' to
'logand' to be umask-insensitive.

Signed-off-by: Ludovic Courtès &lt;ludo@gnu.org&gt;
</pre>
</div>
</content>
</entry>
</feed>
