lol
1{ lib, stdenv , fetchFromGitHub
2, pkg-config, autoreconfHook
3, db5, openssl, boost, zlib, miniupnpc, libevent
4, protobuf, qtbase ? null
5, wrapQtAppsHook ? null, qttools ? null, qmake ? null, qrencode
6, withGui, withUpnp ? true, withUtils ? true, withWallet ? true
7, withZmq ? true, zeromq, util-linux ? null, Cocoa ? null }:
8
9stdenv.mkDerivation rec {
10 pname = "dogecoin" + lib.optionalString (!withGui) "d";
11 version = "1.14.6";
12
13 src = fetchFromGitHub {
14 owner = "dogecoin";
15 repo = "dogecoin";
16 rev = "v${version}";
17 sha256 = "sha256-PmbmmA2Mq07dwB3cI7A9c/ewtu0I+sWvQT39Yekm/sU=";
18 };
19
20 preConfigure = lib.optionalString withGui ''
21 export LRELEASE=${lib.getDev qttools}/bin/lrelease
22 '';
23
24 nativeBuildInputs = [ pkg-config autoreconfHook util-linux ]
25 ++ lib.optionals withGui [ wrapQtAppsHook qttools ];
26
27 buildInputs = [ openssl protobuf boost zlib libevent ]
28 ++ lib.optionals withGui [ qtbase qrencode ]
29 ++ lib.optionals withUpnp [ miniupnpc ]
30 ++ lib.optionals withWallet [ db5 ]
31 ++ lib.optionals withZmq [ zeromq ]
32 ++ lib.optionals stdenv.isDarwin [ Cocoa ];
33
34 configureFlags = [
35 "--with-incompatible-bdb"
36 "--with-boost-libdir=${boost.out}/lib"
37 ] ++ lib.optionals (!withGui) [ "--with-gui=no" ]
38 ++ lib.optionals (!withUpnp) [ "--without-miniupnpc" ]
39 ++ lib.optionals (!withUtils) [ "--without-utils" ]
40 ++ lib.optionals (!withWallet) [ "--disable-wallet" ]
41 ++ lib.optionals (!withZmq) [ "--disable-zmq" ];
42
43 enableParallelBuilding = true;
44
45 meta = with lib; {
46 description = "Wow, such coin, much shiba, very rich";
47 longDescription = ''
48 Dogecoin is a decentralized, peer-to-peer digital currency that
49 enables you to easily send money online. Think of it as "the
50 internet currency."
51 It is named after a famous Internet meme, the "Doge" - a Shiba Inu dog.
52 '';
53 homepage = "https://www.dogecoin.com/";
54 license = licenses.mit;
55 maintainers = with maintainers; [ edwtjo offline ];
56 platforms = platforms.unix;
57 broken = true;
58 };
59}