Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package nix for openSUSE:Factory checked in at 2026-03-28 20:14:06 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/nix (Old) and /work/SRC/openSUSE:Factory/.nix.new.8177 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "nix" Sat Mar 28 20:14:06 2026 rev:15 rq:1343237 version:2.34.4 Changes: -------- --- /work/SRC/openSUSE:Factory/nix/nix.changes 2026-03-22 14:14:10.850224365 +0100 +++ /work/SRC/openSUSE:Factory/.nix.new.8177/nix.changes 2026-03-28 20:15:49.951567742 +0100 @@ -1,0 +2,12 @@ +Thu Mar 26 15:16:22 UTC 2026 - Marcus Rueckert <[email protected]> + +- Update to version 2.34.4: + see /usr/share/doc/packages/rl-2.34.md + +------------------------------------------------------------------- +Mon Mar 23 20:58:56 UTC 2026 - Marcus Rueckert <[email protected]> + +- Update to version 2.34.3: + see /usr/share/doc/packages/rl-2.34.md + +------------------------------------------------------------------- Old: ---- nix-2.34.2.tar.gz New: ---- nix-2.34.4.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ nix.spec ++++++ --- /var/tmp/diff_new_pack.rH73pD/_old 2026-03-28 20:15:50.483589699 +0100 +++ /var/tmp/diff_new_pack.rH73pD/_new 2026-03-28 20:15:50.483589699 +0100 @@ -26,7 +26,7 @@ %endif Name: nix -Version: 2.34.2 +Version: 2.34.4 Release: 0 Summary: The purely functional package manager License: LGPL-2.1-only ++++++ nix-2.34.2.tar.gz -> nix-2.34.4.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nix-2.34.2/.version new/nix-2.34.4/.version --- old/nix-2.34.2/.version 2026-03-19 23:47:16.000000000 +0100 +++ new/nix-2.34.4/.version 2026-03-25 22:29:36.000000000 +0100 @@ -1 +1 @@ -2.34.2 +2.34.4 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nix-2.34.2/src/libstore/filetransfer.cc new/nix-2.34.4/src/libstore/filetransfer.cc --- old/nix-2.34.2/src/libstore/filetransfer.cc 2026-03-19 23:47:16.000000000 +0100 +++ new/nix-2.34.4/src/libstore/filetransfer.cc 2026-03-25 22:29:36.000000000 +0100 @@ -822,7 +822,12 @@ curlFileTransfer(const FileTransferSettings & settings) : settings(settings) , mt19937(rd()) - , maxQueueSize(settings.httpConnections.get() * 5) + , maxQueueSize([&]() -> std::size_t { + if (settings.httpConnections.get()) + return settings.httpConnections.get() * 5; + /* Zero means unlimited. See https://curl.se/libcurl/c/CURLMOPT_MAX_TOTAL_CONNECTIONS.html. */ + return std::numeric_limits<std::size_t>::max(); + }()) { static std::once_flag globalInit; std::call_once(globalInit, curl_global_init, CURL_GLOBAL_ALL); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nix-2.34.2/src/libstore/unix/build/chroot-derivation-builder.cc new/nix-2.34.4/src/libstore/unix/build/chroot-derivation-builder.cc --- old/nix-2.34.2/src/libstore/unix/build/chroot-derivation-builder.cc 2026-03-19 23:47:16.000000000 +0100 +++ new/nix-2.34.4/src/libstore/unix/build/chroot-derivation-builder.cc 2026-03-25 22:29:36.000000000 +0100 @@ -100,15 +100,6 @@ "feature 'uid-range' requires the setting '%s' to be enabled", store.config->getLocalSettings().autoAllocateUids.name); - /* Declare the build user's group so that programs get a consistent - view of the system (e.g., "id -gn"). */ - writeFile( - chrootRootDir / "etc" / "group", - fmt("root:x:0:\n" - "nixbld:!:%1%:\n" - "nogroup:x:65534:\n", - sandboxGid())); - /* Create /etc/hosts with localhost entry. */ if (derivationType.isSandboxed()) writeFile(chrootRootDir / "etc" / "hosts", "127.0.0.1 localhost\n::1 localhost\n"); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nix-2.34.2/src/libstore/unix/build/linux-derivation-builder.cc new/nix-2.34.4/src/libstore/unix/build/linux-derivation-builder.cc --- old/nix-2.34.2/src/libstore/unix/build/linux-derivation-builder.cc 2026-03-19 23:47:16.000000000 +0100 +++ new/nix-2.34.4/src/libstore/unix/build/linux-derivation-builder.cc 2026-03-25 22:29:36.000000000 +0100 @@ -423,8 +423,8 @@ "cannot perform a sandboxed build because user namespaces are not enabled; check /proc/sys/user/max_user_namespaces"); } - /* Now that we now the sandbox uid, we can write - /etc/passwd. */ + /* Now that we know the sandbox uid/gid, we can write + /etc/passwd and /etc/group. */ writeFile( chrootRootDir / "etc" / "passwd", fmt("root:x:0:0:Nix build user:%3%:/noshell\n" @@ -432,7 +432,14 @@ "nobody:x:65534:65534:Nobody:/:/noshell\n", sandboxUid(), sandboxGid(), - store.config->getLocalSettings().sandboxBuildDir)); + store.config->getLocalSettings().sandboxBuildDir.get().native())); + + writeFile( + chrootRootDir / "etc" / "group", + fmt("root:x:0:\n" + "nixbld:!:%1%:\n" + "nogroup:x:65534:\n", + sandboxGid())); /* Save the mount- and user namespace of the child. We have to do this *before* the child does a chroot. */ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nix-2.34.2/src/libutil/include/nix/util/configuration.hh new/nix-2.34.4/src/libutil/include/nix/util/configuration.hh --- old/nix-2.34.2/src/libutil/include/nix/util/configuration.hh 2026-03-19 23:47:16.000000000 +0100 +++ new/nix-2.34.4/src/libutil/include/nix/util/configuration.hh 2026-03-25 22:29:36.000000000 +0100 @@ -10,6 +10,7 @@ #include "nix/util/json-non-null.hh" #include "nix/util/types.hh" +#include "nix/util/fmt.hh" #include "nix/util/experimental-features.hh" namespace nix { @@ -405,6 +406,20 @@ } }; +/* Delete these overloads to avoid footguns with implicit quoting of Setting<AbsolutePath> in fmt(). */ + +template<class F, typename... Args> +inline void formatHelper(F & f, const AbsolutePath & x, const Args &... args) = delete; + +template<class F, typename... Args> +inline void formatHelper(F & f, const AbsolutePath & x) = delete; + +template<class F, typename... Args> +inline void formatHelper(F & f, const Setting<AbsolutePath> & x, const Args &... args) = delete; + +template<class F, typename... Args> +inline void formatHelper(F & f, const Setting<AbsolutePath> & x) = delete; + template<> void BaseSetting<std::set<std::filesystem::path>>::appendOrSet(std::set<std::filesystem::path> newValue, bool append); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nix-2.34.2/src/libutil/terminal.cc new/nix-2.34.4/src/libutil/terminal.cc --- old/nix-2.34.2/src/libutil/terminal.cc 2026-03-19 23:47:16.000000000 +0100 +++ new/nix-2.34.4/src/libutil/terminal.cc 2026-03-25 22:29:36.000000000 +0100 @@ -161,14 +161,16 @@ ////////////////////////////////////////////////////////////////////// -static Sync<std::pair<unsigned short, unsigned short>> windowSize{{0, 0}}; +// Note: this object intentionally leaks to avoid a destructor ordering issue (specifically, ~ProgressBar() calling +// getWindowSize() after windowSize has been destroyed). +static auto * const windowSize = new Sync<std::pair<unsigned short, unsigned short>>{{0, 0}}; void updateWindowSize() { #ifndef _WIN32 struct winsize ws; if (ioctl(2, TIOCGWINSZ, &ws) == 0) { - auto windowSize_(windowSize.lock()); + auto windowSize_(windowSize->lock()); windowSize_->first = ws.ws_row; windowSize_->second = ws.ws_col; } @@ -176,7 +178,7 @@ CONSOLE_SCREEN_BUFFER_INFO info; // From https://stackoverflow.com/a/12642749 if (GetConsoleScreenBufferInfo(GetStdHandle(STD_OUTPUT_HANDLE), &info) != 0) { - auto windowSize_(windowSize.lock()); + auto windowSize_(windowSize->lock()); // From https://github.com/libuv/libuv/blob/v1.48.0/src/win/tty.c#L1130 windowSize_->first = info.srWindow.Bottom - info.srWindow.Top + 1; windowSize_->second = info.dwSize.X; @@ -186,7 +188,7 @@ std::pair<unsigned short, unsigned short> getWindowSize() { - return *windowSize.lock(); + return *windowSize->lock(); } #ifndef _WIN32
