blob: f7e361767615a2a63c9ac314201daab4fe720173 [file] [log] [blame]
diff -Naur slim-1.3.5/app.cpp slim-1.3.5.new/app.cpp
--- slim-1.3.5/app.cpp 2012-12-31 08:03:42.000000000 -0500
+++ slim-1.3.5.new/app.cpp 2013-08-22 14:16:37.994854259 -0400
@@ -138,11 +138,14 @@
daemonmode = false;
force_nodaemon = false;
firstlogin = true;
+#ifdef USE_CONSOLEKIT
+ consolekit_support_enabled = true;
+#endif
Dpy = NULL;
/* Parse command line
Note: we force a option for nodaemon switch to handle "-nodaemon" */
- while((tmp = getopt(argc, argv, "vhp:n:d?")) != EOF) {
+ while((tmp = getopt(argc, argv, "vhsp:n:d?")) != EOF) {
switch (tmp) {
case 'p': /* Test theme */
testtheme = optarg;
@@ -163,6 +166,11 @@
std::cout << APPNAME << " version " << VERSION << endl;
exit(OK_EXIT);
break;
+#ifdef USE_CONSOLEKIT
+ case 's': /* Disable consolekit support */
+ consolekit_support_enabled = false;
+ break;
+#endif
case '?': /* Illegal */
logStream << endl;
case 'h': /* Help */
@@ -171,6 +179,9 @@
<< " -d: daemon mode" << endl
<< " -nodaemon: no-daemon mode" << endl
<< " -v: show version" << endl
+#ifdef USE_CONSOLEKIT
+ << " -s: start for systemd, disable consolekit support" << endl
+#endif
<< " -p /path/to/theme/dir: preview theme" << endl;
exit(OK_EXIT);
break;
@@ -559,6 +570,7 @@
#endif
#ifdef USE_CONSOLEKIT
+ if (consolekit_support_enabled) {
/* Setup the ConsoleKit session */
try {
ck.open_session(DisplayName, pw->pw_uid);
@@ -567,6 +579,7 @@
logStream << APPNAME << ": " << e << endl;
exit(ERR_EXIT);
}
+ }
#endif
/* Create new process */
@@ -578,6 +591,7 @@
char** child_env = pam.getenvlist();
# ifdef USE_CONSOLEKIT
+ if (consolekit_support_enabled) {
char** old_env = child_env;
/* Grow the copy of the environment for the session cookie */
@@ -590,6 +604,7 @@
memcpy(child_env, old_env, sizeof(char*)*n+1);
child_env[n - 1] = StrConcat("XDG_SESSION_COOKIE=", ck.get_xdg_session_cookie());
child_env[n] = NULL;
+ }
# endif /* USE_CONSOLEKIT */
#else
@@ -611,6 +626,7 @@
child_env[n++]=StrConcat("MAIL=", maildir.c_str());
child_env[n++]=StrConcat("XAUTHORITY=", xauthority.c_str());
# ifdef USE_CONSOLEKIT
+ if (consolekit_support_enabled)
child_env[n++]=StrConcat("XDG_SESSION_COOKIE=", ck.get_xdg_session_cookie());
# endif /* USE_CONSOLEKIT */
child_env[n++]=0;
@@ -656,12 +672,14 @@
}
#ifdef USE_CONSOLEKIT
+ if (consolekit_support_enabled) {
try {
ck.close_session();
}
catch(Ck::Exception &e) {
logStream << APPNAME << ": " << e << endl;
};
+ }
#endif
#ifdef USE_PAM
diff -Naur slim-1.3.5/app.h slim-1.3.5.new/app.h
--- slim-1.3.5/app.h 2012-12-31 08:03:42.000000000 -0500
+++ slim-1.3.5.new/app.h 2013-08-22 14:12:45.536850016 -0400
@@ -108,6 +108,10 @@
char *testtheme;
bool testing;
+#ifdef USE_CONSOLEKIT
+ bool consolekit_support_enabled;
+#endif
+
std::string themeName;
std::string mcookie;
diff -Naur slim-1.3.5/slim.service slim-1.3.5.new/slim.service
--- slim-1.3.5/slim.service 2012-12-31 08:03:42.000000000 -0500
+++ slim-1.3.5.new/slim.service 2013-08-22 14:15:39.186853186 -0400
@@ -3,7 +3,7 @@
After=systemd-user-sessions.service
[Service]
-ExecStart=/usr/bin/slim -nodaemon
+ExecStart=/usr/bin/slim -nodaemon -s
[Install]
Alias=display-manager.service