summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris E Ferron <chris.e.ferron@linux.intel.com>2011-04-19 12:37:51 -0700
committerLennart Poettering <lennart@poettering.net>2011-04-20 01:05:30 +0200
commit54e4fdef80693f7fd7893bd048bb4d9a258b03a6 (patch)
tree8aa0c70f734df309737293127b74827525a929fe
parent05677bb78079c3fa0283101aac2c07581f4873f1 (diff)
MeeGo support
This commit consists of the initial work to include MeeGo as a ported distribution for systemd. The majority of the changes are small configuration additions to auto tools, so that MeeGo is identified as a valid distribution option. Some small deviations will be noticed between the configuration of MeeGo and other distributions. As MeeGo is a distribution striving for compliancy to support its near embedded attributes and target users, there is less user configuration options available by default. Most services will be enabled by systemd as part of the distribution requirements, and as such most links and service files will be pre-setup for the MeeGo distribution. As much of this is going to be done within the MeeGo distribution packaging this is still noteworthy to mention, as it explains why in systemd you will observe configuration differences where the MeeGo distribution removes all links in the pkgsysconfdir for instance. MeeGo will be user configurable if there is desire, but most services will be enabled by the distribution as designated by the MeeGo compliancy standards. Other changes are in source to add such areas as meego-release defined in utils, and hostname in hostname-setup, defining vconsole-setup, localizations and rescue additions as needed. As this is all ground work, MeeGo will continue to strive for complete compatibility.
-rw-r--r--Makefile.am21
-rw-r--r--configure.ac8
-rw-r--r--src/hostname-setup.c4
-rw-r--r--src/locale-setup.c4
-rw-r--r--src/systemctl.c2
-rw-r--r--src/util.c11
-rw-r--r--src/vconsole-setup.c4
-rw-r--r--units/rescue.service.m45
8 files changed, 51 insertions, 8 deletions
diff --git a/Makefile.am b/Makefile.am
index 26412ab304..0aaa1e45c3 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -90,6 +90,12 @@ AM_CPPFLAGS += \
-DKBD_SETFONT=\"/bin/setfont\" \
-DDEFAULT_FONT=\"LatArCyrHeb-16\"
else
+if TARGET_MEEGO
+AM_CPPFLAGS += \
+ -DKBD_LOADKEYS=\"/bin/loadkeys\" \
+ -DKBD_SETFONT=\"/bin/setfont\" \
+ -DDEFAULT_FONT=\"LatArCyrHeb-16\"
+else
AM_CPPFLAGS += \
-DKBD_LOADKEYS=\"/bin/loadkeys\" \
-DKBD_SETFONT=\"/bin/setfont\" \
@@ -98,6 +104,7 @@ endif
endif
endif
endif
+endif
rootbin_PROGRAMS = \
systemd \
@@ -1454,6 +1461,20 @@ if HAVE_PLYMOUTH
rm -f plymouth-halt.service && \
$(LN_S) ../plymouth-halt.service plymouth-halt.service )
endif
+if TARGET_MEEGO
+ $(MKDIR_P) -m 0755 $(DESTDIR)$(systemunitdir)/final.target.wants
+ ( cd $(DESTDIR)$(systemunitdir)/multi-user.target.wants && \
+ rm -f network.target && \
+ $(LN_S) $(systemunitdir)/network.target network.target )
+ ( cd $(DESTDIR)$(pkgsysconfdir)/system/sysinit.target.wants && \
+ rm -f * )
+ ( cd $(DESTDIR)$(pkgsysconfdir)/system/local-fs.target.wants && \
+ rm -f * )
+ ( cd $(DESTDIR)$(pkgsysconfdir)/system/multi-user.target.wants && \
+ rm -f * )
+ ( cd $(DESTDIR)$(pkgsysconfdir)/system/getty.target.wants && \
+ rm -f * )
+endif
if TARGET_FEDORA
$(MKDIR_P) -m 0755 $(DESTDIR)$(systemunitdir)/final.target.wants
diff --git a/configure.ac b/configure.ac
index fa8c8ba6d1..7837918181 100644
--- a/configure.ac
+++ b/configure.ac
@@ -286,6 +286,7 @@ if test "z$with_distro" = "z"; then
test -f "/etc/frugalware-release" && with_distro="frugalware"
test -f "/etc/altlinux-release" && with_distro="altlinux"
test -f "/etc/mandriva-release" && with_distro="mandriva"
+ test -f "/etc/meego-release" && with_distro="meego"
if test "x`lsb_release -is 2>/dev/null`" = "xUbuntu"; then
with_distro="ubuntu"
fi
@@ -360,6 +361,12 @@ case $with_distro in
M4_DISTRO_FLAG=-DTARGET_MANDRIVA=1
have_plymouth=true
;;
+ meego)
+ SYSTEM_SYSVINIT_PATH=
+ SYSTEM_SYSVRCND_PATH=
+ AC_DEFINE(TARGET_MEEGO, [], [Target is MeeGo])
+ M4_DISTRO_FLAG=-DTARGET_MEEGO=1
+ ;;
other)
;;
*)
@@ -409,6 +416,7 @@ AM_CONDITIONAL(TARGET_SLACKWARE, test x"$with_distro" = xslackware)
AM_CONDITIONAL(TARGET_FRUGALWARE, test x"$with_distro" = xfrugalware)
AM_CONDITIONAL(TARGET_ALTLINUX, test x"$with_distro" = xaltlinux)
AM_CONDITIONAL(TARGET_MANDRIVA, test x"$with_distro" = xmandriva)
+AM_CONDITIONAL(TARGET_MEEGO, test x"$with_distro" = xmeego)
AM_CONDITIONAL(HAVE_PLYMOUTH, test -n "$have_plymouth")
AM_CONDITIONAL(HAVE_SYSV_COMPAT, test "$SYSTEM_SYSV_COMPAT" = "yes")
diff --git a/src/hostname-setup.c b/src/hostname-setup.c
index ab49767045..57db9fbf7c 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)
+#if defined(TARGET_FEDORA) || defined(TARGET_ALTLINUX) || defined(TARGET_MANDRIVA) || defined(TARGET_MEEGO)
#define FILENAME "/etc/sysconfig/network"
#elif defined(TARGET_SUSE) || defined(TARGET_SLACKWARE) || defined(TARGET_FRUGALWARE)
#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)
+#if defined(TARGET_FEDORA) || defined(TARGET_ARCH) || defined(TARGET_GENTOO) || defined(TARGET_ALTLINUX) || defined(TARGET_MANDRIVA) || defined(TARGET_MEEGO)
int r;
FILE *f;
diff --git a/src/locale-setup.c b/src/locale-setup.c
index 08e289d4ee..d9adfa33f4 100644
--- a/src/locale-setup.c
+++ b/src/locale-setup.c
@@ -71,7 +71,7 @@ int locale_setup(void) {
if (detect_container(NULL) <= 0)
if ((r = parse_env_file("/proc/cmdline", WHITESPACE,
-#ifdef TARGET_FEDORA
+#if defined(TARGET_FEDORA) || defined(TARGET_MEEGO)
"LANG", &variables[VARIABLE_LANG],
#endif
"locale.LANG", &variables[VARIABLE_LANG],
@@ -116,7 +116,7 @@ int locale_setup(void) {
log_warning("Failed to read /etc/locale.conf: %s", strerror(-r));
}
-#if defined(TARGET_FEDORA) || defined(TARGET_ALTLINUX)
+#if defined(TARGET_FEDORA) || 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 39901c3674..d1d73bfa01 100644
--- a/src/systemctl.c
+++ b/src/systemctl.c
@@ -4081,7 +4081,7 @@ static int install_info_apply(const char *verb, LookupPaths *paths, InstallInfo
}
if (!f) {
-#if (defined(TARGET_FEDORA) || defined(TARGET_MANDRIVA)) && defined (HAVE_SYSV_COMPAT)
+#if (defined(TARGET_FEDORA) || defined(TARGET_MANDRIVA)) || defined(TARGET_MEEGO) && defined (HAVE_SYSV_COMPAT)
if (endswith(i->name, ".service")) {
char *sysv;
diff --git a/src/util.c b/src/util.c
index c2173c7222..5a076e6e34 100644
--- a/src/util.c
+++ b/src/util.c
@@ -3394,7 +3394,18 @@ void status_welcome(void) {
free(s);
}
}
+#elif defined(TARGET_MEEGO)
+ if (!pretty_name) {
+ if ((r = read_one_line_file("/etc/meego-release", &pretty_name)) < 0) {
+
+ if (r != -ENOENT)
+ log_warning("Failed to read /etc/meego-release: %s", strerror(-r));
+ }
+ }
+
+ if (!ansi_color)
+ const_color = "1;35"; /* Bright Magenta for MeeGo */
#endif
if (!pretty_name && !const_pretty)
diff --git a/src/vconsole-setup.c b/src/vconsole-setup.c
index 67fb7b6100..86e290b5d5 100644
--- a/src/vconsole-setup.c
+++ b/src/vconsole-setup.c
@@ -178,7 +178,7 @@ int main(int argc, char **argv) {
if (detect_container(NULL) <= 0)
if ((r = parse_env_file("/proc/cmdline", WHITESPACE,
-#ifdef TARGET_FEDORA
+#if defined(TARGET_FEDORA) || defined(TARGET_MEEGO)
"SYSFONT", &vc_font,
"KEYTABLE", &vc_keymap,
#endif
@@ -209,7 +209,7 @@ int main(int argc, char **argv) {
}
if (r <= 0) {
-#ifdef TARGET_FEDORA
+#if defined(TARGET_FEDORA) || defined(TARGET_MEEGO)
if ((r = parse_env_file("/etc/sysconfig/i18n", NEWLINE,
"SYSFONT", &vc_font,
"SYSFONTACM", &vc_font_map,
diff --git a/units/rescue.service.m4 b/units/rescue.service.m4
index b48d085024..d2fd582e86 100644
--- a/units/rescue.service.m4
+++ b/units/rescue.service.m4
@@ -25,7 +25,10 @@ ExecStart=-/bin/bash -c "exec ${SINGLE}"',
m4_ifdef(`TARGET_MANDRIVA',
`EnvironmentFile=/etc/sysconfig/init
ExecStart=-/bin/bash -c "exec ${SINGLE}"',
-`ExecStart=-/sbin/sulogin'))
+`ExecStart=-/sbin/sulogin'
+m4_ifdef(`TARGET_MEEGO',
+`EnvironmentFile=/etc/sysconfig/init
+ExecStart=-/bin/bash -c "exec ${SINGLE}"',)))
ExecStopPost=-/bin/systemctl --fail --no-block default
StandardInput=tty-force
KillMode=process