@philiptaron's lix workspace
Find a file
Chuck 3e2c77d001 Check for and repair bad .links entries
A corrupt entry in .links prevents adding a fixed version of that file
to the store in any path.  The user experience is that corruption
present in the store 'spreads' to new paths added to the store:

(With store optimisation enabled)

1. A file in the store gets corrupted somehow (eg: filesystem bug).
2. The user tries to add a thing to the store which contains a good copy
   of the corrupted file.
3. The file being added to the store is hashed, found to match the bad
   .links entry, and is replaced by a link to the bad .links entry.
   (The .links entry's hash is not verified during add -- this would
   impose a substantial performance burden.)
4. The user observes that the thing in the store that is supposed to be
   a copy of what they were trying to add is not a correct copy -- some
   files have different contents!  Running "nix-store --verify
   --check-contents --repair" does not fix the problem.

This change makes "nix-store --verify --check-contents --repair" fix
this problem.  Bad .links entries are simply removed, allowing future
attempts to insert a good copy of the file to succeed.
2019-11-15 11:55:36 -08:00
.github
config
contrib function-trace: always show the trace 2019-09-18 23:23:21 +02:00
corepkgs
doc/manual manual: nix-shell: Elaborate on using -p with expressions. 2019-11-10 17:29:13 +01:00
m4
maintainers upload-release.pl: Fix sshfs call 2019-09-04 21:44:40 +02:00
misc Make nix-daemon.plist less fragile on macOS 2019-10-09 12:52:01 +01:00
mk Fix Perl bindings 2019-11-07 12:18:37 +01:00
perl Fix Perl bindings 2019-11-07 12:18:37 +01:00
scripts install-multi-user.sh: Remove unused variables 2019-10-23 21:24:21 +02:00
src Check for and repair bad .links entries 2019-11-15 11:55:36 -08:00
tests Replace $TMPDIR with $TEST_ROOT in tests/fetchurl.sh 2019-11-08 12:08:10 -08:00
.dir-locals.el
.editorconfig
.gitignore gitignore /precompiled-headers.h.?ch 2019-11-08 14:48:52 +00:00
.travis.yml travis: enable linux builds 2019-10-31 16:37:33 +00:00
.version
bootstrap.sh
configure.ac Revert "autoconf: Allow overriding CFLAGS/CXXFLAGS from outside." 2019-11-07 10:12:35 +01:00
COPYING
local.mk
Makefile Fix Perl bindings 2019-11-07 12:18:37 +01:00
Makefile.config.in
nix.spec.in Remove world-writability from per-user directories 2019-10-09 23:34:48 +02:00
precompiled-headers.h Fix macOS build 2019-11-07 11:53:28 +01:00
README.md
release-common.nix Use upstream nlohmann_json 2019-11-07 18:23:17 +01:00
release.nix Fix installerScript job 2019-11-07 18:31:16 +01:00
shell.nix Switch to nixpkgs 19.09 2019-10-25 07:23:05 -04:00

Open Collective supporters

Nix, the purely functional package manager

Nix is a new take on package management that is fairly unique. Because of its purity aspects, a lot of issues found in traditional package managers don't appear with Nix.

To find out more about the tool, usage and installation instructions, please read the manual, which is available on the Nix website at http://nixos.org/nix/manual.

Contributing

Take a look at the Hacking Section of the manual. It helps you to get started with building Nix from source.

License

Nix is released under the LGPL v2.1

This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit.