diff options
author | BlackNoxis <steven.darklight@gmail.com> | 2014-02-15 23:46:04 +0200 |
---|---|---|
committer | BlackNoxis <steven.darklight@gmail.com> | 2014-02-15 23:46:04 +0200 |
commit | bf9f773fb3fcefed199cd8af38b65f77b347c80c (patch) | |
tree | 29763323c9faaaae5ccf3a86084f0ca2a33a0413 /kde-base/kdm/files/kde-workspace-4.8.0-bug796969.patch | |
parent | 5acba24490a47edca8a38013461675a41f442f53 (diff) |
Added already splitted ebuilds for KDE
Diffstat (limited to 'kde-base/kdm/files/kde-workspace-4.8.0-bug796969.patch')
-rw-r--r-- | kde-base/kdm/files/kde-workspace-4.8.0-bug796969.patch | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/kde-base/kdm/files/kde-workspace-4.8.0-bug796969.patch b/kde-base/kdm/files/kde-workspace-4.8.0-bug796969.patch new file mode 100644 index 00000000..16e29388 --- /dev/null +++ b/kde-base/kdm/files/kde-workspace-4.8.0-bug796969.patch @@ -0,0 +1,37 @@ +per https://bugzilla.redhat.com/show_bug.cgi?id=796969#c23 +The process that executes kdm/backend/session.c:manageSession() is the leader +process of the logind session. + +manageSession() calls: + + blockTerm(); + clientExited(); + unblockTerm(); + +where clientExited() ends the PAM session. +With the current systemd-logind, ending the PAM session will cause the leader +process to be delivered SIGHUP and SIGTERM. The process will die and the +remainder of manageSession() will not be executed. + +Interestingly, at the end of the function there's a call to sessionExit(), +which calls clientExited() again. + +Removing the three lines quoted above makes reboot from KDE work again. I +haven't noticed any bad effects. + +diff -up kde-workspace-4.8.0/kdm/backend/session.c.bz796969 kde-workspace-4.8.0/kdm/backend/session.c +--- kde-workspace-4.8.0/kdm/backend/session.c.bz796969 2012-01-18 14:08:40.000000000 -0600 ++++ kde-workspace-4.8.0/kdm/backend/session.c 2012-02-28 07:17:16.270219932 -0600 +@@ -662,9 +662,9 @@ manageSession(void) + sessionExit(EX_AL_RESERVER_DPY); + } + +- blockTerm(); +- clientExited(); +- unblockTerm(); ++ /* blockTerm(); */ ++ /* clientExited(); */ ++ /* unblockTerm(); */ + + gSet(&mstrtalk); + gSendInt(D_UnUser); |