base-files: use hwclock --systz
authorRosen Penev <rosenp@gmail.com>
Mon, 1 Feb 2021 00:15:52 +0000 (16:15 -0800)
committerHauke Mehrtens <hauke@hauke-m.de>
Sun, 14 Feb 2021 14:15:32 +0000 (15:15 +0100)
The date -k patch is non standard and will be removed in the next
commit.

Tested behavior to be identical with a simple C program:

 #define _GNU_SOURCE
 #include <unistd.h>
 #include <stdio.h>
 #include <sys/time.h>
 #include <sys/syscall.h>

int main()
{
        struct timezone tt;
struct timezone tz;

        int a = syscall(SYS_gettimeofday, NULL, &tt);
        int b = gettimeofday(NULL, &tz);
        printf("%d - %d, %d\n", a, tt.tz_minuteswest, tt.tz_dsttime);
        printf("%d - %d, %d\n", b, tz.tz_minuteswest, tz.tz_dsttime);
}

Signed-off-by: Rosen Penev <rosenp@gmail.com>
package/base-files/files/etc/init.d/system

index 0e33c522b4bfa43af8301adfaa767f59a2ff895f..08cf86b97f986d7cd99b5f2f7dc88b8b8b4aaf97 100755 (executable)
@@ -27,7 +27,7 @@ system_config() {
                ln -sf "/usr/share/zoneinfo/$zonename" /tmp/localtime && rm -f /tmp/TZ
 
        # apply timezone to kernel
-       busybox date -k
+       hwclock -u --systz
 }
 
 reload_service() {