From ae364a68ad969cddcbaafc5dcb9973be712bf292 Mon Sep 17 00:00:00 2001 From: nixbitcoin Date: Sun, 19 Jul 2020 13:52:46 +0000 Subject: [PATCH] hwi: 1.0.3 -> 1.1.2 hidapi needed to be added as a custom dependency to be able to build from unstable. --- pkgs/hwi/default.nix | 10 +++++++--- pkgs/hwi/hidapi/default.nix | 32 ++++++++++++++++++++++++++++++++ 2 files changed, 39 insertions(+), 3 deletions(-) create mode 100644 pkgs/hwi/hidapi/default.nix diff --git a/pkgs/hwi/default.nix b/pkgs/hwi/default.nix index 41ec2d5..86d074c 100644 --- a/pkgs/hwi/default.nix +++ b/pkgs/hwi/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchurl, fetchFromGitHub, python3 }: +{ pkgs, stdenv, fetchurl, fetchFromGitHub, python3 }: with stdenv.lib; @@ -9,18 +9,22 @@ let mnemonic = self.callPackage ./mnemonic {}; # HWI requires ecdsa <0.14 but nixpkgs has a newer version ecdsa = self.callPackage ./ecdsa {}; + # HWI requires hidapi 0.7.99 but nixpkgs has a newer version + hidapi = self.callPackage ./hidapi { + inherit (pkgs) udev libusb1; + }; }; }; in python.pkgs.buildPythonPackage rec { pname = "hwi"; - version = "1.0.3"; + version = "1.1.2"; src = fetchFromGitHub { owner = "bitcoin-core"; repo = "HWI"; rev = version; - sha256 = "1xb8w6w6j6vv2ik2bb25y2w6m0gikmh5446jar0frfp6r6das5nn"; + sha256 = "01xjkv74ksj8m0l6frk03wq82ilzp5gkz4rf7lhi1h6qkb9kb1x0"; }; # TODO: enable tests diff --git a/pkgs/hwi/hidapi/default.nix b/pkgs/hwi/hidapi/default.nix new file mode 100644 index 0000000..cd70a7b --- /dev/null +++ b/pkgs/hwi/hidapi/default.nix @@ -0,0 +1,32 @@ +{ stdenv, libusb1, udev, darwin, fetchPypi, buildPythonPackage, cython }: + +buildPythonPackage rec { + pname = "hidapi"; + version = "0.7.99.post21"; + + src = fetchPypi { + inherit pname version; + sha256 = "e0be1aa6566979266a8fc845ab0e18613f4918cf2c977fe67050f5dc7e2a9a97"; + }; + + propagatedBuildInputs = + stdenv.lib.optionals stdenv.isLinux [ libusb1 udev ] ++ + stdenv.lib.optionals stdenv.isDarwin [ darwin.IOKit darwin.apple_sdk.frameworks.CoreFoundation ] ++ + [ cython ]; + + # Fix the USB backend library lookup + postPatch = stdenv.lib.optionalString stdenv.isLinux '' + libusb=${libusb1.dev}/include/libusb-1.0 + test -d $libusb || { echo "ERROR: $libusb doesn't exist, please update/fix this build expression."; exit 1; } + sed -i -e "s|/usr/include/libusb-1.0|$libusb|" setup.py + ''; + + meta = with stdenv.lib; { + description = "A Cython interface to the hidapi from https://github.com/signal11/hidapi"; + homepage = "https://github.com/trezor/cython-hidapi"; + # license can actually be either bsd3 or gpl3 + # see https://github.com/trezor/cython-hidapi/blob/master/LICENSE-orig.txt + license = licenses.bsd3; + maintainers = with maintainers; [ np ]; + }; +}