<feed xmlns='http://www.w3.org/2005/Atom'>
<title>guix/nix, branch master</title>
<subtitle>GNU transactional package management, distribution, deployment, and more!
</subtitle>
<id>http://git.rostovtsev.org/guix/atom?h=master</id>
<link rel='self' href='http://git.rostovtsev.org/guix/atom?h=master'/>
<link rel='alternate' type='text/html' href='http://git.rostovtsev.org/guix/'/>
<updated>2026-03-29T20:20:58Z</updated>
<entry>
<title>daemon: Dereference symlinks for /etc/services &amp; co.</title>
<updated>2026-03-29T20:20:58Z</updated>
<author>
<name>Ludovic Courtès</name>
<email>ludo@gnu.org</email>
</author>
<published>2026-03-25T17:58:12Z</published>
<link rel='alternate' type='text/html' href='http://git.rostovtsev.org/guix/commit/?id=425aa1bf7c35839f5e500515ff3b5a861a7533d6'/>
<id>urn:sha1:425aa1bf7c35839f5e500515ff3b5a861a7533d6</id>
<content type='text'>
Fixes a regression on Guix System introduced in
c4298638ca27717be4a83cb033dcbfecdea88093 (from guix/guix#4178) where files in
/etc, such as /etc/services, would be symlinks.  Consequently, the chroot of
fixed-output derivations would contain a dangling symlink for /etc/services,
leading to name resolution failures in the chroot.

This also relates to 82f84f5e7fb34cc719ed6ea538a3d1ca7516f23d.

* nix/libstore/build.cc (DerivationGoal::startBuilder): Add call to
‘canonPath’.

Change-Id: If34c8e74447ffc03d9fa81a1ea6bc0aef7c4d0b3
Signed-off-by: Ludovic Courtès &lt;ludo@gnu.org&gt;
</content>
</entry>
<entry>
<title>daemon: Resolve symlinks in /etc/resolv.conf for slirp4netns chroot.</title>
<updated>2026-03-19T14:32:46Z</updated>
<author>
<name>Roman Scherer</name>
<email>roman@burningswell.com</email>
</author>
<published>2026-03-07T12:10:43Z</published>
<link rel='alternate' type='text/html' href='http://git.rostovtsev.org/guix/commit/?id=82f84f5e7fb34cc719ed6ea538a3d1ca7516f23d'/>
<id>urn:sha1:82f84f5e7fb34cc719ed6ea538a3d1ca7516f23d</id>
<content type='text'>
* nix/libstore/build.cc (prepareSlirpChrootAction): Use
canonPath(i, true) to resolve symlinks when adding /etc/resolv.conf
and /etc/hosts to the slirp4netns chroot, so that bindMount receives
a regular file path instead of a symlink.

On systems using systemd-resolved, /etc/resolv.conf is typically a
symlink:

  /etc/resolv.conf -&gt; /run/systemd/resolve/stub-resolv.conf

The slirp4netns chroot creates an empty /run/ directory, so when
bindMount copies the symlink verbatim (spawn.cc line 537-542), the
target does not exist and slirp4netns cannot determine the upstream
DNS server.  This causes all DNS resolution to fail for fixed-output
derivations that use the Guile-based git-fetch builder (e.g.
git-fetch/lfs), since they rely on slirp4netns for network access
in the build chroot.

Derivations using builtin:git-download are unaffected because they
run in the daemon process itself, which has full network access.

Change-Id: Ib73e69a8760e74eb8141dd0408c27aa8b3001e37
Signed-off-by: Ludovic Courtès &lt;ludo@gnu.org&gt;
Merges: #6959
</content>
</entry>
<entry>
<title>daemon: Actually remove unreadable directories.</title>
<updated>2026-02-27T22:54:00Z</updated>
<author>
<name>Reepca Russelstein</name>
<email>reepca@russelstein.xyz</email>
</author>
<published>2026-02-15T18:39:34Z</published>
<link rel='alternate' type='text/html' href='http://git.rostovtsev.org/guix/commit/?id=865cb0188c282726008c56319a853c7dd82c4057'/>
<id>urn:sha1:865cb0188c282726008c56319a853c7dd82c4057</id>
<content type='text'>
Fixes a regression introduced in 7173c2c0ca.  Additional discussion at
https://codeberg.org/guix/guix/pulls/5977.

* nix/libutil/util.cc (_deletePathAt): chmod directory and retry open when it
  fails with EACCES.  Do this using an O_PATH file descriptor referenced via
  /proc/self/fd whenever possible to avoid it being replaced by a
  non-directory immediately before being chmod'ed.
* nix/libutil/util.hh (deletePath): document TOCTTOU race on non-linux systems
  where hardlinks aren't protected.
* tests/derivations.scm ("unreadable directories in build tree can be
  removed"): new test.

Fixes: guix/guix#5891
Reported-by: Liliana Marie Prikler &lt;liliana.prikler@gmail.com&gt;
Change-Id: I749127fe5254ebabc8387a2f0ef47e3c116bfcc5
Signed-off-by: Ludovic Courtès &lt;ludo@gnu.org&gt;
Merges: #6460
</content>
</entry>
<entry>
<title>daemon: Remove unused entities in globals.{hh, cc}.</title>
<updated>2026-02-06T19:49:01Z</updated>
<author>
<name>Congcong Kuo</name>
<email>congcong.kuo@gmail.com</email>
</author>
<published>2026-01-29T14:39:30Z</published>
<link rel='alternate' type='text/html' href='http://git.rostovtsev.org/guix/commit/?id=dab3b8f64cd1b5255aa29150ace86610a13e1097'/>
<id>urn:sha1:dab3b8f64cd1b5255aa29150ace86610a13e1097</id>
<content type='text'>
All these entities are not been used anywhere.

* nix/libstore/globals.hh (Settings): Remove 'overrides' member
and 'getOverrides' method declaration.
(nixVersion): Removed.
* nix/libstore/globals.cc (Settings::set): Do not update the 'overrides' map.
(Settings::getOverrides): Remove function definition.

Change-Id: If7dbb6df79178d2569cda21e1fe5e0ea3d8e59ba
Signed-off-by: Ludovic Courtès &lt;ludo@gnu.org&gt;
Merges: #6009
</content>
</entry>
<entry>
<title>Merge branch 'version-1.5.0'</title>
<updated>2026-01-22T12:27:13Z</updated>
<author>
<name>Rutherther</name>
<email>rutherther@ditigal.xyz</email>
</author>
<published>2026-01-22T12:27:13Z</published>
<link rel='alternate' type='text/html' href='http://git.rostovtsev.org/guix/commit/?id=7c0cd7e45b0240b842b4f3e767599501eac42ee1'/>
<id>urn:sha1:7c0cd7e45b0240b842b4f3e767599501eac42ee1</id>
<content type='text'>
Change-Id: Id73c0c74600a3da3373b3a37236b505af65bfe31
</content>
</entry>
<entry>
<title>nix: Spelling corrections.</title>
<updated>2026-01-14T08:16:45Z</updated>
<author>
<name>Efraim Flashner</name>
<email>efraim@flashner.co.il</email>
</author>
<published>2026-01-08T11:55:34Z</published>
<link rel='alternate' type='text/html' href='http://git.rostovtsev.org/guix/commit/?id=9efc2a690e5b5ea891457e2ae170597a548a19e6'/>
<id>urn:sha1:9efc2a690e5b5ea891457e2ae170597a548a19e6</id>
<content type='text'>
* nix/libstore/globals.hh,
nix/libstore/store-api.hh,
nix/libutil/util.hh: Fix misspellings in comments.

Change-Id: Id77ea2bde1c2582d1a7bec4ed256ea900998c4b8
</content>
</entry>
<entry>
<title>daemon: Fix several format strings.</title>
<updated>2026-01-12T09:56:37Z</updated>
<author>
<name>Ludovic Courtès</name>
<email>ludo@gnu.org</email>
</author>
<published>2026-01-12T08:15:03Z</published>
<link rel='alternate' type='text/html' href='http://git.rostovtsev.org/guix/commit/?id=5ff038473e3f3d6a84e69c712446ba3e200aa9b2'/>
<id>urn:sha1:5ff038473e3f3d6a84e69c712446ba3e200aa9b2</id>
<content type='text'>
This is a followup to 3af52f845fe2ceb448416ac7b9f48925673c594e and
6f1448ef89c8ad29e2a479099531fd3a87701e46.

* nix/libstore/local-store.cc (LocalStore::queryValidPathId): Change %1% to {}.
* nix/libstore/optimise-store.cc (LocalStore::optimisePath_): Likewise.
* nix/nix-daemon/guix-daemon.cc (open_unix_domain_socket): Likewise.
(main): Likewise.
* nix/libutil/affinity.cc (restoreAffinity): Remove useless %1%.

Change-Id: I3a7cd79cd69ab58f14118662f1dcf2fef067a6b7
</content>
</entry>
<entry>
<title>daemon: Fix typo in format string.</title>
<updated>2025-12-25T23:01:43Z</updated>
<author>
<name>Ludovic Courtès</name>
<email>ludo@gnu.org</email>
</author>
<published>2025-12-22T22:50:31Z</published>
<link rel='alternate' type='text/html' href='http://git.rostovtsev.org/guix/commit/?id=6f1448ef89c8ad29e2a479099531fd3a87701e46'/>
<id>urn:sha1:6f1448ef89c8ad29e2a479099531fd3a87701e46</id>
<content type='text'>
* nix/libstore/build.cc (Worker::waitForInput): Fix typo in format string.

Change-Id: I0a39ada8a347c8c8daddd9f34292cbbb03ba0076
</content>
</entry>
<entry>
<title>daemon: Ensure store is writable even as non-root.</title>
<updated>2025-12-22T10:00:17Z</updated>
<author>
<name>Rutherther</name>
<email>rutherther@ditigal.xyz</email>
</author>
<published>2025-12-21T12:25:59Z</published>
<link rel='alternate' type='text/html' href='http://git.rostovtsev.org/guix/commit/?id=2a0ac4cba5e3816e203b412934ee66345667c5ca'/>
<id>urn:sha1:2a0ac4cba5e3816e203b412934ee66345667c5ca</id>
<content type='text'>
If the store is read only, return an error early.
This is bit of a compromise. Not all operations of the daemon need the store
as writable. For example, if hello package is built already `guix build hello`
could previously succeed even if store is RO.

* nix/libstore/local-store.cc
(makeStoreWritable): Rename to ensureStoreWritable.
(ensureStoreWritable): As non-root, check that the store is writable and if
not, throw an error.
(LocalStore::LocalStore): Use it.

* nix/libstore/local-store.hh: Rename makeStoreWritable to ensureStoreWritable.

Change-Id: I94783ba7e32d57bfa77e37e84b6ac316f95e31e2
Signed-off-by: Rutherther &lt;rutherther@ditigal.xyz&gt;
</content>
</entry>
<entry>
<title>daemon: Use inline functions and variables instead of extern</title>
<updated>2025-11-12T17:34:06Z</updated>
<author>
<name>Congcong Kuo</name>
<email>congcong.kuo@gmail.com</email>
</author>
<published>2025-10-20T03:39:00Z</published>
<link rel='alternate' type='text/html' href='http://git.rostovtsev.org/guix/commit/?id=d1a9fb85a4d46722f06d01bde6f61acae3d9ea7a'/>
<id>urn:sha1:d1a9fb85a4d46722f06d01bde6f61acae3d9ea7a</id>
<content type='text'>
Avoid separate declarations and definitions for so-called 'global' objects.

* nix/libstore/derivations.{cc, hh} (drvHashes): Use inline instead of separate
declaration and definition.
* nix/libstore/globals.{cc, hh} (settings, nixVersion): Same.
* nix/libstore/local-store.hh (drvsLogDir, deduplicationMinSize): Same.
* nix/libstore/optimise-store.cc (deduplicationMinSize): Same.
* nix/libstore/store-api.{cc, hh} (store): Same.
* nix/libutil/archive.{cc, hh} (defaultPathFilter): Same.
* nix/libutil/hash.{cc, hh} (base32Chars): Same and modify header files.
* nix/libutil/util.{cc, hh} (logType, verbosity, _writeToStderr,
_isInterrupted): Same.
* nix/local.mk: Modified according to the rename of shared.hh.
* nix/nix-daemon/guix-daemon.cc (blockInt, argvSaved, run): Same and
modify header files.
* nix/nix-daemon/nix-daemon.cc: Modify header files.
* nix/nix-daemon/shared.hh: Renamed to nix-daemon.hh

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