Merge pull request #268619 from tweag/lib-descriptions
[NixPkgs.git] / pkgs / applications / blockchains / bitcoin-unlimited / default.nix
blob033c3d6ed9bf5060635905f0c91ea75ac09efdcf
1 { lib, stdenv, fetchFromGitLab, pkg-config, autoreconfHook, openssl, db48, boost
2 , zlib, miniupnpc, util-linux, protobuf, qrencode, libevent, python3
3 , withGui, wrapQtAppsHook ? null, qtbase ? null, qttools ? null
4 , Foundation, ApplicationServices, AppKit }:
6 stdenv.mkDerivation rec {
7   pname = "bitcoin" + lib.optionalString (!withGui) "d" + "-unlimited";
8   version = "1.10.0.0";
10   src = fetchFromGitLab {
11     owner = "bitcoinunlimited";
12     repo = "BCHUnlimited";
13     rev = "BCHunlimited${version}";
14     sha256 = "sha256-d+giTXq/6HpysRAPT7yOl/B1x4zie9irs4O7cJsBqHg=";
15   };
17   nativeBuildInputs = [ pkg-config autoreconfHook python3 ]
18     ++ lib.optionals withGui [ wrapQtAppsHook qttools ];
19   buildInputs = [ openssl db48 boost zlib
20                   miniupnpc util-linux protobuf libevent ]
21                   ++ lib.optionals withGui [ qtbase qttools qrencode ]
22                   ++ lib.optionals stdenv.isDarwin [ Foundation ApplicationServices AppKit ];
24   configureFlags = [ "--with-boost-libdir=${boost.out}/lib" ]
25                      ++ lib.optionals withGui [ "--with-gui=qt5"
26                                             "--with-qt-bindir=${qtbase.dev}/bin:${qttools.dev}/bin"
27                                           ];
28   enableParallelBuilding = true;
30   meta = with lib; {
31     description = "Peer-to-peer electronic cash system (Unlimited client)";
32     longDescription= ''
33       Bitcoin is a free open source peer-to-peer electronic cash system that is
34       completely decentralized, without the need for a central server or trusted
35       parties. Users hold the crypto keys to their own money and transact directly
36       with each other, with the help of a P2P network to check for double-spending.
38       The Bitcoin Unlimited (BU) project seeks to provide a voice to all
39       stakeholders in the Bitcoin ecosystem.
41       Every node operator or miner can currently choose their own blocksize limit
42       by modifying their client. Bitcoin Unlimited makes the process easier by
43       providing a configurable option for the accepted and generated blocksize via
44       a GUI menu. Bitcoin Unlimited further provides a user-configurable failsafe
45       setting allowing you to accept a block larger than your maximum accepted
46       blocksize if it reaches a certain number of blocks deep in the chain.
48       The Bitcoin Unlimited client is not a competitive block scaling proposal
49       like BIP-101, BIP-102, etc. Instead it tracks consensus. This means that it
50       tracks the blockchain that the hash power majority follows, irrespective of
51       blocksize, and signals its ability to accept larger blocks via protocol and
52       block versioning fields.
54       If you support an increase in the blocksize limit by any means - or just
55       support Bitcoin conflict resolution as originally envisioned by its founder -
56       consider running a Bitcoin Unlimited client.
57     '';
58     homepage = "https://www.bitcoinunlimited.info/";
59     maintainers = with maintainers; [ DmitryTsygankov ];
60     license = licenses.mit;
61     broken = true;
62     platforms = platforms.unix;
63   };