package/dvb-apps: fix build failure with glibc 2.31
authorDagg Stompler <daggs@gmx.com>
Sat, 26 Sep 2020 17:09:20 +0000 (20:09 +0300)
committerThomas Petazzoni <thomas.petazzoni@bootlin.com>
Thu, 15 Oct 2020 21:11:24 +0000 (23:11 +0200)
dvb-apps fails to build with glibc 2.31 with the following error:
| dvbdate.c: In function set_time:
| dvbdate.c:312:6: warning: implicit declaration of function stime; did you mean ctime? [-Wimplicit-function-declaration]
| 312 | if (stime(new_time)) {
| | ^~~~~
| | ctime

Fixes:

http://autobuild.buildroot.net/results/95f30c5e6af2274418bb44a20da7caac69f1dd68/

references:
1. https://gitweb.gentoo.org/repo/gentoo.git/commit/media-tv/linuxtv-dvb-apps/files/linuxtv-dvb-apps-glibc-2.31.patch?id=eb705f892eae45b93306c1de1407c1c22ac23956
2. https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=964223

Signed-off-by: Dagg Stompler <daggs@gmx.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
package/dvb-apps/0006-fix-glibc-2.31.patch [new file with mode: 0644]

diff --git a/package/dvb-apps/0006-fix-glibc-2.31.patch b/package/dvb-apps/0006-fix-glibc-2.31.patch
new file mode 100644 (file)
index 0000000..079a24f
--- /dev/null
@@ -0,0 +1,21 @@
+dvbdate: fix compilation error with glibc 2.31
+
+as stime func doesn't exists anymore in newer versions of glibc >= 2.31 due
+to obseletion, a replacment with clock_settime is inorder to fix the issue.
+
+Signed-off-by: Dagg Stompler <daggs@gmx.com>
+
+--- a/util/dvbdate/dvbdate.c
++++ b/util/dvbdate/dvbdate.c
+@@ -309,7 +309,10 @@
+  */
+ int set_time(time_t * new_time)
+ {
+-      if (stime(new_time)) {
++      struct timespec s = {0};
++      s.tv_sec = new_time;
++
++      if (clock_settime(CLOCK_REALTIME, &s)) {
+               perror("Unable to set time");
+               return -1;
+       }