[Mesa-dev] [PATCH] dri: don't load .drirc from $HOME

Marek Olšák maraeo at gmail.com
Sat Jan 7 12:45:12 UTC 2017


From: Marek Olšák <marek.olsak at amd.com>

~/.drirc is created by the driconf tool (GPL license) and it overrides
system drirc settings and can't be changed by Mesa updates.
This drops support for the tool. It has been a source of major pain
for us and it continues to cause problems.

If people wanna keep this and enjoy the pain, I will make a v2 that
applies it to radeon drivers only.
---
 src/mesa/drivers/dri/common/xmlconfig.c | 51 ++++++++++-----------------------
 1 file changed, 15 insertions(+), 36 deletions(-)

diff --git a/src/mesa/drivers/dri/common/xmlconfig.c b/src/mesa/drivers/dri/common/xmlconfig.c
index a8f7c9b..3d6cb67 100644
--- a/src/mesa/drivers/dri/common/xmlconfig.c
+++ b/src/mesa/drivers/dri/common/xmlconfig.c
@@ -937,65 +937,44 @@ static void parseOneConfigFile (XML_Parser p) {
     close (fd);
 #undef BUF_SIZE
 }
 
 #ifndef SYSCONFDIR
 #define SYSCONFDIR "/etc"
 #endif
 
 void driParseConfigFiles (driOptionCache *cache, const driOptionCache *info,
 			  int screenNum, const char *driverName) {
-    char *filenames[2] = { SYSCONFDIR "/drirc", NULL};
-    char *home;
-    uint32_t i;
     struct OptConfData userData;
+    XML_Parser p;
 
     initOptionCache (cache, info);
 
     userData.cache = cache;
     userData.screenNum = screenNum;
     userData.driverName = driverName;
     userData.execName = GET_PROGRAM_NAME();
 
-    if ((home = getenv ("HOME"))) {
-	uint32_t len = strlen (home);
-	filenames[1] = malloc(len + 7+1);
-	if (filenames[1] == NULL)
-	    __driUtilMessage ("Can't allocate memory for %s/.drirc.", home);
-	else {
-	    memcpy (filenames[1], home, len);
-	    memcpy (filenames[1] + len, "/.drirc", 7+1);
-	}
-    }
-
-    for (i = 0; i < 2; ++i) {
-	XML_Parser p;
-	if (filenames[i] == NULL)
-	    continue;
-
-	p = XML_ParserCreate (NULL); /* use encoding specified by file */
-	XML_SetElementHandler (p, optConfStartElem, optConfEndElem);
-	XML_SetUserData (p, &userData);
-	userData.parser = p;
-	userData.name = filenames[i];
-	userData.ignoringDevice = 0;
-	userData.ignoringApp = 0;
-	userData.inDriConf = 0;
-	userData.inDevice = 0;
-	userData.inApp = 0;
-	userData.inOption = 0;
-
-	parseOneConfigFile (p);
-	XML_ParserFree (p);
-    }
-
-    free(filenames[1]);
+    p = XML_ParserCreate (NULL); /* use encoding specified by file */
+    XML_SetElementHandler (p, optConfStartElem, optConfEndElem);
+    XML_SetUserData (p, &userData);
+    userData.parser = p;
+    userData.name = SYSCONFDIR "/drirc";
+    userData.ignoringDevice = 0;
+    userData.ignoringApp = 0;
+    userData.inDriConf = 0;
+    userData.inDevice = 0;
+    userData.inApp = 0;
+    userData.inOption = 0;
+
+    parseOneConfigFile (p);
+    XML_ParserFree (p);
 }
 
 void driDestroyOptionInfo (driOptionCache *info) {
     driDestroyOptionCache (info);
     if (info->info) {
 	uint32_t i, size = 1 << info->tableSize;
 	for (i = 0; i < size; ++i) {
 	    if (info->info[i].name) {
 		free(info->info[i].name);
 		free(info->info[i].ranges);
-- 
2.7.4



More information about the mesa-dev mailing list