summary refs log tree commit diff
path: root/pkgs/os-specific/linux/systemd/0009-Change-usr-share-zoneinfo-to-etc-zoneinfo.patch
blob: 791e47065d6f6d5789a6edbd930919024436610b (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
From e24c05ef8cfe48c4f0ebdb92e8147ae2151e4c87 Mon Sep 17 00:00:00 2001
From: Nikolay Amiantov <ab@fmap.me>
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 @@
   </refnamediv>
 
   <refsynopsisdiv>
-    <para><filename>/etc/localtime</filename> -&gt; <filename>../usr/share/zoneinfo/…</filename></para>
+    <para><filename>/etc/localtime</filename> -&gt; <filename>zoneinfo/…</filename></para>
   </refsynopsisdiv>
 
   <refsect1>
@@ -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
-    <filename>/usr/share/zoneinfo/</filename>, followed by a timezone
+    <filename>/etc/zoneinfo/</filename>, followed by a timezone
     identifier such as <literal>Europe/Berlin</literal> or
     <literal>Etc/UTC</literal>. 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 0e5ece5f91..cc46435472 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.32.0