aboutsummaryrefslogtreecommitdiff
path: root/gnu/installer/hardware.scm
blob: cd1a1767d820745592e5422b509c465d803db1cf (about) (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2022 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
;;;
;;; 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 hardware)
  #:use-module (gnu build linux-modules)
  #:use-module (guix i18n)
  #:use-module (srfi srfi-1)
  #:use-module (srfi srfi-71)
  #:export (unsupported-pci-device?
            pci-device-description))

(define %unsupported-linux-modules
  ;; List of Linux modules that are useless without non-free firmware.
  ;;
  ;; Currently only drivers for PCI devices are listed.  USB devices such as
  ;; "btintel" would require support to list USB devices and read the USB
  ;; device ID database.  Punt for now as this is usually less critical.
  ;;
  ;; This list is currently manually maintained based on information on
  ;; non-free firmware available from
  ;; <https://packages.debian.org/search?keywords=firmware&searchon=names&suite=stable&section=all>.
  '(;; WiFi.
    "brcmfmac"
    "ipw2100"
    "ipw2200"
    "iwlwifi"
    "mwl8k"
    "rtl8188ee"
    "rtl818x_pci"
    "rtl8192ce"
    "rtl8192de"
    "rtl8192ee"

    ;; Ethernet.
    "bnx2"
    "bnx2x"
    "liquidio"

    ;; Graphics.
    "amdgpu"
    "radeon"

    ;; Multimedia.
    "ivtv"))

(define unsupported-pci-device?
  ;; Arrange to load the module alias database only once.
  (let ((aliases (delay (known-module-aliases))))
    (lambda (device)
      "Return true if DEVICE is known to not be supported by free software."
      (any (lambda (module)
             (member module %unsupported-linux-modules))
           (matching-modules (pci-device-module-alias device)
                             (force aliases))))))

(define (pci-device-description pci-database)
  "Return a procedure that, given a PCI device, returns a string describing
it."
  (define (with-fallback lookup)
    (lambda (vendor-id id)
      (let ((vendor name (lookup vendor-id id)))
        (values (or vendor (number->string vendor-id 16))
                (or name (number->string id 16))))))

  (define pci-lookup
    (with-fallback (load-pci-device-database pci-database)))

  (lambda (device)
    (let ((vendor name (pci-lookup (pci-device-vendor device)
                                   (pci-device-id device))))
      (if (network-pci-device? device)
          ;; TRANSLATORS: The two placeholders are the manufacturer
          ;; and name of a PCI device.
          (format #f (G_ "~a ~a (networking device)")
                  vendor name)
          (string-append vendor " " name)))))
