<feed xmlns='http://www.w3.org/2005/Atom'>
<title>guix/doc, branch core-packages-team</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>utils: Add helpers to make files executable.</title>
<updated>2026-08-23T14:37:50+00:00</updated>
<author>
<name>Sergio Pastor Pérez</name>
<email>sergio.pastor-perez@inria.fr</email>
</author>
<published>2026-03-17T10:02:07+00:00</published>
<link rel='alternate' type='text/html' href='https://git.vineetk.net/guix/commit/?id=354253b8501d5f8c23ffa49fa6ed9eb0eaf47b45'/>
<id>354253b8501d5f8c23ffa49fa6ed9eb0eaf47b45</id>
<content type='text'>
* doc/guix.texi (Build Utilities, set-file-permissions): Document procedure.
(make-file-executable): Document procedure.
* guix/build/utils.scm (set-file-permissions): New procedure.
(make-file-executable): Ne procedure.
(make-file-writable): Implement using `set-file-permissions'
(make-desktop-entry-file): Set executable permissions for destination desktop
file.

Change-Id: Ic4e5b3c30851c0d5cf262915aab190732b3b365b
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* doc/guix.texi (Build Utilities, set-file-permissions): Document procedure.
(make-file-executable): Document procedure.
* guix/build/utils.scm (set-file-permissions): New procedure.
(make-file-executable): Ne procedure.
(make-file-writable): Implement using `set-file-permissions'
(make-desktop-entry-file): Set executable permissions for destination desktop
file.

Change-Id: Ic4e5b3c30851c0d5cf262915aab190732b3b365b
</pre>
</div>
</content>
</entry>
<entry>
<title>gnu: gcc: Add patch to remove references to store items.</title>
<updated>2026-08-23T14:35:20+00:00</updated>
<author>
<name>Sergio Pastor Pérez</name>
<email>sergio.pastor-perez@inria.fr</email>
</author>
<published>2026-03-03T16:40:59+00:00</published>
<link rel='alternate' type='text/html' href='https://git.vineetk.net/guix/commit/?id=45767a412168d67758d42d04a6314be8a14721aa'/>
<id>45767a412168d67758d42d04a6314be8a14721aa</id>
<content type='text'>
* doc/guix-cookbook.texi: Update examples.
* gnu/packages/gcc.scm: Apply store mangling patch to GCC newer than version 13.
* gnu/packages/patches/gcc-mangle-guix-store.patch: New file.
* gnu/local.mk (dist_patch_DATA): Add it.
* guix/build/gnu-build-system.scm (%standard-phases): Add
`set-GUIX_GCC_MANGLE_PREFIX_MAP' phase to enable store mangling behavior in
patched GCCs.

Fixes: #2394, #2846, #6644
Change-Id: Ifcc2907aaa4535dbc06491495e4c236e32afe555
Signed-off-by: Ludovic Courtès &lt;ludo@gnu.org&gt;
Merges: #7101
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* doc/guix-cookbook.texi: Update examples.
* gnu/packages/gcc.scm: Apply store mangling patch to GCC newer than version 13.
* gnu/packages/patches/gcc-mangle-guix-store.patch: New file.
* gnu/local.mk (dist_patch_DATA): Add it.
* guix/build/gnu-build-system.scm (%standard-phases): Add
`set-GUIX_GCC_MANGLE_PREFIX_MAP' phase to enable store mangling behavior in
patched GCCs.

Fixes: #2394, #2846, #6644
Change-Id: Ifcc2907aaa4535dbc06491495e4c236e32afe555
Signed-off-by: Ludovic Courtès &lt;ludo@gnu.org&gt;
Merges: #7101
</pre>
</div>
</content>
</entry>
<entry>
<title>gnu: services: audio: Add snapcast snapserver service.</title>
<updated>2026-08-22T19:03:01+00:00</updated>
<author>
<name>Christopher Baines</name>
<email>mail@cbaines.net</email>
</author>
<published>2026-08-09T09:20:02+00:00</published>
<link rel='alternate' type='text/html' href='https://git.vineetk.net/guix/commit/?id=9ceab34e9bd42c878bfeab15c71687ab754e4cf4'/>
<id>9ceab34e9bd42c878bfeab15c71687ab754e4cf4</id>
<content type='text'>
This is just the server component, another service definition is needed for
the snapclient.

* gnu/services/audio.scm: (snapserver-stream, snapserver-stream?,
snapserver-stream-name, snapserver-stream-type, snapserver-stream-location,
snapserver-stream-codec, snapserver-stream-sampleformat,
snapserver-stream-chunk-ms, snapserver-stream-parameters,
snapserver-configuration, snapserver-configuration?,
snapserver-configuration-package, snapserver-configuration-user,
snapserver-configuration-group, snapserver-configuration-shepherd-requirement,
snapserver-configuration-log-file, snapserver-configuration-log-filter,
snapserver-configuration-data-directory, snapserver-configuration-mdns?,
snapserver-configuration-http?, snapserver-configuration-http-port,
snapserver-configuration-http-bind-address, snapserver-configuration-doc-root,
snapserver-configuration-tcp-control?,
snapserver-configuration-tcp-control-port,
snapserver-configuration-tcp-streaming?,
snapserver-configuration-tcp-streaming-port, snapserver-configuration-streams,
snapserver-configuration-codec, snapserver-configuration-sampleformat,
snapserver-configuration-buffer-ms, snapserver-configuration-chunk-ms,
snapserver-configuration-send-to-muted?,
snapserver-configuration-extra-content): New procedures.
(snapserver-service-type): New variable.
* doc/guix.texi (Audio Services): Document it.

Change-Id: I5dd2c15ff8c1b560abd481147312a8d6fc844776
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This is just the server component, another service definition is needed for
the snapclient.

* gnu/services/audio.scm: (snapserver-stream, snapserver-stream?,
snapserver-stream-name, snapserver-stream-type, snapserver-stream-location,
snapserver-stream-codec, snapserver-stream-sampleformat,
snapserver-stream-chunk-ms, snapserver-stream-parameters,
snapserver-configuration, snapserver-configuration?,
snapserver-configuration-package, snapserver-configuration-user,
snapserver-configuration-group, snapserver-configuration-shepherd-requirement,
snapserver-configuration-log-file, snapserver-configuration-log-filter,
snapserver-configuration-data-directory, snapserver-configuration-mdns?,
snapserver-configuration-http?, snapserver-configuration-http-port,
snapserver-configuration-http-bind-address, snapserver-configuration-doc-root,
snapserver-configuration-tcp-control?,
snapserver-configuration-tcp-control-port,
snapserver-configuration-tcp-streaming?,
snapserver-configuration-tcp-streaming-port, snapserver-configuration-streams,
snapserver-configuration-codec, snapserver-configuration-sampleformat,
snapserver-configuration-buffer-ms, snapserver-configuration-chunk-ms,
snapserver-configuration-send-to-muted?,
snapserver-configuration-extra-content): New procedures.
(snapserver-service-type): New variable.
* doc/guix.texi (Audio Services): Document it.

Change-Id: I5dd2c15ff8c1b560abd481147312a8d6fc844776
</pre>
</div>
</content>
</entry>
<entry>
<title>services: Add home-goimapnotify-service-type.</title>
<updated>2026-08-21T21:18:11+00:00</updated>
<author>
<name>Sergio Pastor Pérez</name>
<email>sergio.pastorperez@gmail.com</email>
</author>
<published>2026-07-22T12:28:07+00:00</published>
<link rel='alternate' type='text/html' href='https://git.vineetk.net/guix/commit/?id=58091d1b6e33d978b06ea05e3dedb3203720a64d'/>
<id>58091d1b6e33d978b06ea05e3dedb3203720a64d</id>
<content type='text'>
* doc/guix.texi (Mail Home Services): Document
'home-goimapnotify-service-type' and 'home-goimapnotify-configuration'.
* gnu/home/services/mail.scm (camelize-field-name)
(goimapnotify-serialize-field, goimapnotify-serialize-boolean): New procedure.
(field-name-mapping): New parameter.
(goimapnotify-tls-options-configuration): New configuration.
(goimapnotify-serialize-string, goimapnotify-serialize-maybe-string)
(goimapnotify-serialize-string-or-gexp): New procedure.
(goimapnotify-serialize-maybe-string-or-gexp): New maybe type.
* gnu/home/services/mail.scm (goimapnotify-box-configuration): New
configuration.
(serialize-goimapnotify-tls-options-configuration): New maybe type.
(goimapnotify-tls-options-configuration): New configuration.:(list-of-goimapnotify-boxes-configurations?):
New procedure.
(serialize-list-of-goimapnotify-boxes-configurations): New configuration.
(goimapnotify-configuration): New configuration.
(serialize-goimapnotify-configuration)::(list-of-goimapnotify-configurations?)
(serialize-list-of-goimapnotify-configurations): New procedure.
(home-goimapnotify-configuration): New configuration.
(home-goimapnotify-shepherd-service): New service.
(home-goimapnotify-service-type): New service type.

