diff --git a/Makefile.am b/Makefile.am index 170465a..bce467d 100644 --- a/Makefile.am +++ b/Makefile.am @@ -115,6 +115,12 @@ AM_CPPFLAGS += \ -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\" \ @@ -132,6 +138,7 @@ endif endif endif endif +endif rootbin_PROGRAMS = \ systemd \ @@ -381,6 +388,14 @@ systemd-rc-local-generator endif +if TARGET_PLD +dist_systemunit_DATA += \ + units/fedora/rc-local.service \ + units/fedora/halt-local.service +systemgenerator_PROGRAMS += \ + systemd-rc-local-generator +endif + if TARGET_MANDRIVA dist_systemunit_DATA += \ units/mandriva/prefdm.service \ @@ -1992,6 +1999,23 @@ if TARGET_FEDORA $(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 && \ + $(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_MANDRIVA $(MKDIR_P) -m 0755 $(DESTDIR)$(systemunitdir)/final.target.wants ( cd $(DESTDIR)$(systemunitdir)/final.target.wants && \ diff --git a/configure.ac b/configure.ac index 596a32a..f701bfd 100644 --- a/configure.ac +++ b/configure.ac @@ -361,6 +361,7 @@ if test "z$with_distro" = "z"; then 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" @@ -448,6 +449,12 @@ case $with_distro in M4_DEFINES=-DTARGET_MANDRIVA=1 have_plymouth=yes ;; + 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= @@ -510,6 +517,7 @@ if test -n "$enable_plymouth"; then fi 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) diff --git a/src/fsck.c b/src/fsck.c index 3477ba1..d32718d 100644 --- a/src/fsck.c +++ b/src/fsck.c @@ -127,7 +127,7 @@ static int parse_proc_cmdline(void) { arg_skip = true; else if (startswith(w, "fsck.mode")) log_warning("Invalid fsck.mode= parameter. Ignoring."); -#if defined(TARGET_FEDORA) || defined(TARGET_MANDRIVA) || defined(TARGET_MAGEIA) +#if defined(TARGET_FEDORA) || defined(TARGET_PLD) || defined(TARGET_MANDRIVA) || defined(TARGET_MAGEIA) else if (strneq(w, "fastboot", l)) arg_skip = true; else if (strneq(w, "forcefsck", l)) diff --git a/src/hostname-setup.c b/src/hostname-setup.c index 2c2f10c..754f0c7 100644 --- a/src/hostname-setup.c +++ b/src/hostname-setup.c @@ -30,7 +30,7 @@ #include "util.h" #include "log.h" -#if defined(TARGET_FEDORA) || defined(TARGET_ALTLINUX) || defined(TARGET_MANDRIVA) || defined(TARGET_MEEGO) || defined(TARGET_MAGEIA) +#if defined(TARGET_FEDORA) || defined(TARGET_PLD) || defined(TARGET_ALTLINUX) || defined(TARGET_MANDRIVA) || defined(TARGET_MEEGO) || defined(TARGET_MAGEIA) #define FILENAME "/etc/sysconfig/network" #elif defined(TARGET_SUSE) || defined(TARGET_SLACKWARE) #define FILENAME "/etc/HOSTNAME" @@ -64,7 +64,7 @@ static int read_and_strip_hostname(const char *path, char **hn) { static int read_distro_hostname(char **hn) { -#if defined(TARGET_FEDORA) || defined(TARGET_ARCH) || defined(TARGET_GENTOO) || defined(TARGET_ALTLINUX) || defined(TARGET_MANDRIVA) || defined(TARGET_MEEGO) || defined(TARGET_MAGEIA) +#if defined(TARGET_FEDORA) || defined(TARGET_PLD) || defined(TARGET_ARCH) || defined(TARGET_GENTOO) || defined(TARGET_ALTLINUX) || defined(TARGET_MANDRIVA) || defined(TARGET_MEEGO) || defined(TARGET_MAGEIA) int r; FILE *f; diff --git a/src/locale-setup.c b/src/locale-setup.c index 7f692e9..0a45854 100644 --- a/src/locale-setup.c +++ b/src/locale-setup.c @@ -74,7 +74,7 @@ int locale_setup(void) { 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 @@ int locale_setup(void) { 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 --git a/src/systemctl.c b/src/systemctl.c index 298cb4e..cec3974 100644 --- a/src/systemctl.c +++ b/src/systemctl.c @@ -3460,7 +3460,7 @@ finish: 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) || defined(TARGET_MAGEIA)) +#if defined (HAVE_SYSV_COMPAT) && (defined(TARGET_FEDORA) || defined(TARGET_PLD) || defined(TARGET_MANDRIVA) || defined(TARGET_SUSE) || defined(TARGET_MEEGO) || defined(TARGET_ALTLINUX) || defined(TARGET_MAGEIA)) const char *verb = args[0]; unsigned f = 1, t = 1; LookupPaths paths; diff --git a/src/timedate/timedated.c b/src/timedate/timedated.c index 16f54b5..758b9df 100644 --- a/src/timedate/timedated.c +++ b/src/timedate/timedated.c @@ -174,7 +174,7 @@ static int read_data(void) { 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 --git a/src/util.c b/src/util.c index da71e4d..0df1a7d 100644 --- a/src/util.c +++ b/src/util.c @@ -3599,6 +3599,19 @@ void status_welcome(void) { const_color = "0;34"; /* Blue for Fedora */ } +#elif defined(TARGET_PLD) + + if (!pretty_name) { + if ((r = read_one_line_file("/etc/pld-release", &pretty_name)) < 0) { + + if (r != -ENOENT) + log_warning("Failed to read /etc/pld-release: %s", strerror(-r)); + } + } + + if (!ansi_color) + const_color = "0;32"; /* Green for PLD */ + #elif defined(TARGET_SUSE) if (!pretty_name) { diff --git a/src/vconsole/vconsole-setup.c b/src/vconsole/vconsole-setup.c index 9196789..1d1a916 100644 --- a/src/vconsole/vconsole-setup.c +++ b/src/vconsole/vconsole-setup.c @@ -230,7 +230,7 @@ int main(int argc, char **argv) { } 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 --git a/units/console-shell.service.m4 b/units/console-shell.service.m4 index 02adc84..a9f31fd 100644 --- a/units/console-shell.service.m4 +++ b/units/console-shell.service.m4 @@ -11,6 +11,9 @@ After=systemd-user-sessions.service plymouth-quit-wait.service 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 --git a/units/getty@.service.m4 b/units/getty@.service.m4 index d2a145d..cae4ae5 100644 --- a/units/getty@.service.m4 +++ b/units/getty@.service.m4 @@ -12,6 +12,9 @@ After=dev-%i.device systemd-user-sessions.service plymouth-quit-wait.service 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 --git a/units/rescue.service.m4 b/units/rescue.service.m4 index 7dd8a22..5a9c363 100644 --- a/units/rescue.service.m4 +++ b/units/rescue.service.m4 @@ -22,6 +22,9 @@ ExecStartPre=-/bin/echo 'Welcome to rescue mode. Use "systemctl default" or ^D t m4_ifdef(`TARGET_FEDORA', `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_MANDRIVA', `EnvironmentFile=/etc/sysconfig/init ExecStart=-/bin/bash -c "exec ${SINGLE}"', @@ -31,7 +34,7 @@ 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 --git a/units/serial-getty@.service.m4 b/units/serial-getty@.service.m4 index e5f0ca6..69b7fc2 100644 --- a/units/serial-getty@.service.m4 +++ b/units/serial-getty@.service.m4 @@ -12,6 +12,9 @@ After=dev-%i.device systemd-user-sessions.service plymouth-quit-wait.service 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 --git a/src/rc-local-generator.c b/src/rc-local-generator.c index ac6424a..a247c25 100644 --- a/src/rc-local-generator.c +++ b/src/rc-local-generator.c @@ -27,7 +27,7 @@ #include "log.h" #include "util.h" -#if defined(TARGET_FEDORA) || defined(TARGET_MANDRIVA) || defined(TARGET_MAGEIA) +#if defined(TARGET_FEDORA) || defined(TARGET_PLD) || defined(TARGET_MANDRIVA) || defined(TARGET_MAGEIA) #define SCRIPT_PATH "/etc/rc.d/rc.local" #elif defined(TARGET_SUSE) #define SCRIPT_PATH "/etc/init.d/boot.local"