<feed xmlns='http://www.w3.org/2005/Atom'>
<title>guix/tests, branch next-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>transformations: Add ‘--amd-gpu’ transformation option.</title>
<updated>2026-01-25T20:25:40+00:00</updated>
<author>
<name>Ludovic Courtès</name>
<email>ludo@gnu.org</email>
</author>
<published>2026-01-13T08:38:38+00:00</published>
<link rel='alternate' type='text/html' href='https://git.vineetk.net/guix/commit/?id=0c5d65d5400c6193571972451083baa66265ec5a'/>
<id>0c5d65d5400c6193571972451083baa66265ec5a</id>
<content type='text'>
* guix/transformations.scm (split-on-commas): New procedure, moved from…
(transform-package-toolchain): … here.
(package-amd-gpu-specialization, transform-package-amd-gpu-targets): New
procedures.
(%transformations, %options): Add ‘amd-gpu’.
* tests/transformations.scm ("options-&gt;transformations, amd-gpu")
("options-&gt;transformations, amd-gpu, not applicable")
("options-&gt;transformations, amd-gpu, missing clang-rocm input")
("options-&gt;transformations, amd-gpu, wrong GPU"): New tests.
* doc/guix.texi (Package Transformation Options): Document it.

Change-Id: I56bf0dffbf12bc08cf6318fe56952473b395c303
Signed-off-by: Ludovic Courtès &lt;ludo@gnu.org&gt;
Merges: #5583
Signed-off-by: Rutherther &lt;rutherther@ditigal.xyz&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* guix/transformations.scm (split-on-commas): New procedure, moved from…
(transform-package-toolchain): … here.
(package-amd-gpu-specialization, transform-package-amd-gpu-targets): New
procedures.
(%transformations, %options): Add ‘amd-gpu’.
* tests/transformations.scm ("options-&gt;transformations, amd-gpu")
("options-&gt;transformations, amd-gpu, not applicable")
("options-&gt;transformations, amd-gpu, missing clang-rocm input")
("options-&gt;transformations, amd-gpu, wrong GPU"): New tests.
* doc/guix.texi (Package Transformation Options): Document it.

Change-Id: I56bf0dffbf12bc08cf6318fe56952473b395c303
Signed-off-by: Ludovic Courtès &lt;ludo@gnu.org&gt;
Merges: #5583
Signed-off-by: Rutherther &lt;rutherther@ditigal.xyz&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>tests: Adjust to Guile 3.0.10+.</title>
<updated>2026-01-25T20:23:25+00:00</updated>
<author>
<name>Ludovic Courtès</name>
<email>ludo@gnu.org</email>
</author>
<published>2026-01-03T21:15:15+00:00</published>
<link rel='alternate' type='text/html' href='https://git.vineetk.net/guix/commit/?id=d118a89d62ef1e85199f90a1267e555b49d38ee8'/>
<id>d118a89d62ef1e85199f90a1267e555b49d38ee8</id>
<content type='text'>
Guile 3.0.11 introduced a new implementation of (srfi srfi-34) with subtle
changes wrt. exceptionm handling.  This adjusts to these changes.

Changes in ‘tests/style.scm’ are due to the new output of (ice-9 pretty-print)
in 3.0.10.

* tests/file-systems.scm ("btrfs-store-subvolume-file-name (subvolid)"):
Specify the exception type.
* tests/services/file-sharing.scm ("transmission-password-hash, salt value too short")
("transmission-password-hash, salt value too long"): Likewise.
* tests/store.scm ("store-path-package-name #f"): Change to ‘test-error’
with #t as the exception type.
* tests/style.scm: Skip all the tests on Guile &gt; 3.0.9.
* tests/toml.scm &lt;top level&gt;: Set ‘raise’ in (guix build toml).
("parse-toml: No key"): Use ‘test-error’ instead of ‘test-equal’.
("parse-toml: Assignment to non-table"): Likewise.
("parse-toml: Invalid assignment to implicit table"): Change exception type
to #t
("parse-toml: Assignment to statically defined array"): Likewise.

Change-Id: I54ea77f22d3e95f72dad90690631876e7f013054
Signed-off-by: Ludovic Courtès &lt;ludo@gnu.org&gt;
Signed-off-by: Rutherther &lt;rutherther@ditigal.xyz&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Guile 3.0.11 introduced a new implementation of (srfi srfi-34) with subtle
changes wrt. exceptionm handling.  This adjusts to these changes.

