aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2024-05-26Revert "bump the extra --version info from info to notice, -vv -> -v"Qyriad
This reverts commit d003dcd7f4ce6b16c3494398a4edd36e668a1b46. d0390b5cf¹ bumped the default verbosity of nix3 commands, making this change obsolete. [1]: d0390b5cf2d232febaa89aa6d8b07c547513a460 Change-Id: I1ddc36ea4514cd8d2855ff334accf6e98c210879
2024-05-25Merge "libstore: parse the buildMode instead of unchecked cast" into mainjade
2024-05-25Merge "libstore/build: always enable seccomp filtering and ↵alois31
no-new-privileges" into main
2024-05-24libstore: parse the buildMode instead of unchecked castJade Lovelace
Change-Id: Icf6af7935e8f139bef36b40ad475e973aa48855c
2024-05-25Merge "nix3-upgrade-nix: fix when there are differing pnames" into mainQyriad
2024-05-25Merge changes I3ab84cc5,Iba34ad42 into mainQyriad
* changes: nix3: always use the same verbosity default (info) libfetchers: log fetches by URL just before they happen
2024-05-25nix3-upgrade-nix: fix when there are differing pnamesQyriad
Change-Id: I19c7e24a4d46137127e76b7bb133e0184d73d1b6
2024-05-24change "evaluating file" logs to debugQyriad
I can't imagine wanting this unless you are debugging something (in which case it's very useful) Change-Id: I90c6f182c18486e9f6b15a59379bbb8e88fb8e7f
2024-05-24libstore/build: always enable seccomp filtering and no-new-privilegesAlois Wohlschlager
Seccomp filtering and the no-new-privileges functionality improve the security of the sandbox, and have been enabled by default for a long time. In https://git.lix.systems/lix-project/lix/issues/265 it was decided that they should be enabled unconditionally. Accordingly, remove the allow-new-privileges (which had weird behavior anyway) and filter-syscall settings, and force the security features on. Syscall filtering can still be enabled at build time to support building on architectures libseccomp doesn't support. Change-Id: Iedbfa18d720ae557dee07a24f69b2520f30119cb
2024-05-24nix3: always use the same verbosity default (info)Qyriad
Change-Id: I3ab84cc583e3e8b1c05a8ae1a7a087204f513d03
2024-05-24libfetchers: log fetches by URL just before they happenQyriad
Addresses but does not close #305, as we still need an indicator for frozen fetches. Change-Id: Iba34ad42dc1c8772f7da249b90fe794b041bbf73
2024-05-24Merge "clang-tidy: work with angle brackets and external projects" into mainjade
2024-05-24Merge "make CTRL+Z work in the REPL" into mainQyriad
2024-05-24Merge "justfile: remove --quiet from `just test`" into mainQyriad
2024-05-24make CTRL+Z work in the REPLQyriad
Editline just wasn't being built with --enable-sigstop lol Change-Id: I35a78f74ea100d97f26b2b41990deb373fd9cd9a
2024-05-24Merge "add editorconfig for markdown" into mainQyriad
2024-05-24clang-tidy: work with angle brackets and external projectsJade Lovelace
Also fix the readme Change-Id: I422dff5536bf01d43983621aa01035bd77ac0252
2024-05-24add editorconfig for markdownQyriad
Change-Id: I493fc37fde425fc5c5c24f9b077bdc235271233c
2024-05-24justfile: remove --quiet from `just test`Qyriad
`meson test` refuses to let `--verbose` (which shows the entire invocation and stdio) override `--quiet`, but if neither are specified in the justfile then you can use either `just test -q` or `just test -v` Change-Id: I449e13084ce64666b7ee2ab4280818782fb8185a
2024-05-24package.nix: add meta.mainProgramPierre Bourdon
nix-repl> lib.getExe (builtins.getFlake ".").packages.x86_64-linux.nix "/nix/store/ajps2zn5hlap0l2abvnfdaphg8k0789r-lix-2.90.0pre20240524_dirty/bin/nix" Fixes #316. Change-Id: Iec3125dc2dc99d100beb6357f7d1555456924ddc
2024-05-24[emergency revert]: make pname nix once moreJade Lovelace
Embarrassingly, I submitted a CL overriding submit requirements since I thought it was spurious failures. However, the CI failure was in fact real, and I have hopefully learned my lesson. The CI failure is that: ``` vm-test-run-nix-upgrade-nix> machine # installing 'nix-2.18.1' vm-test-run-nix-upgrade-nix> machine # building '/nix/store/2b6fdf7wvahd00bg2ff0393bhd597a0h-user-environment.drv'... vm-test-run-nix-upgrade-nix> machine # error: Unable to build profile. There is a conflict for the following files: vm-test-run-nix-upgrade-nix> machine # vm-test-run-nix-upgrade-nix> machine # /nix/store/dn6mhhr92bh3ad0n4pd1538ww88khjii-nix-2.18.1/lib/libboost_context.so vm-test-run-nix-upgrade-nix> machine # /nix/store/w4vffn9iq0znk8bcg5i2giij90xy6db6-lix-2.90.0pre20240523_c97e171/lib/libboost_context.so vm-test-run-nix-upgrade-nix> machine # error: builder for '/nix/store/2b6fdf7wvahd00bg2ff0393bhd597a0h-user-environment.drv' failed with exit code 1 vm-test-run-nix-upgrade-nix> machine # error: program '/nix/store/w4vffn9iq0znk8bcg5i2giij90xy6db6-lix-2.90.0pre20240523_c97e171/bin/nix-env' failed with exit code 100 ``` This is definitely caused by the pname not being the same, so we had better revert that part of the change until we know we won't regress anything by doing this. Fixes: https://gerrit.lix.systems/c/lix/+/1152/5 Change-Id: I0e9d573987f2819c106fb7cea87410fa75152274
2024-05-24Merge "nixos/tests: enable remoteBuilds tests against Nix 2.18" into mainPierre Bourdon
2024-05-23Merge changes I462a8cf0,I3b0bcea3,I2acd56e7,Ifc149764,I9e2ef170 into mainQyriad
* changes: docs: linkify nix3-build mention in nix-build.md build: make internal-api-docs PHONY cleanup lookupFileArg add docstring to lookupFileArg add libcmd test for lookupFileArg
2024-05-23Merge "packaging: rename nixexpr -> lixexpr and so on" into mainjade
2024-05-23packaging: rename nixexpr -> lixexpr and so onJade Lovelace
This breaks downstreams linking to us on purpose to make sure that if someone is linking to Lix they're doing it on purpose and crucially not mixing up Nix and Lix versions in compatibility code. We still need to fix the internal includes to follow the same schema so we can drop the single-level include system entirely. However, this requires a little more effort. This adds pkg-config for libfetchers and config.h. Migration path: expr.hh -> lix/libexpr/expr.hh nix/config.h -> lix/config.h To apply this migration automatically, remove all `<nix/>` from includes, so: `#include <nix/expr.hh>` -> `#include <expr.hh>`. Then, the correct paths will be resolved from the tangled mess, and the clang-tidy automated fix will work. Then run the following for out of tree projects: ``` lix_root=$HOME/lix (cd $lix_root/clang-tidy && nix develop -c 'meson setup build && ninja -C build') run-clang-tidy -checks='-*,lix-fixincludes' -load=$lix_root/clang-tidy/build/liblix-clang-tidy.so -p build/ -fix src ``` Related: https://git.lix.systems/lix-project/nix-eval-jobs/pulls/5 Fixes: https://git.lix.systems/lix-project/lix/issues/279 Change-Id: I7498e903afa6850a731ef8ce77a70da6b2b46966
2024-05-23docs: linkify nix3-build mention in nix-build.mdQyriad
Change-Id: I462a8cf0da42b5045ce84b48dc1841ecdccbb89e
2024-05-23build: make internal-api-docs PHONYQyriad
Since we're skipping Meson's dependency tracking, for the internal-api-docs custom target, we should just consider it a phony target and build it on every request. Change-Id: I3b0bcea30ee9a4830023ccc5bededf995e96cccc
2024-05-23cleanup lookupFileArgQyriad
Change-Id: I2acd56e7a542b12138f43c95af78fdd50e944619
2024-05-23add docstring to lookupFileArgQyriad
Change-Id: Ifc149764f5a15725d3d630677c6da29def4b0f3e
2024-05-23add libcmd test for lookupFileArgQyriad
Change-Id: I9e2ef170ffe916f902daec8b5630d29434c5d5f2
2024-05-23nixos/tests: enable remoteBuilds tests against Nix 2.18Pierre Bourdon
Fixes #321. Change-Id: I60812aec9f9b68ab742413835c581d3b53432b9b
2024-05-23repl: log errors writing to history fileQyriad
These errors are now logged and explicitly ignored, rather than implicitly ignored. Change-Id: Ia26015466a17f2b11952df5317a4d150d79dc184
2024-05-23Merge "repl: do not crash when tab-completing import errors" into mainPierre Bourdon
2024-05-23Merge "doc: sort change-authors.yml" into maineldritch horrors
2024-05-23Merge "libstore: remove unused copyPath function" into maineldritch horrors
2024-05-23doc: sort change-authors.ymleldritch horrors
this should make it easier to spot future instances of entries being duplicated by accident. also add a pre-commit check to remain sorted Change-Id: I500caf862e93480b38c9d51144273bb2dcab1af0
2024-05-23repl: do not crash when tab-completing import errorsPierre Bourdon
File not found while importing causes a SysError, not an EvalError, which is not currently caught by the tab-completion handler. Ignoring all SysErrors might seem "dangerous" but this is the tab-completion handler, any exception being bubbled up from there causes unexpected behavior (causes the whole repl to exit). Fixes #340. Change-Id: I643048a47935e77f582decc539d9e51bdb96c890
2024-05-22fix: enlarge envSize by several times to not be close to nixpkgs sizeJade Lovelace
nixpkgs has 23000 attributes, and our previous limit would be hit if you have more than one nixpkgs in the environment, for example, because `repl-overlays` will load the new stuff from the environment on top of the existing environment. This is not really testable since if we did write such a test, it would just be testing this constant tbh... Fixes: https://git.lix.systems/lix-project/lix/issues/337 Change-Id: I49197bfb4db55b082f914f0d70e84f5f5f110954
2024-05-22Merge "libfetchers: fallback to memory SQLite if fs IO fails" into mainQyriad
2024-05-22release notes: add a bunch of themJade Lovelace
Also fix typos introduced by the commits I read. I have run the addDrvOutputDependencies release note past Ericson since I was confused by what the heck it was doing, and he was saying it was reasonable. Change-Id: Id015353b00938682f7faae7de43df7f991a5237e
2024-05-22Merge "doc: fix repl-interrupt release note entry" into mainalois31
2024-05-22libstore: remove unused copyPath functioneldritch horrors
Change-Id: Ibfb0848d8b337bd38947a745c240838865cea401
2024-05-21libfetchers: fallback to memory SQLite if fs IO failsQyriad
nix::fetchers::CacheImpl uses $XDG_CACHE_HOME, or its default based on $HOME, to store its SQLite database. If the current process can't write to that directory for whatever reason, though, any eval-time fetching would fail just initializing the cache. With this change, IO errors initializing the fetcher cache are logged but ignored, and nix::fetchers::CacheImpl falls back to an in-memory¹ database instead. Notably, this will fix any uses eval fetching while Lix itself is being run in a derivation builder (such as during tests), as the derivation builder does not set $XDG_CACHE_HOME, and sets $HOME to the non-existent directory /homeless-shelter. Before: $ env -u XDG_CACHE_HOME HOME=/homeless-shelter nix -Lv eval --impure -E 'fetchTarball "https://git.lix.systems/lix-project/lix/archive/main.tar.gz"' error: … while calling the 'fetchTarball' builtin at «string»:1:1: 1| fetchTarball "https://git.lix.systems/lix-project/lix/archive/main.tar.gz" | ^ error: creating directory '/homeless-shelter': Permission denied After: $ env -u XDG_CACHE_HOME HOME=/homeless-shelter nix -Lv eval --impure -E 'fetchTarball "https://git.lix.systems/lix-project/lix/archive/main.tar.gz"' warning: ignoring error initializing Lix fetcher cache: error: creating directory '/homeless-shelter': Permission denied "/nix/store/s9lxdnn0awp37n560bg4fgr497ah4hvw-source" ¹: https://www.sqlite.org/inmemorydb.html Change-Id: I15c38c9baaf215fc6e192b8a4c70b9692a69bc22
2024-05-21doc: fix repl-interrupt release note entryAlois Wohlschlager
The timing of the merge resulted in the newly introduced metadata not being present. Change-Id: I07f28cf37703ec05c3e1b96301797a42d913264b
2024-05-21print type and value in "flake attr is not a derivation" errorsQyriad
This turns errors like: error: flake output attribute 'hydraJobs' is not a derivation or path into errors like: error: expected flake output attribute 'hydraJobs' to be a derivation or path but found a set: { binaryTarball = «thunk»; build = «thunk»; etc> } This change affects all InstallableFlake commands. Change-Id: I899757af418b6f98201006ec6ee13a448c07077c
2024-05-20Merge "libutil: Create chmodPath function" into mainArtemis Tosini
2024-05-20Merge "chore: remove incorrect maintainers/*.md documentation" into mainRaito Bezarius
2024-05-20Merge "Remove upload-release.pl" into mainjade
2024-05-20Merge "fix -Wdeprecated-copy on clang (BaseError copy assignment)" into mainQyriad
2024-05-19repl-interacter: save history after entering every linePuck Meerburg
Fixes: https://git.lix.systems/lix-project/lix/issues/328 Change-Id: Iedd79ff5f72e84766ebd234c63856170afc624f0