<feed xmlns='http://www.w3.org/2005/Atom'>
<title>guix/gnu/build, branch koszko</title>
<subtitle>Wojtek's customized Guix</subtitle>
<id>https://git.koszko.org/guix/atom?h=koszko</id>
<link rel='self' href='https://git.koszko.org/guix/atom?h=koszko'/>
<link rel='alternate' type='text/html' href='https://git.koszko.org/guix/'/>
<updated>2025-05-05T12:34:00Z</updated>
<entry>
<title>linux-container: Lock mounts by default.</title>
<updated>2025-05-05T12:34:00Z</updated>
<author>
<name>Ludovic Courtès</name>
<email>ludo@gnu.org</email>
</author>
<published>2025-04-08T12:03:48Z</published>
<link rel='alternate' type='text/html' href='https://git.koszko.org/guix/commit/?id=a57ed987ffd1452ba5a4d70feb54893e99b8e076'/>
<id>urn:sha1:a57ed987ffd1452ba5a4d70feb54893e99b8e076</id>
<content type='text'>
This makes it impossible to unmount or remount things from within
‘call-with-container’.

* gnu/build/linux-container.scm (initialize-user-namespace):
Add #:host-uid and #:host-gid. and honor them.
(run-container): Add #:lock-mounts?.  Honor it by calling ‘unshare’
followed by ‘initialize-user-namespace’.
(call-with-container): Add #:lock-mounts? and pass it down.
(container-excursion): Get the user namespace owning the PID namespace
and join it, then join the remaining namespaces.
* tests/containers.scm ("call-with-container, mnt namespace, locked mounts"):
New test.
("container-excursion"): Pass #:lock-mounts? #f.

Change-Id: I13be982aef99e68a653d472f0e595c81cfcfa392
</content>
</entry>
<entry>
<title>linux-container: Set up “lo” and generate /etc/hosts by default.</title>
<updated>2025-05-05T12:34:00Z</updated>
<author>
<name>Ludovic Courtès</name>
<email>ludo@gnu.org</email>
</author>
<published>2025-04-08T11:50:59Z</published>
<link rel='alternate' type='text/html' href='https://git.koszko.org/guix/commit/?id=e1a0171a56602ecba193975ea2438329abb51c94'/>
<id>urn:sha1:e1a0171a56602ecba193975ea2438329abb51c94</id>
<content type='text'>
* gnu/build/linux-container.scm (run-container): Add #:loopback-network?
and honor it via #:populate-file-system.
(call-with-container): Add #:loopback-network? and pass it to
‘run-container’.
* guix/scripts/environment.scm (launch-environment/container): Remove
call to ‘set-network-interface-up’ and remove generation of /etc/hosts.
* guix/scripts/home.scm (spawn-home-container): Likewise.

Change-Id: I5933a4e8dc6d8e19235a79696b62299d74d1ba21
</content>
</entry>
<entry>
<title>linux-container: Support having a read-only root file system.</title>
<updated>2025-05-05T12:33:59Z</updated>
<author>
<name>Ludovic Courtès</name>
<email>ludo@gnu.org</email>
</author>
<published>2025-04-04T14:36:17Z</published>
<link rel='alternate' type='text/html' href='https://git.koszko.org/guix/commit/?id=a391394a22f76e29459132888f9950ad74993c5f'/>
<id>urn:sha1:a391394a22f76e29459132888f9950ad74993c5f</id>
<content type='text'>
Until now, the read-only file system set up by ‘call-with-container’
would always be writable.  With this change, it can be made read-only.
With this patch, only ‘least-authority-wrapper’ switches to a read-only
root file system.

* gnu/build/linux-container.scm (remount-read-only): New procedure.
(mount-file-systems): Add #:writable-root? and #:populate-file-system
and honor them.
(run-container): Likewise.
(call-with-container): Likewise.
* gnu/system/linux-container.scm (container-script): Pass #:writable-root?
to ‘call-with-container’.
(eval/container): Add #:populate-file-system and #:writable-root? and
honor them.
* guix/scripts/environment.scm (launch-environment/container):
Pass #:writable-root? to ‘call-with-container’.
* guix/scripts/home.scm (spawn-home-container): Likewise.
* tests/containers.scm ("call-with-container, mnt namespace, read-only root")
("call-with-container, mnt namespace, writable root"): New tests.

