unofficial mirror of bug-guix@gnu.org 
 help / color / mirror / code / Atom feed
* bug#44347: mingetty --no-clear is hard-coded
@ 2020-10-31 15:16 Jesse Gibbons
  2020-11-01 16:30 ` Mark H Weaver
  0 siblings, 1 reply; 5+ messages in thread
From: Jesse Gibbons @ 2020-10-31 15:16 UTC (permalink / raw)
  To: 44347

The --no-clear option is hard-coded for mingetty, with no documentation 
about why. The mingetty page says,
        --noclear
               Do not clear the screen before prompting for the login 
name (the
               screen is normally cleared).

I do not think I am alone in preferring the screen cleared after logout. 
I also think it could be a security issue. For now my workaround is to 
include a call to "tput reset" or "clear" in my .bash_logout script, but 
that has to be configured for every user and requires more packages 
installed either at the system level or per-user.

I think this is an "easy for beginners" issue. I would fix it myself, 
but I have a lot of other stuff to do.




^ permalink raw reply	[flat|nested] 5+ messages in thread

* bug#44347: mingetty --no-clear is hard-coded
  2020-10-31 15:16 bug#44347: mingetty --no-clear is hard-coded Jesse Gibbons
@ 2020-11-01 16:30 ` Mark H Weaver
  2020-11-01 16:37   ` Mark H Weaver
  2020-11-01 22:12   ` Ludovic Courtès
  0 siblings, 2 replies; 5+ messages in thread
From: Mark H Weaver @ 2020-11-01 16:30 UTC (permalink / raw)
  To: Jesse Gibbons, 44347

