+int read_etc_hostname_distro(const char *path, char **ret);
int read_etc_hostname_stream(FILE *f, char **ret);
int read_etc_hostname(const char *path, char **ret);
---- systemd-238/src/basic/hostname-util.c~ 2018-03-05 23:16:37.000000000 +0100
-+++ systemd-238/src/basic/hostname-util.c 2018-05-15 13:21:08.392017315 +0200
-@@ -290,13 +290,33 @@ int read_etc_hostname_stream(FILE *f, ch
+--- systemd-240/src/basic/hostname-util.c.orig 2018-12-21 19:53:33.000000000 +0100
++++ systemd-240/src/basic/hostname-util.c 2019-01-13 11:11:40.715590524 +0100
+@@ -8,6 +8,7 @@
+ #include <unistd.h>
+
+ #include "alloc-util.h"
++#include "env-file.h"
+ #include "fd-util.h"
+ #include "fileio.h"
+ #include "hostname-util.h"
+@@ -291,13 +292,33 @@ int read_etc_hostname_stream(FILE *f, ch
}
}
f = fopen(path, "re");
if (!f)
-diff -dur -x '*~' -x '*.orig' systemd-208.orig/src/core/locale-setup.c systemd-208/src/core/locale-setup.c
---- systemd-208.orig/src/core/locale-setup.c 2013-10-01 00:17:21.000000000 +0200
-+++ systemd-208/src/core/locale-setup.c 2014-01-09 15:15:41.000000000 +0100
-@@ -76,6 +76,7 @@
+--- systemd-240/src/core/locale-setup.c.orig 2019-01-13 09:27:36.718995151 +0100
++++ systemd-240/src/core/locale-setup.c 2019-01-13 09:29:37.548993771 +0100
+@@ -21,6 +21,7 @@
+ int r;
- if (detect_container() <= 0) {
- r = parse_env_file(NULL, "/proc/cmdline", WHITESPACE,
-+ "LANG", &variables[VARIABLE_LANG],
- "locale.LANG", &variables[VARIABLE_LANG],
- "locale.LANGUAGE", &variables[VARIABLE_LANGUAGE],
- "locale.LC_CTYPE", &variables[VARIABLE_LC_CTYPE],
-@@ -120,6 +121,15 @@
- log_warning("Failed to read /etc/locale.conf: %s", strerror(-r));
+ r = proc_cmdline_get_key_many(PROC_CMDLINE_STRIP_RD_PREFIX,
++ "LANG", &variables[VARIABLE_LANG],
+ "locale.LANG", &variables[VARIABLE_LANG],
+ "locale.LANGUAGE", &variables[VARIABLE_LANGUAGE],
+ "locale.LC_CTYPE", &variables[VARIABLE_LC_CTYPE],
+@@ -59,6 +60,15 @@
+ log_warning_errno(r, "Failed to read /etc/locale.conf: %m");
}
+ if (r <= 0 &&
+ log_warning("Failed to read /etc/sysconfig/i18n: %s", strerror(-r));
+ }
+
- add = NULL;
- for (i = 0; i < _VARIABLE_MAX; i++) {
+ for (i = 0; i < _VARIABLE_LC_MAX; i++) {
char *s;
---- a/src/basic/time-util.c~ 2016-11-03 18:16:42.000000000 +0100
-+++ b/src/basic/time-util.c 2016-11-12 19:54:28.457197174 +0100
-@@ -1290,8 +1290,16 @@ int get_timezone(char **tz) {
- e = path_startswith(t, "/usr/share/zoneinfo/");
- if (!e)
- e = path_startswith(t, "../usr/share/zoneinfo/");
+
+--- systemd-240/src/basic/time-util.c.orig 2019-01-13 09:27:36.718995151 +0100
++++ systemd-240/src/basic/time-util.c 2019-01-13 09:31:12.275659356 +0100
+@@ -14,6 +14,7 @@
+ #include <unistd.h>
+
+ #include "alloc-util.h"
++#include "env-file.h"
+ #include "fd-util.h"
+ #include "fileio.h"
+ #include "fs-util.h"
+@@ -1386,8 +1387,16 @@
+ return r; /* returns EINVAL if not a symlink */
+
+ e = PATH_STARTSWITH_SET(t, "/usr/share/zoneinfo/", "../usr/share/zoneinfo/");
- if (!e)
- return -EINVAL;
+ if (!e) {
+ log_warning("Failed to read /etc/sysconfig/timezone: %s", strerror(-r));
+ return -EINVAL;
+ }
-+ }
++ }
- if (!timezone_is_valid(e))
+ if (!timezone_is_valid(e, LOG_DEBUG))
return -EINVAL;
diff -dur -x '*~' -x '*.orig' systemd-208.orig/src/vconsole/vconsole-setup.c systemd-208/src/vconsole/vconsole-setup.c
--- systemd-208.orig/src/vconsole/vconsole-setup.c 2013-08-13 22:02:47.000000000 +0200