;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2018, 2022 Arun Isaac ;;; Copyright © 2020 Tobias Geerinckx-Rice ;;; Copyright © 2021 Brice Waegeneire ;;; ;;; 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 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 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 (($ 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 (($ 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)))) nome.scm (libidl, gnumeric, eog, gedit), gnu/packages/gnunet.scm (gnunet), gnu/packages/gnuzilla.scm (mozjs, nspr), gnu/packages/gtk.scm (gtksourceview, gdk-pixbuf), gnu/packages/lua.scm (lua), gnu/packages/openstack.scm (python-swiftclient), gnu/packages/perl.scm (perl-json-any), gnu/packages/polkit.scm (polkit-qt), gnu/packages/python.scm (wrap-python3, python-oauthlib) (python-mccabe-0.2.1, python-contextlib2, python2-rauth), gnu/packages/qt.scm (qtkeychain), gnu/packages/ruby.scm (ruby-nokogiri), gnu/packages/screen.scm (screen), gnu/packages/ssh.scm (libssh), gnu/packages/video.scm (ffmpeg, mplayer), gnu/packages/vim.scm (vim), gnu/packages/xdisorg.scm (redshift), gnu/packages/xfce.scm (xfce4-panel, xfce4-settings), gnu/packages/xnee.scm (xnee), gnu/packages/xorg.scm (font-adobe100dpi, font-adobe75dpi), gnu/packages/zsh.scm (zsh): Fix misplaced commas (unquote). Mark H Weaver 2015-01-24gnu: xnee: Update to 3.19 and add input GTK+....* gnu/packages/xnee.scm (xnee): Update to 3.19. This requires gtk+-2 as additional input. Andreas Enge