[systemd/f17] Fixes for auto-restart (#817968, fdo#45511)
Michal Schmidt
michich at fedoraproject.org
Tue May 22 06:58:41 UTC 2012
commit 73856426f84c82103bc73e9fb2f13b733dc39d42
Author: Michal Schmidt <mschmidt at redhat.com>
Date: Tue May 22 08:44:18 2012 +0200
Fixes for auto-restart (#817968, fdo#45511)
...n-relax-wording-in-journal-fields-7-a-bit.patch | 29 +++++
...lyze-switch-to-python-getopt-for-argument.patch | 124 ++++++++++++++++++++
...andling-of-posix_fallocate-returned-value.patch | 39 ++++++
0333-cgtop-change-default-depth-to-3.patch | 38 ++++++
...edule-JOB_RESTART-from-SERVICE_AUTO_RESTA.patch | 32 +++++
...ually-delay-auto-restart-if-another-job-i.patch | 25 ++++
...fix-auto-restart-handling-in-service_stop.patch | 49 ++++++++
...ix-auto-restart-handling-in-service_start.patch | 34 ++++++
...he-same-fstab-extension-option-syntax-eve.patch | 71 +++++++++++
systemd.spec | 14 ++-
10 files changed, 454 insertions(+), 1 deletions(-)
---
diff --git a/0330-man-relax-wording-in-journal-fields-7-a-bit.patch b/0330-man-relax-wording-in-journal-fields-7-a-bit.patch
new file mode 100644
index 0000000..cb5c4d0
--- /dev/null
+++ b/0330-man-relax-wording-in-journal-fields-7-a-bit.patch
@@ -0,0 +1,29 @@
+From 238efd15fb361044f0473fc6445661c48ac5413f Mon Sep 17 00:00:00 2001
+From: Lennart Poettering <lennart at poettering.net>
+Date: Tue, 22 May 2012 01:12:46 +0200
+Subject: [PATCH] man: relax wording in journal-fields(7) a bit (cherry picked
+ from commit 33ba4c4b0e9d6a7f8a73647f130aabd5b3c6bc29)
+
+---
+ man/systemd.journal-fields.xml | 8 +++++---
+ 1 file changed, 5 insertions(+), 3 deletions(-)
+
+diff --git a/man/systemd.journal-fields.xml b/man/systemd.journal-fields.xml
+index aa32693..c4187b2 100644
+--- a/man/systemd.journal-fields.xml
++++ b/man/systemd.journal-fields.xml
+@@ -74,9 +74,11 @@
+ message string for this
+ entry. This is supposed to be
+ the primary text shown to the
+- user. It is not translated,
+- and is not supposed to be
+- parsed for meta data.</para>
++ user. It is usually not
++ translated (but might be in
++ some cases), and is not
++ supposed to be parsed for meta
++ data.</para>
+ </listitem>
+ </varlistentry>
+
diff --git a/0331-systemd-analyze-switch-to-python-getopt-for-argument.patch b/0331-systemd-analyze-switch-to-python-getopt-for-argument.patch
new file mode 100644
index 0000000..e65a842
--- /dev/null
+++ b/0331-systemd-analyze-switch-to-python-getopt-for-argument.patch
@@ -0,0 +1,124 @@
+From 688f67a34d73caea731ab70fff753efb09d5f27d Mon Sep 17 00:00:00 2001
+From: Shawn Landden <shawnlandden at gmail.com>
+Date: Thu, 3 May 2012 16:41:40 -0700
+Subject: [PATCH] systemd-analyze: switch to python getopt for argument
+ parsing
+
+this uses gnu style getopt, so you can put the opts at the end: (e.g.)
+systemd-analyze blame --user
+
+v4
+(cherry picked from commit 927735238d1cfe9bd9d9db71025e801c391cb156)
+---
+ src/analyze/systemd-analyze | 65 ++++++++++++++++++++++++++++++-------------
+ 1 file changed, 46 insertions(+), 19 deletions(-)
+
+diff --git a/src/analyze/systemd-analyze b/src/analyze/systemd-analyze
+index ad7bd9a..5d451c3 100755
+--- a/src/analyze/systemd-analyze
++++ b/src/analyze/systemd-analyze
+@@ -1,6 +1,10 @@
+ #!/usr/bin/python
+
+-import dbus, sys
++import getopt, dbus, sys, os
++try:
++ import cairo
++except ImportError:
++ cairo = None
+
+ def acquire_time_data():
+
+@@ -68,7 +72,7 @@ def draw_text(context, x, y, text, size = 12, r = 0, g = 0, b = 0, vcenter = 0.5
+
+ context.restore()
+
+-def help():
++def usage():
+ sys.stdout.write("""systemd-analyze [--user] time
+ systemd-analyze [--user] blame
+ systemd-analyze [--user] plot
+@@ -78,16 +82,11 @@ Process systemd profiling information
+ -h --help Show this help
+ """)
+
++def help():
++ usage()
++ sys.exit()
+
+-bus = dbus.SystemBus()
+-command_index = 1
+-
+-if len(sys.argv) > 1 and sys.argv[1] == '--user':
+- bus = dbus.SessionBus()
+- command_index = 2
+-
+-
+-if len(sys.argv) <= command_index or sys.argv[command_index] == 'time':
++def time():
+
+ initrd_time, start_time, finish_time = acquire_start_time()
+
+@@ -104,7 +103,7 @@ if len(sys.argv) <= command_index or sys.argv[command_index] == 'time':
+ finish_time/1000)
+
+
+-elif sys.argv[command_index] == 'blame':
++def blame():
+
+ data = acquire_time_data()
+ s = sorted(data, key = lambda i: i[2] - i[1], reverse = True)
+@@ -119,9 +118,10 @@ elif sys.argv[command_index] == 'blame':
+
+ sys.stdout.write("%6lums %s\n" % ((aet - ixt) / 1000, name))
+
+-elif sys.argv[command_index] == 'plot':
+- import cairo, os
+-
++def plot():
++ if cairo is None:
++ sys.stderr.write("Failed to initilize python-cairo required for 'plot' verb.\n")
++ sys.exit(1)
+ initrd_time, start_time, finish_time = acquire_start_time()
+ data = acquire_time_data()
+ s = sorted(data, key = lambda i: i[1])
+@@ -275,8 +275,35 @@ elif sys.argv[command_index] == 'plot':
+ finish_time/1000), hcenter = 0, vcenter = -1)
+
+ surface.finish()
+-elif sys.argv[command_index] in ("help", "--help", "-h"):
+- help()
+-else:
+- sys.stderr.write("Unknown verb '%s'.\n" % sys.argv[command_index])
++
++def unknown_verb():
++ sys.stderr.write("Unknown verb '%s'.\n" % args[0])
++ usage()
+ sys.exit(1)
++
++bus = dbus.SystemBus()
++
++try:
++ opts, args = getopt.gnu_getopt(sys.argv[1:], "h", ["help", "user"])
++except getopt.GetoptError, err:
++ print str(err)
++ usage()
++ sys.exit(2)
++for o, a in opts:
++ if o in ("-h", "--help"):
++ help()
++ elif o == '--user':
++ bus = dbus.SessionBus()
++ else:
++ assert False, "unhandled option"
++
++verb = {'time' : time,
++ 'blame': blame,
++ 'plot' : plot,
++ 'help' : help,
++ }
++
++if len(args) == 0:
++ time()
++else:
++ verb.get(args[0], unknown_verb)()
diff --git a/0332-Fixed-handling-of-posix_fallocate-returned-value.patch b/0332-Fixed-handling-of-posix_fallocate-returned-value.patch
new file mode 100644
index 0000000..89aad87
--- /dev/null
+++ b/0332-Fixed-handling-of-posix_fallocate-returned-value.patch
@@ -0,0 +1,39 @@
+From 4a06ef92d76078e1a09c3ae35abb562f27166b39 Mon Sep 17 00:00:00 2001
+From: Guillermo Vidal <guillermo.vidal at continental-corporation.com>
+Date: Wed, 9 May 2012 13:43:34 -0500
+Subject: [PATCH] Fixed handling of posix_fallocate() returned value
+
+According to the man pages of posix_fallocate, it returns zero on
+success or an error number on failure; however, errno is not set
+on failure. If the kernel or a library other than glibc does not
+support the function for example, EOPNOTSUPP will be returned and
+the error will not be handled properly with original code.
+(cherry picked from commit fec2aa2f9ee0748fdb7148613b8a359d246cc32a)
+---
+ src/journal/journal-file.c | 6 ++++--
+ 1 file changed, 4 insertions(+), 2 deletions(-)
+
+diff --git a/src/journal/journal-file.c b/src/journal/journal-file.c
+index a4df704..4fb416f 100644
+--- a/src/journal/journal-file.c
++++ b/src/journal/journal-file.c
+@@ -188,6 +188,7 @@ static int journal_file_verify_header(JournalFile *f) {
+
+ static int journal_file_allocate(JournalFile *f, uint64_t offset, uint64_t size) {
+ uint64_t old_size, new_size;
++ int r;
+
+ assert(f);
+
+@@ -232,8 +233,9 @@ static int journal_file_allocate(JournalFile *f, uint64_t offset, uint64_t size)
+ /* Note that the glibc fallocate() fallback is very
+ inefficient, hence we try to minimize the allocation area
+ as we can. */
+- if (posix_fallocate(f->fd, old_size, new_size - old_size) < 0)
+- return -errno;
++ r = posix_fallocate(f->fd, old_size, new_size - old_size);
++ if (r != 0)
++ return -r;
+
+ if (fstat(f->fd, &f->last_stat) < 0)
+ return -errno;
diff --git a/0333-cgtop-change-default-depth-to-3.patch b/0333-cgtop-change-default-depth-to-3.patch
new file mode 100644
index 0000000..e3939fb
--- /dev/null
+++ b/0333-cgtop-change-default-depth-to-3.patch
@@ -0,0 +1,38 @@
+From fdab96a080b6e577ff74f9abcbde24dc6318bf88 Mon Sep 17 00:00:00 2001
+From: Lennart Poettering <lennart at poettering.net>
+Date: Tue, 22 May 2012 01:48:40 +0200
+Subject: [PATCH] cgtop: change default depth to 3
+
+https://bugs.freedesktop.org/show_bug.cgi?id=49778
+(cherry picked from commit 30edf1161600fe1b18f30264f05b4f602eb0e8a3)
+---
+ man/systemd-cgtop.xml | 2 +-
+ src/cgtop/cgtop.c | 2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/man/systemd-cgtop.xml b/man/systemd-cgtop.xml
+index 2d67ae5..5149021 100644
+--- a/man/systemd-cgtop.xml
++++ b/man/systemd-cgtop.xml
+@@ -166,7 +166,7 @@
+ the root group is monitored, for 1
+ only the first level of control groups
+ is monitored, and so on. Defaults to
+- 2.</para></listitem>
++ 3.</para></listitem>
+ </varlistentry>
+
+ </variablelist>
+diff --git a/src/cgtop/cgtop.c b/src/cgtop/cgtop.c
+index 33d351b..b8cf3b7 100644
+--- a/src/cgtop/cgtop.c
++++ b/src/cgtop/cgtop.c
+@@ -54,7 +54,7 @@ typedef struct Group {
+ uint64_t io_input_bps, io_output_bps;
+ } Group;
+
+-static unsigned arg_depth = 2;
++static unsigned arg_depth = 3;
+ static usec_t arg_delay = 1*USEC_PER_SEC;
+
+ static enum {
diff --git a/0334-service-schedule-JOB_RESTART-from-SERVICE_AUTO_RESTA.patch b/0334-service-schedule-JOB_RESTART-from-SERVICE_AUTO_RESTA.patch
new file mode 100644
index 0000000..35e44bd
--- /dev/null
+++ b/0334-service-schedule-JOB_RESTART-from-SERVICE_AUTO_RESTA.patch
@@ -0,0 +1,32 @@
+From 17549f658dd9858075875412931f4a245d5ad621 Mon Sep 17 00:00:00 2001
+From: David Ward <david.ward at ll.mit.edu>
+Date: Mon, 2 Apr 2012 23:45:35 -0400
+Subject: [PATCH] service: schedule JOB_RESTART from SERVICE_AUTO_RESTART
+ state
+
+Fixes: https://bugs.freedesktop.org/show_bug.cgi?id=45511
+(cherry picked from commit 48bb58769a00e8e50a617ebbfff84599a0350fa5)
+---
+ src/core/service.c | 9 ++++++---
+ 1 file changed, 6 insertions(+), 3 deletions(-)
+
+diff --git a/src/core/service.c b/src/core/service.c
+index 7ce2e72..9fffb08 100644
+--- a/src/core/service.c
++++ b/src/core/service.c
+@@ -2234,9 +2234,12 @@ static void service_enter_restart(Service *s) {
+ goto fail;
+ }
+
+- service_enter_dead(s, SERVICE_SUCCESS, false);
+-
+- if ((r = manager_add_job(UNIT(s)->manager, JOB_START, UNIT(s), JOB_FAIL, false, &error, NULL)) < 0)
++ /* Any units that are bound to this service must also be
++ * restarted. We use JOB_RESTART (instead of the more obvious
++ * JOB_START) here so that those dependency jobs will be added
++ * as well. */
++ r = manager_add_job(UNIT(s)->manager, JOB_RESTART, UNIT(s), JOB_FAIL, false, &error, NULL);
++ if (r < 0)
+ goto fail;
+
+ log_debug("%s scheduled restart job.", UNIT(s)->id);
diff --git a/0335-service-actually-delay-auto-restart-if-another-job-i.patch b/0335-service-actually-delay-auto-restart-if-another-job-i.patch
new file mode 100644
index 0000000..55def77
--- /dev/null
+++ b/0335-service-actually-delay-auto-restart-if-another-job-i.patch
@@ -0,0 +1,25 @@
+From 71e7872f6c61368ecb0a76bba02d34b3fcb1467c Mon Sep 17 00:00:00 2001
+From: David Ward <david.ward at ll.mit.edu>
+Date: Sun, 29 Apr 2012 09:35:40 -0400
+Subject: [PATCH] service: actually delay auto-restart if another job is
+ pending
+
+https://bugs.freedesktop.org/show_bug.cgi?id=45511
+(cherry picked from commit feae8adb848e26110b28a06d1244e02f36cdf382)
+---
+ src/core/service.c | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/src/core/service.c b/src/core/service.c
+index 9fffb08..89f56ca 100644
+--- a/src/core/service.c
++++ b/src/core/service.c
+@@ -2232,6 +2232,8 @@ static void service_enter_restart(Service *s) {
+
+ if ((r = unit_watch_timer(UNIT(s), s->restart_usec, &s->timer_watch)) < 0)
+ goto fail;
++
++ return;
+ }
+
+ /* Any units that are bound to this service must also be
diff --git a/0336-service-fix-auto-restart-handling-in-service_stop.patch b/0336-service-fix-auto-restart-handling-in-service_stop.patch
new file mode 100644
index 0000000..33a131b
--- /dev/null
+++ b/0336-service-fix-auto-restart-handling-in-service_stop.patch
@@ -0,0 +1,49 @@
+From 6394fc7a0737becd995c990fc12cdf03b8f408f0 Mon Sep 17 00:00:00 2001
+From: David Ward <david.ward at ll.mit.edu>
+Date: Sun, 29 Apr 2012 09:35:48 -0400
+Subject: [PATCH] service: fix auto-restart handling in service_stop()
+
+When service_stop() handles a service in the SERVICE_AUTO_RESTART state,
+it calls service_set_state() to transition it to the SERVICE_DEAD state.
+However if the service failed, it should transition it to SERVICE_FAILED
+instead, which will trigger its OnFailure units. To achieve this, we now
+call service_enter_dead() in place of service_set_state(), which will
+transition the service to either SERVICE_DEAD or SERVICE_FAILED as is
+appropriate.
+
+Also, some misleading comments are adjusted: service_stop() is not only
+called on a user request, but also during an automatic restart in order
+to handle dependencies.
+
+Fixes: https://bugs.freedesktop.org/show_bug.cgi?id=45511
+(cherry picked from commit f0c7b229e1aba12488ffb3ca39f606cc93291f55)
+---
+ src/core/service.c | 7 +++----
+ 1 file changed, 3 insertions(+), 4 deletions(-)
+
+diff --git a/src/core/service.c b/src/core/service.c
+index 89f56ca..7841195 100644
+--- a/src/core/service.c
++++ b/src/core/service.c
+@@ -2460,8 +2460,7 @@ static int service_stop(Unit *u) {
+
+ assert(s);
+
+- /* This is a user request, so don't do restarts on this
+- * shutdown. */
++ /* Don't create restart jobs from here. */
+ s->forbid_restart = true;
+
+ /* Already on it */
+@@ -2473,9 +2472,9 @@ static int service_stop(Unit *u) {
+ s->state == SERVICE_FINAL_SIGKILL)
+ return 0;
+
+- /* Don't allow a restart */
++ /* A restart will be scheduled or is in progress. */
+ if (s->state == SERVICE_AUTO_RESTART) {
+- service_set_state(s, SERVICE_DEAD);
++ service_enter_dead(s, SERVICE_SUCCESS, false);
+ return 0;
+ }
+
diff --git a/0337-service-fix-auto-restart-handling-in-service_start.patch b/0337-service-fix-auto-restart-handling-in-service_start.patch
new file mode 100644
index 0000000..ca4c961
--- /dev/null
+++ b/0337-service-fix-auto-restart-handling-in-service_start.patch
@@ -0,0 +1,34 @@
+From ceab730091b00a211f6978d81ea7ae58ada3aa89 Mon Sep 17 00:00:00 2001
+From: David Ward <david.ward at ll.mit.edu>
+Date: Sun, 29 Apr 2012 09:35:51 -0400
+Subject: [PATCH] service: fix auto-restart handling in service_start()
+
+Do not bypass the SERVICE_DEAD/SERVICE_FAILED state by manually issuing
+a start job while an automatic restart is pending.
+(cherry picked from commit 2e9d6c1251abc0af9aa5bc53610bd522d55be776)
+---
+ src/core/service.c | 11 ++++++++++-
+ 1 file changed, 10 insertions(+), 1 deletion(-)
+
+diff --git a/src/core/service.c b/src/core/service.c
+index 7841195..3abb729 100644
+--- a/src/core/service.c
++++ b/src/core/service.c
+@@ -2436,7 +2436,16 @@ static int service_start(Unit *u) {
+ s->state == SERVICE_START_POST)
+ return 0;
+
+- assert(s->state == SERVICE_DEAD || s->state == SERVICE_FAILED || s->state == SERVICE_AUTO_RESTART);
++ /* A service that will be restarted must be stopped first to
++ * trigger BindTo and/or OnFailure dependencies. If a user
++ * does not want to wait for the holdoff time to elapse, the
++ * service should be manually restarted, not started. */
++ if (s->state == SERVICE_AUTO_RESTART) {
++ log_warning("%s automatic restart is pending, must be stopped before issuing start request.", UNIT(s)->id);
++ return -ECANCELED;
++ }
++
++ assert(s->state == SERVICE_DEAD || s->state == SERVICE_FAILED);
+
+ /* Make sure we don't enter a busy loop of some kind. */
+ r = service_start_limit_test(s);
diff --git a/0338-mount-use-the-same-fstab-extension-option-syntax-eve.patch b/0338-mount-use-the-same-fstab-extension-option-syntax-eve.patch
new file mode 100644
index 0000000..ed07dfc
--- /dev/null
+++ b/0338-mount-use-the-same-fstab-extension-option-syntax-eve.patch
@@ -0,0 +1,71 @@
+From 5d03cc1e81d0b2be3647f61973f259795b13b77f Mon Sep 17 00:00:00 2001
+From: Lennart Poettering <lennart at poettering.net>
+Date: Tue, 22 May 2012 02:00:53 +0200
+Subject: [PATCH] mount: use the same fstab extension option syntax everywhere
+
+The man page and the actual code differed, and this is now corrected
+(cherry picked from commit 92a39ae1989a7583d696afd4c89990aea802e9ea)
+
+Conflicts:
+ src/core/mount.c
+
+F17: keep the old x-systemd-* options in addition to the new ones.
+---
+ man/systemd.mount.xml | 11 ++++-------
+ src/core/mount.c | 7 +++++--
+ 2 files changed, 9 insertions(+), 9 deletions(-)
+
+diff --git a/man/systemd.mount.xml b/man/systemd.mount.xml
+index 8f1cc51..a4e01fd 100644
+--- a/man/systemd.mount.xml
++++ b/man/systemd.mount.xml
+@@ -109,12 +109,9 @@
+ <para>When reading <filename>/etc/fstab</filename> a
+ few special mount options are understood by systemd
+ which influence how dependencies are created for mount
+- points from <filename>/etc/fstab</filename>. If
+- <option>MountAuto=yes</option> is set in
+- <filename>system.conf</filename> (which is the
+- default), or if <option>x-systemd.mount</option> is
+- specified as mount option, then systemd will create a
+- dependency of type <option>Wants</option> from either
++ points from <filename>/etc/fstab</filename>. systemd
++ will create a dependency of type
++ <option>Wants</option> from either
+ <filename>local-fs.target</filename> or
+ <filename>remote-fs.target</filename>, depending
+ whether the file system is local or remote. If
+@@ -123,7 +120,7 @@
+ system. See
+ <citerefentry><refentrytitle>systemd.automount</refentrytitle><manvolnum>5</manvolnum></citerefentry>
+ for details. If
+- <option>x-systemd-device-timeout=</option> is
++ <option>x-systemd.device-timeout=</option> is
+ specified it may be used to configure how long systemd
+ should wait for a device to show up before giving up
+ on an entry from
+diff --git a/src/core/mount.c b/src/core/mount.c
+index e7a1c58..ffe1b2c 100644
+--- a/src/core/mount.c
++++ b/src/core/mount.c
+@@ -358,7 +358,8 @@ static int mount_add_fstab_links(Mount *m) {
+ nofail = !!mount_test_option(p->options, "nofail");
+ automount =
+ mount_test_option(p->options, "comment=systemd.automount") ||
+- mount_test_option(p->options, "x-systemd-automount");
++ mount_test_option(p->options, "x-systemd.automount") ||
++ mount_test_option(p->options, "x-systemd-automount"); /* F17 compat */
+ handle =
+ automount ||
+ mount_test_option(p->options, "comment=systemd.mount") ||
+@@ -520,7 +521,9 @@ static int mount_fix_timeouts(Mount *m) {
+
+ if ((timeout = mount_test_option(p->options, "comment=systemd.device-timeout")))
+ timeout += 31;
+- else if ((timeout = mount_test_option(p->options, "x-systemd-device-timeout")))
++ else if ((timeout = mount_test_option(p->options, "x-systemd.device-timeout")))
++ timeout += 25;
++ else if ((timeout = mount_test_option(p->options, "x-systemd-device-timeout"))) /* F17 compat */
+ timeout += 25;
+ else
+ return 0;
diff --git a/systemd.spec b/systemd.spec
index 0e671d3..7a26b4a 100644
--- a/systemd.spec
+++ b/systemd.spec
@@ -3,7 +3,7 @@
Name: systemd
Url: http://www.freedesktop.org/wiki/Software/systemd
Version: 44
-Release: 11%{?gitcommit:.git%{gitcommit}}%{?dist}
+Release: 12%{?gitcommit:.git%{gitcommit}}%{?dist}
License: GPLv2+
Group: System Environment/Base
Summary: A System and Service Manager
@@ -389,6 +389,15 @@ Patch0326: 0326-journald-fix-length-of-SYSLOG_IDENTIFIER.patch
Patch0327: 0327-journald-one-more-SYSLOG_IDENTIFIER-length-fix.patch
Patch0328: 0328-main-allow-system-wide-limits-for-services.patch
Patch0329: 0329-F17-fix-manpage-names.patch
+Patch0330: 0330-man-relax-wording-in-journal-fields-7-a-bit.patch
+Patch0331: 0331-systemd-analyze-switch-to-python-getopt-for-argument.patch
+Patch0332: 0332-Fixed-handling-of-posix_fallocate-returned-value.patch
+Patch0333: 0333-cgtop-change-default-depth-to-3.patch
+Patch0334: 0334-service-schedule-JOB_RESTART-from-SERVICE_AUTO_RESTA.patch
+Patch0335: 0335-service-actually-delay-auto-restart-if-another-job-i.patch
+Patch0336: 0336-service-fix-auto-restart-handling-in-service_stop.patch
+Patch0337: 0337-service-fix-auto-restart-handling-in-service_start.patch
+Patch0338: 0338-mount-use-the-same-fstab-extension-option-syntax-eve.patch
# For sysvinit tools
Obsoletes: SysVinit < 2.86-24, sysvinit < 2.86-24
@@ -765,6 +774,9 @@ mv /etc/systemd/system/default.target.save /etc/systemd/system/default.target >/
%{_bindir}/systemd-analyze
%changelog
+* Tue May 22 2012 Michal Schmidt <mschmidt at redhat.com> - 44-12
+- Fixes for auto-restart (#817968, fdo#45511)
+
* Mon May 21 2012 Michal Schmidt <mschmidt at redhat.com> - 44-11
- Fix weird "TIFIER=" messages in syslog (#823498)
- Revert ReleaseSession patch (#823485)
More information about the scm-commits
mailing list