Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

yubikey-manager: 4.0.9 -> 5.0.0 #198958

Merged
merged 2 commits into from
Nov 4, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions pkgs/tools/misc/yubikey-manager-qt/default.nix
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
, qtbase
, qtgraphicaleffects
, qtquickcontrols2
, yubikey-manager
, yubikey-manager4
, yubikey-personalization
}:

Expand Down Expand Up @@ -41,7 +41,7 @@ mkDerivation rec {
];

pythonPath = [
(yubikey-manager.override { python3Packages = python3.pkgs; })
(yubikey-manager4.override { python3Packages = python3.pkgs; })
];

postInstall = ''
Expand Down
73 changes: 73 additions & 0 deletions pkgs/tools/misc/yubikey-manager/4.nix
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
{ python3Packages, fetchFromGitHub, lib, 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 {
repo = "yubikey-manager";
rev = "refs/tags/${version}";
owner = "Yubico";
sha256 = "sha256-MwM/b1QP6pkyBjz/r6oC4sW1mKC0CKMay45a0wCktk0=";
};

patches = lib.optionals (!pyOpenSSLSupport) [
./remove-pyopenssl-tests.patch
];

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 ];

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 = ''
mkdir -p "$out/man/man1"
cp man/ykman.1 "$out/man/man1"
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 "$@"'
'';

checkInputs = 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";
};
}
13 changes: 4 additions & 9 deletions pkgs/tools/misc/yubikey-manager/default.nix
Original file line number Diff line number Diff line change
@@ -1,22 +1,18 @@
{ python3Packages, fetchFromGitHub, lib, yubikey-personalization, libu2f-host, libusb1, procps
, stdenv, pyOpenSSLSupport ? !(stdenv.isDarwin && stdenv.isAarch64) }:
, stdenv }:

python3Packages.buildPythonPackage rec {
pname = "yubikey-manager";
version = "4.0.9";
version = "5.0.0";
format = "pyproject";

src = fetchFromGitHub {
repo = "yubikey-manager";
rev = "refs/tags/${version}";
owner = "Yubico";
sha256 = "sha256-MwM/b1QP6pkyBjz/r6oC4sW1mKC0CKMay45a0wCktk0=";
sha256 = "sha256-ZQQhRiUsQwLaOY8NCzSc/PTmRewTL0ECBKj7Uj+6Gn8=";
};

patches = lib.optionals (!pyOpenSSLSupport) [
./remove-pyopenssl-tests.patch
];

postPatch = ''
substituteInPlace pyproject.toml \
--replace 'fido2 = ">=0.9, <1.0"' 'fido2 = ">*"'
Expand All @@ -34,8 +30,7 @@ python3Packages.buildPythonPackage rec {
pyusb
six
fido2
] ++ lib.optionals pyOpenSSLSupport [
pyopenssl
keyring
]) ++ [
libu2f-host
libusb1
Expand Down
1 change: 1 addition & 0 deletions pkgs/top-level/all-packages.nix
Original file line number Diff line number Diff line change
Expand Up @@ -22956,6 +22956,7 @@ with pkgs;

yubihsm-connector = callPackage ../tools/security/yubihsm-connector { };

yubikey-manager4 = callPackage ../tools/misc/yubikey-manager/4.nix { };
yubikey-manager = callPackage ../tools/misc/yubikey-manager { };

yubikey-manager-qt = libsForQt5.callPackage ../tools/misc/yubikey-manager-qt { };
Expand Down