commit:     ddda7c9abad6a161baaf65520b6ca6b4fad7b325
Author:     Joerg Bornkessel <hd_brummy <AT> gentoo <DOT> org>
AuthorDate: Mon Aug 27 13:30:59 2018 +0000
Commit:     Joerg Bornkessel <hd_brummy <AT> gentoo <DOT> org>
CommitDate: Mon Aug 27 13:31:53 2018 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=ddda7c9a

media-video/vdr: glibc-2.24 deprecated warning fixed

Package-Manager: Portage-2.3.48, Repoman-2.3.10

 media-video/vdr/files/vdr-2.2.0_glibc-2.24.patch | 35 ++++++++++++++++++++++++
 media-video/vdr/vdr-2.2.0-r3.ebuild              |  1 +
 2 files changed, 36 insertions(+)

diff --git a/media-video/vdr/files/vdr-2.2.0_glibc-2.24.patch 
b/media-video/vdr/files/vdr-2.2.0_glibc-2.24.patch
new file mode 100644
index 00000000000..98cc13b0c3b
--- /dev/null
+++ b/media-video/vdr/files/vdr-2.2.0_glibc-2.24.patch
@@ -0,0 +1,35 @@
+patch will fix readdir_r() is deprecated as of glibc-2.24
+https://www.vdr-portal.de/forum/index.php?thread/130752-handle-deprecated-functions-readdir-r-auto-ptr/&postID=1293833#post1293833
+
+Signed-of by: Joerg Bornkessel <[email protected]> (27 Aug 2018)
+diff -Naur vdr-2.2.0.orig/tools.c vdr-2.2.0/tools.c
+--- vdr-2.2.0.orig/tools.c     2018-08-27 12:59:28.571326559 +0200
++++ vdr-2.2.0/tools.c  2018-08-27 13:03:11.222326559 +0200
+@@ -1466,7 +1466,11 @@
+ struct dirent *cReadDir::Next(void)
+ {
+   if (directory) {
++#if !__GLIBC_PREREQ(2, 24) // readdir_r() is deprecated as of GLIBC 2.24
+      while (readdir_r(directory, &u.d, &result) == 0 && result) {
++#else
++     while ((result = readdir(directory)) != NULL) {
++#endif
+            if (strcmp(result->d_name, ".") && strcmp(result->d_name, ".."))
+               return result;
+            }
+diff -Naur vdr-2.2.0.orig/tools.h vdr-2.2.0/tools.h
+--- vdr-2.2.0.orig/tools.h     2018-08-27 12:59:28.641326559 +0200
++++ vdr-2.2.0/tools.h  2018-08-27 13:01:44.022326559 +0200
+@@ -369,10 +369,12 @@
+ private:
+   DIR *directory;
+   struct dirent *result;
++#if !__GLIBC_PREREQ(2, 24) // readdir_r() is deprecated as of GLIBC 2.24
+   union { // according to "The GNU C Library Reference Manual"
+     struct dirent d;
+     char b[offsetof(struct dirent, d_name) + NAME_MAX + 1];
+     } u;
++#endif
+ public:
+   cReadDir(const char *Directory);
+   ~cReadDir();

diff --git a/media-video/vdr/vdr-2.2.0-r3.ebuild 
b/media-video/vdr/vdr-2.2.0-r3.ebuild
index 2b4a137a165..dbb8e986c4a 100644
--- a/media-video/vdr/vdr-2.2.0-r3.ebuild
+++ b/media-video/vdr/vdr-2.2.0-r3.ebuild
@@ -218,6 +218,7 @@ src_prepare() {
        eapply "${FILESDIR}/${P}_gentoo.patch"
        #gcc-7.2, this will fix only the core vdr, not the extpatch
        eapply "${FILESDIR}/${P}_unsignedtosigned.patch"
+       eapply "${FILESDIR}/${P}_glibc-2.24.patch"
 
        # fix some makefile issues
        sed -e "s:ifndef NO_KBD:ifeq (\$(USE_KBD),1):" \

Reply via email to