diff --git a/pkgs/applications/misc/electrum/default.nix b/pkgs/applications/misc/electrum/default.nix index 4ca82f1adc3..c6f83104fb1 100644 --- a/pkgs/applications/misc/electrum/default.nix +++ b/pkgs/applications/misc/electrum/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchurl, python3, python3Packages, zbar }: +{ stdenv, fetchFromGitHub, python3, python3Packages, zbar, secp256k1 }: let qdarkstyle = python3Packages.buildPythonPackage rec { @@ -13,15 +13,20 @@ let in python3Packages.buildPythonApplication rec { - name = "electrum-${version}"; - version = "3.2.4"; + pname = "electrum"; + version = "3.3.2"; - src = fetchurl { - url = "https://download.electrum.org/${version}/Electrum-${version}.tar.gz"; - sha256 = "0nwipn1alk3r54zpsv2bdwsqxw4f08bxnfmygnwakfkiaifmmhxg"; + src = fetchFromGitHub { + owner = "spesmilo"; + repo = "electrum"; + rev = version; + sha256 = "1jsn02azdydpq4plr2552s7ijyqgw6zqm2zx8skwsalgbwmhx12i"; }; propagatedBuildInputs = with python3Packages; [ + aiorpcx + aiohttp + aiohttp-socks dnspython ecdsa jsonrpclib-pelix @@ -36,7 +41,6 @@ python3Packages.buildPythonApplication rec { qrcode requests tlslite-ng - typing # plugins keepkey @@ -53,6 +57,7 @@ python3Packages.buildPythonApplication rec { # Recording the creation timestamps introduces indeterminism to the build sed -i '/Created: .*/d' electrum/gui/qt/icons_rc.py sed -i "s|name = 'libzbar.*'|name='${zbar}/lib/libzbar.so'|" electrum/qrscanner.py + substituteInPlace ./electrum/ecc_fast.py --replace libsecp256k1.so.0 ${secp256k1}/lib/libsecp256k1.so.0 ''; postInstall = '' @@ -65,10 +70,10 @@ python3Packages.buildPythonApplication rec { --replace "Exec=electrum %u" "Exec=$out/bin/electrum %u" ''; - doCheck = false; + checkInputs = with python3Packages; [ pytest ]; - doInstallCheck = true; - installCheckPhase = '' + checkPhase = '' + py.test electrum/tests $out/bin/electrum help >/dev/null ''; diff --git a/pkgs/development/python-modules/aiohttp-socks/default.nix b/pkgs/development/python-modules/aiohttp-socks/default.nix new file mode 100644 index 00000000000..f898c9313e1 --- /dev/null +++ b/pkgs/development/python-modules/aiohttp-socks/default.nix @@ -0,0 +1,25 @@ +{ lib, fetchPypi, buildPythonPackage, pythonOlder, aiohttp }: + +buildPythonPackage rec { + pname = "aiohttp-socks"; + version = "0.2.2"; + + src = fetchPypi { + inherit version; + pname = "aiohttp_socks"; + sha256 = "0473702jk66xrgpm28wbdgpnak4v0dh2qmdjw7ky7hf3lwwqkggf"; + }; + + propagatedBuildInputs = [ aiohttp ]; + + # Checks needs internet access + doCheck = false; + + disabled = pythonOlder "3.5.3"; + + meta = { + description = "SOCKS proxy connector for aiohttp"; + license = lib.licenses.asl20; + homepage = https://github.com/romis2012/aiohttp-socks; + }; +} diff --git a/pkgs/development/python-modules/aiorpcx/default.nix b/pkgs/development/python-modules/aiorpcx/default.nix new file mode 100644 index 00000000000..1c5d651264e --- /dev/null +++ b/pkgs/development/python-modules/aiorpcx/default.nix @@ -0,0 +1,25 @@ +{ lib, fetchPypi, buildPythonPackage, pythonOlder, attrs }: + +buildPythonPackage rec { + pname = "aiorpcx"; + version = "0.10.2"; + + src = fetchPypi { + inherit version; + pname = "aiorpcX"; + sha256 = "1p88k15jh0d2a18pnnbfcamsqi2bxvmmhpizmdlxfdxf8vy5ggyj"; + }; + + propagatedBuildInputs = [ attrs ]; + + disabled = pythonOlder "3.6"; + + # Checks needs internet access + doCheck = false; + + meta = { + description = "Transport, protocol and framing-independent async RPC client and server implementation"; + license = lib.licenses.mit; + homepage = https://github.com/kyuupichan/aiorpcX; + }; +} diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 6f2cd76f5bf..eebf9d37dcb 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -844,8 +844,12 @@ in { aiohttp-remotes = callPackage ../development/python-modules/aiohttp-remotes { }; + aiohttp-socks = callPackage ../development/python-modules/aiohttp-socks { }; + aioprocessing = callPackage ../development/python-modules/aioprocessing { }; + aiorpcx = callPackage ../development/python-modules/aiorpcx { }; + ajpy = callPackage ../development/python-modules/ajpy { }; alabaster = callPackage ../development/python-modules/alabaster {};