diff options
| -rw-r--r-- | gnu/installer.scm | 3 | ||||
| -rw-r--r-- | gnu/installer/newt/network.scm | 21 |
2 files changed, 21 insertions, 3 deletions
diff --git a/gnu/installer.scm b/gnu/installer.scm index 600fb76de06..c8b7a66cfc8 100644 --- a/gnu/installer.scm +++ b/gnu/installer.scm | |||
| @@ -44,6 +44,7 @@ | |||
| 44 | #:use-module (gnu packages linux) | 44 | #:use-module (gnu packages linux) |
| 45 | #:use-module (gnu packages ncurses) | 45 | #:use-module (gnu packages ncurses) |
| 46 | #:use-module (gnu packages package-management) | 46 | #:use-module (gnu packages package-management) |
| 47 | #:use-module (gnu packages tls) | ||
| 47 | #:use-module (gnu packages xorg) | 48 | #:use-module (gnu packages xorg) |
| 48 | #:use-module (gnu system locale) | 49 | #:use-module (gnu system locale) |
| 49 | #:use-module (ice-9 match) | 50 | #:use-module (ice-9 match) |
| @@ -351,7 +352,7 @@ selected keymap." | |||
| 351 | ;; packages …), etc. modules. | 352 | ;; packages …), etc. modules. |
| 352 | (with-extensions (list guile-gcrypt guile-newt | 353 | (with-extensions (list guile-gcrypt guile-newt |
| 353 | guile-parted guile-bytestructures | 354 | guile-parted guile-bytestructures |
| 354 | guile-json-3 guile-git guix) | 355 | guile-json-3 guile-git guix gnutls) |
| 355 | (with-imported-modules `(,@(source-module-closure | 356 | (with-imported-modules `(,@(source-module-closure |
| 356 | `(,@modules | 357 | `(,@modules |
| 357 | (gnu services herd) | 358 | (gnu services herd) |
diff --git a/gnu/installer/newt/network.scm b/gnu/installer/newt/network.scm index 4af7143d636..fb221483c3e 100644 --- a/gnu/installer/newt/network.scm +++ b/gnu/installer/newt/network.scm | |||
| @@ -30,6 +30,8 @@ | |||
| 30 | #:use-module (srfi srfi-34) | 30 | #:use-module (srfi srfi-34) |
| 31 | #:use-module (srfi srfi-35) | 31 | #:use-module (srfi srfi-35) |
| 32 | #:use-module (ice-9 match) | 32 | #:use-module (ice-9 match) |
| 33 | #:use-module (web client) | ||
| 34 | #:use-module (web response) | ||
| 33 | #:use-module (newt) | 35 | #:use-module (newt) |
| 34 | #:export (run-network-page)) | 36 | #:export (run-network-page)) |
| 35 | 37 | ||
| @@ -119,8 +121,23 @@ network devices were found. Do you want to continue anyway?")) | |||
| 119 | (define (wait-service-online) | 121 | (define (wait-service-online) |
| 120 | "Display a newt scale until connman detects an Internet access. Do | 122 | "Display a newt scale until connman detects an Internet access. Do |
| 121 | FULL-VALUE tentatives, spaced by 1 second." | 123 | FULL-VALUE tentatives, spaced by 1 second." |
| 124 | (define (ci-available?) | ||
| 125 | (dynamic-wind | ||
| 126 | (lambda () | ||
| 127 | (sigaction SIGALRM | ||
| 128 | (lambda _ #f)) | ||
| 129 | (alarm 3)) | ||
| 130 | (lambda () | ||
| 131 | (false-if-exception | ||
| 132 | (= (response-code | ||
| 133 | (http-request "https://ci.guix.gnu.org")) | ||
| 134 | 200))) | ||
| 135 | (lambda () | ||
| 136 | (alarm 0)))) | ||
| 137 | |||
| 122 | (define (online?) | 138 | (define (online?) |
| 123 | (or (connman-online?) | 139 | (or (and (connman-online?) |
| 140 | (ci-available?)) | ||
| 124 | (file-exists? "/tmp/installer-assume-online"))) | 141 | (file-exists? "/tmp/installer-assume-online"))) |
| 125 | 142 | ||
| 126 | (let* ((full-value 5)) | 143 | (let* ((full-value 5)) |
| @@ -137,7 +154,7 @@ FULL-VALUE tentatives, spaced by 1 second." | |||
| 137 | (unless (online?) | 154 | (unless (online?) |
| 138 | (run-error-page | 155 | (run-error-page |
| 139 | (G_ "The selected network does not provide access to the \ | 156 | (G_ "The selected network does not provide access to the \ |
| 140 | Internet, please try again.") | 157 | Internet and the Guix substitute server, please try again.") |
| 141 | (G_ "Connection error")) | 158 | (G_ "Connection error")) |
| 142 | (raise | 159 | (raise |
| 143 | (condition | 160 | (condition |
