1
0
Fork 0
mirror of https://github.com/NixOS/nix synced 2025-06-25 06:31:14 +02:00
Commit graph

18417 commits

Author SHA1 Message Date
Eelco Dolstra
bcffa0ce59 Make the repl test more robust
Seen in 4390954027:

  nix-functional-tests> grep: repl_output: No such file or directory
  nix-functional-tests> +(repl.sh:174) cat repl_output

This is because there is a small possibility that the `nix repl` child
process hasn't created `repl_output` yet. So make sure it exists.

(cherry picked from commit 9eb46e9cc0)
2025-06-22 19:08:35 +00:00
Jörg Thalheim
7d15dbf9d5
Merge pull request #12801 from pascalj/2.24-maintenance
Exclude 'dir' from the FlakeRef's URL
2025-05-18 23:35:53 +02:00
Pascal Jungblut
fa2a3c6de8
Merge branch '2.24-maintenance' into 2.24-maintenance 2025-05-14 22:58:17 +02:00
mergify[bot]
3e2c0680b6
Merge pull request #13091 from NixOS/mergify/bp/2.24-maintenance/pr-13086
libutil: Fix invalid boost format string in infinite symlink recursion error (backport #13086)
2025-04-25 10:11:28 +00:00
Sergei Zimmerman
28c2c78716 libutil: Fix invalid boost format string in infinite symlink recursion error
Found while working on an automated migration to `std::format`.

(cherry picked from commit bfb357c40b)
2025-04-25 09:20:56 +00:00
Pascal Jungblut
72bf563191 Exclude 'dir' from the FlakeRef's URL
This fixes an issue where nix would try to check out invalid URLs,
because it would pass 'dir' to the HTTP endpoint.

For later versions this was fixed in
b2be6fed86. This is a backport of just the
relevant part.

See #12417
2025-04-15 13:34:48 +02:00
mergify[bot]
57190f9a39
Merge pull request #12988 from NixOS/mergify/bp/2.24-maintenance/pr-12986
Fix another machine config parsing bug (backport #12986)
2025-04-09 21:41:41 +00:00
mergify[bot]
89ea1a8758
Merge pull request #12987 from NixOS/mergify/bp/2.24-maintenance/pr-12984
Fix `;` and `#` bug in machine file parsing (backport #12984)
2025-04-09 20:47:38 +00:00
John Ericson
142f94b7e1 Fix another machine config parsing bug
We were ignorning the result of `trim`, and after my last change we were
also trimmming too early.

(cherry picked from commit b74b0f4e1c)
2025-04-09 16:20:07 -04:00
John Ericson
0c6a207916 Fix ; and # bug in machine file parsing
Comments go to the end of the line, not merely the next ; *or* \n. Fix
by splitting on `;` *within* lines, and test.

(cherry picked from commit f8b13cce19)
2025-04-09 20:06:25 +00:00
Eelco Dolstra
a568447137
Merge pull request #12952 from NixOS/mergify/bp/2.24-maintenance/pr-12951
tests/functional/repl: fix race condition (backport #12951)
2025-04-07 19:51:27 +02:00
Jörg Thalheim
bc88d09a08 tests/functional/repl: fix race condition
the sleep 1 is not enough in some circumstances. Switching to a fifo
helps.

(cherry picked from commit 1de951d31d)
2025-04-07 12:19:00 +00:00
Eelco Dolstra
ccea5cce42 Bump version 2025-04-07 11:28:46 +02:00
mergify[bot]
e949cdbc05
Merge pull request #12946 from NixOS/mergify/bp/2.24-maintenance/pr-12944
maintainers/release-notes: Let it fail (backport #12944)
2025-04-07 09:11:03 +00:00
Robert Hensing
de18f5ac2d maintainers/release-notes: Let it fail
Fail when a command fails.

Basic error handling was missing, which would lead to errors getting
obscured a bit by subsequent successful logging.

(cherry picked from commit da36c34db7)
2025-04-07 08:52:30 +00:00
Jörg Thalheim
adbf23e818
Merge pull request #12922 from NixOS/mergify/bp/2.24-maintenance/pr-12911
create cache entry for paths already in the nix store (backport #12911)
2025-04-04 16:32:47 +02:00
Jörg Thalheim
2a4e2ecd89 create cache entry for paths already in the nix store
This allows path:/nix/store/* paths to not be copied twice to the nix
store.

(cherry picked from commit 61c6210dbf)
2025-04-04 16:01:17 +02:00
mergify[bot]
b47bd02a6a
Merge pull request #12854 from NixOS/mergify/bp/2.24-maintenance/pr-12765
Add various clang tidy fixes (backport #12765)
2025-04-01 14:35:45 +00:00
Jörg Thalheim
8abb67b842 libstore/daemon: make sure monitor is not considered "unused"
(cherry picked from commit 5c3682d7a1)
2025-04-01 13:37:38 +00:00
Jörg Thalheim
97f9f8e909 test/ca-fd-leak: fix clang-tidy lints
(cherry picked from commit b050db951b)
2025-04-01 13:37:37 +00:00
Jörg Thalheim
7ef04ba6dd git/getStringUntil: fix uninitialized stack variable
at least clang-tidy is not convinced that this initialized.
If this is not the case, the impact should be small and hopefully also
more robust if changed.

(cherry picked from commit 7e540059a3)
2025-04-01 13:37:37 +00:00
Jörg Thalheim
bc6e78402c libstore/local-store: fix linting warning about unused variable
(cherry picked from commit 05082ea1c5)
2025-04-01 13:37:37 +00:00
mergify[bot]
4687dc99f7
Merge pull request #12840 from NixOS/mergify/bp/2.24-maintenance/pr-12805
nix-daemon: source nix-profile-daemon.sh only once (backport #12805)
2025-04-01 07:47:08 +00:00
Thomas Miedema
8d99b6578a nix-daemon: source nix-profile-daemon.sh only once
On my system (Ubuntu 24.04 with nix installed using
https://zero-to-nix.com/), I noticed that my PATH
contained multiple times the following entries:

  /home/thomas/.nix-profile/bin
  /nix/var/nix/profiles/default/bin

Fix it by inserting a missing `export`, to make
sure `nix-daemon.sh` is really only executed once.

(cherry picked from commit 2b4e3fa144)
2025-04-01 06:47:25 +00:00
John Ericson
e1dad7daa5
Merge pull request #12795 from NixOS/mergify/bp/2.24-maintenance/pr-12794
Fix windows build (backport #12794)
2025-03-28 21:54:39 -04:00
John Ericson
d92b509bda Fix windows build
PR #12767 accidentally broke it.

(cherry picked from commit 99041b4d84)
2025-03-28 21:07:08 -04:00
mergify[bot]
8adc1f3011
Merge pull request #12774 from NixOS/mergify/bp/2.24-maintenance/pr-12767
use createDirs consistently everywhere (backport #12767)
2025-03-28 16:48:21 +00:00
Jörg Thalheim
076fa01a84 use createDirs consistently everywhere
(cherry picked from commit a8217f2642)
2025-03-28 15:54:56 +00:00
Eelco Dolstra
61f8fd3e9c Bump version 2025-03-24 19:35:50 +01:00
Eelco Dolstra
5ce8d922fd
Merge pull request #12737 from NixOS/mergify/bp/2.24-maintenance/pr-12736
`MonitorFdHup::~MonitorFdHup`: use proper close method instead of lib… (backport #12736)
2025-03-24 14:00:41 +01:00
Jörg Thalheim
333479e6be MonitorFdHup::~MonitorFdHup: use proper close method instead of libc close()
Otherwise closing it again will cause an EBADF in the AutoCloseFd class.

(cherry picked from commit 87a34a45ff)
2025-03-24 12:16:00 +00:00
John Ericson
71ab003a0c
Merge pull request #12731 from NixOS/mergify/bp/2.24-maintenance/pr-12714
`MonitorFdHup`: replace `pthread_cancel` trick with a notification pipe (backport #12714)
2025-03-23 20:39:08 -04:00
John Ericson
3fccc71492 MonitorFdHup: Don't sleep anymore
After the previous commit it should not be necessary. Furthermore, if we
*do* sleep, we'll exacerbate a race condition (in conjunction with
getting rid of the thread cancellation) that will cause test failures.

(cherry picked from commit 49f486d8e0)
2025-03-23 23:54:09 +00:00
Jade Lovelace
729d18fd4c daemon: remove workaround for macOS kernel bug that seems fixed
This was filed as https://github.com/nixos/nix/issues/7584, but as far
as I can tell, the previous solution of POLLHUP works just fine on macOS
14. I've also tested on an ancient machine with macOS 10.15.7, which
also has POLLHUP work correctly.

It's possible this might regress some older versions of macOS that have
a kernel bug, but I went looking through the history on the sources and
didn't find anything that looked terribly convincingly like a bug fix
between 2020 and today. If such a broken version exists, it seems pretty
reasonable to suggest simply updating the OS.

Change-Id: I178a038baa000f927ea2cbc4587d69d8ab786843

Based off of commit 69e2ee5b25752ba5fd8644cef56fb9d627ca4a64. Ericson2314 added
additional other information.

(cherry picked from commit 9b3352c3c8)
2025-03-23 23:54:08 +00:00
Félix Baylac Jacqué
699f27c4ea MonitorFdHup: replace pthread_cancel trick with a notification pipe
On https://github.com/NixOS/nix/issues/8946, we faced a surprising
behaviour wrt. exception when using pthread_cancel. In a nutshell when
a thread is inside a catch block and it's getting pthread_cancel by
another one, then the original exception is bubbled up and crashes the
process.

We now poll on the notification pipe from the thread and exit when the
main thread closes its end. This solution does not exhibit surprising
behaviour wrt. exceptions.

Co-authored-by: Mic92 <joerg@thalheim.io>

Fixes https://github.com/NixOS/nix/issues/8946

See also Lix https://gerrit.lix.systems/c/lix/+/1605 which is very
similar by coincidence. Pulled a comment from that.

(cherry picked from commit 1c636284a3)
2025-03-23 23:54:08 +00:00
John Ericson
2d792a1867 MonitorFdHup: introduce a num_fds variable
Better than just putting `1` in multiple spots.

(cherry picked from commit cb95791198)
2025-03-23 23:54:08 +00:00
John Ericson
da213e8ee5 MonitorFdHup: Cleanup a bit with designated initializers
(cherry picked from commit d028bb4c4a)
2025-03-23 23:54:08 +00:00
Jörg Thalheim
787a14b173 MonitorFdHup: raise explicit SysError rather unreachable
Syscalls can fail for many reasons and we don't want to loose the errno
and error context.

(cherry picked from commit 8e0bc2c3a8)
2025-03-23 23:54:07 +00:00
John Ericson
01aace706a monitor-fd.hh: Format
It's a pretty small diff, so let's just start formatting before we make
other changes.

(cherry picked from commit 041394b741)
2025-03-23 23:54:07 +00:00
mergify[bot]
74a0ab3eea
Merge pull request #12683 from NixOS/mergify/bp/2.24-maintenance/pr-12570
Fix macos sandbox issue (backport #12570)
2025-03-19 21:07:12 +00:00
Pierre-Etienne Meunier
589da451e4 Fix macos sandbox issue
Co-authored-by: John Ericson <git@JohnEricson.me>

Co-authored-by: Poliorcetics <poliorcetics@users.noreply.github.com>
(cherry picked from commit 300465c7b8)
2025-03-19 20:20:48 +00:00
mergify[bot]
56e113d67a
Merge pull request #12653 from NixOS/mergify/bp/2.24-maintenance/pr-12645
Make debugger significantly faster (backport #12645)
2025-03-14 14:11:27 +00:00
Sergei Zimmerman
aaf86cc0d5 {libexpr,libcmd}: Make debugger significantly faster
The underlying issue is that debugger code path was
calling PosTable::operator[] in each eval method.
This has become incredibly expensive since 5d9fdab3de.

While we are it it, I've reworked the code to
not use std::shared_ptr where it really isn't necessary.

As I've documented in previous commits, this is actually
more a workaround for recursive header dependencies now
and is only necessary in `error.hh` code.

Some ad-hoc benchmarking:

After this commit:

```
Benchmark 1: nix eval nixpkgs#hello --impure --ignore-try --no-eval-cache --debugger
  Time (mean ± σ):     784.2 ms ±   7.1 ms    [User: 561.4 ms, System: 147.7 ms]
  Range (min … max):   773.5 ms … 792.6 ms    10 runs
```

On master 3604c7c51:

```
Benchmark 1: nix eval nixpkgs#hello --impure --ignore-try --no-eval-cache --debugger
  Time (mean ± σ):     22.914 s ±  0.178 s    [User: 18.524 s, System: 4.151 s]
  Range (min … max):   22.738 s … 23.290 s    10 runs
```

(cherry picked from commit adbd08399c)
2025-03-14 13:22:44 +00:00
Sergei Zimmerman
6faf66d2f7 libutil: Fix Pos::getSourcePath
Previous implementation didn't actually check if
std::get_if returned a nullptr:

std::optional<SourcePath> getSourcePath() const {
    return *std::get_if<SourcePath>(&origin);
}

(cherry picked from commit 50123f2a56)
2025-03-14 13:22:44 +00:00
Sergei Zimmerman
3ab83f507c libutil: Document hacks and problems around Pos class
This should provide context for follow-up commits in
the patch series.

(cherry picked from commit bf12aedf2e)
2025-03-14 13:22:43 +00:00
Sergei Zimmerman
0033cf4270 {libutil,libexpr}: Move pos-idx,pos-table code to libutil
All of this code doesn't actually depend on anything from
libexpr. Because Pos is so tigtly coupled with Error, it
makes sense to have in the same library.

(cherry picked from commit a53b184e63)
2025-03-14 13:22:43 +00:00
mergify[bot]
79828c12e0
Merge pull request #12535 from NixOS/mergify/bp/2.24-maintenance/pr-12391
Only try to chmod /nix/var/nix/profiles/per-user when necessary (backport #12391)
2025-02-20 16:55:38 +00:00
Sandro Jäckel
2a795bb793 Only try to chmod /nix/var/nix/profiles/per-user when necessary
Co-authored-by: Eelco Dolstra <edolstra@gmail.com>
(cherry picked from commit dcbf4dcc09)
2025-02-20 16:11:26 +00:00
mergify[bot]
9238c892d3
Merge pull request #12528 from NixOS/mergify/bp/2.24-maintenance/pr-12439
Set FD_CLOEXEC on sockets created by curl (backport #12439)
2025-02-19 20:30:16 +00:00
MaxHearnden
5862686ce2 Set FD_CLOEXEC on sockets created by curl
Curl creates sockets without setting FD_CLOEXEC/SOCK_CLOEXEC, this can
cause connections to remain open forever when using commands like `nix
shell`

This change sets the FD_CLOEXEC flag using a CURLOPT_SOCKOPTFUNCTION
callback.

(cherry picked from commit 12d2527276)
2025-02-19 19:47:40 +00:00