diff --exclude '*~' -rc xorg-server-1.5.3-orig/glx/glxdri.c xorg-server-1.5.3/glx/glxdri.c *** xorg-server-1.5.3-orig/glx/glxdri.c 2008-11-05 19:48:30.000000000 +0100 --- xorg-server-1.5.3/glx/glxdri.c 2009-09-02 23:11:06.000000000 +0200 *************** *** 1013,1020 **** 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) { --- 1013,1023 ---- 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) { diff --exclude '*~' -rc xorg-server-1.5.3-orig/glx/glxdriswrast.c xorg-server-1.5.3/glx/glxdriswrast.c *** xorg-server-1.5.3-orig/glx/glxdriswrast.c 2008-11-05 17:52:17.000000000 +0100 --- xorg-server-1.5.3/glx/glxdriswrast.c 2009-09-02 23:12:19.000000000 +0200 *************** *** 470,477 **** screen->base.swapInterval = NULL; screen->base.pScreen = pScreen; snprintf(filename, sizeof filename, ! "%s/%s_dri.so", dri_driver_path, driverName); screen->driver = dlopen(filename, RTLD_LAZY | RTLD_LOCAL); if (screen->driver == NULL) { --- 470,480 ---- screen->base.swapInterval = NULL; screen->base.pScreen = pScreen; + 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) {