summary refs log tree commit diff
path: root/pkgs/os-specific/linux/ati-drivers
diff options
context:
space:
mode:
authorNathaniel Baxter <nathaniel.baxter@gmail.com>2014-09-20 22:34:51 +1000
committerNathaniel Baxter <nathaniel.baxter@gmail.com>2014-09-20 22:34:51 +1000
commit6ae760b3115e35519a51321032881269657ff31f (patch)
tree0d37b0d8224f214b93f05c20d3c663f54c53d2c7 /pkgs/os-specific/linux/ati-drivers
parentfb9a6221b63ee92c27c917368e980649c5167203 (diff)
downloadnixlib-6ae760b3115e35519a51321032881269657ff31f.tar
nixlib-6ae760b3115e35519a51321032881269657ff31f.tar.gz
nixlib-6ae760b3115e35519a51321032881269657ff31f.tar.bz2
nixlib-6ae760b3115e35519a51321032881269657ff31f.tar.lz
nixlib-6ae760b3115e35519a51321032881269657ff31f.tar.xz
nixlib-6ae760b3115e35519a51321032881269657ff31f.tar.zst
nixlib-6ae760b3115e35519a51321032881269657ff31f.zip
ati_unfree: Patch ati binary libs to use /run/opengl-driver-*/lib/dri .
Diffstat (limited to 'pkgs/os-specific/linux/ati-drivers')
-rw-r--r--pkgs/os-specific/linux/ati-drivers/builder.sh34
1 files changed, 34 insertions, 0 deletions
diff --git a/pkgs/os-specific/linux/ati-drivers/builder.sh b/pkgs/os-specific/linux/ati-drivers/builder.sh
index 90d186ea1130..989ba9c5dc86 100644
--- a/pkgs/os-specific/linux/ati-drivers/builder.sh
+++ b/pkgs/os-specific/linux/ati-drivers/builder.sh
@@ -189,6 +189,40 @@ fi
   # make xorg use the ati version
   ln -s $out/lib/xorg/modules/extensions/{fglrx/fglrx-libglx.so,libglx.so}
 
+  # Correct some paths that are hardcoded into binary libs.
+  if [ "$arch" ==  "x86_64" ]; then
+    for lib in \
+      lib/xorg/modules/extensions/fglrx/fglrx-libglx.so \
+      lib/xorg/modules/glesx.so \
+      lib/dri/fglrx_dri.so \
+      lib/fglrx_dri.so \
+      lib/fglrx-libGL.so.1.2
+    do
+      oldPaths="/usr/X11R6/lib/modules/dri"
+      newPaths="/run/opengl-driver/lib/dri"
+      sed -i -e "s|$oldPaths|$newPaths|" $out/$lib
+    done
+  else
+    oldPaths="/usr/X11R6/lib32/modules/dri\x00/usr/lib32/dri"
+    newPaths="/run/opengl-driver-32/lib/dri\x00/dev/null/dri"
+    sed -i -e "s|$oldPaths|$newPaths|" \
+      $out/lib/xorg/modules/extensions/fglrx/fglrx-libglx.so
+
+    for lib in \
+      lib/dri/fglrx_dri.so \
+      lib/fglrx_dri.so \
+      lib/xorg/modules/glesx.so
+    do
+      oldPaths="/usr/X11R6/lib32/modules/dri/"
+      newPaths="/run/opengl-driver-32/lib/dri"
+      sed -i -e "s|$oldPaths|$newPaths|" $out/$lib
+    done
+
+    oldPaths="/usr/X11R6/lib32/modules/dri\x00"
+    newPaths="/run/opengl-driver-32/lib/dri"
+    sed -i -e "s|$oldPaths|$newPaths|" $out/lib/fglrx-libGL.so.1.2
+  fi
+
   # libstdc++ and gcc are needed by some libs
   patchelf --set-rpath $gcc/$lib_arch $out/lib/libatiadlxx.so
 }