* gnu/packages/patches/ola-readdir-r.patch: New file. * gnu/local.mk (dist_patch_DATA): Add it. * gnu/packages/lighting.scm (ola)[source]: Use it.
		
			
				
	
	
		
			62 lines
		
	
	
	
		
			2.2 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			62 lines
		
	
	
	
		
			2.2 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
Fix build failure caused by use of the deprecated readdir_r(3) while
 | 
						|
building with -Werror=deprecated-declarations
 | 
						|
 | 
						|
Patch copied from upstream source repository:
 | 
						|
https://github.com/daveol/ola/commit/9d8575ff38f76df698ea8889e07a3dee8f21bd68
 | 
						|
 | 
						|
From 9d8575ff38f76df698ea8889e07a3dee8f21bd68 Mon Sep 17 00:00:00 2001
 | 
						|
From: Dave Olsthoorn <dave.olsthoorn@gmail.com>
 | 
						|
Date: Wed, 2 Mar 2016 11:22:17 +0100
 | 
						|
Subject: [PATCH] Use readdir instead of readdir_r
 | 
						|
 | 
						|
This replacec the use of readdir_r with readdir since readdir seems to
 | 
						|
be both dangarous and deprecated in newer versions of glibc.
 | 
						|
 | 
						|
This fixes #1055
 | 
						|
---
 | 
						|
 common/file/Util.cpp | 17 ++++++++---------
 | 
						|
 1 file changed, 8 insertions(+), 9 deletions(-)
 | 
						|
 | 
						|
diff --git a/common/file/Util.cpp b/common/file/Util.cpp
 | 
						|
index e2261fd..0ffddd3 100644
 | 
						|
--- a/common/file/Util.cpp
 | 
						|
+++ b/common/file/Util.cpp
 | 
						|
@@ -128,30 +128,29 @@ bool FindMatchingFiles(const string &directory,
 | 
						|
   FindClose(h_find);
 | 
						|
 #else
 | 
						|
   DIR *dp;
 | 
						|
-  struct dirent dir_ent;
 | 
						|
-  struct dirent *dir_ent_p;
 | 
						|
+  struct dirent *dir_ent;
 | 
						|
   if ((dp = opendir(directory.data())) == NULL) {
 | 
						|
     OLA_WARN << "Could not open " << directory << ":" << strerror(errno);
 | 
						|
     return false;
 | 
						|
   }
 | 
						|
 
 | 
						|
-  if (readdir_r(dp, &dir_ent, &dir_ent_p)) {
 | 
						|
-    OLA_WARN << "readdir_r(" << directory << "): " << strerror(errno);
 | 
						|
+  if ((dir_ent = readdir(dp)) == NULL) {
 | 
						|
+    OLA_WARN << "readdir(" << directory << "): " << strerror(errno);
 | 
						|
     closedir(dp);
 | 
						|
     return false;
 | 
						|
   }
 | 
						|
 
 | 
						|
-  while (dir_ent_p != NULL) {
 | 
						|
+  while (dir_ent != NULL) {
 | 
						|
     vector<string>::const_iterator iter;
 | 
						|
     for (iter = prefixes.begin(); iter != prefixes.end(); ++iter) {
 | 
						|
-      if (!strncmp(dir_ent_p->d_name, iter->data(), iter->size())) {
 | 
						|
+      if (!strncmp(dir_ent->d_name, iter->data(), iter->size())) {
 | 
						|
         std::ostringstream str;
 | 
						|
-        str << directory << PATH_SEPARATOR << dir_ent_p->d_name;
 | 
						|
+        str << directory << PATH_SEPARATOR << dir_ent->d_name;
 | 
						|
         files->push_back(str.str());
 | 
						|
       }
 | 
						|
     }
 | 
						|
-    if (readdir_r(dp, &dir_ent, &dir_ent_p)) {
 | 
						|
-      OLA_WARN << "readdir_r(" << directory << "): " << strerror(errno);
 | 
						|
+    if ((dir_ent = readdir(dp)) == NULL) {
 | 
						|
+      OLA_WARN << "readdir(" << directory << "): " << strerror(errno);
 | 
						|
       closedir(dp);
 | 
						|
       return false;
 | 
						|
     }
 |