<feed xmlns='http://www.w3.org/2005/Atom'>
<title>guix/doc, branch hpc-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>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>
<entry>
<title>services: vmware-vmtoolsd: Add vmware-vmtoolsd service.</title>
<updated>2026-08-14T10:07:36+00:00</updated>
<author>
<name>Douglas Deslauriers</name>
<email>Douglas.Deslauriers@vector.com</email>
</author>
<published>2025-04-29T15:30:02+00:00</published>
<link rel='alternate' type='text/html' href='https://git.vineetk.net/guix/commit/?id=910e426076ea078bd8a2bed658999250e37d46c3'/>
<id>910e426076ea078bd8a2bed658999250e37d46c3</id>
<content type='text'>
Reasoning on running these executables outside a VMWare hypervisor is
difficult, which mean we can't implement service tests in current state
of the art in upstream QEMU.

Essentially the first thing any `open-vm-tools' executable checks is
whether it is executing in a VMWare hypervisor via
`CPUID_VMWARE_HYPERVISOR_VENDOR_STRING' [1]. This would fail for any
machine not running inside VMWare.

Marionette evaluations in Guix use QEMU to run the virtual machines that
some tests run on. QEMU emulates and allow configuration of some CPUID
flags and vendor strings. It does not emulate the hypervisor flag, or
allow configuration of the hypervisor vendor flag, which would be
required for this program to run and output anything observable, other
than a non-zero exit code.

In the case someone added upstream QEMU support for custom CPUID
hypervisor flags and vendor strings, these executables would initialize
a log file, but could not test anything meaningful without a hypercall
interface. QEMU sort-of emulates such an interface when it is told to
act like the Xen hypervisor, but doesn't seem to support the required
`vmcall', `vmmcall', or `inl' x86 assembly instruction communication
mechanism between the host and guest.

The Linux KVM supports a limited set of hypercalls [2], but certainly
not the ones required for these executables, the same applies for
Hurd. Since the KVM project already has a functional serial interface
between the guest and host [3], it is a low possibility upstream would
want to greatly expand the `vmcall' hypercall support in any case.

An alternative path would be to add the `USE_VALGRIND' define when
compiling the `vmware-open-vm-tools' package, which skips the hypervisor
CPUID flag checking, but still would require proper hypercall support to
test anything useful.  Additionally, this would require another package,
or perhaps a "testing" output of the `vmware-open-vm-tools' pacakge,
which would be a nearly entire duplicate of the executables and would be
used exclusively for whichever test is written.

1. &lt;https://github.com/vmware/open-vm-tools/blob/stable-13.1.x/open-vm-tools/lib/vmCheck/vmcheck.c#L335&gt;
2. &lt;https://docs.kernel.org/virt/kvm/x86/hypercalls.html&gt;
3. &lt;https://linux-kvm.org/page/VMchannel_Requirements&gt;

* gnu/services/virtualization.scm
(vmware-vmtoolsd-shepherd-service): new procedures.
(vmware-vmtoolsd-service-type): new service type
(vmware-vmtoolsd-configuration): new struct.
update copyright commentary.
* doc/guix.texi (Virtualization Services): document it.

Merges: guix/guix!5098
Modified-by: Sharlatan Hellseher &lt;sharlatanus@gmail.com&gt;
Signed-off-by: Sharlatan Hellseher &lt;sharlatanus@gmail.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Reasoning on running these executables outside a VMWare hypervisor is
difficult, which mean we can't implement service tests in current state
of the art in upstream QEMU.

Essentially the first thing any `open-vm-tools' executable checks is
whether it is executing in a VMWare hypervisor via
`CPUID_VMWARE_HYPERVISOR_VENDOR_STRING' [1]. This would fail for any
machine not running inside VMWare.

Marionette evaluations in Guix use QEMU to run the virtual machines that
some tests run on. QEMU emulates and allow configuration of some CPUID
flags and vendor strings. It does not emulate the hypervisor flag, or
allow configuration of the hypervisor vendor flag, which would be
required for this program to run and output anything observable, other
than a non-zero exit code.

In the case someone added upstream QEMU support for custom CPUID
hypervisor flags and vendor strings, these executables would initialize
a log file, but could not test anything meaningful without a hypercall
interface. QEMU sort-of emulates such an interface when it is told to
act like the Xen hypervisor, but doesn't seem to support the required
`vmcall', `vmmcall', or `inl' x86 assembly instruction communication
mechanism between the host and guest.

