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
jade 1437d3df15 darwin: workaround PROC_PIDLISTFDS on processes with no fds
This has been causing various seemingly spurious CI failures as well as
some failures on people running tests on beta builds.

lix> ++(nix-collect-garbage-dry-run.sh:20) nix-store --gc --print-dead
lix> ++(nix-collect-garbage-dry-run.sh:20) wc -l
lix> finding garbage collector roots...
lix> error: Listing pid 87261 file descriptors: Undefined error: 0

There is no real way to write a proper test for this, other than to
start a process like the following:

int main(void) {
    for (int i = 0; i < 1000; ++i) {
        close(i);
    }
    sleep(10000);
}

and then let Lix's gc look at it.

I have a relatively high confidence this *will* fix the problem since I
have manually confirmed the behaviour of the libproc call is
as-unexpected, and it would perfectly explain the observed symptom.

Fixes: lix-project/lix#446
Change-Id: I67669b98377af17895644b3bafdf42fc33abd076
2024-08-07 02:52:00 -07:00
.github .github: clean up stale things and wrong references 2024-06-12 15:34:23 -07:00
bench Add benchmarking scripts 2024-04-08 19:50:24 -07:00
contrib
doc darwin: workaround PROC_PIDLISTFDS on processes with no fds 2024-08-07 02:52:00 -07:00
lix-doc lix-doc: update dependencies and refactor 2024-07-10 02:25:48 +00:00
maintainers libstore: add LocalDerivationGoal setupSyscallFilter hook 2024-08-06 18:27:09 +02:00
meson build: implement clang-tidy using our plugin 2024-08-04 20:41:19 -07:00
misc devendor pegtl 2024-07-26 11:22:34 +04:00
nix-support De-vendor nixfmt 2024-07-22 21:09:58 +04:00
perl libutil: allow draining Generator<Bytes> into sinks 2024-07-03 11:46:53 +00:00
releng releng: move officialRelease to version.json 2024-07-31 14:13:39 -07:00
scripts remove the autoconf+Make buildsystem 2024-05-07 17:04:30 -06:00
src darwin: workaround PROC_PIDLISTFDS on processes with no fds 2024-08-07 02:52:00 -07:00
subprojects build: implement clang-tidy using our plugin 2024-08-04 20:41:19 -07:00
tests tree-wide: fix various lint warnings 2024-08-04 20:55:45 -07:00
.clang-format Add pre-commit checks 2024-03-29 22:57:40 -07:00
.clang-tidy tree-wide: add support for asan! 2024-07-31 14:13:39 -07:00
.dir-locals.el .dir-locals.el: Set c-block-comment-prefix 2020-07-10 11:21:06 +02:00
.editorconfig add editorconfig for markdown 2024-05-24 02:22:44 +00:00
.envrc .envrc: remove MAKEFLAGS and use clang environment by default 2024-06-25 12:36:18 -06:00
.gitignore Put into place initial release engineering 2024-06-06 20:53:08 -07:00
.this-is-lix devShell: guard against running from another directory 2024-06-24 13:41:38 -07:00
CONTRIBUTING.md chore: re-work the contribution guide 2024-05-07 01:28:35 +00:00
COPYING Add pre-commit checks 2024-03-29 22:57:40 -07:00
default.nix Format Nix code with nixfmt 2024-04-08 13:00:00 -07:00
docker.nix releng: support multiarch docker images 2024-06-09 20:33:24 -07:00
flake.lock update flake.lock 2024-07-26 11:22:34 +04:00
flake.nix flake & doxygen: update tagline 2024-08-04 20:41:19 -07:00
justfile build: implement clang-tidy using our plugin 2024-08-04 20:41:19 -07:00
meson.build build: implement clang-tidy using our plugin 2024-08-04 20:41:19 -07:00
meson.options build: implement clang-tidy using our plugin 2024-08-04 20:41:19 -07:00
package.nix package: don't hide system-wide manual pages 2024-08-06 17:18:05 +02:00
README.md chore: rebrand Nix to Lix when it makes sense 2024-06-01 20:31:24 +02:00
shell.nix shell.nix: conform to documentation 2024-05-27 16:47:40 +02:00
treefmt.toml Format Nix code with nixfmt 2024-04-08 13:00:00 -07:00
version.json releng: move officialRelease to version.json 2024-07-31 14:13:39 -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 the LGPL v2.1.