diff --git a/pkgs/tools/misc/yubikey-manager/default.nix b/pkgs/tools/misc/yubikey-manager/default.nix index 9a01d6cef340d..4ec5052503eaf 100644 --- a/pkgs/tools/misc/yubikey-manager/default.nix +++ b/pkgs/tools/misc/yubikey-manager/default.nix @@ -1,5 +1,10 @@ -{ python3Packages, fetchFromGitHub, lib, yubikey-personalization, libu2f-host, libusb1, procps -, stdenv }: +{ lib +, stdenv +, fetchFromGitHub +, python3Packages +, installShellFiles +, procps +}: python3Packages.buildPythonPackage rec { pname = "yubikey-manager"; @@ -14,55 +19,50 @@ python3Packages.buildPythonPackage rec { }; postPatch = '' - substituteInPlace pyproject.toml \ - --replace 'fido2 = ">=0.9, <1.0"' 'fido2 = ">*"' substituteInPlace "ykman/pcsc/__init__.py" \ --replace 'pkill' '${if stdenv.isLinux then "${procps}" else "/usr"}/bin/pkill' ''; - nativeBuildInputs = with python3Packages; [ poetry-core ]; + nativeBuildInputs = with python3Packages; [ + poetry-core + pythonRelaxDepsHook + installShellFiles + ]; - propagatedBuildInputs = - with python3Packages; [ - click - cryptography - pyscard - pyusb - six - fido2 - keyring - ] ++ [ - libu2f-host - libusb1 - yubikey-personalization - ]; + propagatedBuildInputs = with python3Packages; [ + cryptography + pyscard + fido2 + click + keyring + ]; - makeWrapperArgs = [ - "--prefix" "LD_LIBRARY_PATH" ":" - (lib.makeLibraryPath [ libu2f-host libusb1 yubikey-personalization ]) + pythonRelaxDeps = [ + "keyring" ]; postInstall = '' - mkdir -p "$out/man/man1" - cp man/ykman.1 "$out/man/man1" + 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 "$@"' + installShellCompletion --cmd ykman \ + --bash <(_YKMAN_COMPLETE=bash_source "$out/bin/ykman") \ + --zsh <(_YKMAN_COMPLETE=zsh_source "$out/bin/ykman") \ + --fish <(_YKMAN_COMPLETE=fish_source "$out/bin/ykman") \ ''; - nativeCheckInputs = with python3Packages; [ pytestCheckHook makefun ]; + nativeCheckInputs = with python3Packages; [ + pytestCheckHook + makefun + ]; meta = with lib; { homepage = "https://developers.yubico.com/yubikey-manager"; + changelog = "https://github.com/Yubico/yubikey-manager/releases/tag/${version}"; description = "Command line tool for configuring any YubiKey over all USB transports"; license = licenses.bsd2; platforms = platforms.unix; - maintainers = with maintainers; [ benley lassulus pinpox ]; + maintainers = with maintainers; [ benley lassulus pinpox nickcao ]; mainProgram = "ykman"; }; }