kler <liliana.prikler@gmail.com> Greg Hogan 2021-07-23gnu: hpcguix-web: Update to 0.1.0....* gnu/packages/web.scm (hpcguix-web): Update to 0.1.0. [arguments]: In 'wrap-program' phase, change "/bin/run" to "/bin/hpcguix-web". [inputs]: Add BASH-MINIMAL. * gnu/services/web.scm (hpcguix-web-shepherd-service): Run "/bin/hpcguix-web". Ludovic Courtès 2021-04-01gnu: services: web: Have fcgiwrap log to a file....This makes it easier to access the output. * gnu/services/web.scm (fcgiwrap-shepherd-service): Pass #:log-file to make-forkexec-constructor. Christopher Baines 2021-04-01gnu: services: web: Cleanup whitespace....Replace tabs with spaces, and delete trailing whitespace. * gnu/services/web.scm: Cleanup whitespace. Christopher Baines 2021-02-15services: Add Agate Gemini service....* gnu/services/web.scm (<agate-configuration>): New record type. (agate-accounts, agate-shepherd-service): New procedures. (agate-service-type): New variable. * doc/guix.texi (Web Services): Document it. Signed-off-by: Nicolas Goaziou <mail@nicolasgoaziou.fr> Alexandru-Sergiu Marton 2021-01-17gnu: php-fpm: Ensure no duplicate group....* gnu/services/web.scm (php-fpm-accounts): Ensure `php-fpm` group is not duplicated. Signed-off-by: Leo Prikler <leo.prikler@student.tugraz.at> Julien Lepiller 2020-11-14services: gmnisrv: Export procedures and service type....* gnu/services/web.scm: Export gmnisrv-configuration, gmnisrv-configuration?, gmnisrv-configuration-package, gmnisrv-configuration-config-file, gmnisrv-service-type. Signed-off-by: Christopher Baines <mail@cbaines.net> Alexandru-Sergiu Marton 2020-11-09services: nginx: Re-introduce server-names-hash-bucket-size....This was unintentionally removed in 00014f769233facebd84f13a00b10032a22cb440. * gnu/services/web.scm (default-nginx-config): Re-introduce processing of server-names-hash-bucket-size option. Julien Lepiller 2020-10-27services: Add gmnisrv web service....* gnu/services/web.scm (<gmnisrv-configuration>): New record type. (%default-gmnisrv-config-file): New variable. (%gmnisrv-accounts, %gmnisrv-activation): New variables. (gmnisrv-shepherd-service): New procedure. (gmnisrv-service-type): New variable. * doc/guix.texi (Web Services): Document it. Signed-off-by: Ludovic Courtès <ludo@gnu.org> Alexandru-Sergiu Marton 2020-10-27services: hpcguix-web: Set 'XDG_CACHE_HOME' to a writable directory....* gnu/services/web.scm (hpcguix-web-shepherd-service): Change XDG_CACHE_HOME to /var/cache/guix/web. Previously, the authentication code would try to write to /var/cache/guix/authentication, which would fail. Ludovic Courtès 2020-10-14services: nginx: Add lua module....* gnu/services/web.scm (<nginx-configuration>) [lua-package-path, lua-package-cpath]: New record types. * gnu/services/web.scm (default-nginx-config): Use them. * doc/guix.texi (Web Services): Document this. * doc/guix-cookbook.texi (System Configuration): Document this. Oleg Pykhalov 2020-10-14services: nginx: Fix typo in exported symbol....* gnu/services/web.scm: Fix typo in exported symbol. Signed-off-by: Julien Lepiller <julien@lepiller.eu> Lulu 2020-09-10services: php-fpm: Add 'php-ini-file' configuration....* gnu/services/web.scm: (<php-fpm-configuration>)[php-ini-file]: New record field. (php-fpm-shepherd-service): Use it. * doc/guix.texi (Web Services): Document it. Jelle Licht 2020-08-26services: fcgiwrap: Create parent directory for unix socket....* gnu/services/web.scm (fcgiwrap-activation): New function. (fcgiwrap-service-type): Extend activation-service-type with fcgiwrap-activation. Arun Isaac 2020-07-12services: web: Do not export record type descriptors....* gnu/services/web.scm (<httpd-configuration>, <httpd-virtualhost>) (<httpd-config-file>, <httpd-module>, <nginx-configuration>) (<nginx-server-configuration>, <nginx-upstream-configuration>) (<nginx-location-configuration>, <nginx-named-location-configuration>) (<php-fpm-configuration>, <php-fpm-dynamic-process-manager-configuration>) (<php-fpm-static-process-manager-configuration>) (<php-fpm-on-demand-process-manager-configuration>) (<tailon-configuration-file>, <tailon-configuration>) (<varnish-configuration>, <patchwork-database-configuration>) (<patchwork-settings-module>, <patchwork-configuration>) (<mumi-configuration>): Do not export. Ludovic Courtès 2020-07-12services: mumi: Run in a UTF-8 locale....* gnu/services/web.scm (mumi-shepherd-services)[environment]: New variable. Pass it as #:environment-variables to each 'make-forkexec-constructor' call. Ludovic Courtès 2020-06-25services: Add missing (ice-9 format) import....These issues were reported by -Wformat, though they were harmless in practice because importing (ice-9 format) changes the global 'format' binding currently. * gnu/services/nix.scm: Import (ice-9 format). * gnu/services/web.scm: Likewise. * gnu/system/mapped-devices.scm: Likewise. Ludovic Courtès 2020-05-13mailmap: Update entries for Nikita....* .mailmap: change email and name for Nikita. * Makefile.am, doc/guix.texi, etc/completion/fish/guix.fish, gnu/packages/accessibility.scm, gnu/packages/admin.scm, gnu/packages/audio.scm, gnu/packages/autotools.scm, gnu/packages/cdrom.scm, gnu/packages/check.scm, gnu/packages/cinnamon.scm, gnu/packages/compression.scm, gnu/packages/crypto.scm, gnu/packages/databases.scm, gnu/packages/django.scm, gnu/packages/dns.scm, gnu/packages/elixir.scm, gnu/packages/emacs-xyz.scm, gnu/packages/emacs.scm, gnu/packages/enlightenment.scm, gnu/packages/erlang.scm, gnu/packages/fonts.scm, gnu/packages/fontutils.scm, gnu/packages/forth.scm, gnu/packages/fvwm.scm, gnu/packages/games.scm, gnu/packages/gl.scm, gnu/packages/gnome.scm, gnu/packages/gnunet.scm, gnu/packages/gnupg.scm, gnu/packages/gtk.scm, gnu/packages/guile-wm.scm, gnu/packages/guile-xyz.scm, gnu/packages/haskell-apps.scm, gnu/packages/haskell-check.scm, gnu/packages/haskell-crypto.scm, gnu/packages/haskell-xyz.scm, gnu/packages/haskell.scm, gnu/packages/image-viewers.scm, gnu/packages/image.scm, gnu/packages/irc.scm, gnu/packages/language.scm, gnu/packages/libcanberra.scm, gnu/packages/linux.scm, gnu/packages/lisp-xyz.scm, gnu/packages/lisp.scm, gnu/packages/lolcode.scm, gnu/packages/lxde.scm, gnu/packages/lxqt.scm, gnu/packages/mail.scm, gnu/packages/markup.scm, gnu/packages/mate.scm, gnu/packages/maths.scm, gnu/packages/mc.scm, gnu/packages/messaging.scm, gnu/packages/music.scm, gnu/packages/ncurses.scm, gnu/packages/networking.scm, gnu/packages/nickle.scm, gnu/packages/openbox.scm, gnu/packages/pdf.scm, gnu/packages/perl-check.scm, gnu/packages/perl.scm, gnu/packages/python-compression.scm, gnu/packages/python-crypto.scm, gnu/packages/python-web.scm, gnu/packages/python-xyz.scm, gnu/packages/python.scm, gnu/packages/qt.scm, gnu/packages/ruby.scm, gnu/packages/rust.scm, gnu/packages/scheme.scm, gnu/packages/serialization.scm, gnu/packages/shells.scm, gnu/packages/ssh.scm, gnu/packages/suckless.scm, gnu/packages/tbb.scm, gnu/packages/telephony.scm, gnu/packages/text-editors.scm, gnu/packages/textutils.scm, gnu/packages/time.scm, gnu/packages/tls.scm, gnu/packages/tor.scm, gnu/packages/version-control.scm, gnu/packages/video.scm, gnu/packages/vim.scm, gnu/packages/web.scm, gnu/packages/wm.scm, gnu/packages/xdisorg.scm, gnu/packages/xfce.scm, gnu/packages/xml.scm, gnu/packages/xorg.scm, gnu/services/certbot.scm, gnu/services/desktop.scm, gnu/services/version-control.scm, gnu/services/web.scm, guix/import/hackage.scm, guix/licenses.scm: Likewise. Signed-off-by: Efraim Flashner <efraim@flashner.co.il> nikita 2020-04-08services/web: Fix ordering of default-nginx-config....Fixes an error message '"load_module" directive is specified too late'. * gnu/services/web.scm (default-nginx-config): Emit load_module before global directives. Florian Pelz 2020-04-06services/web: Add missing ungexp for mumi shepherd services....This is a follow-up to commit f00f52a1fb5ac08f8059dffcd60d36adcda06603. * gnu/services/web.scm (mumi-shepherd-services): Ungexp variables. Ricardo Wurmus 2020-04-06services/web: Add default values to all mumi-configuration fields....This is a follow-up to commit f00f52a1fb5ac08f8059dffcd60d36adcda06603. * gnu/services/web.scm (<mumi-configuration>)[sender,smtp]: Add default values. Ricardo Wurmus 2020-04-06gnu: mumi: Update to 0.0.0-12.bb2fe92....* gnu/packages/mail.scm (mumi): Update to 0.0.0-12.bb2fe92. [inputs]: Add guile-gcrypt, guile-redis, guile-webutils, mailutils. * gnu/services/web.scm (<mumi-configuration>): New record type. (mumi-configuration, mumi-configuration?, mumi-configuration-mumi, mumi-configuration-mailer?, mumi-configuration-sender, mumi-configuration-smtp): New procedures. (mumi-shepherd-services): Accept configuration; adjust start commands; add Shepherd service for mumi mailer. (mumi-service-type): Pass default configuration. * doc/guix.texi (Web Services): Update documentation. Ricardo Wurmus 2020-03-16services/web: Export nginx-configuration-global-directives....This is a follow-up to commit b420e6deb96e0760f12e3d941b76e690c4235e47. * gnu/services/web.scm (nginx-configuration-global-directives): Export procedure. Ricardo Wurmus 2020-03-16services: nginx: Fix broken default configuration....* gnu/services/web.scm (nginx-configuration): Emit an empty events{} block by default. * doc/guix.texi (Web Services): Document it. Tobias Geerinckx-Rice 2020-03-15services/web: nginx-configuration: Add support for global directives....* gnu/services/web.scm (<nginx-configuration>)[global-directives]: Add field. (emit-global-directive): New procedure. (default-nginx-config): Use it. * doc/guix.texi (Web Services): Document it. Ricardo Wurmus 2020-03-15services/web: Remove empty events directive from default-nginx-config....* gnu/services/web.scm (default-nginx-config): Remove empty events directive. Ricardo Wurmus 2020-03-12services: mumi-service-type: Update to latest version of mumi....* gnu/services/web.scm (%mumi-activation): Create /var/mumi/db. (mumi-shepherd-services): Add service for mumi worker. Ricardo Wurmus 2020-02-09services: web: Use the Patchwork default-from-email....Previously this wasn't used, but it should have been. * gnu/services/web.scm (patchwork-settings-module-compiler): Use the default-from-email. Christopher Baines