;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2018 Mathieu Othacehe ;;; Copyright © 2019 Ludovic Courtès ;;; ;;; This file is part of GNU Guix. ;;; ;;; GNU Guix is free software; you can redistribute it and/or modify it ;;; under the terms of the GNU General Public License as published by ;;; the Free Software Foundation; either version 3 of the License, or (at ;;; your option) any later version. ;;; ;;; GNU Guix is distributed in the hope that it will be useful, but ;;; WITHOUT ANY WARRANTY; without even the implied warranty of ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ;;; GNU General Public License for more details. ;;; ;;; You should have received a copy of the GNU General Public License ;;; along with GNU Guix. If not, see . (define-module (gnu installer newt ethernet) #:use-module (gnu installer connman) #:use-module (gnu installer steps) #:use-module (gnu installer newt utils) #:use-module (gnu installer newt page) #:use-module (guix i18n) #:use-module (ice-9 format) #:use-module (ice-9 match) #:use-module (srfi srfi-34) #:use-module (srfi srfi-35) #:use-module (newt) #:export (run-ethernet-page)) (define (ethernet-services) "Return all the connman services of ethernet type." (let ((services (connman-services))) (filter (lambda (service) (and (string=? (service-type service) "ethernet") (not (string-null? (service-name service))))) services))) (define (ethernet-service->text service) "Return a string describing the given ethernet SERVICE." (let* ((name (service-name service)) (path (service-path service)) (full-name (string-append name "-" path)) (state (service-state service)) (connected? (or (string=? state "online") (string=? state "ready")))) (format #f "~c ~a~%" (if connected? #\* #\ ) full-name))) (define (connect-ethernet-service service) "Connect to the given ethernet SERVICE. Display a connecting page while the connection is pending." (let* ((service-name (service-name service)) (form (draw-connecting-page service-name))) (connman-connect service) (destroy-form-and-pop form) service)) (define (run-ethernet-page) (match (ethernet-services) (() (run-error-page (G_ "No ethernet service available, please try again.") (G_ "No service")) (raise (condition (&installer-step-abort)))) ((service) ;; Only one service is available so return it directly. service) ((services ...) (run-listbox-selection-page #:info-text (G_ "Please select an ethernet network.") #:title (G_ "Ethernet connection") #:listbox-items services #:listbox-item->text ethernet-service->text #:listbox-height (min (+ (length services) 2) 5) #:button-text (G_ "Exit") #:button-callback-procedure (lambda _ (raise (condition (&installer-step-abort)))) #:listbox-callback-procedure connect-ethernet-service)))) erl’. Reported-by: Janneke Nieuwenhuizen <janneke@gnu.org> Change-Id: Ia9d05c699e3cc2f9a9235a67f8ec840c26b66a82 Ludovic Courtès 2024-06-24manifest: Streamline; add packages useful for patch review/submission....* manifest.scm: Fix alternate command line invocation (which would not consider 'manifest.scm'). Use specifications instead of packages. Remove perl (now in the guix package's native inputs). Add b4, git, git:send-email, mumi, nss-certs, openssl and patman to the manifest. Change-Id: I49d92dda059856ce217cea9054a466a1754dcf94 Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com> Maxim Cournoyer 2024-04-02maint: Add perl to the manifest....* manifest.scm: Add perl. Change-Id: Ie70cea1eb4d62f2a649292209391a92abdae2288 Janneke Nieuwenhuizen 2024-01-31maint: Add gnupg to the manifest....* manifest.scm: Add gnupg. Change-Id: Id5e90f87e5c3a07aa3e49afa97cc0b6d3ce71b41 Ludovic Courtès 2023-09-18maint: Support `guix shell' in Guix's git archive with manifest.scm....* manifest.scm: New file. * Makefile.am (EXTRA_DIST): Add it. * doc/contributing.texi (Building from Git): Mention using it. Janneke Nieuwenhuizen