mirror of
https://github.com/NixOS/nixpkgs.git
synced 2025-02-12 15:14:13 +00:00
![Guillaume Girol](/assets/img/avatar_default.png)
checkInputs used to be added to nativeBuildInputs. Now we have nativeCheckInputs to do that instead. Doing this treewide change allows to keep hashes identical to before the introduction of nativeCheckInputs.
91 lines
2.5 KiB
Nix
91 lines
2.5 KiB
Nix
{ lib
|
|
, stdenv
|
|
, fetchFromGitHub
|
|
, autoreconfHook
|
|
, pkg-config
|
|
, util-linux
|
|
, hexdump
|
|
, autoSignDarwinBinariesHook
|
|
, wrapQtAppsHook ? null
|
|
, boost
|
|
, libevent
|
|
, miniupnpc
|
|
, zeromq
|
|
, zlib
|
|
, db48
|
|
, sqlite
|
|
, qrencode
|
|
, qtbase ? null
|
|
, qttools ? null
|
|
, python3
|
|
, withGui
|
|
, withWallet ? true
|
|
}:
|
|
|
|
with lib;
|
|
stdenv.mkDerivation rec {
|
|
pname = if withGui then "elements" else "elementsd";
|
|
version = "22.0.2";
|
|
|
|
src = fetchFromGitHub {
|
|
owner = "ElementsProject";
|
|
repo = "elements";
|
|
rev = "elements-${version}";
|
|
sha256 = "sha256-20Tem6CD7XAt1EDfkl46Nxhb+Vq3sCk/UqnLCAm85FU=";
|
|
};
|
|
|
|
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"
|
|
];
|
|
|
|
# fix "Killed: 9 test/test_bitcoin"
|
|
# https://github.com/NixOS/nixpkgs/issues/179474
|
|
hardeningDisable = lib.optionals (stdenv.isAarch64 && stdenv.isDarwin) [ "fortify" "stackprotector" ];
|
|
|
|
nativeCheckInputs = [ python3 ];
|
|
|
|
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;
|
|
|
|
meta = {
|
|
description = "Open Source implementation of advanced blockchain features extending the Bitcoin protocol";
|
|
longDescription= ''
|
|
The Elements blockchain platform is a collection of feature experiments and extensions to the
|
|
Bitcoin protocol. This platform enables anyone to build their own businesses or networks
|
|
pegged to Bitcoin as a sidechain or run as a standalone blockchain with arbitrary asset
|
|
tokens.
|
|
'';
|
|
homepage = "https://www.github.com/ElementsProject/elements";
|
|
maintainers = with maintainers; [ prusnak ];
|
|
license = licenses.mit;
|
|
platforms = platforms.unix;
|
|
};
|
|
}
|