Change-Id: I603e2fd08851338b737bb16c8af3f765e2538906
</content>
</entry>
<entry>
<title>image: Create zstd-compressed qcow2 images.</title>
<updated>2025-04-30T08:14:24Z</updated>
<author>
<name>Maxim Cournoyer</name>
<email>maxim.cournoyer@gmail.com</email>
</author>
<published>2025-04-30T07:38:15Z</published>
<link rel='alternate' type='text/html' href='https://git.koszko.org/guix/commit/?id=a0941c14ef185d3d177ad132385992c1b7d36818'/>
<id>urn:sha1:a0941c14ef185d3d177ad132385992c1b7d36818</id>
<content type='text'>
This should be about twice as fast as the default zlib compressor used for
qcow2, and potentially multi-thread aware given some improvements to qemu-img
in the future (zstd supports its but it's not currently used by QEMU).

* gnu/build/image.scm (convert-disk-image): Specify 'compression_type=zstd'
option.

Change-Id: Ie9c66f0c13e789ec863c95a5e549f035b6a17bf9
</content>
</entry>
<entry>
<title>image: Honor parallel job count for the number of qemu-img co-routines used.</title>
<updated>2025-04-30T08:14:24Z</updated>
<author>
<name>Maxim Cournoyer</name>
<email>maxim.cournoyer@gmail.com</email>
</author>
<published>2025-04-30T07:23:52Z</published>
<link rel='alternate' type='text/html' href='https://git.koszko.org/guix/commit/?id=ca8a0f4d1bca745f34c5b8120b9f346eee79ff14'/>
<id>urn:sha1:ca8a0f4d1bca745f34c5b8120b9f346eee79ff14</id>
<content type='text'>
This doesn't seem to change anything currently (the default is 8).  Perhaps
useful in the future, for example if the compressor used by qemu-img starts
honoring it.

* gnu/build/image.scm (convert-disk-image): Specify the '-m' option.

Change-Id: Ia288c85af8a0621d61cf6b9f0d3f73f5a3026d66
</content>
</entry>
<entry>
<title>activation: Fix ‘mkdir-p/perms’ on the Hurd.</title>
<updated>2025-04-23T10:25:45Z</updated>
<author>
<name>Ludovic Courtès</name>
<email>ludo@gnu.org</email>
</author>
<published>2025-04-23T08:50:17Z</published>
<link rel='alternate' type='text/html' href='https://git.koszko.org/guix/commit/?id=27e62d4481a02f1016c7a72bedb946d92ceecf49'/>
<id>urn:sha1:27e62d4481a02f1016c7a72bedb946d92ceecf49</id>
<content type='text'>
Fixes &lt;https://issues.guix.gnu.org/77992&gt;.

Fixes a bug whereby ‘mkdir-p/perms’ would throw an exception on the
Hurd:

  In gnu/build/activation.scm:
      97:20  1 (mkdir-p/perms _ #("ludo" "x" 1000 998 "Ludovic…" …) …)
  In unknown file:
	     0 (open "." 7340032 #&lt;undefined&gt;)

  ERROR: In procedure open:
  In procedure scm_fdes_to_port: requested file mode not available on fdes

This, in turn, would cause ‘user-homes’ to fail to start on the Hurd
since commit da741d89310efd0530351670d9c55ec2f952ab98.

* gnu/build/activation.scm (mkdir-p/perms): Add O_RDONLY to ‘open-flags’.

Reported-by: Yelninei &lt;yelninei@tutamail.com&gt;
Change-Id: I74f90599338772ba4341067215b864273aa30b3e
</content>
</entry>
<entry>
<title>build: dbus-service: Quote body argument in 'with-retries' syntax.</title>
<updated>2025-04-14T01:34:52Z</updated>
<author>
<name>Maxim Cournoyer</name>
<email>maxim.cournoyer@gmail.com</email>
</author>
<published>2025-04-13T15:08:03Z</published>
<link rel='alternate' type='text/html' href='https://git.koszko.org/guix/commit/?id=25f86fdc4fe13cf405c1556db361cc0151ff5da8'/>
<id>urn:sha1:25f86fdc4fe13cf405c1556db361cc0151ff5da8</id>
<content type='text'>
Otherwise the code would be evaluated instead of shown.

* gnu/build/dbus-service.scm (with-retries): Quote the body data in the error
message.

Change-Id: I7a06f08327bdc7df70ae56a146855bc32ad3e63e
</content>
</entry>
<entry>
<title>build: bootloader: Add riscv64 case.</title>
<updated>2025-04-08T06:58:19Z</updated>
<author>
<name>Zheng Junjie</name>
<email>z572@z572.online</email>
</author>
<published>2025-04-05T15:03:09Z</published>
<link rel='alternate' type='text/html' href='https://git.koszko.org/guix/commit/?id=43d30332bf3b4de0003578a7b5b27472b11183c7'/>
<id>urn:sha1:43d30332bf3b4de0003578a7b5b27472b11183c7</id>
<content type='text'>
* gnu/build/bootloader.scm (install-efi): Add riscv64 case.

Change-Id: I1c6c7949f0057f600817f09b5f52dca0644e3d88
</content>
</entry>
<entry>
<title>linux-container: ‘unprivileged-user-namespace-supported?’ returns #f on non-Linux.</title>
<updated>2025-03-26T16:57:44Z</updated>
<author>
<name>Ludovic Courtès</name>
<email>ludo@gnu.org</email>
</author>
<published>2025-03-17T10:27:52Z</published>
<link rel='alternate' type='text/html' href='https://git.koszko.org/guix/commit/?id=29164192e94e35616a5078c28bf0eb5d5a3ea4b4'/>
<id>urn:sha1:29164192e94e35616a5078c28bf0eb5d5a3ea4b4</id>
<content type='text'>
Previously this procedure would return #t on non-Linux systems.

* gnu/build/linux-container.scm (unprivileged-user-namespace-supported?):
When USERNS-FILE doesn’t exist, return (user-namespace-supported?).

Reported-by: Reepca Russelstein &lt;reepca@russelstein.xyz&gt;
Change-Id: I92050338b8b68bc3bd87100317eba69fcdf14a0a
</content>
</entry>
<entry>
<title>build: marionette: Make it possible to reboot VM during tests.</title>
<updated>2025-02-12T15:07:21Z</updated>
<author>
<name>Maxim Cournoyer</name>
<email>maxim.cournoyer@gmail.com</email>
</author>
<published>2024-11-01T01:56:30Z</published>
<link rel='alternate' type='text/html' href='https://git.koszko.org/guix/commit/?id=5074871043806d747b16c62b081b9db8b813dd7c'/>
<id>urn:sha1:5074871043806d747b16c62b081b9db8b813dd7c</id>
<content type='text'>
* gnu/build/marionette.scm (make-marionette): Add 'reconnect=1' socket
parameter.
* gnu/system/vm.scm (common-qemu-options): Remove '-no-reboot' option.

Change-Id: I5e100543ddddba0aea3ebe4e2f5cb8b0261c0d73
</content>
</entry>
</feed>
