summary refs log tree commit diff
path: root/pkgs/build-support
diff options
context:
space:
mode:
authorEelco Dolstra <eelco.dolstra@logicblox.com>2014-10-07 15:04:13 +0200
committerEelco Dolstra <eelco.dolstra@logicblox.com>2014-10-07 15:04:13 +0200
commit51f1b4ec48d53e01f219d3285a5f0acdb7fb6422 (patch)
tree61a5e9eadd0eb699a7d66264ee6d3dcb427af234 /pkgs/build-support
parentab04b7d0bba24d068ee57c25050ecf73a428c552 (diff)
Automatically move stuff in lib64 to lib
Diffstat (limited to 'pkgs/build-support')
-rw-r--r--pkgs/build-support/setup-hooks/move-lib64.sh21
-rw-r--r--pkgs/build-support/setup-hooks/move-sbin.sh2
2 files changed, 22 insertions, 1 deletions
diff --git a/pkgs/build-support/setup-hooks/move-lib64.sh b/pkgs/build-support/setup-hooks/move-lib64.sh
new file mode 100644
index 0000000000000..46c90fcea6bd0
--- /dev/null
+++ b/pkgs/build-support/setup-hooks/move-lib64.sh
@@ -0,0 +1,21 @@
+# This setup hook, for each output, moves everything in $output/lib64
+# to $output/lib, and replaces $output/lib64 with a symlink to
+# $output/lib. The rationale is that lib64 directories are unnecessary
+# in Nix (since 32-bit and 64-bit builds of a package are in different
+# store paths anyway).
+
+fixupOutputHooks+=(_moveLib64)
+
+_moveLib64() {
+    if [ "$dontMoveLib64" = 1 ]; then return; fi
+    if [ ! -e "$prefix/lib64" -o -L "$prefix/lib64" ]; then return; fi
+    echo "moving $prefix/lib64/* to $prefix/lib"
+    mkdir -p $prefix/lib
+    shopt -s dotglob
+    for i in $prefix/lib64/*; do
+        mv "$i" $prefix/lib
+    done
+    shopt -u dotglob
+    rmdir $prefix/lib64
+    ln -s lib $prefix/lib64
+}
diff --git a/pkgs/build-support/setup-hooks/move-sbin.sh b/pkgs/build-support/setup-hooks/move-sbin.sh
index 5db97afbbb635..cc51c27cafdf8 100644
--- a/pkgs/build-support/setup-hooks/move-sbin.sh
+++ b/pkgs/build-support/setup-hooks/move-sbin.sh
@@ -6,7 +6,7 @@ fixupOutputHooks+=(_moveSbin)
 
 _moveSbin() {
     if [ "$dontMoveSbin" = 1 ]; then return; fi
-    if ! [ -e "$prefix/sbin" ]; then return; fi
+    if [ ! -e "$prefix/sbin" -o -L "$prefix/sbin" ]; then return; fi
     echo "moving $prefix/sbin/* to $prefix/bin"
     mkdir -p $prefix/bin
     shopt -s dotglob