From b5966b6abb9696798618367cab33d1fed317734f Mon Sep 17 00:00:00 2001 From: Nikolay Amiantov Date: Tue, 11 Oct 2016 13:12:08 +0300 Subject: [PATCH 09/19] Change /usr/share/zoneinfo to /etc/zoneinfo NixOS uses this path. --- man/localtime.xml | 4 ++-- src/basic/time-util.c | 8 ++++---- src/firstboot/firstboot.c | 2 +- src/nspawn/nspawn.c | 4 ++-- src/timedate/timedated.c | 8 ++++---- 5 files changed, 13 insertions(+), 13 deletions(-) diff --git a/man/localtime.xml b/man/localtime.xml index e486474c44..5f373d0723 100644 --- a/man/localtime.xml +++ b/man/localtime.xml @@ -20,7 +20,7 @@ - /etc/localtime -> ../usr/share/zoneinfo/… + /etc/localtime -> zoneinfo/… @@ -30,7 +30,7 @@ system-wide timezone of the local system that is used by applications for presentation to the user. It should be an absolute or relative symbolic link pointing to - /usr/share/zoneinfo/, followed by a timezone + /etc/zoneinfo/, followed by a timezone identifier such as Europe/Berlin or Etc/UTC. The resulting link should lead to the corresponding binary diff --git a/src/basic/time-util.c b/src/basic/time-util.c index 5d162e8ffe..1bec83e555 100644 --- a/src/basic/time-util.c +++ b/src/basic/time-util.c @@ -1269,7 +1269,7 @@ static int get_timezones_from_zone1970_tab(char ***ret) { assert(ret); - f = fopen("/usr/share/zoneinfo/zone1970.tab", "re"); + f = fopen("/etc/zoneinfo/zone1970.tab", "re"); if (!f) return -errno; @@ -1308,7 +1308,7 @@ static int get_timezones_from_tzdata_zi(char ***ret) { _cleanup_strv_free_ char **zones = NULL; int r; - f = fopen("/usr/share/zoneinfo/tzdata.zi", "re"); + f = fopen("/etc/zoneinfo/tzdata.zi", "re"); if (!f) return -errno; @@ -1421,7 +1421,7 @@ int verify_timezone(const char *name, int log_level) { if (p - name >= PATH_MAX) return -ENAMETOOLONG; - t = strjoina("/usr/share/zoneinfo/", name); + t = strjoina("/etc/zoneinfo/", name); fd = open(t, O_RDONLY|O_CLOEXEC); if (fd < 0) @@ -1512,7 +1512,7 @@ int get_timezone(char **ret) { if (r < 0) return r; /* returns EINVAL if not a symlink */ - e = PATH_STARTSWITH_SET(t, "/usr/share/zoneinfo/", "../usr/share/zoneinfo/"); + e = PATH_STARTSWITH_SET(t, "/etc/zoneinfo/", "../etc/zoneinfo/"); if (!e) return -EINVAL; diff --git a/src/firstboot/firstboot.c b/src/firstboot/firstboot.c index 2cb4f80d5d..ebeaeac52f 100644 --- a/src/firstboot/firstboot.c +++ b/src/firstboot/firstboot.c @@ -491,7 +491,7 @@ static int process_timezone(void) { if (isempty(arg_timezone)) return 0; - e = strjoina("../usr/share/zoneinfo/", arg_timezone); + e = strjoina("zoneinfo/", arg_timezone); (void) mkdir_parents(etc_localtime, 0755); if (symlink(e, etc_localtime) < 0) diff --git a/src/nspawn/nspawn.c b/src/nspawn/nspawn.c index 438ca294db..98bd110d92 100644 --- a/src/nspawn/nspawn.c +++ b/src/nspawn/nspawn.c @@ -1887,8 +1887,8 @@ int userns_mkdir(const char *root, const char *path, mode_t mode, uid_t uid, gid static const char *timezone_from_path(const char *path) { return PATH_STARTSWITH_SET( path, - "../usr/share/zoneinfo/", - "/usr/share/zoneinfo/"); + "../etc/zoneinfo/", + "/etc/zoneinfo/"); } static bool etc_writable(void) { diff --git a/src/timedate/timedated.c b/src/timedate/timedated.c index 0a8fe25d0f..2f02b9a520 100644 --- a/src/timedate/timedated.c +++ b/src/timedate/timedated.c @@ -279,7 +279,7 @@ static int context_read_data(Context *c) { r = get_timezone(&t); if (r == -EINVAL) - log_warning_errno(r, "/etc/localtime should be a symbolic link to a time zone data file in /usr/share/zoneinfo/."); + log_warning_errno(r, "/etc/localtime should be a symbolic link to a time zone data file in /etc/zoneinfo/."); else if (r < 0) log_warning_errno(r, "Failed to get target of /etc/localtime: %m"); @@ -303,7 +303,7 @@ static int context_write_data_timezone(Context *c) { if (isempty(c->zone) || streq(c->zone, "UTC")) { - if (access("/usr/share/zoneinfo/UTC", F_OK) < 0) { + if (access("/etc/zoneinfo/UTC", F_OK) < 0) { if (unlink("/etc/localtime") < 0 && errno != ENOENT) return -errno; @@ -311,9 +311,9 @@ static int context_write_data_timezone(Context *c) { return 0; } - source = "../usr/share/zoneinfo/UTC"; + source = "../etc/zoneinfo/UTC"; } else { - p = path_join("../usr/share/zoneinfo", c->zone); + p = path_join("../etc/zoneinfo", c->zone); if (!p) return -ENOMEM; -- 2.33.1