diff --git a/pkgs/default.nix b/pkgs/default.nix index 21ede79..ed7bc41 100644 --- a/pkgs/default.nix +++ b/pkgs/default.nix @@ -13,7 +13,7 @@ let self = { clightning-rest = pkgs.callPackage ./clightning-rest { inherit (self) fetchNodeModules; }; clboss = pkgs.callPackage ./clboss { }; clightning-plugins = pkgs.recurseIntoAttrs (import ./clightning-plugins pkgs self.nbPython3Packages); - joinmarket = pkgs.callPackage ./joinmarket { nbPythonPackageOverrides = import ./python-packages self; }; + joinmarket = pkgs.callPackage ./joinmarket { inherit (self) nbPython3PackagesJoinmarket; }; lndinit = pkgs.callPackage ./lndinit { }; liquid-swap = pkgs.python3Packages.callPackage ./liquid-swap { }; rtl = pkgs.callPackage ./rtl { inherit (self) fetchNodeModules; }; @@ -21,9 +21,10 @@ let self = { secp256k1 = pkgs.callPackage ./secp256k1 { }; spark-wallet = pkgs.callPackage ./spark-wallet { }; - nbPython3Packages = (pkgs.python3.override { - packageOverrides = import ./python-packages self; - }).pkgs; + pyPkgs = import ./python-packages self pkgs.python3; + inherit (self.pyPkgs) + nbPython3Packages + nbPython3PackagesJoinmarket; fetchNodeModules = pkgs.callPackage ./build-support/fetch-node-modules.nix { }; diff --git a/pkgs/joinmarket/default.nix b/pkgs/joinmarket/default.nix index 1f40128..2fc91ed 100644 --- a/pkgs/joinmarket/default.nix +++ b/pkgs/joinmarket/default.nix @@ -1,4 +1,4 @@ -{ stdenv, lib, fetchurl, python3, nbPythonPackageOverrides, pkgs }: +{ stdenv, lib, fetchurl, python3, nbPython3PackagesJoinmarket }: let version = "0.9.7"; @@ -7,17 +7,7 @@ let sha256 = "13bfr8ha6bka8wiai8m79ki43dn2r311lrfffr39ni2wy1v12l93"; }; - pyPkgs = (python3.override { - packageOverrides = (self: super: let - overrides = nbPythonPackageOverrides self super; - in - overrides // { - cryptography = overrides.cryptography_3_3_2; - } - ); - }).pkgs; - - runtimePackages = with pyPkgs; [ + runtimePackages = with nbPython3PackagesJoinmarket; [ joinmarketbase joinmarketclient joinmarketbitcoin diff --git a/pkgs/python-packages/default.nix b/pkgs/python-packages/default.nix index 0849ecc..0032465 100644 --- a/pkgs/python-packages/default.nix +++ b/pkgs/python-packages/default.nix @@ -1,42 +1,48 @@ -nbPkgs: self: super: -let - inherit (self) callPackage; - - joinmarketPkg = pkg: callPackage pkg { inherit (nbPkgs.joinmarket) version src; }; - clightningPkg = pkg: callPackage pkg { inherit (nbPkgs.pinned) clightning; }; - - unstable = (import ../nixpkgs-pinned.nix).nixpkgs-unstable; -in { - bencoderpyx = callPackage ./bencoderpyx {}; - chromalog = callPackage ./chromalog {}; +nbPkgs: python3: +rec { + pyPkgsOverrides = self: super: let + inherit (self) callPackage; + clightningPkg = pkg: callPackage pkg { inherit (nbPkgs.pinned) clightning; }; + in + { coincurve = callPackage ./coincurve {}; - python-bitcointx = callPackage ./python-bitcointx { inherit (nbPkgs) secp256k1; }; - runes = callPackage ./runes {}; - sha256 = callPackage ./sha256 {}; txzmq = callPackage ./txzmq {}; - urldecode = callPackage ./urldecode {}; - - joinmarketbase = joinmarketPkg ./jmbase; - joinmarketclient = joinmarketPkg ./jmclient; - joinmarketbitcoin = joinmarketPkg ./jmbitcoin; - joinmarketdaemon = joinmarketPkg ./jmdaemon; pyln-client = clightningPkg ./pyln-client; pyln-proto = clightningPkg ./pyln-proto; pyln-bolt7 = clightningPkg ./pyln-bolt7; pylightning = clightningPkg ./pylightning; + # Packages only used by joinmarket + bencoderpyx = callPackage ./bencoderpyx {}; + chromalog = callPackage ./chromalog {}; + python-bitcointx = callPackage ./python-bitcointx { inherit (nbPkgs) secp256k1; }; + runes = callPackage ./runes {}; + sha256 = callPackage ./sha256 {}; + urldecode = callPackage ./urldecode {}; + }; + + # Joinmarket requires a custom package set because it uses older versions of Python pkgs + pyPkgsOverridesJoinmarket = self: super: let + inherit (self) callPackage; + joinmarketPkg = pkg: callPackage pkg { inherit (nbPkgs.joinmarket) version src; }; + in + (pyPkgsOverrides self super) // { + joinmarketbase = joinmarketPkg ./jmbase; + joinmarketclient = joinmarketPkg ./jmclient; + joinmarketbitcoin = joinmarketPkg ./jmbitcoin; + joinmarketdaemon = joinmarketPkg ./jmdaemon; + # Don't mark `klein` as broken. # `klein` is fixed by using werkzeug 2.1.0 (see below) klein = super.klein.overrideAttrs (old: { meta = builtins.removeAttrs old.meta [ "broken" ]; }); - ## Specific versions of packages that already exist in nixpkgs # cryptography 3.3.2, required by joinmarketdaemon # Used in the private python package set for joinmarket (../joinmarket/default.nix) - cryptography_3_3_2 = callPackage ./specific-versions/cryptography { + cryptography = callPackage ./specific-versions/cryptography { cryptography_vectors = callPackage ./specific-versions/cryptography/vectors.nix {}; }; @@ -48,4 +54,13 @@ in { # pyopenssl 20.0.1, required by joinmarketdaemon pyopenssl = callPackage ./specific-versions/pyopenssl.nix {}; + }; + + nbPython3Packages = (python3.override { + packageOverrides = pyPkgsOverrides; + }).pkgs; + + nbPython3PackagesJoinmarket = (python3.override { + packageOverrides = pyPkgsOverridesJoinmarket; + }).pkgs; }