A modern, delicious implementation of the Nix package manager, focused on correctness, usability, and growth — and committed to doing right by its community
Find a file
Maximilian Bosch 040e783232 flake: don't refetch unmodified inputs by recursive follows
Closes #460

I managed to trigger the issue by having the following inputs (shortened):

    authentik-nix.url = "github:nix-community/authentik-nix";
    authentik-nix.inputs.poetry2nix.inputs.nixpkgs.follows = "nixpkgs";

When evaluating this using

    nix-eval-jobs --flake .#hydraJobs

I got the following error:

    error: cannot update unlocked flake input 'authentik-nix/poetry2nix' in pure mode

The issue we have here is that `authentik-nix/poetry2nix` was written
into the `overrideMap` which caused Nix to assume it's a new input and
tried to refetch it (#460) or errored out in pure mode
(nix-eval-jobs / Hydra).

The testcase unfortunately only involves checking for the output log
and makes sure that something *is* logged on the first fetch so that
the test doesn't rot when the logging changes since I didn't
manage to trigger the error above with the reproducer from #460. In
fact, I only managed to trigger the `cannot update unlocked flake input`
error in this context with `nix-eval-jobs`.

Change-Id: Ifd00091eec9a0067ed4bb3e5765a15d027328807
2024-08-19 19:57:12 +00:00
.github
bench
contrib
doc doc: fix broken meson deps for various manuals outputs 2024-08-18 15:19:15 -07:00
lix-doc lix-doc: update dependencies and refactor 2024-07-10 02:25:48 +00:00
maintainers rl-next: fix incorrect CL list syntax 2024-08-09 19:03:08 -07:00
meson build: limit clang-tidy concurrency and respect NIX_BUILD_CORES 2024-08-18 15:39:05 -07:00
misc build: remove expect as a dependency 2024-08-10 16:10:16 -07:00
nix-support De-vendor nixfmt 2024-07-22 21:09:58 +04:00
perl Merge changes Ib7c80826,I636f8a71,I67669b98 into main 2024-08-09 19:24:29 +00:00
releng releng: fix the git push 2024-08-07 21:46:44 -07:00
scripts
src flake: don't refetch unmodified inputs by recursive follows 2024-08-19 19:57:12 +00:00
subprojects clang-tidy: write a lint for charptr_cast 2024-08-08 14:53:17 -07:00
tests flake: don't refetch unmodified inputs by recursive follows 2024-08-19 19:57:12 +00:00
.clang-format
.clang-tidy clang-tidy: write a lint for charptr_cast 2024-08-08 14:53:17 -07:00
.dir-locals.el
.editorconfig
.envrc
.gitignore
.this-is-lix
CONTRIBUTING.md
COPYING
default.nix
docker.nix
flake.lock update flake.lock 2024-07-26 11:22:34 +04:00
flake.nix build: integrate clang-tidy into CI 2024-08-08 14:53:17 -07:00
justfile build: implement clang-tidy using our plugin 2024-08-04 20:41:19 -07:00
meson.build meson: Don't use target_machine 2024-08-16 14:24:03 +00:00
meson.options build: implement clang-tidy using our plugin 2024-08-04 20:41:19 -07:00
package.nix build: remove expect as a dependency 2024-08-10 16:10:16 -07:00
README.md README: clarify license to match documentation 2024-08-10 16:11:58 -07:00
shell.nix
treefmt.toml
version.json Update version to 2.92 2024-08-12 18:06:08 -07:00

Lix

Lix is an implementation of Nix, a powerful package management system for Linux and other Unix systems that makes package management reliable and reproducible.

Read more about us at https://lix.systems.

Installation

On Linux and macOS the easiest way to install Lix is to run the following shell command (as a user other than root):

$ curl -sSf -L https://install.lix.systems/lix | sh -s -- install

For systems that already have a Nix implementation installed, such as NixOS systems, read our install page

Building And Developing

See our Hacking guide in our manual for instruction on how to to set up a development environment and build Lix from source.

Additional Resources

License

Lix is released under LGPL-2.1-or-later.