--- systemd-208.orig/Makefile.am 2013-10-02 04:57:09.000000000 +0200
+++ systemd-208/Makefile.am 2014-01-09 15:15:41.000000000 +0100
@@ -211,6 +211,8 @@
- SYSINIT_TARGET_WANTS =
- SOCKETS_TARGET_WANTS =
TIMERS_TARGET_WANTS =
+ USER_SOCKETS_TARGET_WANTS =
+ USER_BUSNAMES_TARGET_WANTS =
+FINAL_TARGET_WANTS =
+GRAPHICAL_TARGET_WANTS =
SYSTEM_UNIT_ALIASES =
USER_UNIT_ALIASES =
@@ -230,6 +232,8 @@
- what="$(SOCKETS_TARGET_WANTS)" && wants=sockets.target && $(add-wants)
- what="$(TIMERS_TARGET_WANTS)" && wants=timers.target && $(add-wants)
what="$(SLICES_TARGET_WANTS)" && wants=slices.target && $(add-wants)
-+ what="$(FINAL_TARGET_WANTS)" && wants=final.target && $(add-wants)
-+ what="$(GRAPHICAL_TARGET_WANTS)" && wants=graphical.target && $(add-wants)
+ what="$(USER_SOCKETS_TARGET_WANTS)" && wants=sockets.target && dir=$(userunitdir) && $(add-wants)
+ what="$(USER_BUSNAMES_TARGET_WANTS)" && wants=busnames.target && dir=$(userunitdir) && $(add-wants)
++ what="$(FINAL_TARGET_WANTS)" && wants=final.target && dir=$(systemunitdir) && $(add-wants)
++ what="$(GRAPHICAL_TARGET_WANTS)" && wants=graphical.target && dir=$(systemunitdir) && $(add-wants)
define add-wants
[ -z "$$what" ] || ( \
-@@ -4001,9 +4005,16 @@
+@@ -4001,8 +4005,15 @@
$(systemdstatedir)
MULTI_USER_TARGET_WANTS += \
+ rc-local.service \
- systemd-logind.service \
- systemd-user-sessions.service
+ systemd-logind.service
+FINAL_TARGET_WANTS += \
+ halt-local.service
+ /* First, try to load the generic hostname configuration file,
+ * that we support on all distributions */
+
-+ r = read_and_strip_hostname("/etc/hostname", hn);
++ r = read_hostname_config("/etc/hostname", hn);
+ if (r < 0) {
+ if (r == -ENOENT)
+ return read_distro_hostname(hn);
const char *hn;
bool enoent = false;
-- r = read_and_strip_hostname("/etc/hostname", &b);
+- r = read_hostname_config("/etc/hostname", &b);
+ r = read_hostname(&b);
if (r < 0) {
if (r == -ENOENT)
diff -dur -x '*~' -x '*.orig' systemd-208.orig/src/timedate/timedated.c systemd-208/src/timedate/timedated.c
--- systemd-208.orig/src/timedate/timedated.c 2013-08-13 22:02:47.000000000 +0200
+++ systemd-208/src/timedate/timedated.c 2014-01-09 15:15:41.000000000 +0100
-@@ -183,6 +183,13 @@
+@@ -183,9 +183,19 @@
+ c->zone = strdup(e);
+ if (!c->zone)
+ return log_oom();
++ goto have_timezone;
}
}
+ r = parse_env_file("/etc/sysconfig/timezone", NEWLINE,
-+ "TIMEZONE", &tz.zone,
++ "TIMEZONE", &c->zone,
+ NULL);
+ if (r < 0) {
+ if (r != -ENOENT)
+ log_warning("Failed to read /etc/sysconfig/timezone: %s", strerror(-r));
+ }
- have_timezone:
- if (isempty(tz.zone)) {
- free(tz.zone);
++
++have_timezone:
+ if (isempty(c->zone)) {
+ free(c->zone);
+ c->zone = NULL;
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
-@@ -296,6 +296,17 @@
- font_copy_to_all_vcs(fd);
- }
+@@ -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);
++ 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));
-+ }
++ }
+
- free(vc_keymap);
- free(vc_font);
- free(vc_font_map);
+ /* Let the kernel command line override /etc/vconsole.conf */
+ if (detect_container(NULL) <= 0) {
+ r = parse_env_file("/proc/cmdline", WHITESPACE,