From 8849a113045325dc263719384074ee2cc5836de3 Mon Sep 17 00:00:00 2001 From: Juan RP Date: Sun, 28 Jul 2013 10:09:48 +0200 Subject: [PATCH] systemd: add 2 commits from git master for https://bugs.freedesktop.org/show_bug.cgi?id=67273 --- srcpkgs/libudev/template | 4 +- ...65855edef5b7103cb09d114377d477bfae02.patch | 71 +++++++++++++++++ ...8758b4d49c6fe7c2f0eea255e11ee9df23eb.patch | 77 +++++++++++++++++++ srcpkgs/systemd/patches/series | 2 + srcpkgs/systemd/template | 2 +- 5 files changed, 153 insertions(+), 3 deletions(-) create mode 100644 srcpkgs/systemd/patches/76e665855edef5b7103cb09d114377d477bfae02.patch create mode 100644 srcpkgs/systemd/patches/cba38758b4d49c6fe7c2f0eea255e11ee9df23eb.patch create mode 100644 srcpkgs/systemd/patches/series diff --git a/srcpkgs/libudev/template b/srcpkgs/libudev/template index 99375ee918b..1f46dfc17b5 100644 --- a/srcpkgs/libudev/template +++ b/srcpkgs/libudev/template @@ -1,13 +1,13 @@ # Template file for 'libudev' pkgname=libudev version=206 -revision=1 +revision=3 wrksrc="systemd-${version}" build_style=gnu-configure configure_args="--libexecdir=/usr/lib --disable-selinux --disable-static --disable-ima --enable-introspection=no --disable-kmod --disable-blkid --disable-chkconfig - --disable-selinux --disable-tcpwrap --disable-pam + --disable-selinux --disable-tcpwrap --disable-pam --disable-tmpfiles --disable-acl --disable-xattr --disable-audit --disable-machined --disable-libcryptsetup --disable-qrencode --disable-microhttpd --disable-binfmt --disable-vconsole --disable-readahead --disable-bootchart diff --git a/srcpkgs/systemd/patches/76e665855edef5b7103cb09d114377d477bfae02.patch b/srcpkgs/systemd/patches/76e665855edef5b7103cb09d114377d477bfae02.patch new file mode 100644 index 00000000000..c50b5e2f30e --- /dev/null +++ b/srcpkgs/systemd/patches/76e665855edef5b7103cb09d114377d477bfae02.patch @@ -0,0 +1,71 @@ +From 76e665855edef5b7103cb09d114377d477bfae02 Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Fri, 26 Jul 2013 16:59:46 +0000 +Subject: logind: update the session state file before we send out the CreateSession() reply + +https://bugs.freedesktop.org/show_bug.cgi?id=67273 +--- +diff --git a/src/login/logind-dbus.c b/src/login/logind-dbus.c +index b5e975a..7b9bd20 100644 +--- src/login/logind-dbus.c ++++ src/login/logind-dbus.c +@@ -2368,9 +2368,8 @@ DBusHandlerResult bus_message_filter( + dbus_set_error(&error, BUS_ERROR_JOB_FAILED, "Start job for unit %s failed with '%s'", unit, result); + session_send_create_reply(s, &error); + } +- } +- +- session_save(s); ++ } else ++ session_save(s); + } + + session_add_to_gc_queue(s); +diff --git a/src/login/logind-session-dbus.c b/src/login/logind-session-dbus.c +index 210f756..2cc4d85 100644 +--- src/login/logind-session-dbus.c ++++ src/login/logind-session-dbus.c +@@ -592,6 +592,10 @@ int session_send_create_reply(Session *s, DBusError *error) { + return log_oom(); + } + ++ /* Update the state file before we notify the client about the ++ * result */ ++ session_save(s); ++ + if (!dbus_connection_send(s->manager->bus, reply, NULL)) + return log_oom(); + +diff --git a/src/machine/machine-dbus.c b/src/machine/machine-dbus.c +index 6e1b8f8..ceab96e 100644 +--- src/machine/machine-dbus.c ++++ src/machine/machine-dbus.c +@@ -350,6 +350,10 @@ int machine_send_create_reply(Machine *m, DBusError *error) { + return log_oom(); + } + ++ /* Update the machine state file before we notify the client ++ * about the result. */ ++ machine_save(m); ++ + if (!dbus_connection_send(m->manager->bus, reply, NULL)) + return log_oom(); + +diff --git a/src/machine/machined-dbus.c b/src/machine/machined-dbus.c +index 6c4d50b..5a016e7 100644 +--- src/machine/machined-dbus.c ++++ src/machine/machined-dbus.c +@@ -551,9 +551,8 @@ DBusHandlerResult bus_message_filter( + dbus_set_error(&error, BUS_ERROR_JOB_FAILED, "Start job for unit %s failed with '%s'", unit, result); + machine_send_create_reply(mm, &error); + } +- } +- +- machine_save(mm); ++ } else ++ machine_save(mm); + } + + machine_add_to_gc_queue(mm); +-- +cgit v0.9.0.2-2-gbebe diff --git a/srcpkgs/systemd/patches/cba38758b4d49c6fe7c2f0eea255e11ee9df23eb.patch b/srcpkgs/systemd/patches/cba38758b4d49c6fe7c2f0eea255e11ee9df23eb.patch new file mode 100644 index 00000000000..57886a262ab --- /dev/null +++ b/srcpkgs/systemd/patches/cba38758b4d49c6fe7c2f0eea255e11ee9df23eb.patch @@ -0,0 +1,77 @@ +From cba38758b4d49c6fe7c2f0eea255e11ee9df23eb Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Fri, 26 Jul 2013 15:32:19 +0000 +Subject: logind: update state file after generating the session fifo, not before + +https://bugs.freedesktop.org/show_bug.cgi?id=67273 +--- +diff --git a/src/login/logind-dbus.c b/src/login/logind-dbus.c +index 39af637..b5e975a 100644 +--- src/login/logind-dbus.c ++++ src/login/logind-dbus.c +@@ -643,6 +643,10 @@ static int bus_manager_create_session(Manager *m, DBusMessage *message) { + + session->create_message = dbus_message_ref(message); + ++ /* Now, let's wait until the slice unit and stuff got ++ * created. We send the reply back from ++ * session_send_create_reply().*/ ++ + return 0; + + fail: +@@ -2356,7 +2360,6 @@ DBusHandlerResult bus_message_filter( + if (streq_ptr(path, s->scope_job)) { + free(s->scope_job); + s->scope_job = NULL; +- session_save(s); + + if (s->started) { + if (streq(result, "done")) +@@ -2366,6 +2369,8 @@ DBusHandlerResult bus_message_filter( + session_send_create_reply(s, &error); + } + } ++ ++ session_save(s); + } + + session_add_to_gc_queue(s); +diff --git a/src/login/logind-session-dbus.c b/src/login/logind-session-dbus.c +index 62b9ffd..210f756 100644 +--- src/login/logind-session-dbus.c ++++ src/login/logind-session-dbus.c +@@ -535,6 +535,10 @@ int session_send_create_reply(Session *s, DBusError *error) { + if (!s->create_message) + return 0; + ++ /* This is called after the session scope was successfully ++ * created, and finishes where bus_manager_create_session() ++ * left off. */ ++ + if (error) { + DBusError buffer; + +diff --git a/src/machine/machined-dbus.c b/src/machine/machined-dbus.c +index 1e8bc60..6c4d50b 100644 +--- src/machine/machined-dbus.c ++++ src/machine/machined-dbus.c +@@ -543,7 +543,6 @@ DBusHandlerResult bus_message_filter( + if (streq_ptr(path, mm->scope_job)) { + free(mm->scope_job); + mm->scope_job = NULL; +- machine_save(mm); + + if (mm->started) { + if (streq(result, "done")) +@@ -553,6 +552,8 @@ DBusHandlerResult bus_message_filter( + machine_send_create_reply(mm, &error); + } + } ++ ++ machine_save(mm); + } + + machine_add_to_gc_queue(mm); +-- +cgit v0.9.0.2-2-gbebe diff --git a/srcpkgs/systemd/patches/series b/srcpkgs/systemd/patches/series new file mode 100644 index 00000000000..01a67a302e4 --- /dev/null +++ b/srcpkgs/systemd/patches/series @@ -0,0 +1,2 @@ +cba38758b4d49c6fe7c2f0eea255e11ee9df23eb.patch +76e665855edef5b7103cb09d114377d477bfae02.patch diff --git a/srcpkgs/systemd/template b/srcpkgs/systemd/template index 95a2dee75f3..6216eeb631a 100644 --- a/srcpkgs/systemd/template +++ b/srcpkgs/systemd/template @@ -1,7 +1,7 @@ # Template file for 'systemd' pkgname=systemd version=206 -revision=2 +revision=3 short_desc="A system and service manager for Linux" maintainer="Juan RP " homepage="http://www.freedesktop.org/wiki/Software/systemd"