[-- Attachment #1: Type: text/plain, Size: 971 bytes --]

Hi Jesse,

Jesse Gibbons <jgibbons2357@gmail.com> writes:

> The --no-clear option is hard-coded for mingetty, with no documentation 
> about why. The mingetty page says,
>         --noclear
>                Do not clear the screen before prompting for the login 
> name (the
>                screen is normally cleared).
>
> I do not think I am alone in preferring the screen cleared after logout. 

You're not alone.  I'd also prefer that the screen be cleared.  At
least, it should be configurable.

Here's an *untested* patch to make it configurable, and to change the
default behavior to clear.  I'm rebuilding my system now, but I have a
lot of compiling ahead of me (I don't use substitutes), so it will be a
while.  I'll report back after I've tested it.

In the meantime, does anyone object to changing the default behavior to
clear-on-logout, which is the upstream default?

     Regards,
       Mark


[-- Attachment #2: [PATCH] UNTESTED: gnu: mingetty-shepherd-service: Make 'clear-on-logout' configurable. --]
[-- Type: text/x-patch, Size: 3702 bytes --]

From 61d0055493c46cdee178d0ffbbf15742de930028 Mon Sep 17 00:00:00 2001
From: Mark H Weaver <mhw@netris.org>
Date: Sun, 1 Nov 2020 11:16:08 -0500
Subject: [PATCH] UNTESTED: gnu: mingetty-shepherd-service: Make
 'clear-on-logout' configurable.

Also change the default configuration to clear on logout, which is the
upstream default.

* gnu/services/base.scm (<mingetty-configuration>): Add 'clear-on-logout?'
field.
(mingetty-shepherd-service): Pass the "--noclear" option to mingetty only if
'clear-on-logout?' is #false.
---
 gnu/services/base.scm | 28 ++++++++++++++++------------
 1 file changed, 16 insertions(+), 12 deletions(-)

diff --git a/gnu/services/base.scm b/gnu/services/base.scm
index 5a5c41d588..1f750670c9 100644
--- a/gnu/services/base.scm
+++ b/gnu/services/base.scm
@@ -1,7 +1,7 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2015, 2016 Alex Kost <alezost@gmail.com>
-;;; Copyright © 2015, 2016 Mark H Weaver <mhw@netris.org>
+;;; Copyright © 2015, 2016, 2020 Mark H Weaver <mhw@netris.org>
 ;;; Copyright © 2015 Sou Bunnbu <iyzsong@gmail.com>
 ;;; Copyright © 2016, 2017 Leo Famulari <leo@famulari.name>
 ;;; Copyright © 2016 David Craven <david@craven.ch>
@@ -1024,20 +1024,22 @@ the tty to run, among other things."
 (define-record-type* <mingetty-configuration>
   mingetty-configuration make-mingetty-configuration
   mingetty-configuration?
-  (mingetty       mingetty-configuration-mingetty ;<package>
-                  (default mingetty))
-  (tty            mingetty-configuration-tty)     ;string
-  (auto-login     mingetty-auto-login             ;string | #f
-                  (default #f))
-  (login-program  mingetty-login-program          ;gexp
-                  (default #f))
-  (login-pause?   mingetty-login-pause?           ;Boolean
-                  (default #f)))
+  (mingetty         mingetty-configuration-mingetty ;<package>
+                    (default mingetty))
+  (tty              mingetty-configuration-tty)     ;string
+  (auto-login       mingetty-auto-login             ;string | #f
+                    (default #f))
+  (login-program    mingetty-login-program          ;gexp
+                    (default #f))
+  (login-pause?     mingetty-login-pause?           ;Boolean
+                    (default #f))
+  (clear-on-logout? mingetty-clear-on-logout?       ;Boolean
+                    (default #t)))
 
 (define mingetty-shepherd-service
   (match-lambda
     (($ <mingetty-configuration> mingetty tty auto-login login-program
-                                 login-pause?)
+                                 login-pause? clear-on-logout?)
      (list
       (shepherd-service
        (documentation "Run mingetty on an tty.")
@@ -1050,7 +1052,6 @@ the tty to run, among other things."
 
        (start  #~(make-forkexec-constructor
                   (list #$(file-append mingetty "/sbin/mingetty")
-                        "--noclear"
 
                         ;; Avoiding 'vhangup' allows us to avoid 'setfont'
                         ;; errors down the path where various ioctls get
@@ -1058,6 +1059,9 @@ the tty to run, among other things."
                         ;; in Linux.
                         "--nohangup" #$tty
 
+                        #$@(if clear-on-logout?
+                               #~()
+                               #~("--noclear"))
                         #$@(if auto-login
                                #~("--autologin" #$auto-login)
                                #~())
-- 
2.28.0


^ permalink raw reply related	[flat|nested] 5+ messages in thread

* bug#44347: mingetty --no-clear is hard-coded
  2020-11-01 16:30 ` Mark H Weaver
@ 2020-11-01 16:37   ` Mark H Weaver
  2020-11-01 22:12   ` Ludovic Courtès
  1 sibling, 0 replies; 5+ messages in thread
From: Mark H Weaver @ 2020-11-01 16:37 UTC (permalink / raw)
  To: Jesse Gibbons, 44347

[-- Attachment #1: Type: text/plain, Size: 91 bytes --]

Here's a revised patch, still untested, that also updates the
documentation.

       Mark


[-- Attachment #2: [PATCH] UNTESTED: gnu: mingetty-shepherd-service: Make 'clear-on-logout' configurable. --]
[-- Type: text/x-patch, Size: 4333 bytes --]

From 9229d0493cdbb521a2f7a821d47d60d2392b8447 Mon Sep 17 00:00:00 2001
From: Mark H Weaver <mhw@netris.org>
Date: Sun, 1 Nov 2020 11:16:08 -0500
Subject: [PATCH] UNTESTED: gnu: mingetty-shepherd-service: Make
 'clear-on-logout' configurable.

Also change the default configuration to clear on logout, which is the
upstream default.

* gnu/services/base.scm (<mingetty-configuration>): Add 'clear-on-logout?'
field.
(mingetty-shepherd-service): Pass the "--noclear" option to mingetty only if
'clear-on-logout?' is #false.
* doc/guix.texi (Base Services): Document the 'clear-on-logout?' field.
---
 doc/guix.texi         |  3 +++
 gnu/services/base.scm | 28 ++++++++++++++++------------
 2 files changed, 19 insertions(+), 12 deletions(-)

diff --git a/doc/guix.texi b/doc/guix.texi
index 69e7d5f85c..6ef4350f97 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -14494,6 +14494,9 @@ the name of the log-in program.
 When set to @code{#t} in conjunction with @var{auto-login}, the user
 will have to press a key before the log-in shell is launched.
 
+@item @code{clear-on-logout?} (default: @code{#t})
+When set to @code{#t}, the screen will be cleared after logout.
+
 @item @code{mingetty} (default: @var{mingetty})
 The Mingetty package to use.
 
diff --git a/gnu/services/base.scm b/gnu/services/base.scm
index 5a5c41d588..1f750670c9 100644
--- a/gnu/services/base.scm
+++ b/gnu/services/base.scm
@@ -1,7 +1,7 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2015, 2016 Alex Kost <alezost@gmail.com>
-;;; Copyright © 2015, 2016 Mark H Weaver <mhw@netris.org>
+;;; Copyright © 2015, 2016, 2020 Mark H Weaver <mhw@netris.org>
 ;;; Copyright © 2015 Sou Bunnbu <iyzsong@gmail.com>
 ;;; Copyright © 2016, 2017 Leo Famulari <leo@famulari.name>
 ;;; Copyright © 2016 David Craven <david@craven.ch>
@@ -1024,20 +1024,22 @@ the tty to run, among other things."
 (define-record-type* <mingetty-configuration>
   mingetty-configuration make-mingetty-configuration
   mingetty-configuration?
-  (mingetty       mingetty-configuration-mingetty ;<package>
-                  (default mingetty))
-  (tty            mingetty-configuration-tty)     ;string
-  (auto-login     mingetty-auto-login             ;string | #f
-                  (default #f))
-  (login-program  mingetty-login-program          ;gexp
-                  (default #f))
-  (login-pause?   mingetty-login-pause?           ;Boolean
-                  (default #f)))
+  (mingetty         mingetty-configuration-mingetty ;<package>
+                    (default mingetty))
+  (tty              mingetty-configuration-tty)     ;string
+  (auto-login       mingetty-auto-login             ;string | #f
+                    (default #f))
+  (login-program    mingetty-login-program          ;gexp
+                    (default #f))
+  (login-pause?     mingetty-login-pause?           ;Boolean
+                    (default #f))
+  (clear-on-logout? mingetty-clear-on-logout?       ;Boolean
+                    (default #t)))
 
 (define mingetty-shepherd-service
   (match-lambda
     (($ <mingetty-configuration> mingetty tty auto-login login-program
-                                 login-pause?)
+                                 login-pause? clear-on-logout?)
      (list
       (shepherd-service
        (documentation "Run mingetty on an tty.")
@@ -1050,7 +1052,6 @@ the tty to run, among other things."
 
        (start  #~(make-forkexec-constructor
                   (list #$(file-append mingetty "/sbin/mingetty")
-                        "--noclear"
 
                         ;; Avoiding 'vhangup' allows us to avoid 'setfont'
                         ;; errors down the path where various ioctls get
@@ -1058,6 +1059,9 @@ the tty to run, among other things."
                         ;; in Linux.
                         "--nohangup" #$tty
 
+                        #$@(if clear-on-logout?
+                               #~()
+                               #~("--noclear"))
                         #$@(if auto-login
                                #~("--autologin" #$auto-login)
                                #~())
-- 
2.28.0


^ permalink raw reply related	[flat|nested] 5+ messages in thread

* bug#44347: mingetty --no-clear is hard-coded
  2020-11-01 16:30 ` Mark H Weaver
  2020-11-01 16:37   ` Mark H Weaver
@ 2020-11-01 22:12   ` Ludovic Courtès
  2020-12-03 17:12     ` Ludovic Courtès
  1 sibling, 1 reply; 5+ messages in thread
From: Ludovic Courtès @ 2020-11-01 22:12 UTC (permalink / raw)
  To: Mark H Weaver; +Cc: Jesse Gibbons, 44347

Hi Mark,

Mark H Weaver <mhw@netris.org> skribis:

> In the meantime, does anyone object to changing the default behavior to
> clear-on-logout, which is the upstream default?

Fine with me; it’s probably a safer default.

> From 61d0055493c46cdee178d0ffbbf15742de930028 Mon Sep 17 00:00:00 2001
> From: Mark H Weaver <mhw@netris.org>
> Date: Sun, 1 Nov 2020 11:16:08 -0500
> Subject: [PATCH] UNTESTED: gnu: mingetty-shepherd-service: Make
>  'clear-on-logout' configurable.
>
> Also change the default configuration to clear on logout, which is the
> upstream default.
>
> * gnu/services/base.scm (<mingetty-configuration>): Add 'clear-on-logout?'
> field.
> (mingetty-shepherd-service): Pass the "--noclear" option to mingetty only if
> 'clear-on-logout?' is #false.

Untested as well :-), but your v2 LGTM.

Thanks,
Ludo’.




^ permalink raw reply	[flat|nested] 5+ messages in thread

* bug#44347: mingetty --no-clear is hard-coded
  2020-11-01 22:12   ` Ludovic Courtès
@ 2020-12-03 17:12     ` Ludovic Courtès
  0 siblings, 0 replies; 5+ messages in thread
From: Ludovic Courtès @ 2020-12-03 17:12 UTC (permalink / raw)
  To: Mark H Weaver; +Cc: 44347-done, Jesse Gibbons

This was fixed by commit e3ae31347882b25e1513e4475616fb6e4497e280.

Closing!




^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2020-12-03 17:19 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-10-31 15:16 bug#44347: mingetty --no-clear is hard-coded Jesse Gibbons
2020-11-01 16:30 ` Mark H Weaver
2020-11-01 16:37   ` Mark H Weaver
2020-11-01 22:12   ` Ludovic Courtès
2020-12-03 17:12     ` Ludovic Courtès

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/guix.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).