gnu: Add python-pyscard and python2-pyscard.

* gnu/packages/security-token.scm (python-pyscard, python2-pyscard): New
variables.
This commit is contained in:
Chris Marusich 2019-04-18 01:52:31 -07:00
parent 968e86bd93
commit 404037f83d
No known key found for this signature in database
GPG Key ID: DD409A15D822469D
1 changed files with 58 additions and 1 deletions

View File

@ -6,7 +6,7 @@
;;; Copyright © 2017 Thomas Danckaert <post@thomasdanckaert.be> ;;; Copyright © 2017 Thomas Danckaert <post@thomasdanckaert.be>
;;; Copyright © 2017, 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2017, 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2017 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2017 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2018 Chris Marusich <cmmarusich@gmail.com> ;;; Copyright © 2018, 2019 Chris Marusich <cmmarusich@gmail.com>
;;; Copyright © 2018 Arun Isaac <arunisaac@systemreboot.net> ;;; Copyright © 2018 Arun Isaac <arunisaac@systemreboot.net>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
@ -32,6 +32,7 @@
#:use-module (guix git-download) #:use-module (guix git-download)
#:use-module (guix build-system gnu) #:use-module (guix build-system gnu)
#:use-module (guix build-system glib-or-gtk) #:use-module (guix build-system glib-or-gtk)
#:use-module (guix build-system python)
#:use-module (gnu packages autotools) #:use-module (gnu packages autotools)
#:use-module (gnu packages curl) #:use-module (gnu packages curl)
#:use-module (gnu packages check) #:use-module (gnu packages check)
@ -51,6 +52,8 @@
#:use-module (gnu packages tex) #:use-module (gnu packages tex)
#:use-module (gnu packages perl) #:use-module (gnu packages perl)
#:use-module (gnu packages pkg-config) #:use-module (gnu packages pkg-config)
#:use-module (gnu packages python)
#:use-module (gnu packages swig)
#:use-module (gnu packages web) #:use-module (gnu packages web)
#:use-module (gnu packages xml)) #:use-module (gnu packages xml))
@ -341,3 +344,57 @@ and other operations. It includes a library and a command-line tool.")
line tools for personalizing YubiKeys. You can use these to set an AES key, line tools for personalizing YubiKeys. You can use these to set an AES key,
retrieve a YubiKey's serial number, and so forth.") retrieve a YubiKey's serial number, and so forth.")
(license license:bsd-2))) (license license:bsd-2)))
(define-public python-pyscard
(package
(name "python-pyscard")
(version "1.9.8")
(source (origin
(method url-fetch)
;; The maintainer publishes releases on various sites, but
;; SourceForge is apparently the only one with a signed release.
(uri (string-append
"mirror://sourceforge/pyscard/pyscard/pyscard%20"
version "/pyscard-" version ".tar.gz"))
(sha256
(base32
"15fh00z1an6r5j7hrz3jlq0rb3jygwf3x4jcwsa008bv8vpcg7gm"))))
(build-system python-build-system)
(arguments
`(#:phases
(modify-phases %standard-phases
;; Tell pyscard where to find the PCSC include directory.
(add-after 'unpack 'patch-platform-include-dirs
(lambda* (#:key inputs #:allow-other-keys)
(let ((pcsc-include-dir (string-append
(assoc-ref inputs "pcsc-lite")
"/include/PCSC")))
(substitute* "setup.py"
(("platform_include_dirs = \\[.*?\\]")
(string-append
"platform_include_dirs = ['" pcsc-include-dir "']")))
#t)))
;; pyscard wants to dlopen libpcsclite, so tell it where it is.
(add-after 'unpack 'patch-dlopen
(lambda* (#:key inputs #:allow-other-keys)
(substitute* "smartcard/scard/winscarddll.c"
(("lib = \"libpcsclite\\.so\\.1\";")
(simple-format #f
"lib = \"~a\";"
(string-append (assoc-ref inputs "pcsc-lite")
"/lib/libpcsclite.so.1"))))
#t)))))
(inputs
`(("pcsc-lite" ,pcsc-lite)))
(native-inputs
`(("swig" ,swig)))
(home-page "https://github.com/LudovicRousseau/pyscard")
(synopsis "Smart card library for Python")
(description
"The pyscard smart card library is a framework for building smart card
aware applications in Python. The smart card module is built on top of the
PCSC API Python wrapper module.")
(license license:lgpl2.1+)))
(define-public python2-pyscard
(package-with-python2 python-pyscard))