unofficial mirror of guix-patches@gnu.org 
 help / color / mirror / Atom feed
* [bug#47979] [PATCH] installer: Recommend 'ntp-service-type' for non-graphical systems.
@ 2021-04-23 18:53 Leo Famulari
  2021-04-23 18:56 ` Leo Famulari
  0 siblings, 1 reply; 8+ messages in thread
From: Leo Famulari @ 2021-04-23 18:53 UTC (permalink / raw)
  To: 47979

We had several bug reports with a root cause of "the clock was
incorrect" from users who used the installer to install a non-graphical
Guix System.

* gnu/installer/services.scm (%system-services): Add the ntp-service-type.
---
 gnu/installer/services.scm | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/gnu/installer/services.scm b/gnu/installer/services.scm
index ec5ea30594..440b8c67db 100644
--- a/gnu/installer/services.scm
+++ b/gnu/installer/services.scm
@@ -2,6 +2,7 @@
 ;;; Copyright © 2018 Mathieu Othacehe <m.othacehe@gmail.com>
 ;;; Copyright © 2019 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
+;;; Copyright © 2021 Leo Famulari <leo@famulari.name>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -103,6 +104,11 @@
       (type 'networking)
       (packages '((specification->package "nss-certs")))
       (recommended? #t))
+     (system-service
+       (name (G_ "Network time service, to set the clock automatically"))
+       (type 'network-management)
+       (snippet '((service ntp-service-type)))
+       (recommended? #t))
 
      ;; Network connectivity management.
      (system-service
-- 
2.31.1





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

* [bug#47979] [PATCH] installer: Recommend 'ntp-service-type' for non-graphical systems.
  2021-04-23 18:53 [bug#47979] [PATCH] installer: Recommend 'ntp-service-type' for non-graphical systems Leo Famulari
@ 2021-04-23 18:56 ` Leo Famulari
  2021-04-23 22:45   ` Leo Famulari
  0 siblings, 1 reply; 8+ messages in thread
From: Leo Famulari @ 2021-04-23 18:56 UTC (permalink / raw)
  To: 47979

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

Hey everyone, please disregard this patch.

It doesn't do what I meant. Sorry for being hasty and sending the wrong
thing.

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

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

* [bug#47979] [PATCH] installer: Recommend 'ntp-service-type' for non-graphical systems.
  2021-04-23 18:56 ` Leo Famulari
@ 2021-04-23 22:45   ` Leo Famulari
  2021-04-23 23:20     ` Leo Famulari
  2021-04-24  0:56     ` [bug#47979] [PATCH v3] " Leo Famulari
  0 siblings, 2 replies; 8+ messages in thread
From: Leo Famulari @ 2021-04-23 22:45 UTC (permalink / raw)
  To: 47979


[-- Attachment #1.1: Type: text/plain, Size: 2752 bytes --]

Okay, here is a patch that does what I want.

That is, when the user does not select any desktop environments, it
prompts them about enabling NTP, with the checkbox already checked.

However, with this patch, the installer crashes after partitioning, like
this:

------
In ./gnu/installer/services.scm:
     38:0 19 (%system-service-snippet-procedure (#<<system-service> name: "Network time service, to set the clock automatically" type: administration recommended?: #t snippet: ((service ntp-servi…>))
In ice-9/boot-9.scm:
  1669:16 18 (raise-exception _ #:continuable? _)
  1667:16 17 (raise-exception _ #:continuable? _)
  1667:16 16 (raise-exception _ #:continuable? _)
  1667:16 15 (raise-exception _ #:continuable? _)
  1667:16 14 (raise-exception _ #:continuable? _)
  1667:16 13 (raise-exception _ #:continuable? _)
  1667:16 12 (raise-exception _ #:continuable? _)
  1667:16 11 (raise-exception _ #:continuable? _)
  1667:16 10 (raise-exception _ #:continuable? _)
  1667:16  9 (raise-exception _ #:continuable? _)
  1667:16  8 (raise-exception _ #:continuable? _)
  1667:16  7 (raise-exception _ #:continuable? _)
  1764:13  6 (_ #<&compound-exception components: (#<&assertion-failure> #<&origin origin: "struct-vtable"> #<&message message: "Wrong type argument in position 1 (expecting struct): ~S"> #<&irrit…>)
In ice-9/eval.scm:
    619:8  5 (_ #(#(#<directory (guile-user) 7f8be12f4c80> #<<installer> name: newt init: #<procedure init ()> exit: #<procedure exit ()> exit-error: #<procedure exit-error (file key args)> f…>) …))
    619:8  4 (_ #(#(#(#<directory (guile-user) 7f8be12f4c80> #<<installer> name: newt init: #<procedure init ()> exit: #<procedure exit ()> exit-error: #<procedure exit-error (file key arg…>) …) #))
In ice-9/ports.scm:
   463:17  3 (call-with-output-file _ _ #:binary _ #:encoding _)
In ice-9/eval.scm:
    619:8  2 (_ #(#(#<directory (guile-user) 7f8be12f4c80> wrong-type-arg ("struct-vtable" "Wrong type argument in position 1 (expecting struct): ~S" ((#<<system-service> name: "Network …>)) …)) #))
    159:9  1 (_ #(#(#<directory (guile-user) 7f8be12f4c80> wrong-type-arg ("struct-vtable" "Wrong type argument in position 1 (expecting struct): ~S" ((#<<system-service> name: "Network …>)) …)) #))
In unknown file:
           0 (make-stack #t)
ice-9/eval.scm:159:9: In procedure struct-vtable: Wrong type argument in position 1 (expecting struct): (#<<system-service> name: "Network time service, to set the clock automatically" type: administration recommended?: #t snippet: ((service ntp-service-type)) packages: ()>)
------

So, I've done something wrong. But I don't know what :)

I'm going to keep trying but hopefully somebody can help me.

[-- Attachment #1.2: 0001-installer-Recommend-ntp-service-type-for-non-graphic.patch --]
[-- Type: text/plain, Size: 3698 bytes --]

From c70ed1b6ed621a56ab258cf5cfce45c50cb1831f Mon Sep 17 00:00:00 2001
From: Leo Famulari <leo@famulari.name>
Date: Fri, 23 Apr 2021 14:50:15 -0400
Subject: [PATCH] installer: Recommend 'ntp-service-type' for non-graphical
 systems.

We had several bug reports with a root cause of "the clock was
incorrect" from users who used the installer to install a non-graphical
Guix System.

* gnu/installer/services.scm (%system-services): Add the ntp-service-type.
* gnu/installer/newt/services.scm (run-system-administration-cbt-page): New
variable.
(run-services-page): Use run-system-administration-cbt-page when not
installing a desktop.
---
 gnu/installer/newt/services.scm | 23 ++++++++++++++++++++++-
 gnu/installer/services.scm      |  8 ++++++++
 2 files changed, 30 insertions(+), 1 deletion(-)

diff --git a/gnu/installer/newt/services.scm b/gnu/installer/newt/services.scm
index 74f28e41ba..60c62a52b1 100644
--- a/gnu/installer/newt/services.scm
+++ b/gnu/installer/newt/services.scm
@@ -3,6 +3,7 @@
 ;;; Copyright © 2019, 2020 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
 ;;; Copyright © 2021 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2021 Leo Famulari <leo@famulari.name>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -68,6 +69,25 @@ system.")
         (condition
          (&installer-step-abort)))))))
 
+(define (run-system-administration-cbt-page)
+  "Run a page to select various system adminstrative services."
+  (let ((items (filter (lambda (service)
+                         (eq? 'administration
+                              (system-service-type service)))
+                       %system-services)))
+    (run-checkbox-tree-page
+      #:title (G_ "Miscellaneous services")
+      #:info-text (G_ "Select miscellaneous system services to run on your system.")
+      #:items items
+      #:selection (map system-service-recommended? items)
+      #:item->text (compose G_ system-service-name)
+      #:checkbox-tree-height 5
+      #:exit-button-callback-procedure
+      (lambda ()
+        (raise
+          (condition
+            (&installer-step-abort)))))))
+
 (define (run-network-management-page)
   "Run a page to select among several network management methods."
   (let ((title (G_ "Network management")))
@@ -99,5 +119,6 @@ client may be enough for a server.")
     (append desktop
             (run-networking-cbt-page)
             (if (null? desktop)
-                (list (run-network-management-page))
+                (list (run-network-management-page)
+                      (run-system-administration-cbt-page))
                 '()))))
diff --git a/gnu/installer/services.scm b/gnu/installer/services.scm
index ec5ea30594..17ff31d2ec 100644
--- a/gnu/installer/services.scm
+++ b/gnu/installer/services.scm
@@ -2,6 +2,7 @@
 ;;; Copyright © 2018 Mathieu Othacehe <m.othacehe@gmail.com>
 ;;; Copyright © 2019 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
+;;; Copyright © 2021 Leo Famulari <leo@famulari.name>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -104,6 +105,13 @@
       (packages '((specification->package "nss-certs")))
       (recommended? #t))
 
+     ;; System administration
+     (system-service
+       (name (G_ "Network time service, to set the clock automatically"))
+       (type 'administration)
+       (snippet '((service ntp-service-type)))
+       (recommended? #t))
+
      ;; Network connectivity management.
      (system-service
       (name (G_ "NetworkManager network connection manager"))
-- 
2.31.1


[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

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

* [bug#47979] [PATCH] installer: Recommend 'ntp-service-type' for non-graphical systems.
  2021-04-23 22:45   ` Leo Famulari
@ 2021-04-23 23:20     ` Leo Famulari
  2021-04-24  0:56     ` [bug#47979] [PATCH v3] " Leo Famulari
  1 sibling, 0 replies; 8+ messages in thread
From: Leo Famulari @ 2021-04-23 23:20 UTC (permalink / raw)
  To: 47979

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

On Fri, Apr 23, 2021 at 06:45:59PM -0400, Leo Famulari wrote:
> However, with this patch, the installer crashes after partitioning, like
> this:

By the way, I'm testing this by building the installer in the same way
as our Makefile:

$ guix environment guix -- ./pre-inst-env guix system image -t iso9660 --label="GUIX_x86_64-linux-leo" --system=x86_64-linux gnu/system/install.scm

I create a QEMU disk:

$ qemu-img create -f qcow2 guix-system.img 50G

And then I use the ISO I built, after copying it out of the store:

$ qemu-system-x86_64 -m 1024 -smp 1 -enable-kvm -nic user,model=virtio-net-pci -boot menu=on,order=d -drive file=guix-system.img -drive media=cdrom,file=image.iso

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

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

* [bug#47979] [PATCH v3] installer: Recommend 'ntp-service-type' for non-graphical systems.
  2021-04-23 22:45   ` Leo Famulari
  2021-04-23 23:20     ` Leo Famulari
@ 2021-04-24  0:56     ` Leo Famulari
  2021-05-02  4:36       ` Leo Famulari
  1 sibling, 1 reply; 8+ messages in thread
From: Leo Famulari @ 2021-04-24  0:56 UTC (permalink / raw)
  To: 47979


[-- Attachment #1.1: Type: text/plain, Size: 576 bytes --]

On Fri, Apr 23, 2021 at 06:45:59PM -0400, Leo Famulari wrote:
> ice-9/eval.scm:159:9: In procedure struct-vtable: Wrong type argument in position 1 (expecting struct): (#<<system-service> name: "Network time service, to set the clock automatically" type: administration recommended?: #t snippet: ((service ntp-service-type)) packages: ()>)

With Leo Prikler's help on #guix [0], I got it to work :)

I've attached the working patch, as well as a patch to offer the GPM
"console mouse" service on non-graphical systems.

[0] http://logs.guix.gnu.org/guix/2021-04-24.log#012921

[-- Attachment #1.2: 0001-installer-Recommend-ntp-service-type-for-non-graphic.patch --]
[-- Type: text/plain, Size: 3719 bytes --]

From 6f2f131551247aa20794007c43ae61b82f6e34d6 Mon Sep 17 00:00:00 2001
From: Leo Famulari <leo@famulari.name>
Date: Fri, 23 Apr 2021 14:50:15 -0400
Subject: [PATCH 1/2] installer: Recommend 'ntp-service-type' for non-graphical
 systems.

We had several bug reports with a root cause of "the clock was
incorrect" from users who used the installer to install a non-graphical
Guix System.

* gnu/installer/services.scm (%system-services): Add the ntp-service-type.
* gnu/installer/newt/services.scm (run-system-administration-cbt-page): New
variable.
(run-services-page): Use run-system-administration-cbt-page when not
installing a desktop.
---
 gnu/installer/newt/services.scm | 23 ++++++++++++++++++++++-
 gnu/installer/services.scm      |  8 ++++++++
 2 files changed, 30 insertions(+), 1 deletion(-)

diff --git a/gnu/installer/newt/services.scm b/gnu/installer/newt/services.scm
index 74f28e41ba..ee003b24b1 100644
--- a/gnu/installer/newt/services.scm
+++ b/gnu/installer/newt/services.scm
@@ -3,6 +3,7 @@
 ;;; Copyright © 2019, 2020 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
 ;;; Copyright © 2021 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2021 Leo Famulari <leo@famulari.name>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -68,6 +69,25 @@ system.")
         (condition
          (&installer-step-abort)))))))
 
+(define (run-system-administration-cbt-page)
+  "Run a page to select various system adminstration services."
+  (let ((items (filter (lambda (service)
+                         (eq? 'administration
+                              (system-service-type service)))
+                       %system-services)))
+    (run-checkbox-tree-page
+      #:title (G_ "Miscellaneous services")
+      #:info-text (G_ "Select miscellaneous services to run on your system.")
+      #:items items
+      #:selection (map system-service-recommended? items)
+      #:item->text (compose G_ system-service-name)
+      #:checkbox-tree-height 5
+      #:exit-button-callback-procedure
+      (lambda ()
+        (raise
+          (condition
+            (&installer-step-abort)))))))
+
 (define (run-network-management-page)
   "Run a page to select among several network management methods."
   (let ((title (G_ "Network management")))
@@ -99,5 +119,6 @@ client may be enough for a server.")
     (append desktop
             (run-networking-cbt-page)
             (if (null? desktop)
-                (list (run-network-management-page))
+                (cons (run-network-management-page)
+                      (run-system-administration-cbt-page))
                 '()))))
diff --git a/gnu/installer/services.scm b/gnu/installer/services.scm
index ec5ea30594..b50bd3e412 100644
--- a/gnu/installer/services.scm
+++ b/gnu/installer/services.scm
@@ -2,6 +2,7 @@
 ;;; Copyright © 2018 Mathieu Othacehe <m.othacehe@gmail.com>
 ;;; Copyright © 2019 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
+;;; Copyright © 2021 Leo Famulari <leo@famulari.name>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -104,6 +105,13 @@
       (packages '((specification->package "nss-certs")))
       (recommended? #t))
 
+     ;; Miscellaneous system administration services.
+     (system-service
+       (name (G_ "Network time service, to set the clock automatically"))
+       (type 'administration)
+       (recommended? #t)
+       (snippet '((service ntp-service-type))))
+
      ;; Network connectivity management.
      (system-service
       (name (G_ "NetworkManager network connection manager"))
-- 
2.31.1


[-- Attachment #1.3: 0002-installer-Offer-gpm-service-type-for-non-graphical-s.patch --]
[-- Type: text/plain, Size: 963 bytes --]

From a00274e70d700b9325ad9ab7cd1804d444a5dc37 Mon Sep 17 00:00:00 2001
From: Leo Famulari <leo@famulari.name>
Date: Fri, 23 Apr 2021 20:42:28 -0400
Subject: [PATCH 2/2] installer: Offer 'gpm-service-type' for non-graphical
 systems.

* gnu/installer/services.scm (%system-services): Add the gpm-service-type.
---
 gnu/installer/services.scm | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/gnu/installer/services.scm b/gnu/installer/services.scm
index b50bd3e412..27beb5da66 100644
--- a/gnu/installer/services.scm
+++ b/gnu/installer/services.scm
@@ -111,6 +111,10 @@
        (type 'administration)
        (recommended? #t)
        (snippet '((service ntp-service-type))))
+     (system-service
+       (name (G_ "GPM mouse daemon, to use the mouse in the console"))
+       (type 'administration)
+       (snippet '((service gpm-service-type))))
 
      ;; Network connectivity management.
      (system-service
-- 
2.31.1


[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

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

* [bug#47979] [PATCH v3] installer: Recommend 'ntp-service-type' for non-graphical systems.
  2021-04-24  0:56     ` [bug#47979] [PATCH v3] " Leo Famulari
@ 2021-05-02  4:36       ` Leo Famulari
  2021-05-02  9:25         ` Mathieu Othacehe
  0 siblings, 1 reply; 8+ messages in thread
From: Leo Famulari @ 2021-05-02  4:36 UTC (permalink / raw)
  To: 47979

On Fri, Apr 23, 2021 at 08:56:43PM -0400, Leo Famulari wrote:
> With Leo Prikler's help on #guix [0], I got it to work :)
> 
> I've attached the working patch, as well as a patch to offer the GPM
> "console mouse" service on non-graphical systems.
> 
> [0] http://logs.guix.gnu.org/guix/2021-04-24.log#012921

> From 6f2f131551247aa20794007c43ae61b82f6e34d6 Mon Sep 17 00:00:00 2001
> From: Leo Famulari <leo@famulari.name>
> Date: Fri, 23 Apr 2021 14:50:15 -0400
> Subject: [PATCH 1/2] installer: Recommend 'ntp-service-type' for non-graphical
>  systems.
> 
> We had several bug reports with a root cause of "the clock was
> incorrect" from users who used the installer to install a non-graphical
> Guix System.
> 
> * gnu/installer/services.scm (%system-services): Add the ntp-service-type.
> * gnu/installer/newt/services.scm (run-system-administration-cbt-page): New
> variable.
> (run-services-page): Use run-system-administration-cbt-page when not
> installing a desktop.

Ping!

I suppose it's too late for 1.3.0, due to the string freeze.

But I am asking for review anyways.




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

* [bug#47979] [PATCH v3] installer: Recommend 'ntp-service-type' for non-graphical systems.
  2021-05-02  4:36       ` Leo Famulari
@ 2021-05-02  9:25         ` Mathieu Othacehe
  2021-05-02 15:22           ` Leo Famulari
  0 siblings, 1 reply; 8+ messages in thread
From: Mathieu Othacehe @ 2021-05-02  9:25 UTC (permalink / raw)
  To: Leo Famulari; +Cc: 47979


Hey Leo,

> I suppose it's too late for 1.3.0, due to the string freeze.

It looks rather nice, but I'll test it more thoroughly after the
release. Did you make sure that the installer tests are passing with:

make check-system TESTS="gui-installed-os gui-uefi-installed-os
gui-installed-os-encrypted gui-installed-desktop-os-encrypted"

Thanks,

Mathieu





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

* [bug#47979] [PATCH v3] installer: Recommend 'ntp-service-type' for non-graphical systems.
  2021-05-02  9:25         ` Mathieu Othacehe
@ 2021-05-02 15:22           ` Leo Famulari
  0 siblings, 0 replies; 8+ messages in thread
From: Leo Famulari @ 2021-05-02 15:22 UTC (permalink / raw)
  To: Mathieu Othacehe; +Cc: 47979

On Sun, May 02, 2021 at 11:25:05AM +0200, Mathieu Othacehe wrote:
> 
> Hey Leo,
> 
> > I suppose it's too late for 1.3.0, due to the string freeze.
> 
> It looks rather nice, but I'll test it more thoroughly after the
> release. Did you make sure that the installer tests are passing with:
> 
> make check-system TESTS="gui-installed-os gui-uefi-installed-os
> gui-installed-os-encrypted gui-installed-desktop-os-encrypted"

I tested it on "bare metal", but I will run the systems tests, too.




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

end of thread, other threads:[~2021-05-02 15:23 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-04-23 18:53 [bug#47979] [PATCH] installer: Recommend 'ntp-service-type' for non-graphical systems Leo Famulari
2021-04-23 18:56 ` Leo Famulari
2021-04-23 22:45   ` Leo Famulari
2021-04-23 23:20     ` Leo Famulari
2021-04-24  0:56     ` [bug#47979] [PATCH v3] " Leo Famulari
2021-05-02  4:36       ` Leo Famulari
2021-05-02  9:25         ` Mathieu Othacehe
2021-05-02 15:22           ` Leo Famulari

unofficial mirror of guix-patches@gnu.org 

This inbox may be cloned and mirrored by anyone:

	git clone --mirror https://yhetil.org/guix-patches/1 guix-patches/git/1.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 guix-patches guix-patches/ https://yhetil.org/guix-patches \
		guix-patches@gnu.org
	public-inbox-index guix-patches

Example config snippet for mirrors.
Newsgroup available over NNTP:
	nntp://news.yhetil.org/yhetil.gnu.guix.patches


AGPL code for this site: git clone http://ou63pmih66umazou.onion/public-inbox.git