I believe we have a viable fix in devuan.

https://git.devuan.org/devuan/slim/src/branch/suites/unstable/debian/patches/Patch-to-fix-auto_login-regression-introduced-in-1.4.patch


Comments/adjustments are welcome.



diff --git a/app.cpp b/app.cpp
index d378793..6b0d8de 100644
--- a/app.cpp
+++ b/app.cpp
@@ -454,7 +454,7 @@ void App::Run()
                        try {
                                pam.check_acct();
 #endif
-                       Login();
+                       Login(true);
 #ifdef USE_PAM
                        }
                        catch(PAM::Auth_Exception& e){
@@ -648,7 +648,7 @@ int App::GetServerPID()
 }


-void App::Login()
+void App::Login(bool autologin)
 {
        struct passwd *pw;
        pid_t pid;
@@ -790,6 +790,10 @@ void App::Login()
                        if ( system(sessStart.c_str()) < 0 )
                                logStream << APPNAME << ": Failed to run 
sessionstart_cmd" << endl;
                }
+               if( autologin )
+               {
+                       LoginPanel->ClosePanel();
+               }
                Su.Login(loginCommand.c_str(), mcookie.c_str());
                _exit(OK_EXIT);
        }
diff --git a/app.h b/app.h
index 7453e34..529ec89 100644
--- a/app.h
+++ b/app.h
@@ -44,7 +45,7 @@ public:
        bool isServerStarted();

 private:
-       void Login();
+       void Login(bool autologin=false);
        void Reboot();
        void Halt();
        void Suspend();

diff --git a/app.cpp b/app.cpp
index d378793..6b0d8de 100644
--- a/app.cpp
+++ b/app.cpp
@@ -454,7 +454,7 @@ void App::Run()
 			try {
 				pam.check_acct();
 #endif
-			Login();
+			Login(true);
 #ifdef USE_PAM
 			}
 			catch(PAM::Auth_Exception& e){
@@ -648,7 +648,7 @@ int App::GetServerPID()
 }
 
 
-void App::Login()
+void App::Login(bool autologin)
 {
 	struct passwd *pw;
 	pid_t pid;
@@ -790,6 +790,10 @@ void App::Login()
 			if ( system(sessStart.c_str()) < 0 )
 				logStream << APPNAME << ": Failed to run sessionstart_cmd" << endl;
 		}
+		if( autologin )
+		{
+			LoginPanel->ClosePanel();
+		}
 		Su.Login(loginCommand.c_str(), mcookie.c_str());
 		_exit(OK_EXIT);
 	}
diff --git a/app.h b/app.h
index 7453e34..529ec89 100644
--- a/app.h
+++ b/app.h
@@ -44,7 +45,7 @@ public:
 	bool isServerStarted();
 
 private:
-	void Login();
+	void Login(bool autologin=false);
 	void Reboot();
 	void Halt();
 	void Suspend();

Reply via email to