Changes in ‘tests/style.scm’ are due to the new output of (ice-9 pretty-print)
in 3.0.10.

* tests/file-systems.scm ("btrfs-store-subvolume-file-name (subvolid)"):
Specify the exception type.
* tests/services/file-sharing.scm ("transmission-password-hash, salt value too short")
("transmission-password-hash, salt value too long"): Likewise.
* tests/store.scm ("store-path-package-name #f"): Change to ‘test-error’
with #t as the exception type.
* tests/style.scm: Skip all the tests on Guile &gt; 3.0.9.
* tests/toml.scm &lt;top level&gt;: Set ‘raise’ in (guix build toml).
("parse-toml: No key"): Use ‘test-error’ instead of ‘test-equal’.
("parse-toml: Assignment to non-table"): Likewise.
("parse-toml: Invalid assignment to implicit table"): Change exception type
to #t
("parse-toml: Assignment to statically defined array"): Likewise.

Change-Id: I54ea77f22d3e95f72dad90690631876e7f013054
Signed-off-by: Ludovic Courtès &lt;ludo@gnu.org&gt;
Signed-off-by: Rutherther &lt;rutherther@ditigal.xyz&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>import: nuget: Add tests and documentation.</title>
<updated>2026-01-19T18:21:52+00:00</updated>
<author>
<name>Danny Milosavljevic</name>
<email>dannym@friendly-machines.com</email>
</author>
<published>2026-01-09T22:57:19+00:00</published>
<link rel='alternate' type='text/html' href='https://git.vineetk.net/guix/commit/?id=811ee1ab9fb585130fe0c27df03f10dc21b1e7f7'/>
<id>811ee1ab9fb585130fe0c27df03f10dc21b1e7f7</id>
<content type='text'>
* guix/import/nuget.scm: Prevent optimizing small functions away completely.
* tests/import/nuget.scm: New file.
* doc/guix.texi (nuget): Document it.
* Makefile.am (SCM_TESTS): Add reference to it.

Fixes: guix/guix#5483
Change-Id: Id58932fe404a11a03e61a91d3b6177b39548f1bc
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* guix/import/nuget.scm: Prevent optimizing small functions away completely.
* tests/import/nuget.scm: New file.
* doc/guix.texi (nuget): Document it.
* Makefile.am (SCM_TESTS): Add reference to it.

Fixes: guix/guix#5483
Change-Id: Id58932fe404a11a03e61a91d3b6177b39548f1bc
</pre>
</div>
</content>
</entry>
<entry>
<title>import: crate: Generate comments with ‘TODO REVIEW:’ prefix.</title>
<updated>2026-01-18T09:13:38+00:00</updated>
<author>
<name>Hilton Chain</name>
<email>hako@ultrarare.space</email>
</author>
<published>2025-11-30T09:00:53+00:00</published>
<link rel='alternate' type='text/html' href='https://git.vineetk.net/guix/commit/?id=01b97dff35a1841152c1e2999de06c6fdf51e7c1'/>
<id>01b97dff35a1841152c1e2999de06c6fdf51e7c1</id>
<content type='text'>
This distinguishes them from manually added ones.  When committing changes,
these ‘TODO REVIEW’ comments should be addressed and removed first.

If you're working with Rust packaging, please update your local Guix to this
commit to apply the change.

* guix/import/crate.scm (cargo-lock-&gt;expressions): Generate comments with
‘TODO REVIEW:’ prefix.
* tests/import/crate.scm ("crate-lockfile-import"): Don't check the exact
comment string.
* doc/guix-cookbook.texi (Common Workflow for Rust Packaging),
* gnu/packages/rust-crates.scm: Adjust accordingly.

Change-Id: I76b914b49be46d04cc61b101b6bc9e31cadb7f07
Signed-off-by: Rutherther &lt;rutherther@ditigal.xyz&gt;
Merges: #4567
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This distinguishes them from manually added ones.  When committing changes,
these ‘TODO REVIEW’ comments should be addressed and removed first.

If you're working with Rust packaging, please update your local Guix to this
commit to apply the change.

