aboutsummaryrefslogtreecommitdiff
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2018 Mathieu Othacehe <m.othacehe@gmail.com>
;;; Copyright © 2019 Ludovic Courtès <ludo@gnu.org>
;;;
;;; 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 <http://www.gnu.org/licenses/>.

(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)
  #: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"))
     (abort-to-prompt '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 _
        (abort-to-prompt 'installer-step 'abort))
      #:listbox-callback-procedure connect-ethernet-service))))
e-learning.scm (dlib, tensorflow)[inputs]: Likewise. * gnu/packages/mate.scm (atril, eom)[inputs]: Likewise. * gnu/packages/maths.scm (hdf4, hdf-java, hdf-eos2, netcdf)[inputs]: Likewise. * gnu/packages/netpbm.scm (netpbm)[inputs]: Likewise. * gnu/packages/pdf.scm (zathura-pdf-mupdf, podofo, mupdf, fbida)[inputs]: Likewise. * gnu/packages/photo.scm (libraw, libpano13, enblend-enfuse, darktable, hugin, rawtherapee)[inputs]: Likewise. * gnu/packages/prolog.scm (swi-prolog)[native-inputs]: Likewise. * gnu/packages/python-xyz.scm (python-hdf4, python-pillow)[inputs]: Likewise. * gnu/packages/qt.scm (qtbase, qtwebkit)[inputs]: Likewise. * gnu/packages/rdesktop.scm (freerdp)[inputs]: Likewise. * gnu/packages/scanner.scm (sane-backends, xsane)[inputs]: Likewise. * gnu/packages/scheme.scm (racket)[inputs]: Likewise. * gnu/packages/scribus.scm (scribus)[inputs]: Likewise. * gnu/packages/sdl.scm (sdl-image)[propagated-inputs]: Likewise. (guile-sdl)[native-inputs]: Likewise. * gnu/packages/spice.scm (spice-gtk)[inputs]: Likewise. * gnu/packages/statistics.scm (r-with-tests)[inputs]: Likewise. * gnu/packages/tcl.scm (perl-tk)[inputs]: Likewise. * gnu/packages/upnp.scm (readymedia)[inputs]: Likewise. * gnu/packages/video.scm (mplayer, mpv, v4l-utils, motion)[inputs]: Likewise. * gnu/packages/web-browsers.scm (dillo, links)[inputs]: Likewise. * gnu/packages/web.scm (netsurf)[inputs]: Likewise. * gnu/packages/webkit.scm (webkitgtk)[inputs]: Likewise. * gnu/packages/wine.scm (wine)[inputs]: Likewise. * gnu/packages/wv.scm (wv)[inputs]: Likewise. * gnu/packages/wxwidgets.scm (wxwidgets, wxwidgets-2)[inputs]: Likewise. * gnu/packages/xdisorg.scm (xscreensaver)[inputs]: Likewise. * gnu/packages/xfce.scm (tumbler)[inputs]: Likewise. * gnu/packages/xfig.scm (xfig, transfig)[inputs]: Likewise. * gnu/packages/xorg.scm (xpra)[inputs]: Likewise. Marius Bakke 2020-01-18gnu: qview: Update to 3.0....* gnu/packages/image-viewers.scm (qview): Update to 3.0. Nicolas Goaziou 2020-01-17gnu: imv: Record the absolute file name of 'imv-x11' and 'imv-wayland'....* gnu/packages/image-viewers.scm (imv)[arguments]: Add 'record-absolute-file-names' phase. Ludovic Courtès 2020-01-17gnu: Add imv....* gnu/packages/image-viewers.scm (imv): New variable. Signed-off-by: Ludovic Courtès <ludo@gnu.org> Peng Mei Yu 2019-12-20gnu: catimg: Update to 2.6.0....* gnu/packages/image-viewers.scm (catimg): Update to 2.6.0. Efraim Flashner 2019-12-04gnu: feh: Update to 3.3....* gnu/packages/patches/feh-fix-tests-for-imlib2-1.6.patch: Delete file. * gnu/local.mk (dist_patch_DATA): Adjust accordingly. * gnu/packages/image-viewers.scm (feh): Update to 3.3. [source](patches): Remove. Marius Bakke 2019-11-28gnu: feh: Adapt tests for imlib2 1.6....* gnu/packages/patches/feh-fix-tests-for-imlib2-1.6.patch: New file. * gnu/packages/image-viewers.scm (feh)[source]: Use it. * gnu/local.mk (dist_patch_DATA): Add it. Signed-off-by: Marius Bakke <mbakke@fastmail.com> Pierre Langlois 2019-11-10gnu: Add 'file-name' where appropriate....* gnu/packages/admin.scm (detox, neofetch), gnu/packages/algebra.scm (python-fpylll), gnu/packages/bioinformatics.scm (tbsp, genrich), gnu/packages/crypto.scm (hpenc), gnu/packages/digest.scm (xxhash), gnu/packages/emacs-xyz.scm (emacs-tiny, emacs-ergoemacs-mode, emacs-make-it-so, emacs-poet-theme, emacs-deft, emacs-scribble-mode, emacs-helm-mu, emacs-unidecode, emacs-diff-hl, emacs-helm-exwm, emacs-gif-screencast, emacs-exec-path-from-shell), gnu/packages/engineering.scm (gpx), gnu/packages/freedesktop.scm (waylandpp), gnu/packages/golang.scm (go-github-com-sirupsen-logrus, go-github-com-shirou-gopsutil), gnu/packages/guile-xyz.scm (guile-studio, guile-picture-language, jupyter-guile-kernel), gnu/packages/image-viewers.scm (qview), gnu/packages/java-maths.scm (java-jblas), gnu/packages/llvm.scm (libclc), gnu/packages/logging.scm (spdlog), gnu/packages/ocaml.scm (ocaml-cstruct, ocaml-zarith), gnu/packages/terminals.scm (libtsm), gnu/packages/tigervnc.scm (tigervnc-client), gnu/packages/xdisorg.scm (xcalib, xbanish) [source]: Add file-name. Efraim Flashner 2019-08-22gnu: chafa: Update to 1.2.1....* gnu/packages/image-viewers.scm (chafa): Update to 1.2.1. Tobias Geerinckx-Rice 2019-08-17gnu: geeqie: Build sequentially....* gnu/packages/image-viewers.scm (geeqie)[arguments]: Add #:parallel-build?. Ludovic Courtès 2019-07-27gnu: feh: Update to 3.2.1....* gnu/packages/image-viewers.scm (feh): Update to 3.2.1. Marius Bakke 2019-07-03gnu: geeqie: Update to commit c220dde....* gnu/packages/image-viewers.scm (geeqie): Update to commit c220dde. [source]: Use 'git-fetch' and 'git-reference'. [arguments] <pre-bootstrap>: Add 'substitute*' calls for 'configure.ac' and 'po/POTFILES.in'. Ludovic Courtès 2019-07-02gnu: Add chafa....* gnu/packages/image-viewers.scm (chaffa): New variable. Signed-off-by: Ludovic Courtès <ludo@gnu.org> guy fleury iteriteka 2019-06-05gnu: Add qview....* gnu/packages/image-viewers.scm (qview): New variable. Nicolas Goaziou