summary refs log tree commit diff
path: root/pkgs/servers/x11/xorg
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 /pkgs/servers/x11/xorg
parent556cc5ed2fd97bf04ba8d449822965c43c7b62ea (diff)
downloadnixpkgs-8db3dbaf1ac66820285024930bef482194e206a5.tar
nixpkgs-8db3dbaf1ac66820285024930bef482194e206a5.tar.gz
nixpkgs-8db3dbaf1ac66820285024930bef482194e206a5.tar.bz2
nixpkgs-8db3dbaf1ac66820285024930bef482194e206a5.tar.lz
nixpkgs-8db3dbaf1ac66820285024930bef482194e206a5.tar.xz
nixpkgs-8db3dbaf1ac66820285024930bef482194e206a5.tar.zst
nixpkgs-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
Diffstat (limited to 'pkgs/servers/x11/xorg')
-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 e5b0c7d0396..90f6a1e7673 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 14fc645c94c..e2ac2ac492d 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 00000000000..804408ad7fa
--- /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~