diff mbox series

[bug#49201] installer: Offer the CUPS printing service.

Message ID 20210623230341.20227-1-me@tobias.gr
State Accepted
Headers show
Series [bug#49201] installer: Offer the CUPS printing service. | expand

Checks

Context Check Description
cbaines/comparison success View comparision
cbaines/git branch success View Git branch
cbaines/applying patch success View Laminar job
cbaines/issue success View issue

Commit Message

Tobias Geerinckx-Rice June 23, 2021, 11:03 p.m. UTC
* gnu/installer/services.scm (%system-services): Add CUPS.
---
 gnu/installer/services.scm | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

Comments

Mathieu Othacehe June 29, 2021, 3:26 p.m. UTC | #1
Hey Tobias,

> +      (name (G_ "CUPS printing system (Web interface disabled)"))
> +      (type 'document)
> +      (snippet '((service cups-service-type)))))))

Any particular reason not to enable the Web interface by default?

Otherwise, if you made sure that 

--8<---------------cut here---------------start------------->8---
make check-system TESTS="gui-installed-os gui-uefi-installed-os
gui-installed-os-encrypted gui-installed-desktop-os-encrypted"
--8<---------------cut here---------------end--------------->8---

works, I think you can go ahead.

Thanks,

Mathieu
Tobias Geerinckx-Rice June 29, 2021, 3:50 p.m. UTC | #2
Hi Mathieu,

Mathieu Othacehe 写道:
> Hey Tobias,
>
>> +      (name (G_ "CUPS printing system (Web interface 
>> disabled)"))
>> +      (type 'document)
>> +      (snippet '((service cups-service-type)))))))
>
> Any particular reason not to enable the Web interface by 
> default?

I think it unwise to override upstream defaults for a feature they 
consider ‘on life support’.

Their position is that instead of the bolted-on CGI interface, 
users should use a UI that speaks directly to CUPS's C or HTTP 
API, like system-config-printer.

The only reason I added the default state in brackets is to remind 
those who do want the Web UI that it's a separate thing, so when 
they open https://localhost:631 a week later they might remember 
that and what to enable :-)

> Otherwise, if you made sure that 
>
> make check-system TESTS="gui-installed-os gui-uefi-installed-os
> gui-installed-os-encrypted gui-installed-desktop-os-encrypted"

Eh, I just ran all of the tests.  No new ones failed.

By the way: the *os-encrypted ones never work, they all hang 
forever at the Linux LUKS prompt.

> works, I think you can go ahead.

Thanks for replying!  I'll push it tomorrow.

Kind regards,

T G-R
Mathieu Othacehe July 3, 2021, 3:31 p.m. UTC | #3
Hey Tobias,

>> Otherwise, if you made sure that 
>> make check-system TESTS="gui-installed-os gui-uefi-installed-os
>> gui-installed-os-encrypted gui-installed-desktop-os-encrypted"
>
> Eh, I just ran all of the tests.  No new ones failed.

On Berlin, all four installer tests are now failing. The log message
seems to point towards the recent CUPS service addition:
https://ci.guix.gnu.org/build/639140/log/raw.

Mathieu
Mathieu Othacehe July 3, 2021, 3:52 p.m. UTC | #4
> On Berlin, all four installer tests are now failing. The log message
> seems to point towards the recent CUPS service addition:
> https://ci.guix.gnu.org/build/639140/log/raw.

There are a few pointers on how to fix the test failure in this thread:
https://issues.guix.gnu.org/47979#8.

Thanks,

Mathieu
Tobias Geerinckx-Rice July 4, 2021, 10:54 a.m. UTC | #5
Mathieu,

Thanks.  I finally pushed [0] to fix this.  Finally, because I 
really wanted to filter other services with (const #t) instead of 
#f, but didn't find a way to make it work.  I mean, …

  (define %extra-packages
    (cons* cups
           …
           ((@@ (gnu services cpus) cups-configuration-extensions)
            (cups-configuration))))

…just, no.

I'm sure my sub-par Gexp-foo is to blame, and there's a clean way 
to include the closure of a service in the installation-os…?

Mathieu Othacehe 写道:
> On Berlin, all four installer tests are now failing. The log 
> message
> seems to point towards the recent CUPS service addition:
> https://ci.guix.gnu.org/build/639140/log/raw.

All tests ‘passed‘ (in retrospect obviously not seeing the cups 
changes) on my laptop, until I rebuilt my checkout from scratch.

Recompiling Guix as a matter of course is prohibitive on this 
machine, but I'll make a habit of doing so before running the rare 
and slower system test.

> There are a few pointers on how to fix the test failure in this 
> thread:

Oops.  Oh well.  I'm actually glad I missed that.  I finally feel 
some familiarity with how system and installer tests work, now.)

Kind regards,

T G-R

[0]: 
https://git.savannah.gnu.org/cgit/guix.git/commit/?id=0dbd2c3b089d50bdfbed86916d06cc4f0da8893d
Mathieu Othacehe July 5, 2021, 7:20 a.m. UTC | #6
Hey Tobias,

> I'm sure my sub-par Gexp-foo is to blame, and there's a clean way to include
> the closure of a service in the installation-os…?

Including a service closure in the installation tests is currently quite
tricky. As explained here: https://issues.guix.gnu.org/47979#15, I guess
it would require to add the cups-service-type to the
installation-target-os-for-gui-tests procedure.

> Oops.  Oh well.  I'm actually glad I missed that.  I finally feel some
> familiarity with how system and installer tests work, now.)

The CI also confirms that things are back to normal.

Thanks for taking care of that,

Mathieu
diff mbox series

Patch

diff --git a/gnu/installer/services.scm b/gnu/installer/services.scm
index b0007218ae..195b27aa77 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 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -117,7 +118,13 @@ 
      (system-service
       (name (G_ "DHCP client (dynamic IP address assignment)"))
       (type 'network-management)
-      (snippet '((service dhcp-client-service-type)))))))
+      (snippet '((service dhcp-client-service-type))))
+
+     ;; Dealing with documents.
+     (system-service
+      (name (G_ "CUPS printing system (Web interface disabled)"))
+      (type 'document)
+      (snippet '((service cups-service-type)))))))
 
 (define (desktop-system-service? service)
   "Return true if SERVICE is a desktop environment service."