summary refs log tree commit diff
path: root/modules/programs
diff options
context:
space:
mode:
authorEelco Dolstra <eelco.dolstra@logicblox.com>2012-03-08 16:08:03 +0000
committerEelco Dolstra <eelco.dolstra@logicblox.com>2012-03-08 16:08:03 +0000
commite97817b5770def5c24ac2ab56d7068e351f196ad (patch)
treec6f4f68b68c41085037161df4861b0f4fa1ba293 /modules/programs
parent4869175158668c0e95a486a7716a36b6489d6425 (diff)
downloadnixpkgs-e97817b5770def5c24ac2ab56d7068e351f196ad.tar
nixpkgs-e97817b5770def5c24ac2ab56d7068e351f196ad.tar.gz
nixpkgs-e97817b5770def5c24ac2ab56d7068e351f196ad.tar.bz2
nixpkgs-e97817b5770def5c24ac2ab56d7068e351f196ad.tar.lz
nixpkgs-e97817b5770def5c24ac2ab56d7068e351f196ad.tar.xz
nixpkgs-e97817b5770def5c24ac2ab56d7068e351f196ad.tar.zst
nixpkgs-e97817b5770def5c24ac2ab56d7068e351f196ad.zip
* Atomically replace the /bin/sh symlink; otherwise there is a time
  window in which /bin/sh is missing.  This can cause concurrently
  running programs to fail (e.g. Hydra jobs =>
  http://hydra.nixos.org/build/2267831).  You'd think the odds of this
  are very low, but they're not.

svn path=/nixos/trunk/; revision=32901
Diffstat (limited to 'modules/programs')
-rw-r--r--modules/programs/bash/bash.nix3
1 files changed, 2 insertions, 1 deletions
diff --git a/modules/programs/bash/bash.nix b/modules/programs/bash/bash.nix
index 31a14663aa0..626ed722536 100644
--- a/modules/programs/bash/bash.nix
+++ b/modules/programs/bash/bash.nix
@@ -56,7 +56,8 @@ in
       # Create the required /bin/sh symlink; otherwise lots of things
       # (notably the system() function) won't work.
       mkdir -m 0755 -p /bin
-      ln -sfn ${config.system.build.binsh}/bin/sh /bin/sh
+      ln -sfn ${config.system.build.binsh}/bin/sh /bin/.sh.tmp
+      mv /bin/.sh.tmp /bin/sh # atomically replace /bin/sh
     '';
 
 }