---- systemd-26/configure.ac.orig 2011-05-02 14:05:34.544253875 +0200
-+++ systemd-26/configure.ac 2011-05-02 14:22:04.085559738 +0200
-@@ -369,6 +369,12 @@ case $with_distro in
- M4_DISTRO_FLAG=-DTARGET_MANDRIVA=1
- have_plymouth=true
- ;;
-+ pld)
-+ SYSTEM_SYSVINIT_PATH=/etc/rc.d/init.d
-+ SYSTEM_SYSVRCND_PATH=/etc/rc.d
-+ AC_DEFINE(TARGET_PLD, [], [Target is PLD Linux])
-+ M4_DISTRO_FLAG=-DTARGET_PLD=1
-+ ;;
- meego)
- SYSTEM_SYSVINIT_PATH=
- SYSTEM_SYSVRCND_PATH=
+; rest of target-pld.patch logic in systemd.spec
+--- a/src/basic/hostname-util.h~ 2018-03-05 23:16:37.000000000 +0100
++++ b/src/basic/hostname-util.h 2018-05-15 13:46:17.924678801 +0200
+@@ -42,5 +42,6 @@ int sethostname_idempotent(const char *s
+
+ int shorten_overlong(const char *s, char **ret);
+
++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
+ }
+ }
+
++int read_etc_hostname_distro(const char *path, char **ret) {
++ int r;
++ char *p;
++ r = parse_env_file("/etc/sysconfig/network", NEWLINE, "HOSTNAME", &p, NULL);
++ if (r < 0)
++ return r;
++ if (r == 0) /* EOF without any hostname? the file is empty, let's treat that exactly like no file at all: ENOENT */
++ return -ENOENT;
++ hostname_cleanup(p);
++ if (!hostname_is_valid(p, true))
++ return -EBADMSG;
++ *ret = p;
++ return 0;
++}
++
+ int read_etc_hostname(const char *path, char **ret) {
+ _cleanup_fclose_ FILE *f = NULL;
+
+ assert(ret);
+
+- if (!path)
++ if (!path) {
++ int r;
+ path = "/etc/hostname";
++ r = read_etc_hostname_distro(path, ret);
++ if (r > 0)
++ return r;
++ }
+
+ 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 @@
+
+ if (detect_container(NULL) <= 0) {
+ r = parse_env_file("/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));
+ }
+
++ if (r <= 0 &&
++ (r = parse_env_file("/etc/sysconfig/i18n", NEWLINE,
++ "LANG", &variables[VARIABLE_LANG],
++ NULL)) < 0) {
++
++ if (r != -ENOENT)
++ log_warning("Failed to read /etc/sysconfig/i18n: %s", strerror(-r));
++ }
++
+ add = NULL;
+ for (i = 0; i < _VARIABLE_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/");
+- if (!e)
+- return -EINVAL;
++ if (!e) {
++ r = parse_env_file("/etc/sysconfig/timezone", NEWLINE,
++ "TIMEZONE", &e,
++ NULL);
++ if (r < 0) {
++ if (r != -ENOENT)
++ log_warning("Failed to read /etc/sysconfig/timezone: %s", strerror(-r));
++ return -EINVAL;
++ }
++ }
+
+ if (!timezone_is_valid(e))
+ 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
++++ systemd-208/src/vconsole/vconsole-setup.c 2014-01-09 15:17:49.000000000 +0100
+@@ -284,6 +284,17 @@ int main(int argc, char **argv) {
+ if (r < 0 && r != -ENOENT)
+ log_warning("Failed to read /etc/vconsole.conf: %s", strerror(-r));
+
++ if (r <= 0) {
++ int r1 = parse_env_file("/etc/sysconfig/console", NEWLINE,
++ "CONSOLEFONT", &vc_font,
++ "CONSOLEMAP", &vc_font_map,
++ "CONSOLESCREENFONTMAP", &vc_font_unimap,
++ "KEYTABLE", &vc_keymap,
++ NULL);
++ if (r1 < 0 && r1 != -ENOENT)
++ log_warning("Failed to read /etc/sysconfig/console: %s", strerror(-r1));
++ }
++
+ /* Let the kernel command line override /etc/vconsole.conf */
+ if (detect_container(NULL) <= 0) {
+ r = parse_env_file("/proc/cmdline", WHITESPACE,