diff options
Diffstat (limited to 'deps/elogind/patches')
-rw-r--r-- | deps/elogind/patches/elogind-219.12-runtime.patch | 46 | ||||
-rw-r--r-- | deps/elogind/patches/elogind-219.12-session.patch | 45 | ||||
-rw-r--r-- | deps/elogind/patches/elogind-docs.patch | 19 | ||||
-rw-r--r-- | deps/elogind/patches/elogind-lrt.patch | 10 | ||||
-rw-r--r-- | deps/elogind/patches/elogind-polkit.patch | 121 |
5 files changed, 241 insertions, 0 deletions
diff --git a/deps/elogind/patches/elogind-219.12-runtime.patch b/deps/elogind/patches/elogind-219.12-runtime.patch new file mode 100644 index 0000000..985dc57 --- /dev/null +++ b/deps/elogind/patches/elogind-219.12-runtime.patch @@ -0,0 +1,46 @@ +Taken from Gentoo: +https://gitweb.gentoo.org/repo/gentoo.git/plain/sys-auth/elogind/files/elogind-219.12-runtime.patch + +From 276746896985c438d317fcae414e9c83a6dd3d76 Mon Sep 17 00:00:00 2001 +From: Sven Eden <yamakuzure@gmx.net> +Date: Fri, 20 Jan 2017 17:14:35 +0100 +Subject: [PATCH] Create /run/systemd as needed + +* src/login/logind.c (main): Also create /run/systemd at startup. +* Create /run/systemd/machines, so that the login monitor works. +* Fail if any of the needed directories could not be created. +* But do not fail if any of the needed directories exist. +--- + src/login/logind.c | 18 +++++++++++++++--- + 1 file changed, 15 insertions(+), 3 deletions(-) + +diff --git a/src/login/logind.c b/src/login/logind.c +index 1ab50ec..07a77b1 100644 +--- a/src/login/logind.c ++++ b/src/login/logind.c +@@ -1131,10 +1131,21 @@ int main(int argc, char *argv[]) { + * existence of /run/systemd/seats/ to determine whether + * logind is available, so please always make sure this check + * stays in. */ +- mkdir_label("/run/systemd/seats", 0755); +- mkdir_label("/run/systemd/users", 0755); +- mkdir_label("/run/systemd/sessions", 0755); +- mkdir_label("/run/systemd/machines", 0755); ++ r = mkdir_label("/run/systemd", 0755); ++ if ( (r < 0) && (-EEXIST != r) ) ++ return log_error_errno(r, "Failed to create /run/systemd : %m"); ++ r = mkdir_label("/run/systemd/seats", 0755); ++ if ( r < 0 && (-EEXIST != r) ) ++ return log_error_errno(r, "Failed to create /run/systemd/seats : %m"); ++ r = mkdir_label("/run/systemd/users", 0755); ++ if ( r < 0 && (-EEXIST != r) ) ++ return log_error_errno(r, "Failed to create /run/systemd/users : %m"); ++ r = mkdir_label("/run/systemd/sessions", 0755); ++ if ( r < 0 && (-EEXIST != r) ) ++ return log_error_errno(r, "Failed to create /run/systemd/sessions : %m"); ++ r = mkdir_label("/run/systemd/machines", 0755); ++ if ( r < 0 && (-EEXIST != r) ) ++ return log_error_errno(r, "Failed to create /run/systemd/machines : %m"); + + m = manager_new(); + if (!m) { diff --git a/deps/elogind/patches/elogind-219.12-session.patch b/deps/elogind/patches/elogind-219.12-session.patch new file mode 100644 index 0000000..82cbebd --- /dev/null +++ b/deps/elogind/patches/elogind-219.12-session.patch @@ -0,0 +1,45 @@ +From b5c5dd2ad43a3bf4fa0fb21139f8d16959b5d14e Mon Sep 17 00:00:00 2001 +From: Andy Wingo <wingo@pobox.com> +Date: Sun, 6 Mar 2016 16:56:33 +0100 +Subject: [PATCH] Fixes to user and session saving + +* src/login/logind-dbus.c (method_create_session): No need to save + session here, as session_send_create_reply will do it. +* src/login/logind-session-dbus.c (session_send_create_reply): On the + other hand we do need to save the user here, so the file marks them as + being active. +--- + src/login/logind-dbus.c | 2 -- + src/login/logind-session-dbus.c | 5 +++-- + 2 files changed, 3 insertions(+), 4 deletions(-) + +diff --git a/src/login/logind-dbus.c b/src/login/logind-dbus.c +index 5e6952d..6f7e569 100644 +--- a/src/login/logind-dbus.c ++++ b/src/login/logind-dbus.c +@@ -801,8 +801,6 @@ static int method_create_session(sd_bus *bus, sd_bus_message *message, void *use + if (r < 0) + goto fail; + +- session_save(session); +- + return 1; + + fail: +diff --git a/src/login/logind-session-dbus.c b/src/login/logind-session-dbus.c +index f71798b..337bbbb 100644 +--- a/src/login/logind-session-dbus.c ++++ b/src/login/logind-session-dbus.c +@@ -721,9 +721,10 @@ int session_send_create_reply(Session *s, sd_bus_error *error) { + if (fifo_fd < 0) + return fifo_fd; + +- /* Update the session state file before we notify the client +- * about the result. */ ++ /* Update the session and user state files before we notify ++ * the client about the result. */ + session_save(s); ++ user_save(s->user); + + p = session_bus_path(s); + if (!p) diff --git a/deps/elogind/patches/elogind-docs.patch b/deps/elogind/patches/elogind-docs.patch new file mode 100644 index 0000000..4763be2 --- /dev/null +++ b/deps/elogind/patches/elogind-docs.patch @@ -0,0 +1,19 @@ +--- a/Makefile.am ++++ b/Makefile.am +@@ -253,16 +253,6 @@ + dist_bashcompletion_DATA = + dist_zshcompletion_DATA = + +-dist_doc_DATA = \ +- README \ +- NEWS \ +- LICENSE.LGPL2.1 \ +- LICENSE.GPL2 \ +- LICENSE.MIT \ +- src/libelogind/sd-bus/PORTING-DBUS1 \ +- src/libelogind/sd-bus/DIFFERENCES \ +- src/libelogind/sd-bus/GVARIANT-SERIALIZATION +- + @INTLTOOL_POLICY_RULE@ + + # ------------------------------------------------------------------------------ diff --git a/deps/elogind/patches/elogind-lrt.patch b/deps/elogind/patches/elogind-lrt.patch new file mode 100644 index 0000000..19055fa --- /dev/null +++ b/deps/elogind/patches/elogind-lrt.patch @@ -0,0 +1,10 @@ +--- a/Makefile.am ++++ b/Makefile.am +@@ -778,6 +778,7 @@ + + libelogind_core_la_LIBADD = \ + $(UDEV_LIBS) \ ++ -lrt \ + libelogind-internal.la + + if HAVE_ACL diff --git a/deps/elogind/patches/elogind-polkit.patch b/deps/elogind/patches/elogind-polkit.patch new file mode 100644 index 0000000..4d91b98 --- /dev/null +++ b/deps/elogind/patches/elogind-polkit.patch @@ -0,0 +1,121 @@ +Update org.freedesktop.login1.conf +This mirrors an upstream change opening up all of logind's bus calls to +unprivileged users via polkit. + +See systemd/systemd#471. +Closes #3. + +diff -uar a/src/login/org.freedesktop.login1.conf b/src/login/org.freedesktop.login1.conf +--- a/src/login/org.freedesktop.login1.conf ++++ b/src/login/org.freedesktop.login1.conf +@@ -90,6 +90,42 @@ + + <allow send_destination="org.freedesktop.login1" + send_interface="org.freedesktop.login1.Manager" ++ send_member="LockSession"/> ++ ++ <allow send_destination="org.freedesktop.login1" ++ send_interface="org.freedesktop.login1.Manager" ++ send_member="UnlockSession"/> ++ ++ <allow send_destination="org.freedesktop.login1" ++ send_interface="org.freedesktop.login1.Manager" ++ send_member="LockSessions"/> ++ ++ <allow send_destination="org.freedesktop.login1" ++ send_interface="org.freedesktop.login1.Manager" ++ send_member="UnlockSessions"/> ++ ++ <allow send_destination="org.freedesktop.login1" ++ send_interface="org.freedesktop.login1.Manager" ++ send_member="KillSession"/> ++ ++ <allow send_destination="org.freedesktop.login1" ++ send_interface="org.freedesktop.login1.Manager" ++ send_member="KillUser"/> ++ ++ <allow send_destination="org.freedesktop.login1" ++ send_interface="org.freedesktop.login1.Manager" ++ send_member="TerminateSession"/> ++ ++ <allow send_destination="org.freedesktop.login1" ++ send_interface="org.freedesktop.login1.Manager" ++ send_member="TerminateUser"/> ++ ++ <allow send_destination="org.freedesktop.login1" ++ send_interface="org.freedesktop.login1.Manager" ++ send_member="TerminateSeat"/> ++ ++ <allow send_destination="org.freedesktop.login1" ++ send_interface="org.freedesktop.login1.Manager" + send_member="PowerOff"/> + + <allow send_destination="org.freedesktop.login1" + @@ -130,6 +166,10 @@ + + <allow send_destination="org.freedesktop.login1" + send_interface="org.freedesktop.login1.Manager" ++ send_member="SetWallMessage"/> ++ ++ <allow send_destination="org.freedesktop.login1" ++ send_interface="org.freedesktop.login1.Manager" + send_member="AttachDevice"/> + + <allow send_destination="org.freedesktop.login1" + @@ -138,6 +178,10 @@ + + <allow send_destination="org.freedesktop.login1" + send_interface="org.freedesktop.login1.Seat" ++ send_member="Terminate"/> ++ ++ <allow send_destination="org.freedesktop.login1" ++ send_interface="org.freedesktop.login1.Seat" + send_member="ActivateSession"/> + + <allow send_destination="org.freedesktop.login1" + @@ -154,14 +198,30 @@ + + <allow send_destination="org.freedesktop.login1" + send_interface="org.freedesktop.login1.Session" ++ send_member="Terminate"/> ++ ++ <allow send_destination="org.freedesktop.login1" ++ send_interface="org.freedesktop.login1.Session" + send_member="Activate"/> + + <allow send_destination="org.freedesktop.login1" + send_interface="org.freedesktop.login1.Session" ++ send_member="Lock"/> ++ ++ <allow send_destination="org.freedesktop.login1" ++ send_interface="org.freedesktop.login1.Session" ++ send_member="Unlock"/> ++ ++ <allow send_destination="org.freedesktop.login1" ++ send_interface="org.freedesktop.login1.Session" + send_member="SetIdleHint"/> + + <allow send_destination="org.freedesktop.login1" + send_interface="org.freedesktop.login1.Session" ++ send_member="Kill"/> ++ ++ <allow send_destination="org.freedesktop.login1" ++ send_interface="org.freedesktop.login1.Session" + send_member="TakeControl"/> + + <allow send_destination="org.freedesktop.login1" + @@ -180,6 +240,14 @@ + send_interface="org.freedesktop.login1.Session" + send_member="PauseDeviceComplete"/> + ++ <allow send_destination="org.freedesktop.login1" ++ send_interface="org.freedesktop.login1.User" ++ send_member="Terminate"/> ++ ++ <allow send_destination="org.freedesktop.login1" ++ send_interface="org.freedesktop.login1.User" ++ send_member="Kill"/> ++ + <allow receive_sender="org.freedesktop.login1"/> + </policy> + |