nix-super/src/libstore
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
..
build.cc Allow $NIX_BUILD_HOOK to be relative to Nix libexec directory 2014-07-11 13:55:06 +02:00
derivations.cc If a .drv cannot be parsed, show its path 2014-04-08 19:24:29 +02:00
derivations.hh If a .drv cannot be parsed, show its path 2014-04-08 19:24:29 +02:00
gc.cc boost::shared_ptr -> std::shared_ptr 2014-03-30 00:49:23 +01:00
globals.cc Handle case collisions on case-insensitive systems 2014-07-16 16:02:05 +02:00
globals.hh Only add the importNative primop if the allow-arbitrary-code-during-evaluation option is true (default false) 2014-06-24 10:50:03 -04:00
local-store.cc Replace message "importing path <...>" with "exporting path <...>" 2014-07-10 21:30:22 +02:00
local-store.hh Use std::unordered_set 2014-05-26 17:53:17 +02:00
local.mk Use std::unordered_set 2014-05-26 17:53:17 +02:00
misc.cc If a .drv cannot be parsed, show its path 2014-04-08 19:24:29 +02:00
misc.hh Don't set $preferLocalBuild and $requiredSystemFeatures in builders 2013-06-20 18:07:27 +00:00
optimise-store.cc lvlInfo -> lvlTalkative 2014-05-15 11:37:44 +02:00
pathlocks.cc Set the close-on-exec flag on file descriptors 2012-03-05 20:29:00 +01:00
pathlocks.hh Use "#pragma once" to prevent repeated header file inclusion 2012-07-18 14:59:03 -04:00
references.cc Use data() instead of c_str() where appropriate 2012-02-09 18:27:45 +01:00
references.hh Use "#pragma once" to prevent repeated header file inclusion 2012-07-18 14:59:03 -04:00
remote-store.cc build-remote.pl: Fix building multiple output derivations 2014-07-14 12:19:27 +02:00
remote-store.hh Add a flag ‘--check’ to verify build determinism 2014-02-18 01:01:14 +01:00
schema.sql * Store the size of a store path in the database (to be precise, the 2010-11-16 17:11:46 +00:00
store-api.cc boost::shared_ptr -> std::shared_ptr 2014-03-30 00:49:23 +01:00
store-api.hh boost::shared_ptr -> std::shared_ptr 2014-03-30 00:49:23 +01:00
worker-protocol.hh Run the daemon worker on the same CPU as the client 2013-08-07 14:02:04 +02:00