The Linux KVM supports a limited set of hypercalls [2], but certainly
not the ones required for these executables, the same applies for
Hurd. Since the KVM project already has a functional serial interface
between the guest and host [3], it is a low possibility upstream would
want to greatly expand the `vmcall' hypercall support in any case.

An alternative path would be to add the `USE_VALGRIND' define when
compiling the `vmware-open-vm-tools' package, which skips the hypervisor
CPUID flag checking, but still would require proper hypercall support to
test anything useful.  Additionally, this would require another package,
or perhaps a "testing" output of the `vmware-open-vm-tools' pacakge,
which would be a nearly entire duplicate of the executables and would be
used exclusively for whichever test is written.

1. &lt;https://github.com/vmware/open-vm-tools/blob/stable-13.1.x/open-vm-tools/lib/vmCheck/vmcheck.c#L335&gt;
2. &lt;https://docs.kernel.org/virt/kvm/x86/hypercalls.html&gt;
3. &lt;https://linux-kvm.org/page/VMchannel_Requirements&gt;

* gnu/services/virtualization.scm
(vmware-vmtoolsd-shepherd-service): new procedures.
(vmware-vmtoolsd-service-type): new service type
(vmware-vmtoolsd-configuration): new struct.
update copyright commentary.
* doc/guix.texi (Virtualization Services): document it.

