[bug#33186,3/7] services: kmscon: Add an auto-login option.

Message ID 20181028124043.21773-4-m.othacehe@gmail.com
State New
Headers show
Series
  • Preliminary installer work
Related show

Checks

Context Check Description
cbaines/applying patch fail Apply failed

Commit Message

Mathieu Othacehe Oct. 28, 2018, 12:40 p.m. UTC
Add an auto-login option that behaves as the one of mingetty-service.

* gnu/services/base.scm (kmscon-configuration)[auto-login]: New field.
(kmscon-service-type): Pass it to kmscon command.
* doc/guix.texi: Document it.
---
 doc/guix.texi         | 6 +++++-
 gnu/services/base.scm | 9 ++++++++-
 2 files changed, 13 insertions(+), 2 deletions(-)

Comments

Ludovic Courtès Nov. 6, 2018, 3:36 p.m. UTC | #1
Mathieu Othacehe <m.othacehe@gmail.com> skribis:

> Add an auto-login option that behaves as the one of mingetty-service.
>
> * gnu/services/base.scm (kmscon-configuration)[auto-login]: New field.
> (kmscon-service-type): Pass it to kmscon command.
> * doc/guix.texi: Document it.
                 ^
Please add the node name here.

[...]

> +@item @code{auto-login} (default: #f)
                                     ^
@code{#f}

Otherwise LGTM, thanks!
Mathieu Othacehe Nov. 7, 2018, 9:23 a.m. UTC | #2
Hello,

>> +@item @code{auto-login} (default: #f)
>                                      ^
> @code{#f}
>
> Otherwise LGTM, thanks!

Fixed and pushed as 2d9dace8c297c957953fa77bfef785b9dc7b4d2e.

Thanks,

Mathieu

Patch

diff --git a/doc/guix.texi b/doc/guix.texi
index 87579d414..c58d7909f 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -31,7 +31,7 @@  Copyright @copyright{} 2016, 2017, 2018 Jan Nieuwenhuizen@*
 Copyright @copyright{} 2016 Julien Lepiller@*
 Copyright @copyright{} 2016 Alex ter Weele@*
 Copyright @copyright{} 2017, 2018 Clément Lassieur@*
-Copyright @copyright{} 2017 Mathieu Othacehe@*
+Copyright @copyright{} 2017, 2018 Mathieu Othacehe@*
 Copyright @copyright{} 2017 Federico Beffa@*
 Copyright @copyright{} 2017, 2018 Carlo Zancanaro@*
 Copyright @copyright{} 2017 Thomas Danckaert@*
@@ -10873,6 +10873,10 @@  A gexp denoting the name of the log-in program. The default log-in program is
 @item @code{login-arguments} (default: @code{'("-p")})
 A list of arguments to pass to @command{login}.
 
+@item @code{auto-login} (default: #f)
+When passed a login name, as a string, the specified user will be logged
+in automatically without prompting for their login name or password.
+
 @item @code{hardware-acceleration?} (default: #f)
 Whether to use hardware acceleration.
 
diff --git a/gnu/services/base.scm b/gnu/services/base.scm
index 4c341309b..8a8df45a1 100644
--- a/gnu/services/base.scm
+++ b/gnu/services/base.scm
@@ -6,6 +6,7 @@ 
 ;;; Copyright © 2016, 2017 Leo Famulari <leo@famulari.name>
 ;;; Copyright © 2016 David Craven <david@craven.ch>
 ;;; Copyright © 2016 Ricardo Wurmus <rekado@elephly.net>
+;;; Copyright © 2018 Mathieu Othacehe <m.othacehe@gmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -2040,6 +2041,8 @@  This service is not part of @var{%base-services}."
                            (default (file-append shadow "/bin/login")))
   (login-arguments         kmscon-configuration-login-arguments
                            (default '("-p")))
+  (auto-login              kmscon-configuration-auto-login
+                           (default #f))
   (hardware-acceleration?  kmscon-configuration-hardware-acceleration?
                            (default #f))) ; #t causes failure
 
@@ -2051,6 +2054,7 @@  This service is not part of @var{%base-services}."
            (virtual-terminal (kmscon-configuration-virtual-terminal config))
            (login-program (kmscon-configuration-login-program config))
            (login-arguments (kmscon-configuration-login-arguments config))
+           (auto-login (kmscon-configuration-auto-login config))
            (hardware-acceleration? (kmscon-configuration-hardware-acceleration? config)))
 
        (define kmscon-command
@@ -2059,7 +2063,10 @@  This service is not part of @var{%base-services}."
             "--vt" #$virtual-terminal
             "--no-switchvt"
             #$@(if hardware-acceleration? '("--hwaccel") '())
-            "--" #$login-program #$@login-arguments))
+            "--" #$login-program #$@login-arguments
+            #$@(if auto-login
+                   #~(#$auto-login)
+                   #~())))
 
        (shepherd-service
         (documentation "kmscon virtual terminal")