aboutsummaryrefslogtreecommitdiff
path: root/src
AgeCommit message (Collapse)Author
2023-06-09Merge branch 'master' into angerman/mac-fix-recursive-nixEelco Dolstra
2023-06-09Parse TOML timestamps (#8120)Andrea Bedini
Currently `fromTOML` throws an exception when encountering a timestamp since the Nix language lacks a way to represent them. This patch changes this beaviour and makes `fromTOML` parse timestamps as attrsets of the format { _type = "timestamp"; value = "1979-05-27T07:32:00Z"; } This is guarded by an experimental feature flag to leave room for iterating on the representation.
2023-06-06Merge pull request #8391 from ↵Eelco Dolstra
aneeshusa/remove-wrong-default-value-in-docs-for-hashed-mirrors Remove old default from docs for `hashed-mirrors`
2023-06-06Merge pull request #8438 from zhaofengli/armv5tel-linux32Eelco Dolstra
Also set the PER_LINUX32 personality flag on armv5tel-linux
2023-06-06Merge pull request #8456 from emilytrau/include-selectEelco Dolstra
Add missing <sys/select.h> include
2023-06-06Fix SourcePath::resolveSymlinks()Eelco Dolstra
This fixes handling of symlinks that start with '..', and symlink targets that contain symlinks themselves.
2023-06-05Add missing <sys/select.h> includeEmily Trau
`select()` may not be ambiently available for use on every platform
2023-06-04Fix code block formatting in man pagefigsoda
2023-06-02Document manual migration for use-xdg-base-directories (#8044)Alexander Bantyev
* Document manual migration for use-xdg-base-directories As there's currently no automatic migration for use-xdg-base-directories option, add instructions for manual migration to the option's description. Co-authored-by: Valentin Gagarin <valentin.gagarin@tweag.io>
2023-06-02Also set the PER_LINUX32 personality flag on armv5tel-linuxZhaofeng Li
2023-05-31Merge pull request #8421 from fricklerhandwerk/doc-replaceStringsEelco Dolstra
update documentation according to release notes
2023-05-31Merge pull request #8318 from fricklerhandwerk/doc-currentTimeValentin Gagarin
document `builtins.currentTime`
2023-05-30update documentation according to release notesValentin Gagarin
2023-05-30Merge pull request #8398 from ↵Robert Hensing
polykernel/perf/lazy-eval-replacements-replacestrings primops: lazy evaluation of replaceStrings replacements
2023-05-30Merge pull request #8406 from NixOS/fix-ca-attrs-falseEelco Dolstra
Restore Nix 2.3 behaviour for {__impure,__contentAddressed} = false
2023-05-27Merge pull request #8399 from tweag/fix-chrooted-stores-error-pathEelco Dolstra
Properly report build errors on chrooted stores
2023-05-27Restore Nix 2.3 behaviour for {__impure,__contentAddressed} = falseEelco Dolstra
Fixes #8405.
2023-05-26create pathAccessible, use it to infer default dirsYorick van Pelt
2023-05-26getDefaultNixPath: ignore EPERMYorick van Pelt
2023-05-26Call getDefaultSSLCertFile() only when none is specifiedYorick van Pelt
This does pathExists on various paths, which crashes on EPERM in the macOS sandbox.
2023-05-26ci: Always run with sandbox, even on DarwinSilvan Mosberger
And fix a test failure in the sandbox due to /home existing on Darwin but not being accessible in the sandbox since it's a symlink to /System/Volumes/Data/home, see https://github.com/NixOS/nix/actions/runs/4205378453/jobs/7297384658#step:6:2127: C++ exception with description "error: getting status of /home/schnitzel/darmstadt/pommes: Operation not permitted" thrown in the test body. On Linux this wasn't a problem because there /home doesn't exist in the sandbox
2023-05-25primops: lazy evaluation of replaceStrings replacementspolykernel
The primop `builtins.replaceStrings` currently always strictly evaluates the replacement strings, however time and space are wasted for their computation if the corresponding pattern do not occur in the input string. This commit makes the evaluation of the replacement strings lazy by deferring their evaluation to when the corresponding pattern are matched and memoize the result for efficient retrieval on subsequent matches. The testcases for replaceStrings was updated to check for lazy evaluation of the replacements. A note was also added in the release notes to document the behavior change.
2023-05-25Properly report build errors on chrooted storesThéophane Hufschmitt
When encountering a build error, Nix moves the output paths out of the chroot into their final location (for “easier debugging of build failures”). However this was broken for chroot stores as it was moving it to the _logical_ location, not the _physical_ one. Fix it by moving to the physical (_real_) location. Fix https://github.com/NixOS/nix/issues/8395
2023-05-24Remove old default from docs for `hashed-mirrors`Aneesh Agrawal
The `hashed-mirrors` option did use to have this default value, but it was removed and re-added with an empty default value. As the autogenerated docs show the (actual) default values from code, remove this incorrect reference from the docs. I was updating my nix.conf settings after a few years and noticed this.
2023-05-24Fix typo in error message of too long store pathoxalica
2023-05-23`nix flake check`: skip derivations for foreign systems (#7759)Peter Becich
`nix flake show` now skips derivations for foreign systems: https://github.com/NixOS/nix/pull/6988 This commit borrows from that to implement the same behavior for `nix flake check`. See "nix flake check breaks on IFD in multi-platform flake" https://github.com/NixOS/nix/issues/4265
2023-05-22Merge pull request #8377 from layus/fix-ssl-cert-mountThéophane Hufschmitt
Make mounting ssl cert file optional
2023-05-22Merge pull request #8365 from obsidiansystems/proto-structsThéophane Hufschmitt
Revert "Revert "Use template structs instead of phantoms""
2023-05-19Shortcircuit for empty caFileGuillaume Maudoux
2023-05-19Make mounting ssl cert file optionalGuillaume Maudoux
2023-05-19Merge pull request #8354 from KasyanDiGris/git-fetcher-ask-credentialsEelco Dolstra
Ask for git credentials in fetcher
2023-05-19Merge pull request #8215 from obsidiansystems/general-repair-pathEelco Dolstra
Support `repairPath` on most stores.
2023-05-19Merge pull request #7312 from layus/fixed-output-system-certEelco Dolstra
Allow system certs access to fixed-output derivations
2023-05-18Merge pull request #8366 from obsidiansystems/worker-proto-forward-decl-typesRobert Hensing
Don't use `store-api.hh` in `worker-protocol.hh`
2023-05-18Remove unusedKonstantin Vukolov
2023-05-18Add option isInteractiveKonstantin Vukolov
2023-05-18Don't use `store-api.hh` in `worker-protocol.hh`John Ericson
Using abstract types like can help cut down on compilation time, both from scratch, and especially incremental builds during development. The idea is that `worker-protocol.hh` can declare all the (de)serializers, but only again abstract types; when code needs to use some (de)serializers, it can include headers just for the data types it needs to (de)serialize. `store-api.hh` in particular is a bit of a sledgehammer, and the data types we want to serialize have their own headers.
2023-05-17Revert "Revert "Use template structs instead of phantoms""John Ericson
This is the more typically way to do [Argument-dependent lookup](https://en.cppreference.com/w/cpp/language/adl)-leveraging generic serializers in C++. It makes the relationship between the `read` and `write` methods more clear and rigorous, and also looks more familiar to users coming from other languages that do not have C++'s libertine ad-hoc overloading. I am returning to this because during the review in https://github.com/NixOS/nix/pull/6223, it came up as something that would make the code easier to read --- easier today hopefully already, but definitely easier if we were have multiple codified protocols with code sharing between them as that PR seeks to accomplish. If I recall correctly, the main criticism of this the first time around (in 2020) was that having to specify the type when writing, e.g. `WorkerProto<MyType>::write`, was too verbose and cumbersome. This is now addressed with the `workerProtoWrite` wrapper function. This method is also the way `nlohmann::json`, which we have used for a number of years now, does its serializers, for what its worth. This reverts commit 45a0ed82f089158a79c8c25ef844c55e4a74fc35. That commit in turn reverted 9ab07e99f527d1fa3adfa02839da477a1528d64b.
2023-05-17Upgrade `downstreamPlaceholder` to a type with methodsJohn Ericson
This gets us ready for dynamic derivation dependencies (part of RFC 92).
2023-05-17Add test for `downstreamPlaceholder`John Ericson
This is good in general, but in particular ensures when we heavily refactor it in the next commit there is less likelihood for an unintentional change in behavior to sneak in.
2023-05-17Merge pull request #8349 from tweag/fix-control-masterJohn Ericson
Fix ControlMaster behaviour
2023-05-17Merge pull request #8360 from obsidiansystems/worker-protocol.ccJohn Ericson
Move `worker_proto` defs out of `remote-store.cc` to own file
2023-05-17Move `worker_proto` defs out of `remote-store.cc` to own fileJohn Ericson
These items are not templates, and they declared in `worker-protocol.hh`; therefore they should live in a `worker-protocol.cc`. Anything else needlessly diverges from convention. After all, it is not like this code is only used in `remote-store.cc`; it is also used in `daemon.cc`. There is no good reason to place it with the client implementation or the server implementation when it used equally by both.
2023-05-17add cross-references to pure evaluation modeValentin Gagarin
use consistent wording everywhere. add some details on the configuration option documentation.
2023-05-17Also use long options in src/nix/*.mdAlexander Schmolck
2023-05-17Ask for git credentials in fetcherKonstantin Vukolov
2023-05-16Merge pull request #8346 from tweag/fix-nix-profile-install-conflict-segfaultJohn Ericson
Fix the segfault on `nix profile install` with conflict
2023-05-16Fix ControlMaster behaviourAlexander Bantyev
2023-05-16Merge pull request #8154 from tweag/delete-old-on-all-profiles-dirJohn Ericson
undefined
2023-05-16Fix the printing of the installables on `nix profile install` conflictThéophane Hufschmitt
- If the element comes from a flake, print the full flakeref (with the fragment part) and not just the reference to the flake itself - If the element doesn't come from a flake, print its store path(s) This is a bit too verbose, but has the advantages of being correct (and not crashing), so it's strictly better than the previous situation Fix https://github.com/NixOS/nix/issues/8284