* guix/import/crate.scm (cargo-lock-&gt;expressions): Generate comments with
‘TODO REVIEW:’ prefix.
* tests/import/crate.scm ("crate-lockfile-import"): Don't check the exact
comment string.
* doc/guix-cookbook.texi (Common Workflow for Rust Packaging),
* gnu/packages/rust-crates.scm: Adjust accordingly.

Change-Id: I76b914b49be46d04cc61b101b6bc9e31cadb7f07
Signed-off-by: Rutherther &lt;rutherther@ditigal.xyz&gt;
Merges: #4567
</pre>
</div>
</content>
</entry>
<entry>
<title>gnu: services: Name xorg tests.</title>
<updated>2026-01-01T11:36:38+00:00</updated>
<author>
<name>Ian Eure</name>
<email>ian@retrospec.tv</email>
</author>
<published>2025-12-31T18:22:03+00:00</published>
<link rel='alternate' type='text/html' href='https://git.vineetk.net/guix/commit/?id=68e9cb0d21b49a728581ab41f9de0a14025329f5'/>
<id>68e9cb0d21b49a728581ab41f9de0a14025329f5</id>
<content type='text'>
* tests/services/xorg.scm: Name tests.

Change-Id: I7be7438a69a5d55d5904c3b76a2888393291b6bb
Signed-off-by: Efraim Flashner &lt;efraim@flashner.co.il&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* tests/services/xorg.scm: Name tests.

Change-Id: I7be7438a69a5d55d5904c3b76a2888393291b6bb
Signed-off-by: Efraim Flashner &lt;efraim@flashner.co.il&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>gnu: services: Fix xorg configuration merging.</title>
<updated>2026-01-01T11:26:02+00:00</updated>
<author>
<name>Ian Eure</name>
<email>ian@retrospec.tv</email>
</author>
<published>2025-12-31T18:07:23+00:00</published>
<link rel='alternate' type='text/html' href='https://git.vineetk.net/guix/commit/?id=7d4db1a37c39019c0840fe074f90df0b7be3c120'/>
<id>7d4db1a37c39019c0840fe074f90df0b7be3c120</id>
<content type='text'>
A bug in #21 causes the default configuration to be omitted from the xorg
merging process.  This can cause users not using set-xorg-configuration or
service extensions to end up with a broken configuration.

Fixes #5267.

* tests/services/xorg.scm: Add a regression test.
* gnu/services/xorg.scm (handle-xorg-configuration): Include the
xorg-configuration record from config in merges.

Change-Id: I6bed8c109057cb9b5de36db68b78e3ccc88e6bcb
Signed-off-by: Efraim Flashner &lt;efraim@flashner.co.il&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
A bug in #21 causes the default configuration to be omitted from the xorg
merging process.  This can cause users not using set-xorg-configuration or
service extensions to end up with a broken configuration.

Fixes #5267.

* tests/services/xorg.scm: Add a regression test.
* gnu/services/xorg.scm (handle-xorg-configuration): Include the
xorg-configuration record from config in merges.

Change-Id: I6bed8c109057cb9b5de36db68b78e3ccc88e6bcb
Signed-off-by: Efraim Flashner &lt;efraim@flashner.co.il&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>gnu: Merge xorg configurations when extending.</title>
<updated>2025-12-26T12:15:41+00:00</updated>
<author>
<name>Ian Eure</name>
<email>ian@retrospec.tv</email>
</author>
<published>2025-03-25T22:17:03+00:00</published>
<link rel='alternate' type='text/html' href='https://git.vineetk.net/guix/commit/?id=a9462997d743e4cb4edd557d7ffeeb98048bb4de'/>
<id>a9462997d743e4cb4edd557d7ffeeb98048bb4de</id>
<content type='text'>
Configuration for xorg is embedded in the various display-manager
configuration records, and extension support is factored out into the
`handle-xorg-configuration' macro.  However, the extension mechanism replaces
the existing xorg-configuration with the supplied one, making it impossible to
compose configuration from multiple sources.  This patch adds a procedure to
merge two xorg-configuration records, and calls it within
handle-xorg-configuration, allowing the config to be built piecemeal.

* gnu/services/xorg.scm (merge-xorg-configurations): New variable.
(handle-xorg-configuration): Merge xorg configs.

Change-Id: I20e9db911eef5d4efe98fdf382f3084e4defc1ba
Signed-off-by: Liliana Marie Prikler &lt;liliana.prikler@gmail.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Configuration for xorg is embedded in the various display-manager
configuration records, and extension support is factored out into the
`handle-xorg-configuration' macro.  However, the extension mechanism replaces
the existing xorg-configuration with the supplied one, making it impossible to
compose configuration from multiple sources.  This patch adds a procedure to
merge two xorg-configuration records, and calls it within
handle-xorg-configuration, allowing the config to be built piecemeal.

