summary refs log tree commit diff
diff options
context:
space:
mode:
authorEelco Dolstra <eelco.dolstra@logicblox.com>2007-02-26 23:50:03 +0000
committerEelco Dolstra <eelco.dolstra@logicblox.com>2007-02-26 23:50:03 +0000
commit8db3dbaf1ac66820285024930bef482194e206a5 (patch)
treea06a7111a11b94bff052005160af7defd36e99b6
parent556cc5ed2fd97bf04ba8d449822965c43c7b62ea (diff)
downloadnixlib-8db3dbaf1ac66820285024930bef482194e206a5.tar
nixlib-8db3dbaf1ac66820285024930bef482194e206a5.tar.gz
nixlib-8db3dbaf1ac66820285024930bef482194e206a5.tar.bz2
nixlib-8db3dbaf1ac66820285024930bef482194e206a5.tar.lz
nixlib-8db3dbaf1ac66820285024930bef482194e206a5.tar.xz
nixlib-8db3dbaf1ac66820285024930bef482194e206a5.tar.zst
nixlib-8db3dbaf1ac66820285024930bef482194e206a5.zip
* Patched the X server to get the path of the DRI driver from the
  environment, rather than relative to the X server's prefix.

svn path=/nixpkgs/trunk/; revision=8064
-rw-r--r--pkgs/servers/x11/xorg/default.nix1
-rwxr-xr-xpkgs/servers/x11/xorg/generate-expr-from-tarballs.pl2
-rw-r--r--pkgs/servers/x11/xorg/xorgserver-dri-path.patch26
3 files changed, 28 insertions, 1 deletions
diff --git a/pkgs/servers/x11/xorg/default.nix b/pkgs/servers/x11/xorg/default.nix
index e5b0c7d03963..90f6a1e76739 100644
--- a/pkgs/servers/x11/xorg/default.nix
+++ b/pkgs/servers/x11/xorg/default.nix
@@ -2662,6 +2662,7 @@ rec {
       url = http://mirror.switch.ch/ftp/mirror/X11/pub/X11R7.2/src/everything/xorg-server-X11R7.2-1.2.0.tar.bz2;
       sha256 = "023a13aay8gd09a7x1s6wndbsj3xr2ismsvgbsi9dz4g7nw8ga96";
     };
+    patches = [./xorgserver-dri-path.patch];
     buildInputs = [pkgconfig bigreqsproto compositeproto damageproto libdmx dmxproto evieext fixesproto fontcacheproto libfontenc fontsproto freetype glproto inputproto kbproto libdrm mkfontdir mkfontscale perl printproto randrproto recordproto renderproto resourceproto scrnsaverproto trapproto videoproto libX11 libXau libXaw xcmiscproto libXdmcp libXext xextproto xf86bigfontproto xf86dgaproto xf86driproto xf86miscproto xf86vidmodeproto libXfixes libXfont libXi xineramaproto libxkbfile libxkbui libXmu libXpm xproto libXrender libXres libXt xtrans libXtst libXxf86misc libXxf86vm zlib ]; mesaSrc = mesa.src; x11BuildHook = ./xorgserver.sh; 
   }) // {inherit bigreqsproto compositeproto damageproto libdmx dmxproto evieext fixesproto fontcacheproto libfontenc fontsproto freetype glproto inputproto kbproto libdrm mkfontdir mkfontscale perl printproto randrproto recordproto renderproto resourceproto scrnsaverproto trapproto videoproto libX11 libXau libXaw xcmiscproto libXdmcp libXext xextproto xf86bigfontproto xf86dgaproto xf86driproto xf86miscproto xf86vidmodeproto libXfixes libXfont libXi xineramaproto libxkbfile libxkbui libXmu libXpm xproto libXrender libXres libXt xtrans libXtst libXxf86misc libXxf86vm zlib ;};
     
diff --git a/pkgs/servers/x11/xorg/generate-expr-from-tarballs.pl b/pkgs/servers/x11/xorg/generate-expr-from-tarballs.pl
index 14fc645c94c8..e2ac2ac492d5 100755
--- a/pkgs/servers/x11/xorg/generate-expr-from-tarballs.pl
+++ b/pkgs/servers/x11/xorg/generate-expr-from-tarballs.pl
@@ -40,7 +40,7 @@ $pcMap{"bdftopcf"} = "bdftopcf";
 $pcMap{"libxslt"} = "libxslt";
 
 
-$extraAttrs{"xorgserver"} = " mesaSrc = mesa.src; x11BuildHook = ./xorgserver.sh; ";
+$extraAttrs{"xorgserver"} = " mesaSrc = mesa.src; x11BuildHook = ./xorgserver.sh; patches = [./xorgserver-dri-path.patch]; ";
 
 $extraAttrs{"imake"} = " inherit xorgcffiles; x11BuildHook = ./imake.sh; patches = [./imake.patch]; ";
 
diff --git a/pkgs/servers/x11/xorg/xorgserver-dri-path.patch b/pkgs/servers/x11/xorg/xorgserver-dri-path.patch
new file mode 100644
index 000000000000..804408ad7fac
--- /dev/null
+++ b/pkgs/servers/x11/xorg/xorgserver-dri-path.patch
@@ -0,0 +1,26 @@
+diff -rc xorg-server-X11R7.2-1.2.0-orig/GL/glx/glxdri.c xorg-server-X11R7.2-1.2.0/GL/glx/glxdri.c
+*** xorg-server-X11R7.2-1.2.0-orig/GL/glx/glxdri.c	Tue Jan 23 04:13:14 2007
+--- xorg-server-X11R7.2-1.2.0/GL/glx/glxdri.c	Tue Feb 27 00:15:38 2007
+***************
+*** 945,952 ****
+  	goto handle_error;
+      }
+  
+      snprintf(filename, sizeof filename, "%s/%s_dri.so",
+!              dri_driver_path, driverName);
+  
+      screen->driver = dlopen(filename, RTLD_LAZY | RTLD_LOCAL);
+      if (screen->driver == NULL) {
+--- 945,955 ----
+  	goto handle_error;
+      }
+  
++     char *real_dri_driver_path = getenv("XORG_DRI_DRIVER_PATH");
++     if (!real_dri_driver_path) real_dri_driver_path = dri_driver_path;
++ 
+      snprintf(filename, sizeof filename, "%s/%s_dri.so",
+!              real_dri_driver_path, driverName);
+  
+      screen->driver = dlopen(filename, RTLD_LAZY | RTLD_LOCAL);
+      if (screen->driver == NULL) {
+Only in xorg-server-X11R7.2-1.2.0/GL/glx: glxdri.c~