!lymvtcwDJ7ZA9Npq:lix.systems

Lix Development

408 Members
(Technical) development of Lix, the package manager, a Nix implementation. Please be mindful of ongoing technical conversations in this channel.135 Servers

You have reached the beginning of time (for this room).


SenderMessageTime
2 Aug 2025
@emilazy:matrix.orgemilysince the code paths should not interfere16:01:06
@raitobezarius:matrix.orgraitobezarius

for reference for those who are interested in testing the HEAD:

diff --git c/lix/libstore/build/local-derivation-goal.cc i/lix/libstore/build/local-derivation-goal.cc
index 68442d839..bd5cf4147 100644
--- c/lix/libstore/build/local-derivation-goal.cc
+++ i/lix/libstore/build/local-derivation-goal.cc
@@ -457,12 +457,13 @@ try {
                 "Failed to use the system-wide build directory '%s', falling back to a temporary "
                 "directory inside '%s'",
                 globalBuildDir,
-                worker.buildDir
+                *worker.buildDir
             );
+        }
     }
     /* Create a temporary directory where the build will take
        place. */
-    tmpDirRoot = createTempSubdir(buildDir, std::nullopt, 0700);
+    tmpDirRoot = createTempSubdir(*worker.buildDir, std::nullopt, 0700);
     /* The TOCTOU between the previous mkdir call and this open call is unavoidable due to
      * POSIX semantics.*/
     tmpDirRootFd = AutoCloseFD{open(tmpDirRoot.c_str(), O_RDONLY | O_NOFOLLOW | O_DIRECTORY)};
diff --git c/lix/libutil/file-system.cc i/lix/libutil/file-system.cc
index f85202956..750d64cb4 100644
--- c/lix/libutil/file-system.cc
+++ i/lix/libutil/file-system.cc
@@ -677,7 +677,7 @@ Path makeTempPath(const Path & root, const std::optional<Path> & prefix)
     const uint64_t entropy[2] = {uniform_dist(generator), uniform_dist(generator)};
     const std::string unique = base32Encode(std::string_view(
         reinterpret_cast<const char *>(entropy),
-        sizeof(entropy),
+        sizeof(entropy)
     ));
     if (prefix) {
         return fmt("%s%s-%s", root, *prefix, unique);

should be sufficient on the top of the chain

16:01:46
@emilazy:matrix.orgemily(last hunk is a casualty of last-minute manual reformatting…)16:06:23
@emilazy:matrix.orgemily(well, that and C++ being dumb)16:06:27
@raitobezarius:matrix.orgraitobezariusdon't worry16:06:40
@raitobezarius:matrix.orgraitobezarius
In reply to @emilazy:matrix.org

something like

       For full logs, run:
           nix log /nix/store/r0729886rq9nvzsngj2dnwwdl5q5dcq0-test.drv
       The build directory has been kept in:
           /nix/var/nix/b/3qxda0xkh4wllkxh182kvrza5n
i cooked
16:27:02
@raitobezarius:matrix.orgraitobezariusi should think how i could convey some nice note for remote builder usecases16:27:23
@emilazy:matrix.orgemilywas it that easy to move? I sorta figured it's printed as a separate note because the code paths are disconnected16:27:46
@emilazy:matrix.orgemily(because that's the only way I could understand why it'd be like this)16:27:54
@raitobezarius:matrix.orgraitobezarius i decided to make a buildErrorContents() virtual method 16:27:56
@raitobezarius:matrix.orgraitobezariusderivation goal calls it16:28:01
@raitobezarius:matrix.orgraitobezariusdefault impl is the one of where it was16:28:06
@raitobezarius:matrix.orgraitobezariuslocal derivation goal overrides and tacks more notes16:28:11
@raitobezarius:matrix.orgraitobezariusthe code paths are still slightly disconnected, so I add a boolean "tmpDirKept" to decide whether I should print or not16:28:32
@raitobezarius:matrix.orgraitobezariusif I have settings.keepFailed && !tmpDirKept, I can even print info about why i did not keep the tmp dir16:28:45
@emilazy:matrix.orgemily a weird thing is that when you use a remote builder it prints nix-store for the logs 16:28:49

Show newer messages


Back to Room ListRoom Version: 10