aboutsummaryrefslogtreecommitdiff
path: root/gnu/services/security-token.scm
blob: d971091e732ae61c234b507357425360b5bb124d (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
91
92
;;; 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))))
r>2018-04-26gnu: perl-test-output: Update to 1.031....* gnu/packages/perl-check.scm (perl-test-output): Update to 1.031. Tobias Geerinckx-Rice 2018-04-26gnu: perl-test-differences: Update to 0.64....* gnu/packages/perl-check.scm (perl-test-differences): Update to 0.64. Tobias Geerinckx-Rice 2018-04-26gnu: perl-test-pod: Update to 1.52....* gnu/packages/perl-check.scm (perl-test-pod): Update to 1.52. Tobias Geerinckx-Rice 2018-04-26gnu: perl-test-base: Update to 0.89....* gnu/packages/perl-check.scm (perl-test-base): Update to 0.89. Tobias Geerinckx-Rice 2018-04-19gnu: Add perl-test-runvalgrind...* gnu/packages/perl-check.scm (perl-test-runvalgrind): New variable. Signed-off-by: Ludovic Courtès <ludo@gnu.org> Pierre Neidhardt 2018-03-20Correct name and Email for ng0....* .mailmap: Correct name and Email for ng0. * 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/emacs.scm, gnu/packages/enlightenment.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/gnuzilla.scm, gnu/packages/gtk.scm, gnu/packages/guile-wm.scm, gnu/packages/guile.scm, gnu/packages/haskell-check.scm, gnu/packages/haskell-crypto.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.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-crypto.scm, gnu/packages/python-web.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: Tobias Geerinckx-Rice <me@tobias.gr> ng0 2018-03-02gnu: perl-test-harness: Update to 3.41....* gnu/packages/perl-check.scm (perl-test-harness): Update to 3.41. Tobias Geerinckx-Rice 2018-02-24gnu: Add perl-test-roo....* gnu/packages/perl-check.scm (perl-test-roo): New public variable. Oleg Pykhalov 2018-02-24gnu: Add perl-test-failwarnings....* gnu/packages/perl-check.scm (perl-test-failwarnings): New public variable. Oleg Pykhalov 2018-02-24gnu: Add perl-test-filename....* gnu/packages/perl-check.scm (perl-test-filename): New public variable. Oleg Pykhalov 2018-02-06gnu: perl-test-simple: Update to 1.302122....* gnu/packages/perl-check.scm (perl-test-simple): Update to 1.302122. Tobias Geerinckx-Rice 2018-01-10gnu: Use one spelling for ‘copyright’....* gnu/packages/gtk.scm: Standardise on ‘copyright’ spelling in file headers. * gnu/packages/pdf.scm: Likewise. * gnu/packages/perl-check.scm: Likewise. * gnu/packages/perl.scm: Likewise. * guix/import/gem.scm: Likewise. * guix/import/hackage.scm: Likewise. Tobias Geerinckx-Rice 2018-01-02gnu: Add perl-test-mockmodule....* gnu/packages/perl-check.scm (perl-test-mockmodule): New public variable. Tobias Geerinckx-Rice 2018-01-02gnu: perl-check: Request to add packages alphabetically....* gnu/packages/perl-check.scm: Copy comment from gnu/packages/perl.scm. Tobias Geerinckx-Rice 2017-12-21gnu: Add perl-test-requiresinternet....* gnu/packages/perl-check.scm (perl-test-requiresinternet): New public variable. Tobias Geerinckx-Rice 2017-12-16gnu: perl-test-yaml: Update to 1.06....* gnu/packages/perl-check.scm (perl-test-yaml): Update to 1.06 Tobias Geerinckx-Rice 2017-12-16gnu: perl-test-trap: Update to 0.3.3....* gnu/packages/perl-check.scm (perl-test-trap): Update to 0.3.3. Tobias Geerinckx-Rice 2017-12-16gnu: perl-test-trailingspace: Update to 0.0301....* gnu/packages/perl-check.scm (perl-test-trailingspace): Update to 0.0301 Tobias Geerinckx-Rice 2017-12-16gnu: perl-test-simple: Update to 1.302120....* gnu/packages/perl-check.scm (perl-test-simple): Update to 1.302120 Tobias Geerinckx-Rice 2017-12-16gnu: perl-test-most: Update to 0.35....* gnu/packages/perl-check.scm (perl-test-most): Update to 0.35 Tobias Geerinckx-Rice 2017-12-14gnu: perl-test-requires: Update to 0.10....* gnu/packages/perl-check.scm (perl-test-requires): Update to 0.10 Tobias Geerinckx-Rice 2017-12-14gnu: perl-test-pod: Update to 1.51....* gnu/packages/perl-check.scm (perl-test-pod): Update to 1.51 [source]: Update URI. Tobias Geerinckx-Rice 2017-12-14gnu: perl-test-mocktime: Update to 0.15....* gnu/packages/perl-check.scm (perl-test-mocktime): Update to 0.15 [propagated-inputs]: Add perl-time-piece. Tobias Geerinckx-Rice 2017-11-19Update email address for ng0.ng0 2017-11-13gnu: Move test packages from perl to perl-check....* gnu/packages/perl.scm (perl-test2-bundle-extended, perl-test2-plugin-nowarnings, perl-test-base, perl-test-class, perl-test-class-most, perl-test-cleannamespaces, perl-test-command, perl-test-cpan-meta, perl-test-cpan-meta-json, perl-test-deep, perl-test-differences, perl-test-directory, perl-test-eol, perl-test-exception, perl-test-fatal, perl-test-file-sharedir-dist, perl-test-files, perl-test-harness, perl-test-leaktrace, perl-test-longstring, perl-test-manifest, perl-test-memory-cycle, perl-test-mockobject, perl-test-mocktime, perl-test-most, perl-test-needs, perl-test-notabs, perl-test-nowarnings, perl-test-number-delta, perl-test-output, perl-test-pod, perl-test-pod-coverage, perl-test-requires, perl-test-script, perl-test-sharedfork, perl-test-simple, perl-test-taint, perl-test-tester, perl-test-trap, perl-test-utf8, perl-test-warn, perl-test-warnings, perl-test-without-module, perl-test-writevariants, perl-test-yaml, perl-test-trailingspace): Move variables to ... * gnu/packages/perl-check.scm: ... this new file. * gnu/local.mk (GNU_SYSTEM_MODULES): Add it. * gnu/packages/admin.scm, gnu/packages/bioinformatics.scm, gnu/packages/crypto.scm, gnu/packages/databases.scm, gnu/packages/glib.scm, gnu/packages/gnupg.scm, gnu/packages/image-viewers.scm, gnu/packages/language.scm, gnu/packages/networking.scm, gnu/packages/package-management.scm, gnu/packages/perl.scm, gnu/packages/terminals.scm, gnu/packages/tex.scm, gnu/packages/version-control.scm, gnu/packages/web.scm, gnu/packages/xml.scm, gnu/packages/xorg.scm: Use perl-check module. Ricardo Wurmus