---- systemd-37/configure.ac.orig 2011-10-11 20:46:33.000000000 +0200
-+++ systemd-37/configure.ac 2011-11-26 15:07:34.443334839 +0100
-@@ -361,6 +361,7 @@
- AC_MSG_WARN([Target distribution cannot be reliably detected when cross-compiling. You should specify it with --with-distro (see $0 --help for recognized distros)])
- else
- test -f "/etc/redhat-release" && with_distro="fedora"
-+ test -f "/etc/pld-release" && with_distro="pld"
- test -f "/etc/SuSE-release" && with_distro="suse"
- test -f "/etc/debian_version" && with_distro="debian"
- test -f "/etc/arch-release" && with_distro="arch"
-@@ -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=
-@@ -503,6 +509,7 @@
- fi
+; 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
- AM_CONDITIONAL(TARGET_FEDORA, test x"$with_distro" = xfedora)
-+AM_CONDITIONAL(TARGET_PLD, test x"$with_distro" = xpld)
- AM_CONDITIONAL(TARGET_SUSE, test x"$with_distro" = xsuse)
- AM_CONDITIONAL(TARGET_DEBIAN, test x"$with_distro" = xdebian)
- AM_CONDITIONAL(TARGET_UBUNTU, test x"$with_distro" = xubuntu)
---- systemd-37/Makefile.am.orig 2011-10-11 20:46:33.000000000 +0200
-+++ systemd-37/Makefile.am 2011-11-26 15:07:34.443334839 +0100
-@@ -115,6 +115,12 @@
- -DKBD_SETFONT=\"/usr/bin/setfont\" \
- -DDEFAULT_FONT=\"LatArCyrHeb-16\"
- else
-+if TARGET_PLD
-+AM_CPPFLAGS += \
-+ -DKBD_LOADKEYS=\"/usr/bin/loadkeys\" \
-+ -DKBD_SETFONT=\"/bin/setfont\" \
-+ -DDEFAULT_FONT=\"LatArCyrHeb-16\"
-+else
- AM_CPPFLAGS += \
- -DKBD_LOADKEYS=\"/bin/loadkeys\" \
- -DKBD_SETFONT=\"/bin/setfont\" \
-@@ -125,6 +131,7 @@
- endif
- endif
- endif
-+endif
+ int shorten_overlong(const char *s, char **ret);
- rootbin_PROGRAMS = \
- systemd \
-@@ -1949,6 +1955,23 @@
- $(MKDIR_P) -m 0755 $(DESTDIR)$(systemunitdir)/final.target.wants
- ( cd $(DESTDIR)$(systemunitdir)/multi-user.target.wants && \
- rm -f rc-local.service && \
-+ $(LN_S) $(systemunitdir)/rc-local.service rc-local.service )
-+ ( cd $(DESTDIR)$(systemunitdir)/final.target.wants && \
-+ rm -f halt-local.service && \
-+ $(LN_S) $(systemunitdir)/halt-local.service halt-local.service )
-+ ( cd $(DESTDIR)$(systemunitdir) && \
-+ rm -f display-manager.service single.service && \
-+ $(LN_S) prefdm.service display-manager.service && \
-+ $(LN_S) rescue.service single.service )
-+ ( cd $(DESTDIR)$(systemunitdir)/graphical.target.wants && \
-+ rm -f display-manager.service && \
-+ $(LN_S) $(systemunitdir)/display-manager.service display-manager.service )
-+endif
-+
-+if TARGET_PLD
-+ $(MKDIR_P) -m 0755 $(DESTDIR)$(systemunitdir)/final.target.wants
-+ ( cd $(DESTDIR)$(systemunitdir)/multi-user.target.wants && \
-+ rm -f rc-local.service && \
- $(LN_S) $(systemunitdir)/rc-local.service rc-local.service )
- ( cd $(DESTDIR)$(systemunitdir)/final.target.wants && \
- rm -f halt-local.service && \
-diff -ur systemd-37orig/src/fsck.c systemd-37/src/fsck.c
---- systemd-37orig/src/fsck.c 2011-09-23 17:17:15.000000000 +0200
-+++ systemd-37/src/fsck.c 2011-11-26 15:44:19.573328437 +0100
-@@ -127,7 +127,7 @@
- arg_skip = true;
- else if (startswith(w, "fsck.mode"))
- log_warning("Invalid fsck.mode= parameter. Ignoring.");
--#if defined(TARGET_FEDORA) || defined(TARGET_MANDRIVA)
-+#if defined(TARGET_FEDORA) || defined(TARGET_PLD) || defined(TARGET_MANDRIVA)
- else if (strneq(w, "fastboot", l))
- arg_skip = true;
- else if (strneq(w, "forcefsck", l))
-diff -ur systemd-37orig/src/hostname-setup.c systemd-37/src/hostname-setup.c
---- systemd-37orig/src/hostname-setup.c 2011-11-26 13:04:04.000000000 +0100
-+++ systemd-37/src/hostname-setup.c 2011-11-26 15:48:30.890005881 +0100
-@@ -30,7 +30,7 @@
- #include "util.h"
- #include "log.h"
++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
+ }
+ }
--#if defined(TARGET_FEDORA) || defined(TARGET_ALTLINUX) || defined(TARGET_MANDRIVA) || defined(TARGET_MEEGO)
-+#if defined(TARGET_FEDORA) || defined(TARGET_PLD) || defined(TARGET_ALTLINUX) || defined(TARGET_MANDRIVA) || defined(TARGET_MEEGO)
- #define FILENAME "/etc/sysconfig/network"
- #elif defined(TARGET_SUSE) || defined(TARGET_SLACKWARE)
- #define FILENAME "/etc/HOSTNAME"
-@@ -64,7 +64,7 @@
++int read_etc_hostname_distro(const char *path, char **ret) {
++ int r;
++ char *p = NULL;
++ r = parse_env_file(NULL, "/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;
- static int read_distro_hostname(char **hn) {
+ assert(ret);
--#if defined(TARGET_FEDORA) || defined(TARGET_ARCH) || defined(TARGET_GENTOO) || defined(TARGET_ALTLINUX) || defined(TARGET_MANDRIVA) || defined(TARGET_MEEGO)
-+#if defined(TARGET_FEDORA) || defined(TARGET_PLD) || defined(TARGET_ARCH) || defined(TARGET_GENTOO) || defined(TARGET_ALTLINUX) || defined(TARGET_MANDRIVA) || defined(TARGET_MEEGO)
- int r;
- FILE *f;
+- if (!path)
++ if (!path) {
++ int r;
+ path = "/etc/hostname";
++ r = read_etc_hostname_distro(path, ret);
++ if (r == 0)
++ return r;
++ }
-diff -ur systemd-37orig/src/locale-setup.c systemd-37/src/locale-setup.c
---- systemd-37orig/src/locale-setup.c 2011-09-23 17:16:34.000000000 +0200
-+++ systemd-37/src/locale-setup.c 2011-11-26 15:47:40.906672674 +0100
-@@ -74,7 +74,7 @@
+ 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)
- if ((r = parse_env_file("/proc/cmdline", WHITESPACE,
--#if defined(TARGET_FEDORA) || defined(TARGET_MEEGO)
-+#if defined(TARGET_FEDORA) || defined(TARGET_PLD) || defined(TARGET_MEEGO)
- "LANG", &variables[VARIABLE_LANG],
- #endif
- "locale.LANG", &variables[VARIABLE_LANG],
-@@ -121,7 +121,7 @@
+ 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));
}
--#if defined(TARGET_FEDORA) || defined(TARGET_ALTLINUX) || defined(TARGET_MEEGO)
-+#if defined(TARGET_FEDORA) || defined(TARGET_PLD) || defined(TARGET_ALTLINUX) || defined(TARGET_MEEGO)
- if (r <= 0 &&
- (r = parse_env_file("/etc/sysconfig/i18n", NEWLINE,
- "LANG", &variables[VARIABLE_LANG],
-diff -ur systemd-37orig/src/systemctl.c systemd-37/src/systemctl.c
---- systemd-37orig/src/systemctl.c 2011-10-11 03:17:42.000000000 +0200
-+++ systemd-37/src/systemctl.c 2011-11-26 15:42:15.089997670 +0100
-@@ -3443,7 +3443,7 @@
- static int enable_sysv_units(char **args) {
- int r = 0;
-
--#if defined (HAVE_SYSV_COMPAT) && (defined(TARGET_FEDORA) || defined(TARGET_MANDRIVA) || defined(TARGET_SUSE) || defined(TARGET_MEEGO) || defined(TARGET_ALTLINUX))
-+#if defined (HAVE_SYSV_COMPAT) && (defined(TARGET_FEDORA) || defined(TARGET_PLD) || defined(TARGET_MANDRIVA) || defined(TARGET_SUSE) || defined(TARGET_MEEGO) || defined(TARGET_ALTLINUX))
- const char *verb = args[0];
- unsigned f = 1, t = 1;
- LookupPaths paths;
-diff -ur systemd-37orig/src/timedated.c systemd-37/src/timedated.c
---- systemd-37orig/src/timedated.c 2011-10-11 04:22:35.000000000 +0200
-+++ systemd-37/src/timedated.c 2011-11-26 15:44:03.823326808 +0100
-@@ -174,7 +174,7 @@
- if (r != -ENOENT)
- log_warning("Failed to read /etc/timezone: %s", strerror(-r));
-
--#ifdef TARGET_FEDORA
-+#if defined(TARGET_FEDORA) || defined(TARGET_PLD)
- r = parse_env_file("/etc/sysconfig/clock", NEWLINE,
- "ZONE", &zone,
- NULL);
-diff -ur systemd-37orig/src/util.c systemd-37/src/util.c
---- systemd-37orig/src/util.c 2011-10-11 03:17:51.000000000 +0200
-+++ systemd-37/src/util.c 2011-11-26 15:46:57.579996731 +0100
-@@ -3599,6 +3599,19 @@
- const_color = "0;34"; /* Blue for Fedora */
- }
-
-+#elif defined(TARGET_PLD)
++ if (r <= 0 &&
++ (r = parse_env_file(NULL, "/etc/sysconfig/i18n", NEWLINE,
++ "LANG", &variables[VARIABLE_LANG],
++ NULL)) < 0) {
+
-+ if (!pretty_name) {
-+ if ((r = read_one_line_file("/etc/pld-release", &pretty_name)) < 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(NULL, "/etc/sysconfig/timezone", NEWLINE,
++ "TIMEZONE", &e,
++ NULL);
++ if (r < 0) {
+ if (r != -ENOENT)
-+ log_warning("Failed to read /etc/pld-release: %s", strerror(-r));
++ log_warning("Failed to read /etc/sysconfig/timezone: %s", strerror(-r));
++ return -EINVAL;
+ }
+ }
-+
-+ if (!ansi_color)
-+ const_color = "0;32"; /* Green for PLD */
-+
- #elif defined(TARGET_SUSE)
- if (!pretty_name) {
-diff -ur systemd-37orig/src/vconsole-setup.c systemd-37/src/vconsole-setup.c
---- systemd-37orig/src/vconsole-setup.c 2011-09-28 04:34:17.000000000 +0200
-+++ systemd-37/src/vconsole-setup.c 2011-11-26 15:42:54.143324363 +0100
-@@ -230,7 +230,7 @@
- }
+ 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) {
--#if defined(TARGET_FEDORA) || defined(TARGET_MEEGO)
-+#if defined(TARGET_FEDORA) || defined(TARGET_PLD) || defined(TARGET_MEEGO)
- if ((r = parse_env_file("/etc/sysconfig/i18n", NEWLINE,
- "SYSFONT", &vc_font,
- "SYSFONTACM", &vc_font_map,
-diff -ur systemd-37orig/units/console-shell.service.m4 systemd-37/units/console-shell.service.m4
---- systemd-37orig/units/console-shell.service.m4 2011-09-21 00:48:26.000000000 +0200
-+++ systemd-37/units/console-shell.service.m4 2011-11-26 15:49:15.266671820 +0100
-@@ -11,6 +11,9 @@
- m4_ifdef(`TARGET_FEDORA',
- After=rc-local.service
- )m4_dnl
-+m4_ifdef(`TARGET_PLD',
-+After=rc-local.service
-+)m4_dnl
- m4_ifdef(`TARGET_ARCH',
- After=rc-local.service
- )m4_dnl
-diff -ur systemd-37orig/units/getty@.service.m4 systemd-37/units/getty@.service.m4
---- systemd-37orig/units/getty@.service.m4 2011-08-31 14:33:29.000000000 +0200
-+++ systemd-37/units/getty@.service.m4 2011-11-26 15:49:07.480001391 +0100
-@@ -12,6 +12,9 @@
- m4_ifdef(`TARGET_FEDORA',
- After=rc-local.service
- )m4_dnl
-+m4_ifdef(`TARGET_PLD',
-+After=rc-local.service
-+)m4_dnl
- m4_ifdef(`TARGET_ARCH',
- After=rc-local.service
- )m4_dnl
-diff -ur systemd-37orig/units/rescue.service.m4 systemd-37/units/rescue.service.m4
---- systemd-37orig/units/rescue.service.m4 2011-09-23 01:45:34.000000000 +0200
-+++ systemd-37/units/rescue.service.m4 2011-11-26 15:50:48.323334353 +0100
-@@ -25,10 +25,13 @@
- m4_ifdef(`TARGET_MANDRIVA',
- `EnvironmentFile=/etc/sysconfig/init
- ExecStart=-/bin/bash -c "exec ${SINGLE}"',
-+m4_ifdef(`TARGET_PLD',
-+`EnvironmentFile=/etc/sysconfig/init
-+ExecStart=-/bin/bash -c "exec ${SINGLE}"',
- m4_ifdef(`TARGET_MEEGO',
- `EnvironmentFile=/etc/sysconfig/init
- ExecStart=-/bin/bash -c "exec ${SINGLE}"',
--`ExecStart=-/sbin/sulogin')))
-+`ExecStart=-/sbin/sulogin'))))
- ExecStopPost=-/bin/systemctl --fail --no-block default
- StandardInput=tty-force
- StandardOutput=inherit
-diff -ur systemd-37orig/units/serial-getty@.service.m4 systemd-37/units/serial-getty@.service.m4
---- systemd-37orig/units/serial-getty@.service.m4 2011-05-18 00:13:05.000000000 +0200
-+++ systemd-37/units/serial-getty@.service.m4 2011-11-26 15:48:58.076667457 +0100
-@@ -12,6 +12,9 @@
- m4_ifdef(`TARGET_FEDORA',
- After=rc-local.service
- )m4_dnl
-+m4_ifdef(`TARGET_PLD',
-+After=rc-local.service
-+)m4_dnl
- m4_ifdef(`TARGET_ARCH',
- After=rc-local.service
- )m4_dnl
++ if (r <= 0) {
++ int r1 = parse_env_file(NULL, "/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(NULL, "/proc/cmdline", WHITESPACE,