lix/src/libutil
Eelco Dolstra 276a40b31f Handle case collisions on case-insensitive systems
When running NixOps under Mac OS X, we need to be able to import store
paths built on Linux into the local Nix store. However, HFS+ is
usually case-insensitive, so if there are directories with file names
that differ only in case, then importing will fail.

The solution is to add a suffix ("~nix~case~hack~<integer>") to
colliding files. For instance, if we have a directory containing
xt_CONNMARK.h and xt_connmark.h, then the latter will be renamed to
"xt_connmark.h~nix~case~hack~1". If a store path is dumped as a NAR,
the suffixes are removed. Thus, importing and exporting via a
case-insensitive Nix store is round-tripping. So when NixOps calls
nix-copy-closure to copy the path to a Linux machine, you get the
original file names back.

Closes #119.
2014-07-16 16:02:05 +02:00
..
affinity.cc Don't apply the CPU affinity hack to nix-shell (and other Perl programs) 2013-09-06 16:36:56 +02:00
affinity.hh Run the daemon worker on the same CPU as the client 2013-08-07 14:02:04 +02:00
archive.cc Handle case collisions on case-insensitive systems 2014-07-16 16:02:05 +02:00
archive.hh Handle case collisions on case-insensitive systems 2014-07-16 16:02:05 +02:00
hash.cc If hashes do not match, print them in base-32 for SHA-1/SHA-256 2012-10-23 18:05:50 +02:00
hash.hh If hashes do not match, print them in base-32 for SHA-1/SHA-256 2012-10-23 18:05:50 +02:00
local.mk Update Makefile variable names 2014-02-01 13:54:38 +01:00
md5.c * Optional switch "--with-openssl=<PATH>" to use OpenSSL's 2006-02-13 19:52:43 +00:00
md5.h * Some Cygwin fixes. 2006-05-24 13:23:20 +00:00
md32_common.h * Add SHA-256. 2005-01-14 12:03:04 +00:00
serialise.cc Print a warning when loading a large path into memory 2014-06-10 13:30:09 +02:00
serialise.hh Don't use member initialisers 2014-06-12 17:30:37 +02:00
sha1.c * Optional switch "--with-openssl=<PATH>" to use OpenSSL's 2006-02-13 19:52:43 +00:00
sha1.h * Optional switch "--with-openssl=<PATH>" to use OpenSSL's 2006-02-13 19:52:43 +00:00
sha256.c * Add SHA-256. 2005-01-14 12:03:04 +00:00
sha256.h * FreeBSD 4.x doesn't have stdint.h, use inttypes.h instead (which is 2005-05-04 16:32:54 +00:00
types.hh Fix compilation error on some versions of GCC 2014-07-09 12:14:40 +02:00
util.cc Fix broken Pid constructor 2014-07-10 21:48:21 +02:00
util.hh Refactoring: Move all fork handling into a higher-order function 2014-07-10 16:58:09 +02:00
xml-writer.cc And another one 2014-02-26 18:55:18 +01:00
xml-writer.hh And another one 2014-02-26 18:55:18 +01:00