Signed-off-by: Ludovic Courtès &lt;ludo@gnu.org&gt;
Merges: #10104
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* doc/guix.texi (Mail Home Services): Document
'home-goimapnotify-service-type' and 'home-goimapnotify-configuration'.
* gnu/home/services/mail.scm (camelize-field-name)
(goimapnotify-serialize-field, goimapnotify-serialize-boolean): New procedure.
(field-name-mapping): New parameter.
(goimapnotify-tls-options-configuration): New configuration.
(goimapnotify-serialize-string, goimapnotify-serialize-maybe-string)
(goimapnotify-serialize-string-or-gexp): New procedure.
(goimapnotify-serialize-maybe-string-or-gexp): New maybe type.
* gnu/home/services/mail.scm (goimapnotify-box-configuration): New
configuration.
(serialize-goimapnotify-tls-options-configuration): New maybe type.
(goimapnotify-tls-options-configuration): New configuration.:(list-of-goimapnotify-boxes-configurations?):
New procedure.
(serialize-list-of-goimapnotify-boxes-configurations): New configuration.
(goimapnotify-configuration): New configuration.
(serialize-goimapnotify-configuration)::(list-of-goimapnotify-configurations?)
(serialize-list-of-goimapnotify-configurations): New procedure.
(home-goimapnotify-configuration): New configuration.
(home-goimapnotify-shepherd-service): New service.
(home-goimapnotify-service-type): New service type.

Signed-off-by: Ludovic Courtès &lt;ludo@gnu.org&gt;
Merges: #10104
</pre>
</div>
</content>
</entry>
<entry>
<title>gnu: services: pm: Add hd-idle.</title>
<updated>2026-08-21T15:42:58+00:00</updated>
<author>
<name>Christopher Baines</name>
<email>mail@cbaines.net</email>
</author>
<published>2026-08-07T19:34:24+00:00</published>
<link rel='alternate' type='text/html' href='https://git.vineetk.net/guix/commit/?id=dd12ee28474c2e4b128e8ab37cc4113a2088b604'/>
<id>dd12ee28474c2e4b128e8ab37cc4113a2088b604</id>
<content type='text'>
* gnu/services/pm.scm: (hd-idle-disk, hd-idle-disk?, hd-idle-configuration, hd-idle-configuration?):
New prodedures.
(hd-idle-service-type): New variable.
* doc/guix.texi (Power Management Services): Document it.

Change-Id: I205b9a8de9aa8a15314d03962582aa3ae245a31e
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* gnu/services/pm.scm: (hd-idle-disk, hd-idle-disk?, hd-idle-configuration, hd-idle-configuration?):
New prodedures.
(hd-idle-service-type): New variable.
* doc/guix.texi (Power Management Services): Document it.

Change-Id: I205b9a8de9aa8a15314d03962582aa3ae245a31e
</pre>
</div>
</content>
</entry>
<entry>
<title>services: cuirass: Add ‘minimum-disk-space’ field.</title>
<updated>2026-08-21T14:00:23+00:00</updated>
<author>
<name>Ludovic Courtès</name>
<email>ludo@gnu.org</email>
</author>
<published>2026-08-20T20:18:10+00:00</published>
<link rel='alternate' type='text/html' href='https://git.vineetk.net/guix/commit/?id=f5326e03e27b938ca8aaae462b261193ac895d4f'/>
<id>f5326e03e27b938ca8aaae462b261193ac895d4f</id>
<content type='text'>
* gnu/services/cuirass.scm (&lt;cuirass-remote-worker-configuration&gt;)
[minimum-disk-space]: New field.
(cuirass-remote-worker-shepherd-service): Honor it.
* doc/guix.texi (Continuous Integration): Document it.

