;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2014 Ludovic Courtès ;;; Copyright © 2016 Efraim Flashner ;;; ;;; 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 packages yubico) #:use-module (gnu packages) #:use-module (guix licenses) #:use-module (guix packages) #:use-module (guix download) #:use-module (guix build-system gnu) #:use-module (gnu packages pkg-config) #:use-module (gnu packages man) #:use-module (gnu packages curl)) (define-public libyubikey (package (name "libyubikey") (version "1.13") (source (origin (method url-fetch) (uri (string-append "https://developers.yubico.com/yubico-c/Releases/" name "-" version ".tar.gz")) (sha256 (base32 "009l3k2zyn06dbrlja2d4p2vfnzjhlcqxi88v02mlrnb17mx1v84")))) (build-system gnu-build-system) (synopsis "Development kit for the YubiKey authentication device") (description "This package contains a C library and command-line tools that make up the low-level development kit for the Yubico YubiKey authentication device.") (home-page "https://developers.yubico.com/yubico-c/") (license bsd-2))) (define-public ykclient (package (name "ykclient") (version "2.15") (source (origin (method url-fetch) (uri (string-append "https://developers.yubico.com/yubico-c-client/Releases/" name "-" version ".tar.gz")) (sha256 (base32 "05jhx9waj3pl120ddnwap1v3bjrnbfhvf3lxs2xmhpcmwzpwsqgl")))) (build-system gnu-build-system) ;; There's just one test, and it requires network access to access ;; yubico.com, so skip it. (arguments '(#:tests? #f)) (native-inputs `(("pkg-config" ,pkg-config) ("help2man" ,help2man))) (inputs `(("curl" ,curl))) (synopsis "C library to validate one-time-password YubiKeys") (description "YubiKey C Client Library (libykclient) is a C library used to validate a one-time-password (OTP) YubiKey against Yubico’s servers. See the Yubico website for more information about Yubico and the YubiKey.") (home-page "https://developers.yubico.com/yubico-c-client/") (license bsd-2))) 0'>2022-02-05tests: Assert that cyclic graphs can be produced....* tests/graph.scm ("package DAG, oops it was a cycle"): New test. Liliana Marie Prikler 2021-09-21graph: Add '--max-depth'....* guix/graph.scm (export-graph): Add #:max-depth and honor it, adding 'depths' argument to 'loop'. * guix/scripts/graph.scm (%options, show-help): Add '--max-depth'. (%default-options): Add 'max-depth'. (guix-graph): Pass #:max-depth to 'export-graph'. * tests/graph.scm ("package DAG, limited depth"): New test. * doc/guix.texi (Invoking guix graph): Document it. Ludovic Courtès 2020-10-20graph: Adjust test for recent OCaml changes....This is a followup to 339177956affdc471832750a3805b74356487e93. * tests/graph.scm ("reverse bag DAG"): Look for "ocaml4.07-dune" rather than "dune". Ludovic Courtès 2020-05-22packages: Introduce <content-hash> and use it in <origin>....* guix/packages.scm (<content-hash>): New record type. (define-content-hash-constructor, build-content-hash) (content-hash): New macros. (print-content-hash): New procedure. (<origin>): Rename constructor to '%origin'. [sha256]: Remove field. [hash]: New field. Adjust users. (origin-compatibility-helper, origin): New macros. (origin-sha256): New deprecated procedure. (origin->derivation): Adjust accordingly. * tests/packages.scm ("package-source-derivation, origin, sha512"): New test. * guix/tests.scm: Hide (gcrypt hash) 'sha256' for proper syntax matching. * tests/challenge.scm: Add #:prefix for (gcrypt hash) and adjust users. * tests/derivations.scm: Likewise. * tests/store.scm: Likewise. * tests/graph.scm ("bag DAG, including origins"): Provide 'sha256' field with the right length. * gnu/packages/aspell.scm (aspell-dictionary) (aspell-dict-ca, aspell-dict-it): Use 'hash' and 'content-hash' for proper syntax matching. * gnu/packages/bash.scm (bash-patch): Rename 'sha256' to 'sha256-bv'. * gnu/packages/bootstrap.scm (bootstrap-executable): Rename 'sha256' to 'bv'. * gnu/packages/readline.scm (readline-patch): Likewise. * gnu/packages/virtualization.scm (qemu-patch): Rename 'sha256' to 'sha256-bv'. * guix/import/utils.scm: Hide (gcrypt hash) 'sha256'. Ludovic Courtès 2020-05-11graph: Add 'shortest-path'....* guix/graph.scm (shortest-path): New procedure. * tests/graph.scm ("shortest-path, packages + derivations") ("shortest-path, reverse packages") ("shortest-path, references"): New tests. Ludovic Courtès 2020-05-11graph: reference/referrer node types work with graph traversal....The graph traversal procedures in (guix graph) assume that nodes can be compared with 'eq?', which was not the case for nodes of %REFERENCE-NODE-TYPE and %REFERRER-NODE-TYPE (strings). * guix/scripts/graph.scm (intern): New procedure. (ensure-store-items, references*) (%reference-node-type, non-derivation-referrers) (%referrer-node-type): Use it on all store items. * tests/graph.scm ("node-transitive-edges, references"): New test. Ludovic Courtès