* gnu/services/xorg.scm (merge-xorg-configurations): New variable.
(handle-xorg-configuration): Merge xorg configs.

Change-Id: I20e9db911eef5d4efe98fdf382f3084e4defc1ba
Signed-off-by: Liliana Marie Prikler &lt;liliana.prikler@gmail.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>authenticate: Report failure to load keys to the daemon.</title>
<updated>2025-12-22T14:10:52+00:00</updated>
<author>
<name>Ludovic Courtès</name>
<email>ludo@gnu.org</email>
</author>
<published>2025-12-19T08:34:47+00:00</published>
<link rel='alternate' type='text/html' href='https://git.vineetk.net/guix/commit/?id=0ac2a0fd1813fb5c04b22f6443d8f8a96d3c9645'/>
<id>0ac2a0fd1813fb5c04b22f6443d8f8a96d3c9645</id>
<content type='text'>
Previously, when failing to load a signing key, ‘guix authenticate’ would
print a backtrace and exit with a non-zero code.  That, in turn, would lead
the guix-daemon child process to crash with:

  nix/libutil/serialise.cc:15: virtual nix::BufferedSink::~BufferedSink(): Assertion `!bufPos' failed.

This patch fixes it by reporting the error to the daemon as was intended.

* guix/scripts/authenticate.scm (guix-authenticate): Arrange to call
‘load-key-pair’ from within ‘with-reply’.
* tests/guix-authenticate.sh: Test it.

Fixes: guix/guix#4928
Reported-by: Rutherther &lt;rutherther@ditigal.xyz&gt;
Change-Id: I8654ad6fdfbe18c55e1e85647d0c49f408d0574a
Signed-off-by: Ludovic Courtès &lt;ludo@gnu.org&gt;
Merges: #4961
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Previously, when failing to load a signing key, ‘guix authenticate’ would
print a backtrace and exit with a non-zero code.  That, in turn, would lead
the guix-daemon child process to crash with:

  nix/libutil/serialise.cc:15: virtual nix::BufferedSink::~BufferedSink(): Assertion `!bufPos' failed.

This patch fixes it by reporting the error to the daemon as was intended.

* guix/scripts/authenticate.scm (guix-authenticate): Arrange to call
‘load-key-pair’ from within ‘with-reply’.
* tests/guix-authenticate.sh: Test it.

Fixes: guix/guix#4928
Reported-by: Rutherther &lt;rutherther@ditigal.xyz&gt;
Change-Id: I8654ad6fdfbe18c55e1e85647d0c49f408d0574a
Signed-off-by: Ludovic Courtès &lt;ludo@gnu.org&gt;
Merges: #4961
</pre>
</div>
</content>
</entry>
<entry>
<title>tests: Use ‘https’ for ‘home-page’ in ‘guix import pypi’ tests.</title>
<updated>2025-12-13T22:14:27+00:00</updated>
<author>
<name>Ludovic Courtès</name>
<email>ludo@gnu.org</email>
</author>
<published>2025-12-13T21:31:09+00:00</published>
<link rel='alternate' type='text/html' href='https://git.vineetk.net/guix/commit/?id=812fc780d4fc27479cfca0a4fab255a1e8ccca64'/>
<id>812fc780d4fc27479cfca0a4fab255a1e8ccca64</id>
<content type='text'>
Fixes a regression introduced in d66e9698a18a6be2d6b670f5a31c23f87afece68.

* tests/import/pypi.scm ("pypi-&gt;guix-package, no wheel")
("pypi-&gt;guix-package, no wheel, no requires.txt, but pyproject.toml")
("pypi-&gt;guix-package, no wheel, but requires.txt and pyproject.toml")
("pypi-&gt;guix-package, no requires.txt, but wheel.")
("pypi-&gt;guix-package, no usable requirement file, no wheel.")
("pypi-&gt;guix-package, package name contains \"-\" followed by digits"): Change
‘home-page’ to ‘https://’.

