diff options
author | Leo Famulari <leo@famulari.name> | 2016-11-04 01:17:31 -0400 |
---|---|---|
committer | Leo Famulari <leo@famulari.name> | 2016-11-04 01:44:42 -0400 |
commit | 8d806cb0e0853add2527b09b5e608c860faffe07 (patch) | |
tree | de5faac36e961ad8adb36e59a236540ce53a6e22 /gnu/packages/patches | |
parent | 0dfebdaa9d3eb107d96a12dfa506d79e34dceaf2 (diff) | |
download | guix-8d806cb0e0853add2527b09b5e608c860faffe07.tar guix-8d806cb0e0853add2527b09b5e608c860faffe07.tar.gz |
gnu: ola: Fix build failure caused by use of deprecated function.
* 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.
Diffstat (limited to 'gnu/packages/patches')
-rw-r--r-- | gnu/packages/patches/ola-readdir-r.patch | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/gnu/packages/patches/ola-readdir-r.patch b/gnu/packages/patches/ola-readdir-r.patch new file mode 100644 index 0000000000..b4bd98137e --- /dev/null +++ b/gnu/packages/patches/ola-readdir-r.patch @@ -0,0 +1,62 @@ +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; + } |