summary refs log tree commit diff
path: root/pkgs/os-specific/linux/systemd/0008-Change-usr-share-zoneinfo-to-etc-zoneinfo.patch
blob: 3150d97be2e1a119f5d802b154fc4f189c44e5cf (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
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Nikolay Amiantov <ab@fmap.me>
Date: Tue, 11 Oct 2016 13:12:08 +0300
Subject: [PATCH] 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 1db630003a..31744c3e68 100644
--- a/src/basic/time-util.c
+++ b/src/basic/time-util.c
@@ -1350,7 +1350,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;
 
@@ -1391,7 +1391,7 @@ static int get_timezones_from_tzdata_zi(char ***ret) {
 
         assert(ret);
 
-        f = fopen("/usr/share/zoneinfo/tzdata.zi", "re");
+        f = fopen("/etc/zoneinfo/tzdata.zi", "re");
         if (!f)
                 return -errno;
 
@@ -1503,7 +1503,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)
@@ -1563,7 +1563,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 1956ab3b13..9ef356f8af 100644
--- a/src/firstboot/firstboot.c
+++ b/src/firstboot/firstboot.c
@@ -630,7 +630,7 @@ static int process_timezone(int rfd) {
         if (isempty(arg_timezone))
                 return 0;
 
-        e = strjoina("../usr/share/zoneinfo/", arg_timezone);
+        e = strjoina("zoneinfo/", arg_timezone);
 
         r = symlinkat_atomic_full(e, pfd, f, /* make_relative= */ false);
         if (r < 0)
diff --git a/src/nspawn/nspawn.c b/src/nspawn/nspawn.c
index 898a674631..c41a416e04 100644
--- a/src/nspawn/nspawn.c
+++ b/src/nspawn/nspawn.c
@@ -1924,8 +1924,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 331af34505..722c4b5b4f 100644
--- a/src/timedate/timedated.c
+++ b/src/timedate/timedated.c
@@ -282,7 +282,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");
 
@@ -306,7 +306,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;
@@ -314,9 +314,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;