Signed-off-by: Ludovic Courtès &lt;ludo@gnu.org&gt;
Merges: #10691
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* gnu/services/cuirass.scm (&lt;cuirass-remote-worker-configuration&gt;)
[minimum-disk-space]: New field.
(cuirass-remote-worker-shepherd-service): Honor it.
* doc/guix.texi (Continuous Integration): Document it.

Signed-off-by: Ludovic Courtès &lt;ludo@gnu.org&gt;
Merges: #10691
</pre>
</div>
</content>
</entry>
<entry>
<title>services: Rewrite 'zulip-irc-bridge-configuration' with 'define-configuration/no-serialization'.</title>
<updated>2026-08-21T14:00:23+00:00</updated>
<author>
<name>Sergio Pastor Pérez</name>
<email>sergio.pastorperez@gmail.com</email>
</author>
<published>2026-07-25T17:41:21+00:00</published>
<link rel='alternate' type='text/html' href='https://git.vineetk.net/guix/commit/?id=08edc6d5ef72d1fca3088bc6635b6701bcde0b45'/>
<id>08edc6d5ef72d1fca3088bc6635b6701bcde0b45</id>
<content type='text'>
* gnu/services/messaging.scm (zulip-irc-bridge-configuration): Rewrite using
'define-configuration/no-serialization'.
(zulip-irc-bridge-services): Adjust for handling 'maybe-string' types.

Signed-off-by: Ludovic Courtès &lt;ludo@gnu.org&gt;
Merges: #10180
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* gnu/services/messaging.scm (zulip-irc-bridge-configuration): Rewrite using
'define-configuration/no-serialization'.
(zulip-irc-bridge-services): Adjust for handling 'maybe-string' types.

Signed-off-by: Ludovic Courtès &lt;ludo@gnu.org&gt;
Merges: #10180
</pre>
</div>
</content>
</entry>
<entry>
<title>doc: Add new chapter about Guix extensions.</title>
<updated>2026-08-21T14:00:22+00:00</updated>
<author>
<name>Sergio Pastor Pérez</name>
<email>sergio.pastor-perez@inria.fr</email>
</author>
<published>2026-08-17T08:04:36+00:00</published>
<link rel='alternate' type='text/html' href='https://git.vineetk.net/guix/commit/?id=bc9a4d924b4ee7110cd03e2c5dd066f6bc417dc4'/>
<id>bc9a4d924b4ee7110cd03e2c5dd066f6bc417dc4</id>
<content type='text'>
* doc/guix.texi (Extending Guix): Add new chapter.

Signed-off-by: Ludovic Courtès &lt;ludo@gnu.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* doc/guix.texi (Extending Guix): Add new chapter.

Signed-off-by: Ludovic Courtès &lt;ludo@gnu.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>doc: Improve documentation of ‘trivial-build-system’.</title>
<updated>2026-08-20T16:25:42+00:00</updated>
<author>
<name>Ludovic Courtès</name>
<email>ludo@gnu.org</email>
</author>
<published>2026-08-17T09:19:14+00:00</published>
<link rel='alternate' type='text/html' href='https://git.vineetk.net/guix/commit/?id=f55efecab1db9e8e92f817efc7ac5ebd6dba462b'/>
<id>f55efecab1db9e8e92f817efc7ac5ebd6dba462b</id>
<content type='text'>
* doc/guix.texi (Build Systems): Fold the trivial build system intro under
‘trivial-build-system’; refer to gexps instead of
‘build-expression-&gt;derivation’; add an example; add cross-reference to
‘copy-build-system’.

Signed-off-by: Ludovic Courtès &lt;ludo@gnu.org&gt;
Merges: #10608
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* doc/guix.texi (Build Systems): Fold the trivial build system intro under
‘trivial-build-system’; refer to gexps instead of
‘build-expression-&gt;derivation’; add an example; add cross-reference to
‘copy-build-system’.

