diff options
author | Pavol Rusnak <pavol@rusnak.io> | 2021-11-21 19:27:08 +0100 |
---|---|---|
committer | Pavol Rusnak <pavol@rusnak.io> | 2021-11-21 20:00:24 +0100 |
commit | ef9bcf24ca2ee5c6d348b1b95c3a8d59aba33490 (patch) | |
tree | dc8499e524226b1c27458280937ec9f053a08745 /pkgs/applications/blockchains | |
parent | aa64f174795bea025eb45b6c665d5cc9ceca24ee (diff) |
bitcoin-knots: 0.20.0.knots20200614 -> 22.0.knots20211108
make bitcoin-knots/default.nix much more similar to bitcoin/default.nix to simplify maintenance
Diffstat (limited to 'pkgs/applications/blockchains')
-rw-r--r-- | pkgs/applications/blockchains/bitcoin-knots/default.nix | 96 |
1 files changed, 69 insertions, 27 deletions
diff --git a/pkgs/applications/blockchains/bitcoin-knots/default.nix b/pkgs/applications/blockchains/bitcoin-knots/default.nix index eea836ac62d35..803e27969e7ae 100644 --- a/pkgs/applications/blockchains/bitcoin-knots/default.nix +++ b/pkgs/applications/blockchains/bitcoin-knots/default.nix @@ -1,41 +1,83 @@ -{ lib, stdenv -, fetchFromGitHub -, pkg-config +{ lib +, stdenv +, fetchurl , autoreconfHook -, db5 -, openssl +, pkg-config +, util-linux +, hexdump +, autoSignDarwinBinariesHook +, wrapQtAppsHook ? null , boost -, zlib -, miniupnpc , libevent -, protobuf -, util-linux +, miniupnpc +, zeromq +, zlib +, db48 +, sqlite +, qrencode +, qtbase ? null +, qttools ? null +, python3 +, nixosTests +, withGui +, withWallet ? true }: +with lib; stdenv.mkDerivation rec { - pname = "bitcoind-knots"; - version = "0.20.0"; - versionDate = "20200614"; - - src = fetchFromGitHub { - owner = "bitcoinknots"; - repo = "bitcoin"; - rev = "v${version}.knots${versionDate}"; - sha256 = "0c8k1154kcwz6q2803wx0zigvqaij1fi5akgfqlj3yl57jjw48jj"; + pname = if withGui then "bitcoin-knots" else "bitcoind-knots"; + version = "22.0.knots20211108"; + + src = fetchurl { + url = "https://bitcoinknots.org/files/22.x/${version}/guix/bitcoin-${version}.tar.gz"; + sha256 = "04sqbx4sp3bzwbl8z53nz96n3s0590h327ih0mbgyvfvl3b8pj4i"; }; - nativeBuildInputs = [ pkg-config autoreconfHook ]; - buildInputs = [ openssl db5 openssl util-linux - protobuf boost zlib miniupnpc libevent ]; + nativeBuildInputs = + [ autoreconfHook pkg-config ] + ++ optionals stdenv.isLinux [ util-linux ] + ++ optionals stdenv.isDarwin [ hexdump ] + ++ optionals (stdenv.isDarwin && stdenv.isAarch64) [ autoSignDarwinBinariesHook ] + ++ optionals withGui [ wrapQtAppsHook ]; + + buildInputs = [ boost libevent miniupnpc zeromq zlib ] + ++ optionals withWallet [ db48 sqlite ] + ++ optionals withGui [ qrencode qtbase qttools ]; + + configureFlags = [ + "--with-boost-libdir=${boost.out}/lib" + "--disable-bench" + ] ++ optionals (!doCheck) [ + "--disable-tests" + "--disable-gui-tests" + ] ++ optionals (!withWallet) [ + "--disable-wallet" + ] ++ optionals withGui [ + "--with-gui=qt5" + "--with-qt-bindir=${qtbase.dev}/bin:${qttools.dev}/bin" + ]; + + checkInputs = [ python3 ]; - configureFlags = [ "--with-incompatible-bdb" - "--with-boost-libdir=${boost.out}/lib" ]; + doCheck = true; + + checkFlags = + [ "LC_ALL=en_US.UTF-8" ] + # QT_PLUGIN_PATH needs to be set when executing QT, which is needed when testing Bitcoin's GUI. + # See also https://github.com/NixOS/nixpkgs/issues/24256 + ++ optional withGui "QT_PLUGIN_PATH=${qtbase}/${qtbase.qtPluginPrefix}"; + + enableParallelBuilding = true; + + passthru.tests = { + smoke-test = nixosTests.bitcoind-knots; + }; - meta = with lib; { - description = "An enhanced Bitcoin node software"; + meta = { + description = "A derivative of Bitcoin Core with a collection of improvements"; homepage = "https://bitcoinknots.org/"; + maintainers = with maintainers; [ prusnak mmahut ]; license = licenses.mit; - maintainers = [ maintainers.mmahut ]; - platforms = platforms.linux; + platforms = platforms.unix; }; } |