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

612 commits

Author SHA1 Message Date
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
Shahar "Dawn" Or
162081618f stack overflow is EvalBaseError
(cherry picked from commit 23c7a45a05)
2025-03-21 14:12:36 +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
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
Robert Hensing
fd062585ac tests: Fix installTests
(cherry picked from commit 2b5365bcf7)
2025-02-19 01:04:04 +01:00
Robert Hensing
b175e5bb6d Write just ./.version on all components
This way it's easier to get right. See previous commit.

(cherry picked from commit 3556f6bf4c)
2025-02-19 01:04:04 +01:00
Eelco Dolstra
f02a7b880e startDaemon(): Detect if the daemon crashes before creating the socket
This avoids timeouts like those seen in
3735812034.

(cherry picked from commit 11c42cb2e1)
2025-02-18 16:39:48 +00:00
Eelco Dolstra
83306bb841 copyPathToStore(): Preserve symlinks
E.g. in a derivation attribute `foo = ./bar`, if ./bar is a symlink,
we should copy the symlink to the store, not its target. This restores
the behaviour of Nix <= 2.19.

(cherry picked from commit 26b87e78b5)
2025-02-11 21:51:39 +00:00
Robert Hensing
df8d5e61ad test: Fix shellcheck by giving git-hashing scripts shebangs
This seems to be the way to do it now, even though I can't run them
without setting at least one env var.
I'll only fix shellcheck for now. Don't shoot the messenger.

It isn't quite clear to me why the previous commit masked this problem,
but I'm glad shellcheck has an effect or more effect now.
2025-02-10 15:14:53 +01:00
Eelco Dolstra
1c1f8b2343 Fix duplicate setPathDisplay()
Fixes messages like 'copying /tmp/repo/tmp/repo to the store'. The
PosixSourceAccessor already sets the prefix. Setting the prefix twice
shouldn't be a problem, but GitRepoImpl::getAccessor() returns a
wrapped accessor so it's not actually idempotent.

(cherry picked from commit 102d90ebf0)
2025-02-02 02:10:53 +00:00
Robert Hensing
f629d81df0 test: Fix shifted source positions after formatting 2025-01-24 22:21:27 +01:00
Robert Hensing
32aed360b8 Format .nix files
This does not include any automation for the release branch, but
is based on the configuration of https://github.com/NixOS/nix/pull/12349

    pre-commit run -a nixfmt-rfc-style
2025-01-24 20:40:21 +01:00
Eelco Dolstra
90159cb197 EvalState::resolveLookupPathPath(): Call resolveSymlinks() before pathExists()
Fixes #12339.

(cherry picked from commit 00d9e7e1f4)
2025-01-24 13:46:16 +00:00
Eelco Dolstra
832221650b GitRepo::fetch(): Ignore $GIT_DIR
Fixes #12325.

(cherry picked from commit 41983dba8f)
2025-01-22 20:30:29 +00:00
Eelco Dolstra
17b6557c03
Merge pull request #12275 from andrewhamon/ah/set-priority-nix-env-install
nix-env: add a --priority flag to --install
2025-01-16 22:04:35 +01:00
Andy Hamon
3716ded8df nix-env: add a --priority flag to --install
nix-env can read priorities from a derivations meta attributes, but this
only works when installing a nix expression.

nix-env can also install bare store paths, however meta attributes are
not readable in that case. This means that a store path can not be
installed with a specific priority.

Some cases where it is advantageous to install a store path: a remote
host following a `nix copy`, or any time you want to save some
evaluation time and happen to already know the store path.

This PR addresses this shortcoming by adding a --priority flag to
nix-env --install.
2025-01-16 11:46:25 -08:00
Eelco Dolstra
521667eb89 Fix follow-paths test
Since ff8e2fe84e, 'path:' URLs on the
CLI are interpreted as relative to the current directory of the user,
not the path of the flake we're overriding.
2025-01-16 11:19:20 +01:00
Eelco Dolstra
550fe889ee Merge remote-tracking branch 'origin/master' into relative-flakes 2025-01-16 11:05:10 +01:00
John Ericson
e02026adae
Merge pull request #12254 from DeterminateSystems/fix-relative-path-on-cli
Fix relative 'path:' flakerefs in the CLI
2025-01-15 15:19:56 -05:00
mergify[bot]
c45dfeeef3
Merge pull request #12220 from DeterminateSystems/allow-dirty-locks
Add setting 'allow-dirty-locks'
2025-01-15 20:18:28 +00:00
Eelco Dolstra
ff8e2fe84e Fix relative 'path:' flakerefs in the CLI
And handle relative 'git+file:' flakerefs while we're at it (these
crashed with an assertion failure).

Fixes #12248.
2025-01-14 17:30:13 +01:00
Eelco Dolstra
cd0127f957 Merge remote-tracking branch 'origin/master' into relative-flakes 2025-01-13 14:13:56 +01:00
Eelco Dolstra
e161393299 Add setting 'allow-dirty-locks'
This allows writing lock files with dirty inputs, so long as they have
a NAR hash. (Currently they always have a NAR hash, but with lazy
trees that may not always be the case.)

Generally dirty locks are bad for reproducibility (we can detect if
the dirty input has changed, but we have no way to fetch it except
substitution). Hence we don't allow them by default.

