summary refs log tree commit diff
diff options
context:
space:
mode:
authorEelco Dolstra <eelco.dolstra@logicblox.com>2014-10-07 14:43:56 +0200
committerEelco Dolstra <eelco.dolstra@logicblox.com>2014-10-07 14:43:56 +0200
commitab04b7d0bba24d068ee57c25050ecf73a428c552 (patch)
tree87c24d1cad2999c84c156aab25ca9fb9d227b779
parenta85dcf4a00c1ac354eda3b84209b8fa6b2133259 (diff)
Automatically move programs in sbin to bin
This should fix the OpenJDK build, which was failing because paxctl is
in sbin and therefore not automatically added to $PATH.

http://hydra.nixos.org/build/15658346
-rw-r--r--pkgs/build-support/setup-hooks/move-sbin.sh19
-rw-r--r--pkgs/stdenv/generic/default.nix1
2 files changed, 20 insertions, 0 deletions
diff --git a/pkgs/build-support/setup-hooks/move-sbin.sh b/pkgs/build-support/setup-hooks/move-sbin.sh
new file mode 100644
index 0000000000000..5db97afbbb635
--- /dev/null
+++ b/pkgs/build-support/setup-hooks/move-sbin.sh
@@ -0,0 +1,19 @@
+# This setup hook, for each output, moves everything in $output/sbin
+# to $output/bin, and replaces $output/sbin with a symlink to
+# $output/bin.
+
+fixupOutputHooks+=(_moveSbin)
+
+_moveSbin() {
+    if [ "$dontMoveSbin" = 1 ]; then return; fi
+    if ! [ -e "$prefix/sbin" ]; then return; fi
+    echo "moving $prefix/sbin/* to $prefix/bin"
+    mkdir -p $prefix/bin
+    shopt -s dotglob
+    for i in $prefix/sbin/*; do
+        mv "$i" $prefix/bin
+    done
+    shopt -u dotglob
+    rmdir $prefix/sbin
+    ln -s bin $prefix/sbin
+}
diff --git a/pkgs/stdenv/generic/default.nix b/pkgs/stdenv/generic/default.nix
index c37bea7e31c39..66afda486041a 100644
--- a/pkgs/stdenv/generic/default.nix
+++ b/pkgs/stdenv/generic/default.nix
@@ -44,6 +44,7 @@ let
       ../../build-support/setup-hooks/compress-man-pages.sh
       ../../build-support/setup-hooks/strip.sh
       ../../build-support/setup-hooks/patch-shebangs.sh
+      ../../build-support/setup-hooks/move-sbin.sh
       gcc
     ];