+++ /dev/null
-Fix compilation with uClibc
-
-Ported from
-https://github.com/stschake/buildroot-grasshopper/blob/master/package/torsmo/torsmo-0.18-uclibc-getloadavg.patch
-
-Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
-
-diff -uwNr vdr-2.3.1.org/skinlcars.c vdr-2.3.1/skinlcars.c
---- vdr-2.3.1.org/skinlcars.c  2015-09-01 12:07:07.000000000 +0200
-+++ vdr-2.3.1/skinlcars.c      2016-07-31 21:00:11.000000000 +0200
-@@ -1099,6 +1099,44 @@
-      }
- }
- 
-+/* uclibc and dietlibc do not have this junk -ReneR */
-+#if defined (__UCLIBC__) || defined (__dietlibc__)
-+static int getloadavg (double loadavg[], int nelem)
-+{
-+  int fd;
-+
-+  fd = open ("/proc/loadavg", O_RDONLY);
-+  if (fd < 0)
-+    return -1;
-+  else
-+    {
-+      char buf[65], *p;
-+      ssize_t nread;
-+      int i;
-+
-+      nread = read (fd, buf, sizeof buf - 1);
-+      close (fd);
-+      if (nread <= 0)
-+      return -1;
-+      buf[nread - 1] = '\0';
-+
-+      if (nelem > 3)
-+      nelem = 3;
-+      p = buf;
-+      for (i = 0; i < nelem; ++i)
-+      {
-+        char *endp;
-+        loadavg[i] = strtod (p, &endp);
-+        if (endp == p)
-+          return -1;
-+        p = endp;
-+      }
-+
-+      return i;
-+    }
-+}
-+#endif
-+
- void cSkinLCARSDisplayMenu::DrawLoad(void)
- {
-   if (yb04) {
 
--- /dev/null
+Fix compilation with libjpeg
+
+Patch inspired by upstream board:
+http://www.vdr-portal.de/board16-video-disk-recorder/board4-vdr-installation/p1189959-vdr-2-05-mit-libjpeg-9a-kommt-nicht-aus/#post1189959
+
+Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
+
+diff -uNr vdr-2.3.1.org/tools.c vdr-2.3.1/tools.c
+--- vdr-2.3.1.org/tools.c      2015-09-10 15:17:55.000000000 +0200
++++ vdr-2.3.1/tools.c  2016-08-01 06:37:44.000000000 +0200
+@@ -1254,15 +1254,15 @@
+         }
+      else {
+         esyslog("ERROR: out of memory");
+-        return false;
++        return FALSE;
+         }
+      if (jcd->mem) {
+         cinfo->dest->next_output_byte = jcd->mem + Used;
+         cinfo->dest->free_in_buffer = jcd->size - Used;
+-        return true;
++        return TRUE;
+         }
+      }
+-  return false;
++  return FALSE;
+ }
+ 
+ static void JpegCompressTermDestination(j_compress_ptr cinfo)
+@@ -1307,8 +1307,8 @@
+   cinfo.in_color_space = JCS_RGB;
+ 
+   jpeg_set_defaults(&cinfo);
+-  jpeg_set_quality(&cinfo, Quality, true);
+-  jpeg_start_compress(&cinfo, true);
++  jpeg_set_quality(&cinfo, Quality, TRUE);
++  jpeg_start_compress(&cinfo, TRUE);
+ 
+   int rs = Width * 3;
+   JSAMPROW rp[Height];
 
+++ /dev/null
-Fix compilation with libjpeg
-
-Patch inspired by upstream board:
-http://www.vdr-portal.de/board16-video-disk-recorder/board4-vdr-installation/p1189959-vdr-2-05-mit-libjpeg-9a-kommt-nicht-aus/#post1189959
-
-Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
-
-diff -uNr vdr-2.3.1.org/tools.c vdr-2.3.1/tools.c
---- vdr-2.3.1.org/tools.c      2015-09-10 15:17:55.000000000 +0200
-+++ vdr-2.3.1/tools.c  2016-08-01 06:37:44.000000000 +0200
-@@ -1254,15 +1254,15 @@
-         }
-      else {
-         esyslog("ERROR: out of memory");
--        return false;
-+        return FALSE;
-         }
-      if (jcd->mem) {
-         cinfo->dest->next_output_byte = jcd->mem + Used;
-         cinfo->dest->free_in_buffer = jcd->size - Used;
--        return true;
-+        return TRUE;
-         }
-      }
--  return false;
-+  return FALSE;
- }
- 
- static void JpegCompressTermDestination(j_compress_ptr cinfo)
-@@ -1307,8 +1307,8 @@
-   cinfo.in_color_space = JCS_RGB;
- 
-   jpeg_set_defaults(&cinfo);
--  jpeg_set_quality(&cinfo, Quality, true);
--  jpeg_start_compress(&cinfo, true);
-+  jpeg_set_quality(&cinfo, Quality, TRUE);
-+  jpeg_start_compress(&cinfo, TRUE);
- 
-   int rs = Width * 3;
-   JSAMPROW rp[Height];
 
        depends on !BR2_STATIC_LIBS
        depends on BR2_TOOLCHAIN_HAS_THREADS_NPTL
        depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_9
-       depends on !BR2_TOOLCHAIN_USES_MUSL # _nl_msg_cat_cntr
+       depends on BR2_TOOLCHAIN_USES_GLIBC # execinfo.h
        depends on BR2_USE_MMU # fork()
        depends on BR2_USE_WCHAR
        select BR2_PACKAGE_FONTCONFIG
 
          http://www.tvdr.de
 
-comment "vdr needs a glibc or uClibc toolchain w/ C++, dynamic library, NPTL, wchar, headers >= 3.9"
+comment "vdr needs a glibc toolchain w/ C++, dynamic library, NPTL, wchar, headers >= 3.9"
        depends on BR2_USE_MMU
        depends on !BR2_INSTALL_LIBSTDCPP || BR2_STATIC_LIBS || \
                !BR2_TOOLCHAIN_HAS_THREADS_NPTL || \
-               BR2_TOOLCHAIN_USES_MUSL || !BR2_USE_WCHAR || \
+               !BR2_TOOLCHAIN_USES_GLIBC || !BR2_USE_WCHAR || \
                !BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_9
 
-# From https://www.linuxtv.org/pipermail/vdr/2017-May/029263.html
-md5 01fabef4d20ec01f11d53354d99a9642  vdr-2.3.5.tar.bz2
+# From https://www.linuxtv.org/pipermail/vdr/2018-April/029407.html
+md5 12c6a3abeadfa915fcfe736bb047a3ab  vdr-2.4.0.tar.bz2
 # Locally computed
-sha256 323fd01e4f8daef24bbdcb906023d18c998a204a22de110d1cb0089532e818b5  vdr-2.3.5.tar.bz2
+sha256 93af49fe87048073dc38ef5e6c71e9704344d730f21c261afac69e3c937f8cce  vdr-2.4.0.tar.bz2
+sha256 ddb9db7630752f8fdc6898f7c99a99eaeeac5213627ecb093df9c82f56175dc7  COPYING
 
 #
 ################################################################################
 
-VDR_VERSION = 2.3.5
+VDR_VERSION = 2.4.0
 VDR_SOURCE = vdr-$(VDR_VERSION).tar.bz2
-VDR_SITE = ftp://ftp.tvdr.de/vdr/Developer
+VDR_SITE = ftp://ftp.tvdr.de/vdr
 VDR_LICENSE = GPL-2.0+
 VDR_LICENSE_FILES = COPYING
 VDR_INSTALL_STAGING = YES