aboutsummaryrefslogtreecommitdiff
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2018, 2022 Arun Isaac <arunisaac@systemreboot.net>
;;; Copyright © 2020 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2021 Brice Waegeneire <brice@waegenei.re>
;;;
;;; 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 services security-token)
  #:use-module (gnu services)
  #:use-module (gnu services shepherd)
  #:use-module (gnu packages admin)
  #:use-module (gnu packages base)
  #:use-module (gnu packages security-token)
  #:use-module (gnu system shadow)
  #:use-module (guix gexp)
  #:use-module (guix modules)
  #:use-module (guix records)
  #:use-module (ice-9 match)
  #:use-module (srfi srfi-26)
  #:export (pcscd-configuration
            pcscd-configuration?
            pcscd-configuration-pcsc-lite
            pcscd-configuration-usb-drivers
            pcscd-service-type))

;;;
;;; PC/SC Smart Card Daemon
;;;

(define-record-type* <pcscd-configuration>
  pcscd-configuration make-pcscd-configuration pcscd-configuration?
  (pcsc-lite pcscd-configuration-pcsc-lite
             (default pcsc-lite))
  (usb-drivers pcscd-configuration-usb-drivers
               (default (list ccid))))

(define pcscd-shepherd-service
  (match-lambda
    (($ <pcscd-configuration> pcsc-lite)
     (shepherd-service
      (documentation "PC/SC Smart Card Daemon")
      (provision '(pcscd))
      (requirement '(syslogd))
      (start #~(lambda _
                 (let ((socket "/run/pcscd/pcscd.comm"))
                   (when (file-exists? socket)
                     (delete-file socket)))
                 (fork+exec-command
                  (list #$(file-append pcsc-lite "/sbin/pcscd")
                        "--foreground")
                  #:log-file "/var/log/pcscd.log")))
      (stop #~(make-kill-destructor))))))

(define pcscd-activation
  (match-lambda
    (($ <pcscd-configuration> pcsc-lite usb-drivers)
     (with-imported-modules (source-module-closure
                             '((guix build utils)))
       #~(begin
           (use-modules (guix build utils))

           (mkdir-p "/var/lib")
           (switch-symlinks "/var/lib/pcsc"
                            #$(directory-union
                               "pcsc"
                               (map (cut file-append <> "/pcsc")
                                    usb-drivers))))))))

(define pcscd-service-type
  (service-type
   (name 'pcscd)
   (description
    "Run @command{pcscd}, the PC/SC smart card daemon.")
   (extensions
    (list (service-extension shepherd-root-service-type
                             (compose list pcscd-shepherd-service))
          (service-extension activation-service-type
                             pcscd-activation)))
   (default-value (pcscd-configuration))))
268756c097212de958f046b29b76c1b'>mailmap: 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 2019-12-21services: Add Mumi service....* gnu/services/web.scm (%mumi-activation, %mumi-accounts): New variables. (mumi-shepherd-services): New procedure. (mumi-service-type): New variable. * doc/guix.texi (Web Services): Document it. Ludovic Courtès 2019-11-28services: nginx: Add description....* gnu/services/web.scm (nginx-service-type)[description]: New field. Ludovic Courtès 2019-11-09services: hpcguix-web: Delete lock files during activation....* gnu/services/web.scm (%hpcguix-web-activation): Delete ".lock" files from HOME-DIR. Ludovic Courtès 2019-11-09services: hpcguix-web: Explicitly import (guix build utils)....* gnu/services/web.scm (%hpcguix-web-activation): Add explicit 'with-imported-modules'. Ludovic Courtès 2019-11-07services: Make it possible to include dynamic modules in nginx....* gnu/services/web.scm (<nginx-configuration>): Add modules field. (nginx-configuration-modules): New field accessor. (emit-load-module): New procedure. (default-nginx-config): Add support for the modules field. * doc/guix.texi (NGINX): Document it. Florian Pelz 2019-11-05services: patchwork: Fix typo....* gnu/services.web.scm (define-gexp-compiler): Use 'enable-rest-api?' where appropriate in place of 'enable-xmlrpc?' Efraim Flashner 2019-10-04services: httpd: Fix virtual-host doc and config....* doc/guix.texi (Web Services): Fix httpd-virtualhost examples. * gnu/services/web.scm (httpd-process-extensions): Add missing newline separator. Jan Nieuwenhuizen 2019-09-04services: nginx: Pass run-directory on config test....Fixes <https://bugs.gnu.org/36388>. This fixes error logging errors in the activation script. * gnu/services/web.scm (nginx-activation): Add "-p" flag. Signed-off-by: Ludovic Courtès <ludo@gnu.org> Robert Vollmert 2019-05-31services: Add patchwork....* gnu/service/web.scm (<patchwork-database-configuration> <patchwork-settings-module>, <patchwork-configuration>): New record types. (patchwork-virtualhost): New procedure. (patchwork-service-type): New variable. * gnu/tests/web.scm (%test-patchwork): New variable. * doc/guix.text (Web Services): Document it. Christopher Baines