Fixes #11181.
2025-01-10 17:55:30 +01:00
Robert Hensing
d9a50c0af2
Clarify cd call in tests/functional/flakes/flakes.sh 2025-01-10 09:57:54 +01:00
Bryan Lai
37ac18d1d9 tests/flake-in-submodule: git+file:./* input 2025-01-10 11:44:55 +08:00
Bryan Lai
9d088fa502 tests/flakes: check git+file:./${submodule} protocol
Relative, local git repo used to work (for submodules), but it
fails after 3e0129ce3b.

This commit adds a test to prevent such failure in the future.
2025-01-10 11:37:29 +08:00
Eelco Dolstra
28caa35a97 parsePathFlakeRefWithFragment(): Handle 'path?query' without a fragment
Commands like `nix flake metadata '.?submodules=1'` ignored the query
part of the URL, while `nix build '.?submodules=1#foo'` did work
correctly because of the presence of the fragment part.
2025-01-08 18:38:53 +01:00
Robert Hensing
4c74d679b6 test: Avoid regressing accidental use of weakly_canonical instead of makeParentCanonical
I'd messed up a rebase in my previous iteration, causing `weakly_canonical` to reappear,
but not trigger a test failure.

These two functions behave similarly when the argument is a path that points to a broken
symlink. `weakly_canonical` would not resolve it because the target doesn't exist, and
`makeParentCanonical` would not resolve it, because it never resolves the final path
element.
This new test case now also tests a valid symlink, "differentiating" the two.
2025-01-07 05:42:04 +00:00
Robert Hensing
ddbbf53767 fix: Resolve CLI parent symlinks before adding to store
Fixes https://github.com/NixOS/nix/issues/11941
2025-01-07 05:42:03 +00:00
Robert Hensing
36563c69a4 fix: Handle symlinks and FIFOs in nix hash where possible
Fixes https://github.com/NixOS/nix/issues/11756
Fixes https://github.com/NixOS/nix/issues/11681
2025-01-07 05:42:03 +00:00
Philipp Otterbein
a44e9dd1ea correctly parse strings with null bytes and throw error 2025-01-04 16:14:06 +01:00
Connor Baker
359a0840e2 packaging: use optimization level 3 and LTO by default 2025-01-01 21:59:37 -08:00
Robert Hensing
4f3960ea26
Merge pull request #12127 from NaN-git/json-ser
toJSON: re-throw serialization exception
2024-12-31 21:41:38 +01:00
Philipp Otterbein
4a2310a3a0 toJSON: re-throw serialization exception 2024-12-31 20:33:28 +01:00
Martin Fischer
7a8a28629c feat(nix-instantiate): add --raw flag
The experimental `nix eval` command already supports a `--raw` flag.
This commit implements the same flag for the stable nix-instantiate command.

Until now instructions and scripts that didn't want to rely on experimental
features had to use workarounds such as:

    nix-instantiate --eval <something> | tr -d \"

(which also undesirably also removes double quotation marks within the string), or

    nix-instantiate --eval <something> | jq -j

(which undesirably depends on another package).

Co-authored-by: Silvan Mosberger <silvan.mosberger@tweag.io>
2024-12-31 16:36:49 +01:00
Martin Fischer
1a402e0c53 test: test eval of newlines with raw output 2024-12-31 14:24:06 +01:00
Eelco Dolstra
8534c4222c Merge remote-tracking branch 'origin/master' into relative-flakes 2024-12-18 21:09:27 +01:00
Eelco Dolstra
757ea70644 Add a test 2024-12-17 13:13:39 +01:00
Eelco Dolstra
08361f031d EvalState::realiseContext(): Allow access to the entire closure
Fixes #11030.
2024-12-16 16:16:36 +01:00
Eelco Dolstra
bdf579d018
Merge pull request #12051 from Mic92/ci-follow-up
Skip tests on systems with restricted usernamespaces
2024-12-16 15:19:17 +01:00
mergify[bot]
2baab6412f
Merge pull request #12028 from DeterminateSystems/fail-on-unlocked
nix flake lock: Fail if there is an unlocked input
2024-12-16 08:55:40 +00:00
Jörg Thalheim
da7f7ba810 functional-tests: skip tests if the kernel restricts unprivileged user namespaces
Update tests/functional/common/functions.sh

Co-authored-by: Robert Hensing <roberth@users.noreply.github.com>
2024-12-15 16:07:27 +01:00
mergify[bot]
77e391b39d
Merge pull request #12012 from wh0/patch-1
tests: derivation-advanced-attributes unset NIX_STORE
2024-12-14 16:11:16 +00:00
Eelco Dolstra
6d97d57dc7 Prune unneeded .gitignore entries 2024-12-11 16:20:29 +01:00
Eelco Dolstra
50ba85167c
Merge pull request #12024 from NaN-git/null-char
fromJSON/fromTOML: throw if string contains null byte
2024-12-10 12:29:48 +01:00
Philipp Otterbein
3a9d64b8e3 fromJSON/fromTOML: throw if string contains null byte 2024-12-09 22:04:21 +01:00
Robert Hensing
c783cd22ac tests: Make unusual logging test conditional on fixed daemon version 2024-12-09 17:29:45 +01:00