diff options
Diffstat (limited to 'nixpkgs/pkgs/tools/misc/yubikey-manager/4.nix')
-rw-r--r-- | nixpkgs/pkgs/tools/misc/yubikey-manager/4.nix | 71 |
1 files changed, 71 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/tools/misc/yubikey-manager/4.nix b/nixpkgs/pkgs/tools/misc/yubikey-manager/4.nix new file mode 100644 index 000000000000..b03e5fa93bb1 --- /dev/null +++ b/nixpkgs/pkgs/tools/misc/yubikey-manager/4.nix @@ -0,0 +1,71 @@ +{ python3Packages, fetchFromGitHub, lib, installShellFiles, yubikey-personalization, libu2f-host, libusb1, procps +, stdenv, pyOpenSSLSupport ? !(stdenv.isDarwin && stdenv.isAarch64) }: + +python3Packages.buildPythonPackage rec { + pname = "yubikey-manager"; + version = "4.0.9"; + format = "pyproject"; + + src = fetchFromGitHub { + owner = "Yubico"; + repo = "yubikey-manager"; + rev = "refs/tags/${version}"; + sha256 = "sha256-MwM/b1QP6pkyBjz/r6oC4sW1mKC0CKMay45a0wCktk0="; + }; + + patches = lib.optionals (!pyOpenSSLSupport) [ + ./remove-pyopenssl-tests.patch + ]; + + postPatch = '' + substituteInPlace pyproject.toml \ + --replace 'cryptography = ">=2.1, <39"' 'cryptography = ">=2.1"' + substituteInPlace "ykman/pcsc/__init__.py" \ + --replace 'pkill' '${if stdenv.isLinux then "${procps}" else "/usr"}/bin/pkill' + ''; + + nativeBuildInputs = [ installShellFiles ] + ++ (with python3Packages; [ poetry-core ]); + + propagatedBuildInputs = with python3Packages; ([ + click + cryptography + pyscard + pyusb + six + fido2 + ] ++ lib.optionals pyOpenSSLSupport [ + pyopenssl + ]) ++ [ + libu2f-host + libusb1 + yubikey-personalization + ]; + + makeWrapperArgs = [ + "--prefix" "LD_LIBRARY_PATH" ":" + (lib.makeLibraryPath [ libu2f-host libusb1 yubikey-personalization ]) + ]; + + postInstall = '' + installManPage man/ykman.1 + + mkdir -p $out/share/bash-completion/completions + _YKMAN_COMPLETE=source $out/bin/ykman > $out/share/bash-completion/completions/ykman || : + mkdir -p $out/share/zsh/site-functions/ + _YKMAN_COMPLETE=source_zsh "$out/bin/ykman" > "$out/share/zsh/site-functions/_ykman" || : + substituteInPlace "$out/share/zsh/site-functions/_ykman" \ + --replace 'compdef _ykman_completion ykman;' '_ykman_completion "$@"' + ''; + + nativeCheckInputs = with python3Packages; [ pytestCheckHook makefun ]; + + meta = with lib; { + homepage = "https://developers.yubico.com/yubikey-manager"; + description = "Previous release of command line tool for configuring any YubiKey over all USB transports"; + license = licenses.bsd2; + platforms = platforms.unix; + maintainers = with maintainers; [ benley lassulus pinpox ]; + mainProgram = "ykman"; + }; +} |