diff --git a/pkgs/applications/video/vdr/default.nix b/pkgs/applications/video/vdr/default.nix index d025554835ef..14ca503f2e91 100644 --- a/pkgs/applications/video/vdr/default.nix +++ b/pkgs/applications/video/vdr/default.nix @@ -1,5 +1,5 @@ { stdenv, fetchurl, fontconfig, libjpeg, libcap, freetype, fribidi, pkgconfig -, gettext, systemd, perl, lib +, gettext, systemd, perl, lib, fetchpatch , enableSystemd ? true , enableBidi ? true }: stdenv.mkDerivation rec { @@ -12,6 +12,11 @@ sha256 = "1p51b14aqzncx3xpfg0rjplc48pg7520035i5p6r5zzkqhszihr5"; }; + patches = [ + # Derived from http://git.tvdr.de/?p=vdr.git;a=commit;h=930c2cd2eb8947413e88404fa94c66e4e1db5ad6 + ./glibc2.31-compat.patch + ]; + enableParallelBuilding = true; postPatch = "substituteInPlace Makefile --replace libsystemd-daemon libsystemd"; diff --git a/pkgs/applications/video/vdr/glibc2.31-compat.patch b/pkgs/applications/video/vdr/glibc2.31-compat.patch new file mode 100644 index 000000000000..9a52d4b290b1 --- /dev/null +++ b/pkgs/applications/video/vdr/glibc2.31-compat.patch @@ -0,0 +1,15 @@ +diff --git a/eit.c b/eit.c +index 50d8229..373dbca 100644 +--- a/eit.c ++++ b/eit.c +@@ -391,7 +391,9 @@ cTDT::cTDT(const u_char *Data) + if (abs(diff) > MAX_TIME_DIFF) { + mutex.Lock(); + if (abs(diff) > MAX_ADJ_DIFF) { +- if (stime(&dvbtim) == 0) ++ timespec ts = { 0 }; ++ ts.tv_sec = dvbtim; ++ if (clock_settime(CLOCK_REALTIME, &ts) == 0) + isyslog("system time changed from %s (%ld) to %s (%ld)", *TimeToString(loctim), loctim, *TimeToString(dvbtim), dvbtim); + else + esyslog("ERROR while setting system time: %m");