The GBM_DRIVERS_PATH environment variable is not documented, and only
used to set the location of gbm drivers, while LIBGL_DRIVERS_PATH is
used for everything else, and is documented.
Generally this split leads to confusion as to why gbm doesn't work.
This patch will read LIBGL_DRIVERS_PATH as a fallback if
GBM_DRIVERS_PATH is not set.
The comments clearly indicate that using LIBGL_DRIVERS_PATH is
preferred over GBM_DRIVERS_PATH.
v2: - Use GBM_DRIVERS_PATH as a fallback
v3: [jordan.l.justen@intel.com] - Make LIBGL_DRIVERS_PATH the fallback
Signed-off-by: Dylan Baker <baker.dylan.c@gmail.com>
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
Reviewed-by: Kristian Høgsberg <krh@bitplanet.net>
char *get_extensions_name;
search_paths = NULL;
+ /* don't allow setuid apps to use LIBGL_DRIVERS_PATH or GBM_DRIVERS_PATH */
if (geteuid() == getuid()) {
- /* don't allow setuid apps to use GBM_DRIVERS_PATH */
+ /* Read GBM_DRIVERS_PATH first for compatibility, but LIBGL_DRIVERS_PATH
+ * is recommended over GBM_DRIVERS_PATH.
+ */
search_paths = getenv("GBM_DRIVERS_PATH");
+
+ /* Read LIBGL_DRIVERS_PATH if GBM_DRIVERS_PATH was not set.
+ * LIBGL_DRIVERS_PATH is recommended over GBM_DRIVERS_PATH.
+ */
+ if (search_paths == NULL) {
+ search_paths = getenv("LIBGL_DRIVERS_PATH");
+ }
}
if (search_paths == NULL)
search_paths = DEFAULT_DRIVER_DIR;