installer: Check if ci.guix.gnu.org can be reached.
* gnu/installer.scm (installer-program): Add gnutls extension. * gnu/installer/newt/network.scm (wait-service-online): Check if the CI server can be reached.
parent
c6910baf36
commit
ee897e5f51
|
@ -44,6 +44,7 @@
|
||||||
#:use-module (gnu packages linux)
|
#:use-module (gnu packages linux)
|
||||||
#:use-module (gnu packages ncurses)
|
#:use-module (gnu packages ncurses)
|
||||||
#:use-module (gnu packages package-management)
|
#:use-module (gnu packages package-management)
|
||||||
|
#:use-module (gnu packages tls)
|
||||||
#:use-module (gnu packages xorg)
|
#:use-module (gnu packages xorg)
|
||||||
#:use-module (gnu system locale)
|
#:use-module (gnu system locale)
|
||||||
#:use-module (ice-9 match)
|
#:use-module (ice-9 match)
|
||||||
|
@ -351,7 +352,7 @@ selected keymap."
|
||||||
;; packages …), etc. modules.
|
;; packages …), etc. modules.
|
||||||
(with-extensions (list guile-gcrypt guile-newt
|
(with-extensions (list guile-gcrypt guile-newt
|
||||||
guile-parted guile-bytestructures
|
guile-parted guile-bytestructures
|
||||||
guile-json-3 guile-git guix)
|
guile-json-3 guile-git guix gnutls)
|
||||||
(with-imported-modules `(,@(source-module-closure
|
(with-imported-modules `(,@(source-module-closure
|
||||||
`(,@modules
|
`(,@modules
|
||||||
(gnu services herd)
|
(gnu services herd)
|
||||||
|
|
|
@ -30,6 +30,8 @@
|
||||||
#:use-module (srfi srfi-34)
|
#:use-module (srfi srfi-34)
|
||||||
#:use-module (srfi srfi-35)
|
#:use-module (srfi srfi-35)
|
||||||
#:use-module (ice-9 match)
|
#:use-module (ice-9 match)
|
||||||
|
#:use-module (web client)
|
||||||
|
#:use-module (web response)
|
||||||
#:use-module (newt)
|
#:use-module (newt)
|
||||||
#:export (run-network-page))
|
#:export (run-network-page))
|
||||||
|
|
||||||
|
@ -119,8 +121,23 @@ network devices were found. Do you want to continue anyway?"))
|
||||||
(define (wait-service-online)
|
(define (wait-service-online)
|
||||||
"Display a newt scale until connman detects an Internet access. Do
|
"Display a newt scale until connman detects an Internet access. Do
|
||||||
FULL-VALUE tentatives, spaced by 1 second."
|
FULL-VALUE tentatives, spaced by 1 second."
|
||||||
|
(define (ci-available?)
|
||||||
|
(dynamic-wind
|
||||||
|
(lambda ()
|
||||||
|
(sigaction SIGALRM
|
||||||
|
(lambda _ #f))
|
||||||
|
(alarm 3))
|
||||||
|
(lambda ()
|
||||||
|
(false-if-exception
|
||||||
|
(= (response-code
|
||||||
|
(http-request "https://ci.guix.gnu.org"))
|
||||||
|
200)))
|
||||||
|
(lambda ()
|
||||||
|
(alarm 0))))
|
||||||
|
|
||||||
(define (online?)
|
(define (online?)
|
||||||
(or (connman-online?)
|
(or (and (connman-online?)
|
||||||
|
(ci-available?))
|
||||||
(file-exists? "/tmp/installer-assume-online")))
|
(file-exists? "/tmp/installer-assume-online")))
|
||||||
|
|
||||||
(let* ((full-value 5))
|
(let* ((full-value 5))
|
||||||
|
@ -137,7 +154,7 @@ FULL-VALUE tentatives, spaced by 1 second."
|
||||||
(unless (online?)
|
(unless (online?)
|
||||||
(run-error-page
|
(run-error-page
|
||||||
(G_ "The selected network does not provide access to the \
|
(G_ "The selected network does not provide access to the \
|
||||||
Internet, please try again.")
|
Internet and the Guix substitute server, please try again.")
|
||||||
(G_ "Connection error"))
|
(G_ "Connection error"))
|
||||||
(raise
|
(raise
|
||||||
(condition
|
(condition
|
||||||
|
|
Reference in New Issue