Signed-off-by: Ludovic Courtès &lt;ludo@gnu.org&gt;
Merges: #10608
</pre>
</div>
</content>
</entry>
<entry>
<title>daemon: Bypass authentication when importing content-addressed store items.</title>
<updated>2026-08-17T14:47:36+00:00</updated>
<author>
<name>Ludovic Courtès</name>
<email>ludo@gnu.org</email>
</author>
<published>2026-05-30T21:54:05+00:00</published>
<link rel='alternate' type='text/html' href='https://git.vineetk.net/guix/commit/?id=64d4de2a920445e5992f020e56490f5fcbdbba7c'/>
<id>64d4de2a920445e5992f020e56490f5fcbdbba7c</id>
<content type='text'>
This puts ‘importPaths’ on par with ‘addToStore’ and ‘addTextToStore’: since
the two latter RPCs let anyone add content-addressed items in the store,
there’s no reason for ‘importPaths’ to require signatures by authorized keys
on these content-addressed items.

This will allow for things like ‘guix copy’ of .drv items without
authorization, or ‘guix deploy’ with (build-locally? #f) without
authorization.

* nix/libstore/store-api.hh (isContentAddressedPath): New prototype.
* nix/libstore/store-api.cc (isContentAddressedPath): New function.
* nix/libutil/util.hh (isPlainFile): New prototype.
* nix/libutil/util.cc (isPlainFile): New function.
* nix/libstore/local-store.cc (LocalStore::importPath): Define ‘narHash’ and
‘contentAddressed’.  Allow unsigned imports when ‘contentAddressed’ is true;
bypass signature verification when ‘contentAddressed’ is true.
* tests/store.scm ("import not signed"): Rewrite to not use a
content-addressed store item.
("import signed by unauthorized key"): Likewise.
("import not signed but content-addressed tree"): New test.
("import not signed but content-addressed regular file"): New test.
("import signed by unauthorized key but content-addressed"): New test.
("import with corrupt signature"): New test.
("import signed by authorized key but hash doesn't match"): New test.
("import with corrupt signature but content-addressed"): New test.
("import signed by authorized key, hash doesn't match, but content-addressed"):
New test.
* doc/guix.texi (Invoking guix archive): Document the exception for
content-addressed store items.  Add anchor for ‘--authorize’.
(Invoking guix deploy): Document the benefit of (build-locally? #f).
Add cross-reference for ‘authorize?’.

Co-authored-by: Reepca Russelstein &lt;reepca@russelstein.xyz&gt;
Signed-off-by: Ludovic Courtès &lt;ludo@gnu.org&gt;
Merges: #8979
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This puts ‘importPaths’ on par with ‘addToStore’ and ‘addTextToStore’: since
the two latter RPCs let anyone add content-addressed items in the store,
there’s no reason for ‘importPaths’ to require signatures by authorized keys
on these content-addressed items.

This will allow for things like ‘guix copy’ of .drv items without
authorization, or ‘guix deploy’ with (build-locally? #f) without
authorization.

* nix/libstore/store-api.hh (isContentAddressedPath): New prototype.
* nix/libstore/store-api.cc (isContentAddressedPath): New function.
* nix/libutil/util.hh (isPlainFile): New prototype.
* nix/libutil/util.cc (isPlainFile): New function.
* nix/libstore/local-store.cc (LocalStore::importPath): Define ‘narHash’ and
‘contentAddressed’.  Allow unsigned imports when ‘contentAddressed’ is true;
bypass signature verification when ‘contentAddressed’ is true.
* tests/store.scm ("import not signed"): Rewrite to not use a
content-addressed store item.
("import signed by unauthorized key"): Likewise.
("import not signed but content-addressed tree"): New test.
("import not signed but content-addressed regular file"): New test.
("import signed by unauthorized key but content-addressed"): New test.
("import with corrupt signature"): New test.
("import signed by authorized key but hash doesn't match"): New test.
("import with corrupt signature but content-addressed"): New test.
("import signed by authorized key, hash doesn't match, but content-addressed"):
New test.
* doc/guix.texi (Invoking guix archive): Document the exception for
content-addressed store items.  Add anchor for ‘--authorize’.
(Invoking guix deploy): Document the benefit of (build-locally? #f).
Add cross-reference for ‘authorize?’.

Co-authored-by: Reepca Russelstein &lt;reepca@russelstein.xyz&gt;
Signed-off-by: Ludovic Courtès &lt;ludo@gnu.org&gt;
Merges: #8979
</pre>
</div>
</content>
</entry>
</feed>
