Jörg Thalheim
3b0b2fd8d6
libflake: fix double quoting when updating flakes
2025-03-07 04:00:24 +01:00
Jörg Thalheim
559a2d1bc7
libfetchers/git: fix double quoting in error message
2025-03-07 04:00:22 +01:00
Sergei Zimmerman
82f337de10
{libutil,libstore}: Factor out chmodIfNeeded
...
Using std::filesystem::path directly because we need .c_str()
anyway to interact with chmod. Path/string views don't have to be
null-terminated.
2025-03-05 02:43:11 +03:00
Robert Hensing
1e1c587073
repl: Fix :print corruption
...
See preceding commits.
2025-03-04 19:48:22 +01:00
Robert Hensing
30694b5d8a
refactor: RAII logger suspension
2025-03-04 19:48:22 +01:00
Robert Hensing
880489051a
repl: Fix value printing corruption
...
The resume call would get some non-flushed(?) data.
Extending the pause to include the newline makes the complete flush
part of the pause.
2025-03-04 19:48:22 +01:00
Robert Hensing
49d8ee5359
progress-bar: Make pause/resume nestable
2025-03-04 19:48:22 +01:00
Philipp Otterbein
b129fc8237
libstore: curl retry: reset content-encoding and don't use string after move
2025-03-04 18:05:33 +01:00
Robert Hensing
efbd4c1ebb
Merge pull request #12442 from NixOS/store-derivation-options
...
Expand manual on derivation outputs
2025-03-03 23:11:51 +01:00
John Ericson
a58e0584f5
Rework derivation input resolution
...
I refactored the way that input resolution works in `DerivationGoal`. To
be honest, it is probably unclear to the reader whether this new way is
better or worse. I suppose *intrinsic* motivation, I can say that
- the more structured use of `inputGoal` (a local variable) is better
than the shotgrun approach with `inputDrvOutputs`
- A virtual `waiteeDone` was a hack, and now it's gone.
However, the *real* motivation of this is not the above things, but that
it is needed for my mammoth refactor fixing #11897 and #11928 .
It is nice that this step could come first, rather than making that
refactor even bigger.
2025-03-03 10:31:56 -05:00
John Ericson
8fdb50761d
SingleDerivedPath should be const in recursive data structures
2025-03-03 10:31:23 -05:00
John Ericson
f4f28cdd0e
Revert "Revert "Revert "Adapt scheduler to work with dynamic derivations"""
...
The bug reappeared after all, and the fix introduced a different bug. I
just reverted on 2.27 first, in #12576 , but upon further introspection
and discussion with @roberth, with preparing for and travelling to
Planet Nix I will not be able to fix it on `master` soon enough for a
revert to not be warranted here in the meantime also.
This reverts commit c98525235f .
2025-03-02 15:34:21 -05:00
Sergei Zimmerman
c99edc840c
libutil/file-system.hh: Fix typos
2025-03-01 18:44:48 +00:00
Yannik Sander
954e9101ba
Add host attribute of github/gitlab flakerefs to URL serialization
...
`GitArchiveInputScheme::toUrl` currently drops the `host` attribute,
creating invalid urls when locking `github:` or `gitlab:` urls pointing to alterative instances and serializing the input back to a url.
```
❯ cat flake.nix
{
inputs.gnome-2048 = {
url = "gitlab:GNOME/gnome-2048?host=gitlab.gnome.org";
flake = false;
};
outputs = inputs: {};
}
f1xb57354q79t_jpw5_h79cw0000gq/T/tmp.MOBbzbpT35
❯ nix flake metadata
warning: creating lock file '/private/var/folders/fb/f1xb57354q79t_jpw5_h79cw0000gq/T/tmp.MOBbzbpT35/flake.lock':
• Added input 'gnome-2048':
'gitlab:GNOME/gnome-2048/70e0e430ca4bf590990433a3abdce6b631d50e6e?narHash=sha256-bya45ug2mDSU4SMn0fSBlZCuPl9y15B12ubKeb2A58s%3D' (2025-02-21)
Resolved URL: path:/private/var/folders/fb/f1xb57354q79t_jpw5_h79cw0000gq/T/tmp.MOBbzbpT35
Locked URL: path:/private/var/folders/fb/f1xb57354q79t_jpw5_h79cw0000gq/T/tmp.MOBbzbpT35?lastModified=1740744684&narHash=sha256-nxUL/JiTYbZX2c1XiN/TC6aA1hf%2B1YXsUvhL7ASY2uE%3D
Path: /nix/store/f4xczpwhdxs8gal1rika1c5bvhyd472l-source
Last modified: 2025-02-28 13:11:24
Inputs:
└───gnome-2048: gitlab:GNOME/gnome-2048/70e0e430ca4bf590990433a3abdce6b631d50e6e?narHash=sha256-bya45ug2mDSU4SMn0fSBlZCuPl9y15B12ubKeb2A58s%3D (2025-02-21 23:18:46)
```
Note the gnome-2048 input url missing the original host query.
The Url after this commit:
```
[...]
Inputs:
└───gnome-2048: gitlab:GNOME/gnome-2048/70e0e430ca4bf590990433a3abdce6b631d50e6e?host=gitlab.gnome.org&narHash=sha256-bya45ug2mDSU4SMn0fSBlZCuPl9y15B12ubKeb2A58s%3D (2025-02-21 23:18:46)
```
2025-02-28 13:14:16 +01:00
Eelco Dolstra
1293388039
Merge pull request #12544 from xokdvium/debugger-use-after-free
...
libexpr: Fix use-after-free of StaticEnv::up
2025-02-27 16:55:49 +01:00
John Ericson
2aa6e0f084
Expand manual on derivation outputs
...
Note, this includes some text adapted from from Eelco's dissertation
2025-02-27 02:13:36 -05:00
Eelco Dolstra
ec8f78b0be
Fix mingw build
...
https://hydra.nixos.org/build/291153007
2025-02-26 19:54:47 +01:00
Eelco Dolstra
81834e7f00
Merge pull request #12566 from NaN-git/fix-curl-callback
...
libstore: fix curl callback function signature
2025-02-25 20:15:06 +01:00
Eelco Dolstra
671d1b0123
Merge pull request #12501 from DeterminateSystems/stop-progress-bar
...
Remove {start,stop}ProgressBar()
2025-02-25 20:07:29 +01:00
Philipp Otterbein
b074345d35
libstore: fix curl callback function signature
2025-02-25 19:42:59 +01:00
Robert Hensing
1222438ae7
Merge remote-tracking branch 'upstream/master' into tomberek.access-token-prefixing
2025-02-25 15:40:34 +01:00
Robert Hensing
c07172220c
refact: Rename url -> hostAndPath
...
https://github.com/NixOS/nix/pull/12465/files#r1955286197
> Perhaps that is a misnomer.
2025-02-25 15:21:09 +01:00
Eelco Dolstra
14c9755462
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 .
2025-02-24 22:10:02 +01:00
Eelco Dolstra
b4dfeafed5
nix flake archive: Skip relative path inputs
...
Fixes #12438 .
2025-02-24 15:30:30 +01:00
Eelco Dolstra
f3ea14c8dc
Merge pull request #12542 from tomberek/tomberek.ssl-default
...
doc: ssl-cert-file leaks into OSX builds
2025-02-24 14:51:34 +01:00
Eelco Dolstra
d904921eec
Merge pull request #12510 from tie/fix-progress-parallel
...
libstore: fix expected bytes in progress bar
2025-02-21 20:11:18 +01:00
Sergei Zimmerman
af2ddfdb3b
libexpr: Fix use-after-free of StaticEnv::up
...
It's not very clear what the ownership model is here, but one thing
is certain: `.up` can't be destroyed before the StaticEnv that refers
to it is.
Changing a non-owning pointer to taking shared ownership of the parent
`StaticEnv` prevents the `.up` from being freed.
I'm not a huge fan of the inverted ownership, where child `StaticEnv`
takes a refcount of the parent, but this seems like the least intrusive
way to fix the use-after-free.
This shouldn't cause any shared_ptr cycles to appear (hopefully).
2025-02-21 14:36:39 +00:00
Fabian Möller
5cf9e18167
Fix perl store bindings
...
When #9863 converted the `Nix::Store` free functions into member functions, the
implicit `this` argument was not accounted for when iterating over the variable
number of arguments in some functions.
2025-02-21 11:49:00 +01:00
Thomas Bereknyei
bbf6ff29e6
doc: ssl-cert-file leaks into OSX builds
2025-02-20 17:57:10 -05:00
Sergei Zimmerman
d95b7fea8e
libfetchers-tests: Add back git-utils.cc
...
Seems like this got dropped at some point during meson migration, so
put it back in the build system.
Drop all tests for `parseGitUrl`, since that function doesn't exist
and migrating doesn't look sensible because git-lfs stuff seems to use
`ParsedURL`.
2025-02-20 20:19:16 +00:00
Robert Hensing
76f4119605
Merge pull request #12391 from SuperSandro2000/per-user-stat-chmod
...
Only try to chmod /nix/var/nix/profiles/per-user when necessary
2025-02-20 17:10:24 +01:00
John Ericson
de22f58dfc
Introduce EvalStore::storePath
...
This abstracts over a common case. Good for brevity, and enabling
further experiments.
2025-02-19 21:24:26 -05:00
Eelco Dolstra
ec7dc56f4e
Remove unused variable
2025-02-20 01:09:18 +01:00
Eelco Dolstra
8dc2b2715b
In pure eval mode, restrict rootFS to just the Nix store
...
Note that in pure mode, we don't need to use the union FS even when
using a chroot store, since the user shouldn't have access to the
physical /nix/store.
2025-02-19 23:13:11 +01:00
Eelco Dolstra
4206d95996
Remove sourcePathToStorePath()
...
It's no longer needed now that all store paths inside the evaluator
are logical rather than real paths.
2025-02-19 21:31:25 +01:00
Eelco Dolstra
584ddd1b4d
UnionSourceAccessor: Don't filter out underlying files of the wrong type
...
https://github.com/NixOS/nix/pull/12512#discussion_r1961567140
2025-02-19 13:34:42 +01:00
Eelco Dolstra
99e78c37f7
Use UnionSourceAccessor to mount the chroot store on top of the real store directory
2025-02-19 12:54:09 +01:00
Eelco Dolstra
5b7c240ebd
Add a UnionSourceAccessor
2025-02-19 12:54:09 +01:00
Eelco Dolstra
c3d8799f9f
MountedSourceAccessor: Remove redundant pathExists() method
2025-02-19 12:47:28 +01:00
Eelco Dolstra
774b924398
Add a storeFS accessor for paths resulting from IFD
...
Hopefully fixes #11503 .
2025-02-19 12:47:28 +01:00
Eelco Dolstra
e5e0ce2334
Remove redundant call to canonPath()
...
The CanonPath constructor already does that.
2025-02-19 12:47:28 +01:00
Eelco Dolstra
d7f2c1b7f4
Remove mounted-source-accessor.hh
2025-02-19 10:44:46 +01:00
Eelco Dolstra
0da81343d7
Move MountedSourceAccessor to libutil
2025-02-19 10:44:42 +01:00
Ivan Trubach
eb73bfcf73
libstore: fix expected bytes in progress bar
2025-02-18 22:09:05 +03:00
John Ericson
da5109835b
Merge pull request #12498 from NixOS/fix-cli-fine-version
...
Restore detailed Nix CLI version
2025-02-18 11:34:07 -05:00
John Ericson
dfb5b2c7cb
Merge pull request #12497 from xokdvium/fix/dont-override-default-man-search-paths
...
Don't override default man search paths
2025-02-18 11:31:01 -05:00
Eelco Dolstra
cca4e8c8c7
Merge pull request #12504 from NaN-git/fix-repl
...
repl: suppress progress bar in printValue()
2025-02-18 17:10:56 +01:00
Philipp Otterbein
dc359f8b7b
repl: suppress progress bar in printValue()
2025-02-18 16:52:48 +01:00
Sergei Zimmerman
95f16a3275
Don't override default man search paths
...
By appending a colon to MANPATH NIX_MAN_DIR gets prepended to the
final MANPATH before default search paths.
This makes man still consider default search paths, but prefers
NIX_MAN_DIR (if it exists).
It still makes sense to point NIX_MAN_DIR to a correct location
by moving man pages build from nix-manual.man to nix-cli.man, but
this should fix most common use-cases where nix is installed globally.
2025-02-18 18:46:52 +03:00
Eelco Dolstra
9b57f9be5e
Remove createDefaultLogger()
2025-02-18 15:19:57 +01:00