1
0
Fork 0
mirror of https://github.com/NixOS/nix synced 2025-06-26 11:41:15 +02:00
Commit graph

19260 commits

Author SHA1 Message Date
mergify[bot]
ceec04f1e2
Merge pull request #12754 from NixOS/mergify/bp/2.26-maintenance/pr-12105
local-derivation-goal: improve "illegal reference" error (backport #12105)
2025-03-25 16:12:27 +00:00
Sergei Trofimovich
fa33df1e76 tests/functional/check-refs.nix: format newly added test
(cherry picked from commit 4d72e0f73b)
2025-03-25 15:48:25 +00:00
Sergei Trofimovich
2fbebb6574 tests/functional/check-refs.sh: guard test12 against too old nix daemon
Otherwise without the change the test fails on nix-2.26 as:

    error: derivation contains an illegal reference specifier 'dev'

Note: the error message does not match intended change.
(cherry picked from commit 1e7c7244cf)
2025-03-25 15:48:25 +00:00
Robert Hensing
6e93311426 test illegal reference specifier error message
(cherry picked from commit f4def47c89)
2025-03-25 15:48:25 +00:00
Robert Hensing
7b3a78dbab checkRefs: use concatMapStringsSep
(cherry picked from commit 2b4d461c14)
2025-03-25 15:48:24 +00:00
Robert Hensing
0ddb8e21fe nix-util: Use small_vector in concatMapStringsSep
(cherry picked from commit 32898dc46a)
2025-03-25 15:48:24 +00:00
Robert Hensing
beac7720a3 nix-util: Add concatMapStrings
(cherry picked from commit f3dbaa3f54)
2025-03-25 15:48:24 +00:00
Sergei Trofimovich
41a31db7c5 local-derivation-goal: improve "illegal reference" error
Before the change "illegal reference" was hard to interpret as it did
not mention what derivation actually hits it.

Today's `nixpkgs` example:

Before the change:

    $ nix build --no-link -f. postgresql_14
    ...
    error: derivation contains an illegal reference specifier 'man'

After the change:

    $ nix build --no-link -f. postgresql_14
    ...
    error: derivation '/nix/store/bxp6g57limvwiga61vdlyvhy7i8rp6wd-postgresql-14.15.drv' output check for 'lib' contains an illegal reference specifier 'man', expected store path or output name (one of [debug, dev, doc, lib, out])

(cherry picked from commit bbdc3197a9)
2025-03-25 15:48:23 +00:00
Jörg Thalheim
ec2eedad26
Merge pull request #12742 from NixOS/mergify/bp/2.26-maintenance/pr-12734
packaging/everything.nix: make sure doc and manpage outputs are symlinks (backport #12734)
2025-03-24 14:42:17 +01:00
Kirens
bdcefc6a64 make sure doc and manpage outputs are symlinks
Part of https://github.com/NixOS/nixpkgs/pull/392549
The doc and manpage fix already happend in 0ddfbc5939

(cherry picked from commit 15dfeb9182)
2025-03-24 13:09:44 +00:00
mergify[bot]
d08afe373f
Merge pull request #12739 from NixOS/mergify/bp/2.26-maintenance/pr-12736
`MonitorFdHup::~MonitorFdHup`: use proper close method instead of lib… (backport #12736)
2025-03-24 12:47:58 +00:00
Jörg Thalheim
e29429488a 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:23 +00:00
John Ericson
65873d1e10
Merge pull request #12732 from NixOS/mergify/bp/2.26-maintenance/pr-12714
`MonitorFdHup`: replace `pthread_cancel` trick with a notification pipe (backport #12714)
2025-03-23 20:23:50 -04:00
John Ericson
b6a94d4a1a 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
ff62e83989 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:09 +00:00
Félix Baylac Jacqué
fabf4a55c3 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:09 +00:00
John Ericson
b19db6f479 MonitorFdHup: introduce a num_fds variable
Better than just putting `1` in multiple spots.

(cherry picked from commit cb95791198)
2025-03-23 23:54:09 +00:00
John Ericson
e51dbf42bb MonitorFdHup: Cleanup a bit with designated initializers
(cherry picked from commit d028bb4c4a)
2025-03-23 23:54:08 +00:00
Jörg Thalheim
68d8f09bd4 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:08 +00:00
John Ericson
a04bc3ed7a 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:08 +00:00
mergify[bot]
b369ccf1d7
Merge pull request #12725 from NixOS/mergify/bp/2.26-maintenance/pr-12723
packaging/everything.nix: Fix doc and man outputs (backport #12723)
2025-03-23 11:59:53 +00:00
Sergei Zimmerman
10ef954f8a packaging/everything.nix: Fix doc and man outputs
We want the $doc, $man outputs to be symlinks pointing to nix-manual and
nix-manual.man. Creating the directories first makes the `ln` command
produce symlink $doc/${nix-manual} instead.

```
$file /nix/store/q4dwlnd36gpfajgfcp6hca2xwy068wjq-nix-2.27.1-man/rwh8ky3k040wyrywl8k2v5b3csdfbdg7-nix-manual-2.27.1-man

/nix/store/q4dwlnd36gpfajgfcp6hca2xwy068wjq-nix-2.27.1-man/rwh8ky3k040wyrywl8k2v5b3csdfbdg7-nix-manual-2.27.1-man:
  symbolic link to /nix/store/rwh8ky3k040wyrywl8k2v5b3csdfbdg7-nix-manual-2.27.1-man
```

This is the reason `nix-env --help` is once again broken on 2.26/2.27/master
after 4108529.

(cherry picked from commit 0ddfbc5939)
2025-03-23 11:54:09 +00:00
mergify[bot]
bcbc57a77e
Merge pull request #12712 from NixOS/mergify/bp/2.26-maintenance/pr-12636
port crash-handler from lix to nix (backport #12636)
2025-03-21 15:44:28 +00:00
Jade Lovelace
045cff79b2 port crash-handler from lix to nix
It was first introduced in 19e0ce2c03

In Nix we only register the crash handler in main instead of initNix,
because library user may want to use their own crash handler.

Sample output:

Mar 12 08:38:06 eve nix[2303762]: Nix crashed. This is a bug. Please report this at https://github.com/NixOS/nix/issues with the following information included:
Mar 12 08:38:06 eve nix[2303762]: Exception: nix::SysError: error: writing to file: Resource temporarily unavailable
Mar 12 08:38:06 eve nix[2303762]: Stack trace:
Mar 12 08:38:06 eve nix[2303762]:  0# 0x000000000076876A in nix
                                   1# 0x00007FDA40E9F20A in /nix/store/2lhklm5aizx30qbw49acnrrzkj9lbmij-gcc-14-20241116-lib/lib/libstdc++.so.6
                                   2# std::unexpected() in /nix/store/2lhklm5aizx30qbw49acnrrzkj9lbmij-gcc-14-20241116-lib/lib/libstdc++.so.6
                                   3# 0x00007FDA40E9F487 in /nix/store/2lhklm5aizx30qbw49acnrrzkj9lbmij-gcc-14-20241116-lib/lib/libstdc++.so.6
                                   4# nix::writeFull(int, std::basic_string_view<char, std::char_traits<char> >, bool) in /home/joerg/git/nix/inst/lib/libnixutil.so
                                   5# nix::writeLine(int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) in /home/joerg/git/nix/inst/lib/libnixutil.so
                                   6# nix::JSONLogger::write(nlohmann::json_abi_v3_11_3::basic_json<std::map, std::vector, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, long, unsigned long, double, std::allocator, nlohmann::json_abi_v3_11_3::adl_serializer, std::vector<unsigned char, std::allocator<unsigned char> >, void> const&) in /home/joerg/git/nix/inst/lib/libnixutil.so
                                   7# nix::JSONLogger::logEI(nix::ErrorInfo const&) in /home/joerg/git/nix/inst/lib/libnixutil.so
                                   8# nix::Logger::logEI(nix::Verbosity, nix::ErrorInfo) in nix
                                   9# nix::handleExceptions(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::function<void ()>) in /home/joerg/git/nix/inst/lib/libnixmain.so
                                  10# 0x000000000087A563 in nix
                                  11# 0x00007FDA40BD41FE in /nix/store/6q2mknq81cyscjmkv72fpcsvan56qhmg-glibc-2.40-66/lib/libc.so.6
                                  12# __libc_start_main in /nix/store/6q2mknq81cyscjmkv72fpcsvan56qhmg-glibc-2.40-66/lib/libc.so.6
                                  13# 0x00000000006F4DF5 in nix

Co-authored-by: eldritch horrors <pennae@lix.systems>
(cherry picked from commit 163f94412a)
2025-03-21 15:30:03 +00:00
mergify[bot]
3c937cf62c
Merge pull request #12710 from NixOS/mergify/bp/2.26-maintenance/pr-12701
stack overflow is EvalBaseError (backport #12701)
2025-03-21 14:35:07 +00:00
Shahar "Dawn" Or
162081618f stack overflow is EvalBaseError
(cherry picked from commit 23c7a45a05)
2025-03-21 14:12:36 +00:00
mergify[bot]
70cb4b40e4
Merge pull request #12695 from NixOS/mergify/bp/2.26-maintenance/pr-12682
libfetchers: fix double quote in path printed in logger (backport #12682)
2025-03-19 22:42:55 +00:00
Jörg Thalheim
3176e024f6 libfetchers: fix double quote in path printed in logger
(cherry picked from commit 314e9fbeda)
2025-03-19 22:24:28 +00:00
mergify[bot]
7430d002bc
Merge pull request #12685 from NixOS/mergify/bp/2.26-maintenance/pr-12570
Fix macos sandbox issue (backport #12570)
2025-03-19 21:02:17 +00:00
Pierre-Etienne Meunier
2868a471d2 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:21:40 +00:00
mergify[bot]
74b786bf9a
Merge pull request #12654 from NixOS/mergify/bp/2.26-maintenance/pr-12645
Make debugger significantly faster (backport #12645)
2025-03-14 20:40:50 +00:00
Sergei Zimmerman
9d54f34ed0 {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:45 +00:00
Sergei Zimmerman
bee21af2a1 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
5a3b0d9c7a 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:44 +00:00
Sergei Zimmerman
6384a65baf {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:44 +00:00
Eelco Dolstra
3bd0406fa4 Bump version 2025-03-05 19:34:04 +01:00
mergify[bot]
42fc03dd1f
Merge pull request #12601 from NixOS/mergify/bp/2.26-maintenance/pr-12600
packaging: Typo in setVersionLayer / preConfigure (backport #12600)
2025-03-04 17:08:09 +00:00
Robert Hensing
87bf338612 packaging: Typo in setVersionLayer / preConfigure
Apparently dead code in our use case, but good to keep nonetheless.
Credit: ztzg in https://github.com/NixOS/nix/pull/12498#pullrequestreview-2658031853

(cherry picked from commit dcaea8cb1c)
2025-03-04 16:46:15 +00:00
mergify[bot]
cd3688101d
Merge pull request #12585 from NixOS/mergify/bp/2.26-maintenance/pr-12582
packaging/everything.nix: Use a multi-output derivation (backport #12582)
2025-03-01 10:41:47 +00:00
Robert Hensing
d8606f96ee packaging/everything.nix: Use a multi-output derivation
This should fix a few packaging regressions.

`dev` also includes a merged `includes/`, which may be helpful until
inter-component includes are fixed properly.

(cherry picked from commit 41085295ab)
2025-03-01 10:36:41 +00:00
mergify[bot]
1dda07eef2
Merge pull request #12562 from NixOS/mergify/bp/2.26-maintenance/pr-12559
nix flake archive: Recurse into relative path inputs (backport #12559)
2025-02-24 22:18:03 +00:00
Eelco Dolstra
827f760ad7
Fix test
We didn't backport `nix flake prefetch --out-link`.
2025-02-24 23:00:07 +01:00
Eelco Dolstra
91508de315 nix flake archive: Recurse into relative path inputs
We can't ignore them entirely, since we do want to archive their
transitive inputs.

Fixes #12438.

(cherry picked from commit 14c9755462)
2025-02-24 21:30:45 +00:00
mergify[bot]
605b2371f9
windows: fix compilation after recent changes (backport #12495) (#12561)
* windows: fix compilation after recent changes

Specifically last few week's merges involving legacy SSH options and
dynamic derivations.

(cherry picked from commit e0617d2545)

# Conflicts:
#	src/libstore/build/derivation-creation-and-realisation-goal.hh

* Remove unneeded

* Remove unneeded

---------

Co-authored-by: Brian McKenna <brian@brianmckenna.org>
Co-authored-by: Eelco Dolstra <edolstra@gmail.com>
2025-02-24 21:30:35 +00:00
Eelco Dolstra
6d9724a2b3
Merge pull request #12560 from NixOS/mergify/bp/2.26-maintenance/pr-12557
packaging: Use correct stdenv for x86_64-darwin (backport #12557)
2025-02-24 22:04:52 +01:00
Robert Hensing
9e87a58314 packaging: Use correct stdenv for x86_64-darwin
(cherry picked from commit 0772c2e3ab)
2025-02-24 20:55:05 +00:00
mergify[bot]
31a29e66ea
Merge pull request #12554 from NixOS/mergify/bp/2.26-maintenance/pr-12553
nix flake archive: Skip relative path inputs (backport #12553)
2025-02-24 15:03:38 +00:00
Eelco Dolstra
d670380bd9 nix flake archive: Skip relative path inputs
Fixes #12438.

(cherry picked from commit b4dfeafed5)
2025-02-24 14:49:11 +00:00
mergify[bot]
6d3ee99463
Merge pull request #12545 from NixOS/mergify/bp/2.26-maintenance/pr-12543
Fix perl store bindings (backport #12543)
2025-02-22 18:34:00 +00:00
mergify[bot]
a30588365b
Merge pull request #12547 from NixOS/mergify/bp/2.26-maintenance/pr-12510
libstore: fix expected bytes in progress bar (backport #12510)
2025-02-21 19:34:30 +00:00