mirror of https://github.com/wlcx/home.git
pkgs: fix yubikey-manager locally for now
ykman is broken on darwin/aarch64 due to pyopenssl fuckery. This commit brings the derivation into this repo, removes openssl from it and overlays it on nixpkgs.
This commit is contained in:
parent
db8023caed
commit
86916465af
|
@ -2,4 +2,5 @@
|
|||
{ pkgs, ... }: {
|
||||
qrclip = pkgs.callPackage ./qrclip { };
|
||||
zbar = pkgs.callPackage ./zbar { };
|
||||
yubikey-manager = pkgs.callPackage ./yubikey-manager { };
|
||||
}
|
||||
|
|
|
@ -0,0 +1,68 @@
|
|||
{ python3Packages, fetchFromGitHub, lib, yubikey-personalization, libu2f-host, libusb1, procps }:
|
||||
|
||||
python3Packages.buildPythonPackage rec {
|
||||
pname = "yubikey-manager";
|
||||
version = "4.0.8";
|
||||
format = "pyproject";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
repo = "yubikey-manager";
|
||||
rev = version;
|
||||
owner = "Yubico";
|
||||
sha256 = "sha256-OszXOu/NhoX4WutsT4Z1LsY54KTOWRKt13yDo2fzDbA=";
|
||||
};
|
||||
|
||||
patches = [ ./lol.patch ];
|
||||
doCheck = false;
|
||||
|
||||
postPatch = ''
|
||||
substituteInPlace pyproject.toml \
|
||||
--replace 'cryptography = "^2.1 || ^3.0"' 'cryptography = "*"'
|
||||
substituteInPlace "ykman/pcsc/__init__.py" \
|
||||
--replace 'pkill' '${procps}/bin/pkill'
|
||||
'';
|
||||
|
||||
nativeBuildInputs = with python3Packages; [ poetry-core ];
|
||||
|
||||
propagatedBuildInputs =
|
||||
with python3Packages; [
|
||||
click
|
||||
cryptography
|
||||
pyscard
|
||||
pyusb
|
||||
six
|
||||
fido2
|
||||
] ++ [
|
||||
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 = "Command line tool for configuring any YubiKey over all USB transports";
|
||||
|
||||
license = licenses.bsd2;
|
||||
platforms = platforms.unix;
|
||||
maintainers = with maintainers; [ benley lassulus pinpox ];
|
||||
};
|
||||
}
|
|
@ -0,0 +1,12 @@
|
|||
diff --git a/pyproject.toml b/pyproject.toml
|
||||
index 7544201..9caa5c6 100644
|
||||
--- a/pyproject.toml
|
||||
+++ b/pyproject.toml
|
||||
@@ -30,7 +30,6 @@ packages = [
|
||||
python = "^3.6"
|
||||
dataclasses = {version = "^0.8", python = "<3.7"}
|
||||
cryptography = ">=2.1, <39"
|
||||
-pyOpenSSL = {version = ">=0.15.1", optional = true}
|
||||
pyscard = "^1.9 || ^2.0"
|
||||
fido2 = ">=0.9, <1.0"
|
||||
click = "^6.0 || ^7.0 || ^8.0"
|
Loading…
Reference in New Issue