summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--pkgs/tools/misc/libbitcoin/libbitcoin.nix35
-rw-r--r--pkgs/top-level/all-packages.nix4
2 files changed, 39 insertions, 0 deletions
diff --git a/pkgs/tools/misc/libbitcoin/libbitcoin.nix b/pkgs/tools/misc/libbitcoin/libbitcoin.nix
new file mode 100644
index 00000000000..61c462f7853
--- /dev/null
+++ b/pkgs/tools/misc/libbitcoin/libbitcoin.nix
@@ -0,0 +1,35 @@
+{ stdenv, lib, fetchurl, pkgconfig, autoreconfHook
+, boost, libsodium, czmqpp, secp256k1 }:
+
+let
+  pname = "libbitcoin";
+  version = "2.11.0";
+
+in stdenv.mkDerivation {
+  name = "${pname}-${version}";
+
+  src = fetchurl {
+    url = "https://github.com/libbitcoin/libbitcoin/archive/v${version}.tar.gz";
+    sha256 = "1lpdjm13kgs4fbp579bwfvws8yf9mnr5dw3ph8zxg2gf110h85sy";
+  };
+
+  buildInputs = [ autoreconfHook pkgconfig ];
+
+  propagatedBuildInputs = [ secp256k1 ];
+
+  configureFlags = [
+    "--with-boost=${boost.dev}"
+    "--with-boost-libdir=${boost.out}/lib"
+  ];
+
+  meta = with stdenv.lib; {
+    description = "C++ library for building bitcoin applications";
+    homepage = https://libbitcoin.org/;
+    platforms = platforms.linux ++ platforms.darwin;
+    maintainers = with maintainers; [ chris-martin ];
+
+    # https://wiki.unsystem.net/en/index.php/Libbitcoin/License
+    # AGPL with an additional clause
+    license = licenses.agpl3;
+  };
+}
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 63cce742d7b..f00631a652b 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -12321,6 +12321,10 @@ in
   bitcoin = altcoins.bitcoin;
   bitcoin-xt = altcoins.bitcoin-xt;
 
+  libbitcoin = callPackage ../tools/misc/libbitcoin/libbitcoin.nix {
+    secp256k1 = secp256k1.override { enableECDH = true; };
+  };
+
   go-ethereum = self.altcoins.go-ethereum;
   ethabi = self.altcoins.ethabi;