Merges: guix/guix!5098
Modified-by: Sharlatan Hellseher &lt;sharlatanus@gmail.com&gt;
Signed-off-by: Sharlatan Hellseher &lt;sharlatanus@gmail.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>doc: Fix -E option example of `guix shell'.</title>
<updated>2026-08-07T01:26:47+00:00</updated>
<author>
<name>Maxim Cournoyer</name>
<email>maxim@guixotic.coop</email>
</author>
<published>2026-08-06T01:11:30+00:00</published>
<link rel='alternate' type='text/html' href='https://git.vineetk.net/guix/commit/?id=265e481036cd66aee0c0be64f884f306aefc4f41'/>
<id>265e481036cd66aee0c0be64f884f306aefc4f41</id>
<content type='text'>
The TERM variable had been changed to OMP_NUM_THREADS in the example, but the
text hadn't been adjusted.

* doc/guix.texi (Invoking guix shell): Replace TERM with OMP_NUM_THREADS, as
well as its associated value (from "no-color" to "16").
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The TERM variable had been changed to OMP_NUM_THREADS in the example, but the
text hadn't been adjusted.

* doc/guix.texi (Invoking guix shell): Replace TERM with OMP_NUM_THREADS, as
well as its associated value (from "no-color" to "16").
</pre>
</div>
</content>
</entry>
<entry>
<title>services: rsync: Remove deprecated configuration options.</title>
<updated>2026-07-29T06:59:08+00:00</updated>
<author>
<name>Maxim Cournoyer</name>
<email>maxim.cournoyer@gmail.com</email>
</author>
<published>2025-06-05T07:24:15+00:00</published>
<link rel='alternate' type='text/html' href='https://git.vineetk.net/guix/commit/?id=598966a9e07a39f5e368a084e4f82c9ea2cc36a9'/>
<id>598966a9e07a39f5e368a084e4f82c9ea2cc36a9</id>
<content type='text'>
These have been deprecated since 2021.

* gnu/services/rsync.scm (warn-share-field-deprecation): Delete syntax.
(&lt;rsync-configuration&gt;) [use-chroot?, share-path, share-comment]
[read-only?, timeout]: Delete deprecated fields.
(rsync-configuration-modules): Delete compatibility procedure.
* doc/guix.texi (Networking Services) &lt;rsync-configuration&gt;: Update doc.

Change-Id: Ia7742deaf61dc87824e70172647f2974c5ddb758
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
These have been deprecated since 2021.

* gnu/services/rsync.scm (warn-share-field-deprecation): Delete syntax.
(&lt;rsync-configuration&gt;) [use-chroot?, share-path, share-comment]
[read-only?, timeout]: Delete deprecated fields.
(rsync-configuration-modules): Delete compatibility procedure.
* doc/guix.texi (Networking Services) &lt;rsync-configuration&gt;: Update doc.

Change-Id: Ia7742deaf61dc87824e70172647f2974c5ddb758
</pre>
</div>
</content>
</entry>
<entry>
<title>doc: Update dependency URLs.</title>
<updated>2026-07-29T02:17:15+00:00</updated>
<author>
<name>fanquake</name>
<email>fanquake@gmail.com</email>
</author>
<published>2026-07-27T09:25:10+00:00</published>
<link rel='alternate' type='text/html' href='https://git.vineetk.net/guix/commit/?id=3ccae2c20158d534da9d22e34f5c31574ed132b7'/>
<id>3ccae2c20158d534da9d22e34f5c31574ed132b7</id>
<content type='text'>
* doc/contributing.texi (Requirements): Update URLs.

Merges: https://codeberg.org/guix/guix/pulls/10206
Signed-off-by: Nguyễn Gia Phong &lt;cnx@loang.net&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* doc/contributing.texi (Requirements): Update URLs.

Merges: https://codeberg.org/guix/guix/pulls/10206
Signed-off-by: Nguyễn Gia Phong &lt;cnx@loang.net&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>services: elogind: Fix runtime-directory-size field.</title>
<updated>2026-07-28T16:32:32+00:00</updated>
<author>
<name>Herman Rimm</name>
<email>herman@rimm.ee</email>
</author>
<published>2026-07-16T15:17:09+00:00</published>
<link rel='alternate' type='text/html' href='https://git.vineetk.net/guix/commit/?id=90a0b71c0c3a9cbbeb850dac991b0e48c38337f0'/>
<id>90a0b71c0c3a9cbbeb850dac991b0e48c38337f0</id>
<content type='text'>
Both runtime-directory-size and runtime-directory-size-percent field currently
cause an error if set.  A comment above the latter already calls for its
deprecation.  This patch combines both into a single field and fixes
their serialization.

* gnu/services/desktop.scm (percent?, percent, elogind-serialize-percent):
Replace with…
(non-negative-integer-and-suffix?, non-negative-integer-and-suffix)
(elogind-serialize-non-negative-integer-and-suffix): … these.
(elogind-configuration)[runtime-directory-size-percent]: Remove field,
integrating logic into …
[runtime-directory-size]: … here.  Serialize it.
* doc/guix.texi (Desktop Services): Adjust accordingly.

Signed-off-by: Liliana Marie Prikler &lt;liliana.prikler@gmail.com&gt;
Merges: guix/guix#9987
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Both runtime-directory-size and runtime-directory-size-percent field currently
cause an error if set.  A comment above the latter already calls for its
deprecation.  This patch combines both into a single field and fixes
their serialization.

* gnu/services/desktop.scm (percent?, percent, elogind-serialize-percent):
Replace with…
(non-negative-integer-and-suffix?, non-negative-integer-and-suffix)
(elogind-serialize-non-negative-integer-and-suffix): … these.
(elogind-configuration)[runtime-directory-size-percent]: Remove field,
integrating logic into …
[runtime-directory-size]: … here.  Serialize it.
* doc/guix.texi (Desktop Services): Adjust accordingly.

Signed-off-by: Liliana Marie Prikler &lt;liliana.prikler@gmail.com&gt;
Merges: guix/guix#9987
</pre>
</div>
</content>
</entry>
<entry>
<title>services: rabbitmq: Depend on epmd.</title>
<updated>2026-07-26T06:25:57+00:00</updated>
<author>
<name>wrobell</name>
<email>wrobell@riseup.net</email>
</author>
<published>2026-06-16T19:25:15+00:00</published>
<link rel='alternate' type='text/html' href='https://git.vineetk.net/guix/commit/?id=0257734a40999bfbbe0daa922e2d0e4928cdd5f0'/>
<id>0257734a40999bfbbe0daa922e2d0e4928cdd5f0</id>
<content type='text'>
* gnu/services/high-availability.scm (rabbitmq-shepherd-service):
  Change requirement to epmd service.
* doc/gnu.texi (High Availability Services): Document it.
* gnu/tests/high-availability.scm (%rabbitmq-os): Add epmd service.

Merges: https://codeberg.org/guix/guix/pulls/9607
Signed-off-by: Nguyễn Gia Phong &lt;cnx@loang.net&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* gnu/services/high-availability.scm (rabbitmq-shepherd-service):
  Change requirement to epmd service.
* doc/gnu.texi (High Availability Services): Document it.
* gnu/tests/high-availability.scm (%rabbitmq-os): Add epmd service.

Merges: https://codeberg.org/guix/guix/pulls/9607
Signed-off-by: Nguyễn Gia Phong &lt;cnx@loang.net&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>services: Add epmd-service-type.</title>
<updated>2026-07-26T06:23:19+00:00</updated>
<author>
<name>wrobell</name>
<email>wrobell@riseup.net</email>
</author>
<published>2026-06-16T19:17:41+00:00</published>
<link rel='alternate' type='text/html' href='https://git.vineetk.net/guix/commit/?id=ce8df300216b308720903e6da9e01d246143b47f'/>
<id>ce8df300216b308720903e6da9e01d246143b47f</id>
<content type='text'>
Add Erlang Port Mapper Daemon (epmd) service.
Run the service on localhost by default.

* gnu/services/high-availability.scm (&lt;epmd-configuration&gt;): New record.
  (epmd-service-type): New variable.
* gnu/tests/high-availability.scm (run-epmd-test): New procedure.
  (%epmd-os, %tests-epmd): New variables.
* doc/gnu.texi (High Availability Services): Document it.

Merges: https://codeberg.org/guix/guix/pulls/9607
References: https://www.rabbitmq.com/blog/2024/12/18/epmd-public-exposure
References: https://erlef.org/blog/eef/epmd-public-exposure
Signed-off-by: Nguyễn Gia Phong &lt;cnx@loang.net&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Add Erlang Port Mapper Daemon (epmd) service.
Run the service on localhost by default.

* gnu/services/high-availability.scm (&lt;epmd-configuration&gt;): New record.
  (epmd-service-type): New variable.
* gnu/tests/high-availability.scm (run-epmd-test): New procedure.
  (%epmd-os, %tests-epmd): New variables.
* doc/gnu.texi (High Availability Services): Document it.

Merges: https://codeberg.org/guix/guix/pulls/9607
References: https://www.rabbitmq.com/blog/2024/12/18/epmd-public-exposure
References: https://erlef.org/blog/eef/epmd-public-exposure
Signed-off-by: Nguyễn Gia Phong &lt;cnx@loang.net&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>services: Add `zulip-irc-bridge-service-type'.</title>
<updated>2026-07-24T23:30:26+00:00</updated>
<author>
<name>Sergio Pastor Pérez</name>
<email>sergio.pastor-perez@inria.fr</email>
</author>
<published>2026-03-10T15:21:26+00:00</published>
<link rel='alternate' type='text/html' href='https://git.vineetk.net/guix/commit/?id=b0231ab7ee89c1dd1e4024d2ececd825cb68e20d'/>
<id>b0231ab7ee89c1dd1e4024d2ececd825cb68e20d</id>
<content type='text'>
* gnu/services/messaging.scm: (zulip-irc-bridge-configuration): New configuration record.
(%zulip-accounts): New variable.
(zulip-irc-bridge-services): New procedure.
(zulip-irc-bridge-service-type): New service.
* doc/guix.texi (Messaging Services): Document `zulip-irc-bridge-service-type'
and `zulip-irc-bridge-configuration'.

Change-Id: Ie74aa71f2912ccd905c0866ede9ead7b397f7c64
Signed-off-by: Ludovic Courtès &lt;ludo@gnu.org&gt;
Modified-by: Ludovic Courtès &lt;ludo@gnu.org&gt;
Merges: #7047
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* gnu/services/messaging.scm: (zulip-irc-bridge-configuration): New configuration record.
(%zulip-accounts): New variable.
(zulip-irc-bridge-services): New procedure.
(zulip-irc-bridge-service-type): New service.
* doc/guix.texi (Messaging Services): Document `zulip-irc-bridge-service-type'
and `zulip-irc-bridge-configuration'.

Change-Id: Ie74aa71f2912ccd905c0866ede9ead7b397f7c64
Signed-off-by: Ludovic Courtès &lt;ludo@gnu.org&gt;
Modified-by: Ludovic Courtès &lt;ludo@gnu.org&gt;
Merges: #7047
</pre>
</div>
</content>
</entry>
</feed>