Fixes: guix/guix#4646
Reported-by: Rutherther &lt;rutherther@ditigal.xyz&gt;
Change-Id: Id3ddac832d9688f2eb8a055c13f62a9642a20766
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Fixes a regression introduced in d66e9698a18a6be2d6b670f5a31c23f87afece68.

* tests/import/pypi.scm ("pypi-&gt;guix-package, no wheel")
("pypi-&gt;guix-package, no wheel, no requires.txt, but pyproject.toml")
("pypi-&gt;guix-package, no wheel, but requires.txt and pyproject.toml")
("pypi-&gt;guix-package, no requires.txt, but wheel.")
("pypi-&gt;guix-package, no usable requirement file, no wheel.")
("pypi-&gt;guix-package, package name contains \"-\" followed by digits"): Change
‘home-page’ to ‘https://’.

Fixes: guix/guix#4646
Reported-by: Rutherther &lt;rutherther@ditigal.xyz&gt;
Change-Id: Id3ddac832d9688f2eb8a055c13f62a9642a20766
</pre>
</div>
</content>
</entry>
<entry>
<title>system: Relax subordinate ID validation.</title>
<updated>2025-12-11T14:43:16+00:00</updated>
<author>
<name>Giacomo Leidi</name>
<email>therewasa@fishinthecalculator.me</email>
</author>
<published>2025-11-15T10:18:40+00:00</published>
<link rel='alternate' type='text/html' href='https://git.vineetk.net/guix/commit/?id=fdb46ae7b19d45a6a1f5adb660283981bf4b7a1d'/>
<id>fdb46ae7b19d45a6a1f5adb660283981bf4b7a1d</id>
<content type='text'>
https://codeberg.org/guix/guix/issues/3925 raised the inabilityy of the
subordinate IDs service of handling externally managed sub{u,g}id file
entries. This patch relaxes the checks in place for existing ranges,
by allowing subid-range records lower than %subordinate-id-min, leaving
all the space from subid 0 to %subordinate-id-min - 1 to external
users. Generic ranges are still allocated within %subordinate-id-min and
%subordinate-id-max.

* gnu/build/accounts.scm (&lt;unused-id-range&gt;)[min]: Change default value
to 0, allowing subid-ranges with a start lesser than
%subordinate-id-min.
(allocate-generic-range): Allocate generic ranges starting from
%subordinate-id-min, leaving ranges starting before %subordinate-id-min.
(allocate-specific-range): Move bounds check to...
(allocate-subids): ...here. Now bound validation is applied only to user
provided ranges.
* tests/accounts.scm: Test new behavior.

Fixes: guix/guix#3925
Change-Id: Id923b122c97a20f148684f5fb144fd9422810612
Signed-off-by: Ludovic Courtès &lt;ludo@gnu.org&gt;
Merges: #4235
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
https://codeberg.org/guix/guix/issues/3925 raised the inabilityy of the
subordinate IDs service of handling externally managed sub{u,g}id file
entries. This patch relaxes the checks in place for existing ranges,
by allowing subid-range records lower than %subordinate-id-min, leaving
all the space from subid 0 to %subordinate-id-min - 1 to external
users. Generic ranges are still allocated within %subordinate-id-min and
%subordinate-id-max.

* gnu/build/accounts.scm (&lt;unused-id-range&gt;)[min]: Change default value
to 0, allowing subid-ranges with a start lesser than
%subordinate-id-min.
(allocate-generic-range): Allocate generic ranges starting from
%subordinate-id-min, leaving ranges starting before %subordinate-id-min.
(allocate-specific-range): Move bounds check to...
(allocate-subids): ...here. Now bound validation is applied only to user
provided ranges.
* tests/accounts.scm: Test new behavior.

Fixes: guix/guix#3925
Change-Id: Id923b122c97a20f148684f5fb144fd9422810612
Signed-off-by: Ludovic Courtès &lt;ludo@gnu.org&gt;
Merges: #4235
</pre>
</div>
</content>
</entry>
</feed>
