diff options
author | Alyssa Ross <hi@alyssa.is> | 2019-09-08 00:46:04 +0000 |
---|---|---|
committer | Alyssa Ross <hi@alyssa.is> | 2019-09-16 22:13:21 +0000 |
commit | afcf2d55332c5c01c2d989e9d010577d257cb6cc (patch) | |
tree | e1c816a271686b014a6403bcad7c57dd2ee4d9c7 /nixpkgs/pkgs/applications/blockchains | |
parent | 175b9acd282aaf65b5f354ea6e95c1348fe3daa3 (diff) | |
parent | 4e60699fa727e4a0f9a3e78948012f86da32cfef (diff) | |
download | nixlib-afcf2d55332c5c01c2d989e9d010577d257cb6cc.tar nixlib-afcf2d55332c5c01c2d989e9d010577d257cb6cc.tar.gz nixlib-afcf2d55332c5c01c2d989e9d010577d257cb6cc.tar.bz2 nixlib-afcf2d55332c5c01c2d989e9d010577d257cb6cc.tar.lz nixlib-afcf2d55332c5c01c2d989e9d010577d257cb6cc.tar.xz nixlib-afcf2d55332c5c01c2d989e9d010577d257cb6cc.tar.zst nixlib-afcf2d55332c5c01c2d989e9d010577d257cb6cc.zip |
Merge commit '4e60699fa727e4a0f9a3e78948012f86da32cfef'
Diffstat (limited to 'nixpkgs/pkgs/applications/blockchains')
47 files changed, 1901 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/applications/blockchains/aeon/default.nix b/nixpkgs/pkgs/applications/blockchains/aeon/default.nix new file mode 100644 index 000000000000..d65889be3ac0 --- /dev/null +++ b/nixpkgs/pkgs/applications/blockchains/aeon/default.nix @@ -0,0 +1,43 @@ +{ stdenv, fetchFromGitHub, cmake, pkgconfig, git, doxygen, graphviz +, boost, miniupnpc, openssl, unbound, cppzmq +, zeromq, pcsclite, readline, libsodium +}: + +let + version = "0.12.9.0"; +in +stdenv.mkDerivation { + pname = "aeon"; + inherit version; + + src = fetchFromGitHub { + owner = "aeonix"; + repo = "aeon"; + rev = "v${version}-aeon"; + fetchSubmodules = true; + sha256 = "194nxf8c8ihkmdsxyhkhrxc2xiinipifk0ng1rmxiiyr2gjgxzga"; + }; + + nativeBuildInputs = [ cmake pkgconfig git doxygen graphviz ]; + + buildInputs = [ + boost miniupnpc openssl unbound + cppzmq zeromq pcsclite readline libsodium + ]; + + cmakeFlags = [ + "-DCMAKE_BUILD_TYPE=Release" + "-DBUILD_GUI_DEPS=ON" + "-DReadline_ROOT_DIR=${readline.dev}" + ]; + + hardeningDisable = [ "fortify" ]; + + meta = with stdenv.lib; { + description = "Private, secure, untraceable currency"; + homepage = http://www.aeon.cash/; + license = licenses.bsd3; + maintainers = [ maintainers.aij ]; + platforms = [ "x86_64-linux" ]; + }; +} diff --git a/nixpkgs/pkgs/applications/blockchains/bitcoin-abc.nix b/nixpkgs/pkgs/applications/blockchains/bitcoin-abc.nix new file mode 100644 index 000000000000..479d175020b7 --- /dev/null +++ b/nixpkgs/pkgs/applications/blockchains/bitcoin-abc.nix @@ -0,0 +1,46 @@ +{ stdenv, fetchFromGitHub, pkgconfig, autoreconfHook, openssl, db53, boost +, zlib, miniupnpc, qtbase ? null , qttools ? null, utillinux, protobuf, qrencode, libevent +, withGui }: + +with stdenv.lib; + +stdenv.mkDerivation rec { + + name = "bitcoin" + (toString (optional (!withGui) "d")) + "-abc-" + version; + version = "0.19.4"; + + src = fetchFromGitHub { + owner = "bitcoin-ABC"; + repo = "bitcoin-abc"; + rev = "v${version}"; + sha256 = "1z4x25ygcw1pqml2ww02vqrvmihlv4f5gnnn1iyfirrjxgpfaxd7"; + }; + + patches = [ ./fix-bitcoin-qt-build.patch ]; + + nativeBuildInputs = [ pkgconfig autoreconfHook ]; + buildInputs = [ openssl db53 boost zlib + miniupnpc utillinux protobuf libevent ] + ++ optionals withGui [ qtbase qttools qrencode ]; + + configureFlags = [ "--with-boost-libdir=${boost.out}/lib" ] + ++ optionals withGui [ "--with-gui=qt5" ]; + + enableParallelBuilding = true; + + meta = { + description = "Peer-to-peer electronic cash system (Cash client)"; + longDescription= '' + Bitcoin ABC is the name of open source software which enables the use of Bitcoin. + It is designed to facilite a hard fork to increase Bitcoin's block size limit. + "ABC" stands for "Adjustable Blocksize Cap". + + Bitcoin ABC is a fork of the Bitcoin Core software project. + ''; + homepage = https://bitcoinabc.org/; + maintainers = with maintainers; [ lassulus ]; + license = licenses.mit; + broken = stdenv.isDarwin; + platforms = platforms.unix; + }; +} diff --git a/nixpkgs/pkgs/applications/blockchains/bitcoin-classic.nix b/nixpkgs/pkgs/applications/blockchains/bitcoin-classic.nix new file mode 100644 index 000000000000..ddce5c3f7150 --- /dev/null +++ b/nixpkgs/pkgs/applications/blockchains/bitcoin-classic.nix @@ -0,0 +1,54 @@ +{ stdenv, fetchFromGitHub, pkgconfig, autoreconfHook, openssl, db48, boost +, zlib, miniupnpc, qtbase ? null, qttools ? null, utillinux, protobuf, qrencode, libevent +, withGui }: + +with stdenv.lib; + +stdenv.mkDerivation rec { + + name = "bitcoin" + (toString (optional (!withGui) "d")) + "-classic-" + version; + version = "1.3.8"; + + src = fetchFromGitHub { + owner = "bitcoinclassic"; + repo = "bitcoinclassic"; + rev = "v${version}"; + sha256 = "06ij9v7zbdnhxq9429nnxiw655cp8idldj18l7fmj94gqx07n5vh"; + }; + + nativeBuildInputs = [ pkgconfig autoreconfHook ]; + buildInputs = [ openssl db48 boost zlib + miniupnpc utillinux protobuf libevent ] + ++ optionals withGui [ qtbase qttools qrencode ]; + + configureFlags = [ "--with-boost-libdir=${boost.out}/lib" ] + ++ optionals withGui [ "--with-gui=qt5" + "--with-qt-bindir=${qtbase.dev}/bin:${qttools.dev}/bin" + ]; + + enableParallelBuilding = true; + + meta = { + description = "Peer-to-peer electronic cash system (Classic client)"; + longDescription= '' + Bitcoin is a free open source peer-to-peer electronic cash system that is + completely decentralized, without the need for a central server or trusted + parties. Users hold the crypto keys to their own money and transact directly + with each other, with the help of a P2P network to check for double-spending. + + Bitcoin Classic stands for the original Bitcoin as Satoshi described it, + "A Peer-to-Peer Electronic Cash System". We are writing the software that + miners and users say they want. We will make sure it solves their needs, help + them deploy it, and gracefully upgrade the bitcoin network's capacity + together. The data shows that Bitcoin can grow, on-chain, to welcome many + more users onto our coin in a safe and distributed manner. In the future we + will continue to release updates that are in line with Satoshi’s whitepaper & + vision, and are agreed upon by the community. + ''; + homepage = https://bitcoinclassic.com/; + maintainers = with maintainers; [ jefdaj ]; + license = licenses.mit; + broken = stdenv.isDarwin; + platforms = platforms.unix; + }; +} diff --git a/nixpkgs/pkgs/applications/blockchains/bitcoin-unlimited.nix b/nixpkgs/pkgs/applications/blockchains/bitcoin-unlimited.nix new file mode 100644 index 000000000000..a75b20b39109 --- /dev/null +++ b/nixpkgs/pkgs/applications/blockchains/bitcoin-unlimited.nix @@ -0,0 +1,66 @@ +{ stdenv, fetchFromGitHub, pkgconfig, autoreconfHook, openssl, db48, boost +, zlib, miniupnpc, utillinux, protobuf, qrencode, libevent, python3 +, withGui, wrapQtAppsHook ? null, qtbase ? null, qttools ? null +, Foundation, ApplicationServices, AppKit }: + +with stdenv.lib; + +stdenv.mkDerivation rec { + name = "bitcoin" + (toString (optional (!withGui) "d")) + "-unlimited-" + version; + version = "1.6.0.1"; + + src = fetchFromGitHub { + owner = "bitcoinunlimited"; + repo = "bitcoinunlimited"; + rev = "bucash${version}"; + sha256 = "0f0mnal4jf8xdj7w5m4rdlcqkrkbpxi88c006m5k45lmjmj141zr"; + }; + + nativeBuildInputs = [ pkgconfig autoreconfHook python3 ] + ++ optionals withGui [ wrapQtAppsHook qttools ]; + buildInputs = [ openssl db48 boost zlib + miniupnpc utillinux protobuf libevent ] + ++ optionals withGui [ qtbase qttools qrencode ] + ++ optionals stdenv.isDarwin [ Foundation ApplicationServices AppKit ]; + + configureFlags = [ "--with-boost-libdir=${boost.out}/lib" ] + ++ optionals withGui [ "--with-gui=qt5" + "--with-qt-bindir=${qtbase.dev}/bin:${qttools.dev}/bin" + ]; + enableParallelBuilding = true; + + meta = { + description = "Peer-to-peer electronic cash system (Unlimited client)"; + longDescription= '' + Bitcoin is a free open source peer-to-peer electronic cash system that is + completely decentralized, without the need for a central server or trusted + parties. Users hold the crypto keys to their own money and transact directly + with each other, with the help of a P2P network to check for double-spending. + + The Bitcoin Unlimited (BU) project seeks to provide a voice to all + stakeholders in the Bitcoin ecosystem. + + Every node operator or miner can currently choose their own blocksize limit + by modifying their client. Bitcoin Unlimited makes the process easier by + providing a configurable option for the accepted and generated blocksize via + a GUI menu. Bitcoin Unlimited further provides a user-configurable failsafe + setting allowing you to accept a block larger than your maximum accepted + blocksize if it reaches a certain number of blocks deep in the chain. + + The Bitcoin Unlimited client is not a competitive block scaling proposal + like BIP-101, BIP-102, etc. Instead it tracks consensus. This means that it + tracks the blockchain that the hash power majority follows, irrespective of + blocksize, and signals its ability to accept larger blocks via protocol and + block versioning fields. + + If you support an increase in the blocksize limit by any means - or just + support Bitcoin conflict resolution as originally envisioned by its founder - + consider running a Bitcoin Unlimited client. + ''; + homepage = https://www.bitcoinunlimited.info/; + maintainers = with maintainers; [ DmitryTsygankov ]; + license = licenses.mit; + broken = stdenv.isDarwin; + platforms = platforms.unix; + }; +} diff --git a/nixpkgs/pkgs/applications/blockchains/bitcoin.nix b/nixpkgs/pkgs/applications/blockchains/bitcoin.nix new file mode 100644 index 000000000000..b1d84f91251e --- /dev/null +++ b/nixpkgs/pkgs/applications/blockchains/bitcoin.nix @@ -0,0 +1,61 @@ +{ stdenv, fetchurl, pkgconfig, autoreconfHook, openssl, db48, boost, zeromq, rapidcheck +, zlib, miniupnpc, qtbase ? null, qttools ? null, wrapQtAppsHook ? null, utillinux, protobuf, python3, qrencode, libevent +, withGui }: + +with stdenv.lib; +stdenv.mkDerivation rec{ + name = "bitcoin" + (toString (optional (!withGui) "d")) + "-" + version; + version = "0.18.1"; + + src = fetchurl { + urls = [ "https://bitcoincore.org/bin/bitcoin-core-${version}/bitcoin-${version}.tar.gz" + "https://bitcoin.org/bin/bitcoin-core-${version}/bitcoin-${version}.tar.gz" + ]; + sha256 = "5c7d93f15579e37aa2d1dc79e8f5ac675f59045fceddf604ae0f1550eb03bf96"; + }; + + nativeBuildInputs = + [ pkgconfig autoreconfHook ] + ++ optional withGui wrapQtAppsHook; + buildInputs = [ openssl db48 boost zlib zeromq + miniupnpc protobuf libevent] + ++ optionals stdenv.isLinux [ utillinux ] + ++ optionals withGui [ qtbase qttools qrencode ]; + + configureFlags = [ "--with-boost-libdir=${boost.out}/lib" + "--disable-bench" + ] ++ optionals (!doCheck) [ + "--disable-tests" + "--disable-gui-tests" + ] + ++ optionals withGui [ "--with-gui=qt5" + "--with-qt-bindir=${qtbase.dev}/bin:${qttools.dev}/bin" + ]; + + checkInputs = [ rapidcheck python3 ]; + + doCheck = true; + + checkFlags = + [ "LC_ALL=C.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 = "Peer-to-peer electronic cash system"; + longDescription= '' + Bitcoin is a free open source peer-to-peer electronic cash system that is + completely decentralized, without the need for a central server or trusted + parties. Users hold the crypto keys to their own money and transact directly + with each other, with the help of a P2P network to check for double-spending. + ''; + homepage = http://www.bitcoin.org/; + maintainers = with maintainers; [ roconnor AndersonTorres ]; + license = licenses.mit; + # bitcoin needs hexdump to build, which doesn't seem to build on darwin at the moment. + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/blockchains/btc1.nix b/nixpkgs/pkgs/applications/blockchains/btc1.nix new file mode 100644 index 000000000000..3241148aee12 --- /dev/null +++ b/nixpkgs/pkgs/applications/blockchains/btc1.nix @@ -0,0 +1,41 @@ +{ stdenv, fetchurl, pkgconfig, autoreconfHook, hexdump, openssl, db48 +, boost, zlib, miniupnpc, qt4, protobuf, qrencode, libevent +, AppKit +, withGui ? !stdenv.isDarwin +}: + +with stdenv.lib; +stdenv.mkDerivation rec{ + name = "bit1" + (toString (optional (!withGui) "d")) + "-" + version; + version = "1.15.1"; + + src = fetchurl { + url = "https://github.com/btc1/bitcoin/archive/v${version}.tar.gz"; + sha256 = "0v0g2wb4nsnhddxzb63vj2bc1mgyj05vqm5imicjfz8prvgc0si8"; + }; + + nativeBuildInputs = [ pkgconfig autoreconfHook hexdump ]; + buildInputs = [ openssl db48 boost zlib miniupnpc protobuf libevent ] + ++ optionals withGui [ qt4 qrencode ] + ++ optional stdenv.isDarwin AppKit; + + configureFlags = [ "--with-boost-libdir=${boost.out}/lib" ] + ++ optionals withGui [ "--with-gui=qt4" ]; + + meta = { + description = "Peer-to-peer electronic cash system (btc1 client)"; + longDescription= '' + Bitcoin is a free open source peer-to-peer electronic cash system that is + completely decentralized, without the need for a central server or trusted + parties. Users hold the crypto keys to their own money and transact directly + with each other, with the help of a P2P network to check for double-spending. + + btc1 is an implementation of a Bitcoin full node with segwit2x hard fork + support. + ''; + homepage = "https://github.com/btc1/bitcoin"; + license = licenses.mit; + maintainers = with maintainers; [ sorpaas ]; + platforms = platforms.unix; + }; +} diff --git a/nixpkgs/pkgs/applications/blockchains/clightning.nix b/nixpkgs/pkgs/applications/blockchains/clightning.nix new file mode 100644 index 000000000000..b20a6b3e8aa8 --- /dev/null +++ b/nixpkgs/pkgs/applications/blockchains/clightning.nix @@ -0,0 +1,49 @@ +{ stdenv, python3, pkgconfig, which, libtool, autoconf, automake, + autogen, sqlite, gmp, zlib, fetchurl, unzip, fetchpatch }: + +with stdenv.lib; +stdenv.mkDerivation rec { + pname = "clightning"; + version = "0.7.2.1"; + + src = fetchurl { + url = "https://github.com/ElementsProject/lightning/releases/download/v${version}/clightning-v${version}.zip"; + sha256 = "3be716948efc1208b5e6a41e3034e4e4eecc5abbdac769fd1d999a104ac3a2ec"; + }; + + enableParallelBuilding = true; + + nativeBuildInputs = [ autoconf autogen automake libtool pkgconfig which unzip ]; + buildInputs = + let py3 = python3.withPackages (p: [ p.Mako ]); + in [ sqlite gmp zlib py3 ]; + + makeFlags = [ "prefix=$(out) VERSION=v${version}" ]; + + configurePhase = '' + ./configure --prefix=$out --disable-developer --disable-valgrind + ''; + + postPatch = '' + patchShebangs \ + tools/generate-wire.py \ + tools/update-mocks.sh \ + tools/mockup.sh + ''; + + doCheck = false; + + meta = { + description = "A Bitcoin Lightning Network implementation in C"; + longDescription= '' + c-lightning is a standard compliant implementation of the Lightning + Network protocol. The Lightning Network is a scalability solution for + Bitcoin, enabling secure and instant transfer of funds between any two + parties for any amount. + ''; + homepage = https://github.com/ElementsProject/lightning; + maintainers = with maintainers; [ jb55 ]; + license = licenses.mit; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/blockchains/cryptop/default.nix b/nixpkgs/pkgs/applications/blockchains/cryptop/default.nix new file mode 100644 index 000000000000..01c47b320de5 --- /dev/null +++ b/nixpkgs/pkgs/applications/blockchains/cryptop/default.nix @@ -0,0 +1,23 @@ +{ lib, buildPythonApplication, fetchPypi, requests, requests-cache }: + +buildPythonApplication rec { + pname = "cryptop"; + version = "0.2.0"; + + src = fetchPypi { + inherit pname version; + sha256 = "0akrrz735vjfrm78plwyg84vabj0x3qficq9xxmy9kr40fhdkzpb"; + }; + + propagatedBuildInputs = [ requests requests-cache ]; + + # No tests in archive + doCheck = false; + + meta = { + homepage = https://github.com/huwwp/cryptop; + description = "Command line Cryptocurrency Portfolio"; + license = with lib.licenses; [ mit ]; + maintainers = with lib.maintainers; [ bhipple ]; + }; +} diff --git a/nixpkgs/pkgs/applications/blockchains/dashpay.nix b/nixpkgs/pkgs/applications/blockchains/dashpay.nix new file mode 100644 index 000000000000..03dcd6cb54e6 --- /dev/null +++ b/nixpkgs/pkgs/applications/blockchains/dashpay.nix @@ -0,0 +1,43 @@ +{ fetchFromGitHub, stdenv, pkgconfig, autoreconfHook +, openssl, db48, boost, zlib, miniupnpc +, qrencode, glib, protobuf, yasm, libevent +, utillinux +, enable_Upnp ? false +, disable_Wallet ? false +, disable_Daemon ? false }: + +with stdenv.lib; +stdenv.mkDerivation rec { + pname = "dashpay"; + version = "0.12.2.3"; + + src = fetchFromGitHub { + owner = "dashpay"; + repo= "dash"; + rev = "v${version}"; + sha256 = "0l1gcj2xf2bal9ph9y11x8yd28fd25f55f48xbm45bfw3ij7nbaa"; + }; + + nativeBuildInputs = [ pkgconfig autoreconfHook ]; + buildInputs = [ glib openssl db48 yasm boost zlib libevent + miniupnpc protobuf qrencode utillinux ]; + + + configureFlags = [ "--with-boost-libdir=${boost.out}/lib --with-gui=no" ] + ++ optional enable_Upnp "--enable-upnp-default" + ++ optional disable_Wallet "--disable-wallet" + ++ optional disable_Daemon "--disable-daemon" + ; + + meta = { + description = "A decentralized key/value registration and transfer system"; + longDescription = '' + Dash (DASH) is an open sourced, privacy-centric digital currency + with instant transactions. It allows you to keep your finances + private as you make transactions without waits, similar to cash. + ''; + homepage = https://www.dash.org; + maintainers = with maintainers; [ AndersonTorres ]; + platforms = platforms.unix; + }; +} diff --git a/nixpkgs/pkgs/applications/blockchains/dcrd.nix b/nixpkgs/pkgs/applications/blockchains/dcrd.nix new file mode 100644 index 000000000000..16d39e85da15 --- /dev/null +++ b/nixpkgs/pkgs/applications/blockchains/dcrd.nix @@ -0,0 +1,34 @@ +{ stdenv, lib, go, buildGoPackage, dep, fetchgit, git, cacert }: + +buildGoPackage rec { + pname = "dcrd"; + version = "1.1.2"; + rev = "refs/tags/v${version}"; + goPackagePath = "github.com/decred/dcrd"; + + buildInputs = [ go git dep cacert ]; + + GIT_SSL_CAINFO = "${cacert}/etc/ssl/certs/ca-bundle.crt"; + NIX_SSL_CERT_FILE = "${cacert}/etc/ssl/certs/ca-bundle.crt"; + + src = fetchgit { + inherit rev; + url = "https://${goPackagePath}"; + sha256 = "0xcynipdn9zmmralxj0hjrwyanvhkwfj2b1vvjk5zfc95s2xc1q9"; + }; + + preBuild = '' + export CWD=$(pwd) + cd go/src/github.com/decred/dcrd + dep ensure + go install . ./cmd/... + cd $CWD + ''; + + meta = { + homepage = "https://decred.org"; + description = "Decred daemon in Go (golang)"; + license = with lib.licenses; [ isc ]; + broken = stdenv.isLinux; # 2018-04-10 + }; +} diff --git a/nixpkgs/pkgs/applications/blockchains/dcrwallet.nix b/nixpkgs/pkgs/applications/blockchains/dcrwallet.nix new file mode 100644 index 000000000000..163ed2615d33 --- /dev/null +++ b/nixpkgs/pkgs/applications/blockchains/dcrwallet.nix @@ -0,0 +1,43 @@ +{ stdenv, lib, go, buildGoPackage, dep, fetchgit, git, cacert }: + +buildGoPackage rec { + pname = "dcrwallet"; + version = "1.1.2"; + rev = "refs/tags/v${version}"; + goPackagePath = "github.com/decred/dcrwallet"; + + buildInputs = [ go git dep cacert ]; + + GIT_SSL_CAINFO = "${cacert}/etc/ssl/certs/ca-bundle.crt"; + NIX_SSL_CERT_FILE = "${cacert}/etc/ssl/certs/ca-bundle.crt"; + + src = fetchgit { + inherit rev; + url = "https://${goPackagePath}"; + sha256 = "058im4vmcmxcl5ir14h17wik5lagp2ay0p8qc3r99qmpfwvvz39x"; + }; + + preBuild = '' + export CWD=$(pwd) + cd go/src/github.com/decred/dcrwallet + dep ensure + ''; + + buildPhase = '' + runHook preBuild + go build + ''; + + installPhase = '' + mkdir -pv $bin/bin + cp -v dcrwallet $bin/bin + ''; + + + meta = { + homepage = "https://decred.org"; + description = "Decred daemon in Go (golang)"; + license = with lib.licenses; [ isc ]; + broken = stdenv.isLinux; # 2018-04-10 + }; +} diff --git a/nixpkgs/pkgs/applications/blockchains/dero.nix b/nixpkgs/pkgs/applications/blockchains/dero.nix new file mode 100644 index 000000000000..0ab63bb53951 --- /dev/null +++ b/nixpkgs/pkgs/applications/blockchains/dero.nix @@ -0,0 +1,27 @@ +{ lib, stdenv, fetchFromGitHub, cmake, pkgconfig, unbound, openssl, boost +, lmdb, miniupnpc, readline }: + +stdenv.mkDerivation rec { + pname = "dero"; + version = "0.11.6"; + + src = fetchFromGitHub { + owner = "deroproject"; + repo = "dero"; + rev = "v${version}"; + sha256 = "0jc5rh2ra4wra04dwv9sydid5ij5930s38mhzq3qkdjyza1ahmsr"; + }; + + nativeBuildInputs = [ cmake pkgconfig ]; + buildInputs = [ boost miniupnpc openssl lmdb unbound readline ]; + + enableParallelBuilding = true; + + meta = with lib; { + description = "Secure, private blockchain with smart contracts based on Monero"; + homepage = "https://dero.io/"; + license = licenses.bsd3; + maintainers = with maintainers; [ fpletz ]; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/blockchains/dogecoin.nix b/nixpkgs/pkgs/applications/blockchains/dogecoin.nix new file mode 100644 index 000000000000..e5f149a0efe7 --- /dev/null +++ b/nixpkgs/pkgs/applications/blockchains/dogecoin.nix @@ -0,0 +1,41 @@ +{ stdenv , fetchFromGitHub +, pkgconfig, autoreconfHook +, db5, openssl, boost, zlib, miniupnpc, libevent +, protobuf, utillinux, qt4, qrencode +, withGui }: + +with stdenv.lib; +stdenv.mkDerivation rec { + name = "dogecoin" + (toString (optional (!withGui) "d")) + "-" + version; + version = "1.14.1"; + + src = fetchFromGitHub { + owner = "dogecoin"; + repo = "dogecoin"; + rev = "v${version}"; + sha256 = "0nmbi5gmms16baqs3fmdp2xm0yf8wawnyz80gcmca4j5ph2zka1v"; + }; + + nativeBuildInputs = [ pkgconfig autoreconfHook ]; + buildInputs = [ openssl db5 openssl utillinux + protobuf boost zlib miniupnpc libevent ] + ++ optionals withGui [ qt4 qrencode ]; + + configureFlags = [ "--with-incompatible-bdb" + "--with-boost-libdir=${boost.out}/lib" ] + ++ optionals withGui [ "--with-gui" ]; + + meta = { + description = "Wow, such coin, much shiba, very rich"; + longDescription = '' + Dogecoin is a decentralized, peer-to-peer digital currency that + enables you to easily send money online. Think of it as "the + internet currency." + It is named after a famous Internet meme, the "Doge" - a Shiba Inu dog. + ''; + homepage = http://www.dogecoin.com/; + license = licenses.mit; + maintainers = with maintainers; [ edwtjo offline AndersonTorres ]; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/blockchains/ethabi.nix b/nixpkgs/pkgs/applications/blockchains/ethabi.nix new file mode 100644 index 000000000000..21d69f14d7f3 --- /dev/null +++ b/nixpkgs/pkgs/applications/blockchains/ethabi.nix @@ -0,0 +1,27 @@ +{ stdenv, fetchFromGitHub, rustPlatform }: + +with rustPlatform; + +buildRustPackage rec { + name = "ethabi-${version}"; + version = "7.0.0"; + + src = fetchFromGitHub { + owner = "paritytech"; + repo = "ethabi"; + rev = "v${version}"; + sha256 = "1gqd3vwsvv1wvi659qcdywgmh41swblpwmmxb033k8irw581dwq4"; + }; + + cargoSha256 = "0zkdai31jf8f5syklaxq43ydjvp5xclr8pd6y1q6vkwjz6z49hzm"; + + cargoBuildFlags = ["--features cli"]; + + meta = with stdenv.lib; { + description = "Ethereum function call encoding (ABI) utility"; + homepage = https://github.com/ethcore/ethabi/; + maintainers = [ maintainers.dbrock ]; + license = licenses.gpl3; + inherit version; + }; +} diff --git a/nixpkgs/pkgs/applications/blockchains/exodus/default.nix b/nixpkgs/pkgs/applications/blockchains/exodus/default.nix new file mode 100644 index 000000000000..bc354a5213ea --- /dev/null +++ b/nixpkgs/pkgs/applications/blockchains/exodus/default.nix @@ -0,0 +1,78 @@ +{ stdenv, lib, fetchurl, unzip, glib, systemd, nss, nspr, gtk3-x11, gnome2, +atk, cairo, gdk-pixbuf, xorg, xorg_sys_opengl, utillinux, alsaLib, dbus, at-spi2-atk, +cups, vivaldi-ffmpeg-codecs, libpulseaudio }: + +stdenv.mkDerivation rec { + pname = "exodus"; + version = "19.5.24"; + + src = fetchurl { + url = "https://exodusbin.azureedge.net/releases/${pname}-linux-x64-${version}.zip"; + sha256 = "1yx296i525qmpqh8f2vax7igffg826nr8cyq1l0if35374bdsqdw"; + }; + + sourceRoot = "."; + unpackCmd = '' + ${unzip}/bin/unzip "$src" -x "Exodus*/lib*so" + ''; + + installPhase = '' + mkdir -p $out/bin $out/share/applications + cd Exodus-linux-x64 + cp -r . $out + ln -s $out/Exodus $out/bin/Exodus + ln -s $out/exodus.desktop $out/share/applications + substituteInPlace $out/share/applications/exodus.desktop \ + --replace 'Exec=bash -c "cd `dirname %k` && ./Exodus"' "Exec=Exodus" + ''; + + dontPatchELF = true; + dontBuild = true; + + preFixup = let + libPath = lib.makeLibraryPath [ + glib + nss + nspr + gtk3-x11 + gnome2.pango + atk + cairo + gdk-pixbuf + xorg.libX11 + xorg.libxcb + xorg.libXcomposite + xorg.libXcursor + xorg.libXdamage + xorg.libXext + xorg.libXfixes + xorg.libXi + xorg.libXrender + xorg.libXtst + xorg_sys_opengl + utillinux + xorg.libXrandr + xorg.libXScrnSaver + alsaLib + dbus.lib + at-spi2-atk + cups.lib + libpulseaudio + systemd + vivaldi-ffmpeg-codecs + ]; + in '' + patchelf \ + --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \ + --set-rpath "${libPath}" \ + $out/Exodus + ''; + + meta = with stdenv.lib; { + homepage = "https://www.exodus.io/"; + description = "Top-rated cryptocurrency wallet with Trezor integration and built-in Exchange"; + license = licenses.unfree; + platforms = platforms.linux; + maintainers = [ maintainers.mmahut ]; + }; +} diff --git a/nixpkgs/pkgs/applications/blockchains/fix-bitcoin-qt-build.patch b/nixpkgs/pkgs/applications/blockchains/fix-bitcoin-qt-build.patch new file mode 100644 index 000000000000..c49bbc432519 --- /dev/null +++ b/nixpkgs/pkgs/applications/blockchains/fix-bitcoin-qt-build.patch @@ -0,0 +1,15 @@ +--- bitcoin-abc-v0.15.0-src/build-aux/m4/bitcoin_qt.m4 1970-01-01 01:00:01.000000000 +0100 ++++ bitcoin-abc-v0.15.0-src.org/build-aux/m4/bitcoin_qt.m4 2017-09-27 23:38:44.748384197 +0100 +@@ -35,11 +35,7 @@ + dnl Output: $1 is set to the path of $2 if found. $2 are searched in order. + AC_DEFUN([BITCOIN_QT_PATH_PROGS],[ + BITCOIN_QT_CHECK([ +- if test "x$3" != x; then +- AC_PATH_PROGS($1,$2,,$3) +- else +- AC_PATH_PROGS($1,$2) +- fi ++ AC_PATH_PROGS($1,$2) + if test "x$$1" = x && test "x$4" != xyes; then + BITCOIN_QT_FAIL([$1 not found]) + fi diff --git a/nixpkgs/pkgs/applications/blockchains/freicoin.nix b/nixpkgs/pkgs/applications/blockchains/freicoin.nix new file mode 100644 index 000000000000..6cf84f76f919 --- /dev/null +++ b/nixpkgs/pkgs/applications/blockchains/freicoin.nix @@ -0,0 +1,41 @@ +{ fetchFromGitHub, stdenv, db, boost, gmp, mpfr, qt4, qmake4Hook }: + +stdenv.mkDerivation rec { + version = "0.8.6-2"; + pname = "freicoin"; + + src = fetchFromGitHub { + owner = "freicoin"; + repo = "freicoin"; + rev = "v${version}"; + sha256 = "1v1qwv4x5agjba82s1vknmdgq67y26wzdwbmwwqavv7f7y3y860h"; + }; + + enableParallelBuilding = false; + + qmakeFlags = ["USE_UPNP=-"]; + + # I think that openssl and zlib are required, but come through other + # packages + + preBuild = "unset AR"; + + installPhase = '' + mkdir -p $out/bin + cp freicoin-qt $out/bin + ''; + + nativeBuildInputs = [ qmake4Hook ]; + buildInputs = [ db boost gmp mpfr qt4 ]; + + meta = with stdenv.lib; { + description = "Peer-to-peer currency with demurrage fee"; + homepage = http://freicoi.in/; + license = licenses.mit; + maintainers = [ maintainers.viric ]; + platforms = platforms.linux; + + # upstream doesn't support newer openssl versions, use 1.0.1 for testing + broken = true; + }; +} diff --git a/nixpkgs/pkgs/applications/blockchains/go-ethereum-classic/default.nix b/nixpkgs/pkgs/applications/blockchains/go-ethereum-classic/default.nix new file mode 100644 index 000000000000..ed8086f742f9 --- /dev/null +++ b/nixpkgs/pkgs/applications/blockchains/go-ethereum-classic/default.nix @@ -0,0 +1,24 @@ +{ lib, buildGoPackage, fetchgit }: + +buildGoPackage rec { + pname = "go-ethereum-classic"; + version = "4.0.0"; + + goPackagePath = "github.com/ethereumproject/go-ethereum"; + subPackages = [ "cmd/evm" "cmd/geth" ]; + + src = fetchgit { + rev = "v${version}"; + url = "https://github.com/ethereumproject/go-ethereum"; + sha256 = "06f1w7s45q4zva1xjrx92xinsdrixl0m6zhx5hvdjmg3xqcbwr79"; + }; + + goDeps = ./deps.nix; + + meta = { + description = "Golang implementation of Ethereum Classic"; + homepage = https://github.com/ethereumproject/go-ethereum; + license = with lib.licenses; [ lgpl3 gpl3 ]; + maintainers = with lib.maintainers; [ sorpaas ]; + }; +} diff --git a/nixpkgs/pkgs/applications/blockchains/go-ethereum-classic/deps.nix b/nixpkgs/pkgs/applications/blockchains/go-ethereum-classic/deps.nix new file mode 100644 index 000000000000..0aa6755ee960 --- /dev/null +++ b/nixpkgs/pkgs/applications/blockchains/go-ethereum-classic/deps.nix @@ -0,0 +1,39 @@ +# This file was generated by https://github.com/kamilchm/go2nix v1.2.0 +[ + { + goPackagePath = "github.com/maruel/panicparse"; + fetch = { + type = "git"; + url = "https://github.com/maruel/panicparse"; + rev = "ae43f192cef2add653fe1481a3070ed00a4a6981"; + sha256 = "11q8v4adbrazqvh24235s5nifck0d1083gbwv4dh5lhd10xlwdvr"; + }; + } + { + goPackagePath = "github.com/mattn/go-runewidth"; + fetch = { + type = "git"; + url = "https://github.com/mattn/go-runewidth"; + rev = "97311d9f7767e3d6f422ea06661bc2c7a19e8a5d"; + sha256 = "0dxlrzn570xl7gb11hjy1v4p3gw3r41yvqhrffgw95ha3q9p50cg"; + }; + } + { + goPackagePath = "github.com/mitchellh/go-wordwrap"; + fetch = { + type = "git"; + url = "https://github.com/mitchellh/go-wordwrap"; + rev = "ad45545899c7b13c020ea92b2072220eefad42b8"; + sha256 = "0ny1ddngvwfj3njn7pmqnf3l903lw73ynddw15x8ymp7hidv27v9"; + }; + } + { + goPackagePath = "github.com/nsf/termbox-go"; + fetch = { + type = "git"; + url = "https://github.com/nsf/termbox-go"; + rev = "4163cd39dda1c0dda883a713640bc01e08951c24"; + sha256 = "1vzrhxf8823lrnwf1bfyxwlm52pph5iq2hgr1d0n07v8kjgqkrmx"; + }; + } +] diff --git a/nixpkgs/pkgs/applications/blockchains/go-ethereum.nix b/nixpkgs/pkgs/applications/blockchains/go-ethereum.nix new file mode 100644 index 000000000000..740ecfa228fd --- /dev/null +++ b/nixpkgs/pkgs/applications/blockchains/go-ethereum.nix @@ -0,0 +1,29 @@ +{ stdenv, buildGoPackage, fetchFromGitHub, libobjc, IOKit }: + +buildGoPackage rec { + pname = "go-ethereum"; + version = "1.9.2"; + + goPackagePath = "github.com/ethereum/go-ethereum"; + + # Fix for usb-related segmentation faults on darwin + propagatedBuildInputs = + stdenv.lib.optionals stdenv.isDarwin [ libobjc IOKit ]; + + # Fixes Cgo related build failures (see https://github.com/NixOS/nixpkgs/issues/25959 ) + hardeningDisable = [ "fortify" ]; + + src = fetchFromGitHub { + owner = "ethereum"; + repo = pname; + rev = "v${version}"; + sha256 = "0lymwylh4j63fzj9jy7mcw676a2ksgpsj9mazif1r3d2q73h9m88"; + }; + + meta = with stdenv.lib; { + homepage = "https://geth.ethereum.org/"; + description = "Official golang implementation of the Ethereum protocol"; + license = with licenses; [ lgpl3 gpl3 ]; + maintainers = with maintainers; [ adisbladis asymmetric lionello xrelkd ]; + }; +} diff --git a/nixpkgs/pkgs/applications/blockchains/jormungandr/default.nix b/nixpkgs/pkgs/applications/blockchains/jormungandr/default.nix new file mode 100644 index 000000000000..8c276d6bb805 --- /dev/null +++ b/nixpkgs/pkgs/applications/blockchains/jormungandr/default.nix @@ -0,0 +1,55 @@ +{ stdenv +, lib +, fetchgit +, rustPlatform +, openssl +, pkgconfig +, protobuf +, darwin +}: + +rustPlatform.buildRustPackage rec { + pname = "jormungandr"; + version = "0.3.3"; + + src = fetchgit { + url = "https://github.com/input-output-hk/${pname}"; + rev = "v${version}"; + sha256 = "1fw3cl2rxnw9mww1b1z96x2iapwbpdgyp4ra19dhvfzmlvaiml5j"; + fetchSubmodules = true; + }; + + cargoSha256 = "1ilp9ffaz3njv38mnqics4b5d7wh52mj4rwi71h5c0wzx4ww3zal"; + + nativeBuildInputs = [ pkgconfig protobuf ]; + buildInputs = [ openssl ] ++ lib.optionals stdenv.isDarwin [ darwin.apple_sdk.frameworks.Security ]; + + patchPhase = '' + sed -i "s~SCRIPTPATH=.*~SCRIPTPATH=$out/templates/~g" scripts/bootstrap + ''; + + installPhase = '' + install -d $out/bin $out/templates + install -m755 target/*/release/jormungandr $out/bin/ + install -m755 target/*/release/jcli $out/bin/ + install -m755 scripts/send-transaction $out/templates + install -m755 scripts/jcli-helpers $out/bin/ + install -m755 scripts/bootstrap $out/bin/jormungandr-bootstrap + install -m644 scripts/faucet-send-money.shtempl $out/templates/ + install -m644 scripts/create-account-and-delegate.shtempl $out/templates/ + install -m644 scripts/faucet-send-certificate.shtempl $out/templates/ + ''; + + PROTOC = "${protobuf}/bin/protoc"; + + # Disabling integration tests + doCheck = false; + + meta = with stdenv.lib; { + description = "An aspiring blockchain node"; + homepage = "https://input-output-hk.github.io/jormungandr/"; + license = licenses.mit; + maintainers = [ maintainers.mmahut ]; + platforms = platforms.all; + }; +} diff --git a/nixpkgs/pkgs/applications/blockchains/ledger-live-desktop/default.nix b/nixpkgs/pkgs/applications/blockchains/ledger-live-desktop/default.nix new file mode 100644 index 000000000000..0417d2913de5 --- /dev/null +++ b/nixpkgs/pkgs/applications/blockchains/ledger-live-desktop/default.nix @@ -0,0 +1,50 @@ +{ stdenv, fetchurl, makeDesktopItem, makeWrapper, appimage-run }: + +stdenv.mkDerivation rec { + pname = "ledger-live-desktop"; + version = "1.12.0"; + + src = fetchurl { + url = "https://github.com/LedgerHQ/${pname}/releases/download/v${version}/${pname}-${version}-linux-x86_64.AppImage"; + sha256 = "0sn0ri8kqvy36d6vjwsb0mh54nwic58416m6q5drl1schsn6wyvj"; + }; + + nativeBuildInputs = [ makeWrapper ]; + buildInputs = [ appimage-run ]; + + desktopIcon = fetchurl { + url = "https://raw.githubusercontent.com/LedgerHQ/${pname}/v${version}/build/icon.png"; + sha256 = "1mmfaf0yk7xf1kgbs3ka8wsbz1qgh60xj6z91ica1i7lw2qbdd5h"; + }; + + desktopItem = makeDesktopItem { + name = pname; + exec = "${placeholder "out"}/bin/${pname}"; + icon = pname; + desktopName = "Ledger Live"; + categories = "Utility;"; + }; + + unpackPhase = ":"; + + installPhase = '' + runHook preInstall + + ${desktopItem.buildCommand} + install -D $src $out/share/${src.name} + install -Dm -x ${desktopIcon} \ + $out/share/icons/hicolor/1024x1024/apps/${pname}.png + makeWrapper ${appimage-run}/bin/appimage-run $out/bin/${pname} \ + --add-flags $out/share/${src.name} + + runHook postInstall + ''; + + meta = with stdenv.lib; { + description = "Wallet app for Ledger Nano S and Ledger Blue"; + homepage = "https://www.ledger.com/live"; + license = licenses.mit; + maintainers = with maintainers; [ thedavidmeister ]; + platforms = [ "x86_64-linux" ]; + }; +} diff --git a/nixpkgs/pkgs/applications/blockchains/litecoin.nix b/nixpkgs/pkgs/applications/blockchains/litecoin.nix new file mode 100644 index 000000000000..33ac2be18322 --- /dev/null +++ b/nixpkgs/pkgs/applications/blockchains/litecoin.nix @@ -0,0 +1,51 @@ +{ stdenv, fetchFromGitHub +, pkgconfig, autoreconfHook +, openssl, db48, boost, zlib, miniupnpc +, glib, protobuf, utillinux, qt4, qrencode +, AppKit +, withGui ? true, libevent +}: + +with stdenv.lib; + +stdenv.mkDerivation rec { + + name = "litecoin" + (toString (optional (!withGui) "d")) + "-" + version; + version = "0.16.3"; + + src = fetchFromGitHub { + owner = "litecoin-project"; + repo = "litecoin"; + rev = "v${version}"; + sha256 = "0vc184qfdkjky1qffa7309k6973k4197bkzwcmffc9r5sdfhrhkp"; + }; + + nativeBuildInputs = [ pkgconfig autoreconfHook ]; + buildInputs = [ openssl db48 boost zlib + miniupnpc glib protobuf utillinux libevent ] + ++ optionals stdenv.isDarwin [ AppKit ] + ++ optionals withGui [ qt4 qrencode ]; + + configureFlags = [ "--with-boost-libdir=${boost.out}/lib" ] + ++ optionals withGui [ "--with-gui=qt4" ]; + + enableParallelBuilding = true; + + meta = { + description = "A lite version of Bitcoin using scrypt as a proof-of-work algorithm"; + longDescription= '' + Litecoin is a peer-to-peer Internet currency that enables instant payments + to anyone in the world. It is based on the Bitcoin protocol but differs + from Bitcoin in that it can be efficiently mined with consumer-grade hardware. + Litecoin provides faster transaction confirmations (2.5 minutes on average) + and uses a memory-hard, scrypt-based mining proof-of-work algorithm to target + the regular computers and GPUs most people already have. + The Litecoin network is scheduled to produce 84 million currency units. + ''; + homepage = https://litecoin.org/; + platforms = platforms.unix; + license = licenses.mit; + broken = stdenv.isDarwin; + maintainers = with maintainers; [ offline AndersonTorres ]; + }; +} diff --git a/nixpkgs/pkgs/applications/blockchains/lnd.nix b/nixpkgs/pkgs/applications/blockchains/lnd.nix new file mode 100644 index 000000000000..27f10c963c0f --- /dev/null +++ b/nixpkgs/pkgs/applications/blockchains/lnd.nix @@ -0,0 +1,22 @@ +{ buildGoModule, fetchFromGitHub, lib }: + +buildGoModule rec { + pname = "lnd"; + version = "0.7.1-beta"; + + src = fetchFromGitHub { + owner = "lightningnetwork"; + repo = "lnd"; + rev = "v${version}"; + sha256 = "1c0sm0lavdai4w6d283q54knggw9d42vvqmglnv2h9swbw1l23ry"; + }; + + modSha256 = "13hjaf4bswk8g57lyxzdlqqp4a6ddl3qm6n4jja4b1h58mlbil73"; + + meta = with lib; { + description = "Lightning Network Daemon"; + homepage = "https://github.com/lightningnetwork/lnd"; + license = lib.licenses.mit; + maintainers = with maintainers; [ cypherpunk2140 ]; + }; +} diff --git a/nixpkgs/pkgs/applications/blockchains/masari.nix b/nixpkgs/pkgs/applications/blockchains/masari.nix new file mode 100644 index 000000000000..dfa005abb6ec --- /dev/null +++ b/nixpkgs/pkgs/applications/blockchains/masari.nix @@ -0,0 +1,27 @@ +{ lib, stdenv, fetchFromGitHub, cmake, pkgconfig, unbound, openssl, boost +, lmdb, miniupnpc, readline }: + +stdenv.mkDerivation rec { + pname = "masari"; + version = "0.1.4.0"; + + src = fetchFromGitHub { + owner = "masari-project"; + repo = "masari"; + rev = "v${version}"; + sha256 = "0l6i21wkq5f6z8xr756i7vqgkzk7lixaa31ydy34fkfcqxppgxz3"; + }; + + nativeBuildInputs = [ cmake pkgconfig ]; + buildInputs = [ boost miniupnpc openssl lmdb unbound readline ]; + + enableParallelBuilding = true; + + meta = with lib; { + description = "scalability-focused, untraceable, secure, and fungible cryptocurrency using the RingCT protocol"; + homepage = "https://www.getmasari.org/"; + license = licenses.bsd3; + maintainers = with maintainers; [ fpletz ]; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/blockchains/mist.nix b/nixpkgs/pkgs/applications/blockchains/mist.nix new file mode 100644 index 000000000000..2990b44c7f4c --- /dev/null +++ b/nixpkgs/pkgs/applications/blockchains/mist.nix @@ -0,0 +1,72 @@ +{ stdenv, makeWrapper, fetchurl, unzip, atomEnv, makeDesktopItem, buildFHSUserEnv, gtk2 }: + +let + version = "0.11.1"; + pname = "mist"; + + throwSystem = throw "Unsupported system: ${stdenv.hostPlatform.system}"; + + meta = with stdenv.lib; { + description = "Browse and use Ðapps on the Ethereum network"; + homepage = https://github.com/ethereum/mist; + license = licenses.gpl3; + maintainers = with maintainers; []; + platforms = [ "x86_64-linux" "i686-linux" ]; + }; + + urlVersion = builtins.replaceStrings ["."] ["-"] version; + + desktopItem = makeDesktopItem rec { + name = "Mist"; + exec = "mist"; + icon = "mist"; + desktopName = name; + genericName = "Mist Browser"; + categories = "Network;"; + }; + + mist = stdenv.lib.appendToName "unwrapped" (stdenv.mkDerivation { + inherit pname version meta; + + src = { + i686-linux = fetchurl { + url = "https://github.com/ethereum/mist/releases/download/v${version}/Mist-linux32-${urlVersion}.zip"; + sha256 = "1ffzp9aa0g6w3d5pzp69fljk3sd51cbqdgxa1x16vj106sqm0gj7"; + }; + x86_64-linux = fetchurl { + url = "https://github.com/ethereum/mist/releases/download/v${version}/Mist-linux64-${urlVersion}.zip"; + sha256 = "0yx4x72l8gk68yh9saki48zgqx8k92xnkm79dc651wdpd5c25cz3"; + }; + }.${stdenv.hostPlatform.system} or throwSystem; + + buildInputs = [ unzip makeWrapper ]; + + buildCommand = '' + mkdir -p $out/lib/mist $out/bin + unzip -d $out/lib/mist $src + ln -s $out/lib/mist/mist $out/bin + fixupPhase + mkdir -p $out/share/applications + ln -s ${desktopItem}/share/applications/* $out/share/applications + patchelf \ + --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \ + --set-rpath "${atomEnv.libPath}:${gtk2}/lib:$out/lib/mist" \ + $out/lib/mist/mist + ''; + }); +in +buildFHSUserEnv { + name = "mist"; + inherit meta; + + targetPkgs = pkgs: with pkgs; [ + mist + ]; + + extraInstallCommands = '' + mkdir -p "$out/share/applications" + cp "${desktopItem}/share/applications/"* $out/share/applications + ''; + + runScript = "mist"; +} diff --git a/nixpkgs/pkgs/applications/blockchains/monero-gui/default.nix b/nixpkgs/pkgs/applications/blockchains/monero-gui/default.nix new file mode 100644 index 000000000000..92f6f0080219 --- /dev/null +++ b/nixpkgs/pkgs/applications/blockchains/monero-gui/default.nix @@ -0,0 +1,87 @@ +{ mkDerivation, lib, makeDesktopItem, fetchFromGitHub +, qtbase, qmake, qtmultimedia, qttools +, qtgraphicaleffects, qtdeclarative +, qtlocation, qtquickcontrols, qtquickcontrols2 +, qtwebchannel, qtwebengine, qtx11extras, qtxmlpatterns +, monero, unbound, readline, boost, libunwind +, libsodium, pcsclite, zeromq, cppzmq, pkgconfig +, hidapi +}: + +with lib; + +mkDerivation rec { + pname = "monero-gui"; + version = "0.14.1.2"; + + src = fetchFromGitHub { + owner = "monero-project"; + repo = "monero-gui"; + rev = "v${version}"; + sha256 = "1rm043r6y2mzy8pclnzbjjfxgps8pkfa2b92p66k8y8rdmgq6m1k"; + }; + + nativeBuildInputs = [ qmake pkgconfig ]; + + buildInputs = [ + qtbase qtmultimedia qtgraphicaleffects + qtdeclarative qtlocation + qtquickcontrols qtquickcontrols2 + qtwebchannel qtwebengine qtx11extras + qtxmlpatterns monero unbound readline + boost libunwind libsodium pcsclite zeromq + cppzmq hidapi + ]; + + patches = [ ./move-log-file.patch ]; + + postPatch = '' + echo ' + var GUI_VERSION = "${version}"; + var GUI_MONERO_VERSION = "${getVersion monero}"; + ' > version.js + substituteInPlace monero-wallet-gui.pro \ + --replace '$$[QT_INSTALL_BINS]/lrelease' '${getDev qttools}/bin/lrelease' + substituteInPlace src/daemon/DaemonManager.cpp \ + --replace 'QApplication::applicationDirPath() + "' '"${monero}/bin' + ''; + + makeFlags = [ "INSTALL_ROOT=$(out)" ]; + + preBuild = '' + sed -i s#/opt/monero-wallet-gui##g Makefile + make -C src/zxcvbn-c + ''; + + desktopItem = makeDesktopItem { + name = "monero-wallet-gui"; + exec = "monero-wallet-gui"; + icon = "monero"; + desktopName = "Monero"; + genericName = "Wallet"; + categories = "Application;Network;Utility;"; + }; + + postInstall = '' + # install desktop entry + mkdir -p $out/share/applications + cp ${desktopItem}/share/applications/* $out/share/applications + + # install icons + for n in 16 24 32 48 64 96 128 256; do + size=$n"x"$n + mkdir -p $out/share/icons/hicolor/$size/apps + cp $src/images/appicons/$size.png \ + $out/share/icons/hicolor/$size/apps/monero.png + done; + ''; + + meta = { + description = "Private, secure, untraceable currency"; + homepage = https://getmonero.org/; + license = licenses.bsd3; + platforms = platforms.all; + badPlatforms = platforms.darwin; + maintainers = with maintainers; [ rnhmjoj ]; + }; +} diff --git a/nixpkgs/pkgs/applications/blockchains/monero-gui/move-log-file.patch b/nixpkgs/pkgs/applications/blockchains/monero-gui/move-log-file.patch new file mode 100644 index 000000000000..e540f1960d6c --- /dev/null +++ b/nixpkgs/pkgs/applications/blockchains/monero-gui/move-log-file.patch @@ -0,0 +1,15 @@ +diff --git a/main.cpp b/main.cpp +index a51568d..5a9f683 100644 +--- a/main.cpp ++++ b/main.cpp +@@ -152,7 +152,9 @@ int main(int argc, char *argv[]) + QCommandLineOption logPathOption(QStringList() << "l" << "log-file", + QCoreApplication::translate("main", "Log to specified file"), + QCoreApplication::translate("main", "file")); +- ++ logPathOption.setDefaultValue( ++ QStandardPaths::writableLocation(QStandardPaths::CacheLocation) ++ + "/monero-wallet-gui.log"); + parser.addOption(logPathOption); + parser.addHelpOption(); + parser.process(app); diff --git a/nixpkgs/pkgs/applications/blockchains/monero/default.nix b/nixpkgs/pkgs/applications/blockchains/monero/default.nix new file mode 100644 index 000000000000..b6f074528616 --- /dev/null +++ b/nixpkgs/pkgs/applications/blockchains/monero/default.nix @@ -0,0 +1,47 @@ +{ stdenv, fetchgit +, cmake, pkgconfig, git +, boost, miniupnpc, openssl, unbound, cppzmq +, zeromq, pcsclite, readline, libsodium, hidapi +, python3Packages +, CoreData, IOKit, PCSC +}: + +assert stdenv.isDarwin -> IOKit != null; + +with stdenv.lib; + +stdenv.mkDerivation rec { + pname = "monero"; + version = "0.14.1.0"; + + src = fetchgit { + url = "https://github.com/monero-project/monero.git"; + rev = "v${version}"; + sha256 = "1asa197fad81jfv12qgaa7y7pdr1r1pda96m9pvivkh4v30cx0nh"; + }; + + nativeBuildInputs = [ cmake pkgconfig git ]; + + buildInputs = [ + boost miniupnpc openssl unbound + cppzmq zeromq pcsclite readline + libsodium hidapi + python3Packages.protobuf + ] ++ optionals stdenv.isDarwin [ IOKit CoreData PCSC ]; + + cmakeFlags = [ + "-DCMAKE_BUILD_TYPE=Release" + "-DBUILD_GUI_DEPS=ON" + "-DReadline_ROOT_DIR=${readline.dev}" + ] ++ optional stdenv.isDarwin "-DBoost_USE_MULTITHREADED=OFF"; + + hardeningDisable = [ "fortify" ]; + + meta = { + description = "Private, secure, untraceable currency"; + homepage = https://getmonero.org/; + license = licenses.bsd3; + platforms = platforms.all; + maintainers = with maintainers; [ ehmry rnhmjoj ]; + }; +} diff --git a/nixpkgs/pkgs/applications/blockchains/namecoin.nix b/nixpkgs/pkgs/applications/blockchains/namecoin.nix new file mode 100644 index 000000000000..4b8dc5525dc4 --- /dev/null +++ b/nixpkgs/pkgs/applications/blockchains/namecoin.nix @@ -0,0 +1,48 @@ +{ stdenv, fetchFromGitHub, openssl, boost, libevent, autoreconfHook, db4, miniupnpc, eject, pkgconfig, qt4, protobuf, qrencode, hexdump +, withGui }: + +with stdenv.lib; +stdenv.mkDerivation rec { + version = "nc0.15.99-name-tab-beta2"; + name = "namecoin" + toString (optional (!withGui) "d") + "-" + version; + + src = fetchFromGitHub { + owner = "namecoin"; + repo = "namecoin-core"; + rev = version; + sha256 = "1r0v0yvlazmidxp6xhapbdawqb8fhzrdp11d4an5vgxa208s6wdf"; + }; + + nativeBuildInputs = [ + autoreconfHook + pkgconfig + hexdump + ]; + + buildInputs = [ + openssl + boost + libevent + db4 + miniupnpc + eject + ] ++ optionals withGui [ + qt4 + protobuf + qrencode + ]; + + enableParallelBuilding = true; + + configureFlags = [ + "--with-boost-libdir=${boost.out}/lib" + ]; + + meta = { + description = "Decentralized open source information registration and transfer system based on the Bitcoin cryptocurrency"; + homepage = https://namecoin.org; + license = licenses.mit; + maintainers = with maintainers; [ doublec AndersonTorres infinisil ]; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/blockchains/nano-wallet/CMakeLists.txt.patch b/nixpkgs/pkgs/applications/blockchains/nano-wallet/CMakeLists.txt.patch new file mode 100644 index 000000000000..5bbec1d39bea --- /dev/null +++ b/nixpkgs/pkgs/applications/blockchains/nano-wallet/CMakeLists.txt.patch @@ -0,0 +1,13 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index b43f02f6..4470abbf 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -119,7 +119,7 @@ endif (RAIBLOCKS_SECURE_RPC) + + include_directories (${CMAKE_SOURCE_DIR}) + +-set(Boost_USE_STATIC_LIBS ON) ++add_definitions(-DBOOST_LOG_DYN_LINK) + set(Boost_USE_MULTITHREADED ON) + + if (BOOST_CUSTOM) diff --git a/nixpkgs/pkgs/applications/blockchains/nano-wallet/default.nix b/nixpkgs/pkgs/applications/blockchains/nano-wallet/default.nix new file mode 100644 index 000000000000..a8d29ae149d9 --- /dev/null +++ b/nixpkgs/pkgs/applications/blockchains/nano-wallet/default.nix @@ -0,0 +1,57 @@ +{lib, stdenv, fetchFromGitHub, cmake, pkgconfig, boost, libGL, qtbase}: + +stdenv.mkDerivation rec { + + pname = "nano-wallet"; + version = "18.0"; + + src = fetchFromGitHub { + owner = "nanocurrency"; + repo = "raiblocks"; + rev = "V${version}"; + sha256 = "03f9g1x7rs7vic9yzsjxsh5ddx9ys78rssbfghbccfw9qrwylh3y"; + fetchSubmodules = true; + }; + + # Use a patch to force dynamic linking + patches = [ + ./CMakeLists.txt.patch + ]; + + cmakeFlags = let + options = { + BOOST_ROOT = "${boost}"; + Boost_USE_STATIC_LIBS = "OFF"; + RAIBLOCKS_GUI = "ON"; + RAIBLOCKS_TEST = "ON"; + Qt5_DIR = "${qtbase.dev}/lib/cmake/Qt5"; + Qt5Core_DIR = "${qtbase.dev}/lib/cmake/Qt5Core"; + Qt5Gui_INCLUDE_DIRS = "${qtbase.dev}/include/QtGui"; + Qt5Widgets_INCLUDE_DIRS = "${qtbase.dev}/include/QtWidgets"; + }; + optionToFlag = name: value: "-D${name}=${value}"; + in lib.mapAttrsToList optionToFlag options; + + nativeBuildInputs = [ cmake pkgconfig ]; + buildInputs = [ boost libGL qtbase ]; + + buildPhase = '' + make nano_wallet + ''; + + checkPhase = '' + ./core_test + ''; + + meta = { + inherit version; + description = "Wallet for Nano cryptocurrency"; + homepage = https://nano.org/en/wallet/; + license = lib.licenses.bsd2; + # Fails on Darwin. See: + # https://github.com/NixOS/nixpkgs/pull/39295#issuecomment-386800962 + platforms = lib.platforms.linux; + maintainers = with lib.maintainers; [ jluttine ]; + }; + +} diff --git a/nixpkgs/pkgs/applications/blockchains/parity-ui/default.nix b/nixpkgs/pkgs/applications/blockchains/parity-ui/default.nix new file mode 100644 index 000000000000..0615aed2ca03 --- /dev/null +++ b/nixpkgs/pkgs/applications/blockchains/parity-ui/default.nix @@ -0,0 +1,48 @@ +{ stdenv, pkgs, fetchurl, makeWrapper, nodePackages }: + +let + +uiEnv = pkgs.callPackage ./env.nix { }; + +in stdenv.mkDerivation rec { + pname = "parity-ui"; + version = "0.3.4"; + + src = fetchurl { + url = "https://github.com/parity-js/shell/releases/download/v${version}/parity-ui_${version}_amd64.deb"; + sha256 = "1xbd00r9ph8w2d6d2c5xg4b5l74ljzs50rpc6kahfznypmh4kr73"; + name = "${pname}-${version}.deb"; + }; + + nativeBuildInputs = [ makeWrapper nodePackages.asar ]; + + buildCommand = '' + mkdir -p $out/usr/ + ar p $src data.tar.xz | tar -C $out -xJ . + substituteInPlace $out/usr/share/applications/parity-ui.desktop \ + --replace "/opt/Parity UI" $out/bin + mv $out/usr/* $out/ + mv "$out/opt/Parity UI" $out/share/parity-ui + rm -r $out/usr/ + rm -r $out/opt/ + + fixupPhase + + patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \ + --set-rpath "${uiEnv.libPath}:$out/share/parity-ui" \ + $out/share/parity-ui/parity-ui + + find $out/share/parity-ui -name "*.node" -exec patchelf --set-rpath "${uiEnv.libPath}:$out/share/parity-ui" {} \; + + mkdir -p $out/bin + ln -s $out/share/parity-ui/parity-ui $out/bin/parity-ui + ''; + + meta = with stdenv.lib; { + description = "UI for Parity. Fast, light, robust Ethereum implementation"; + homepage = http://parity.io; + license = licenses.gpl3; + maintainers = [ maintainers.sorpaas ]; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/blockchains/parity-ui/env.nix b/nixpkgs/pkgs/applications/blockchains/parity-ui/env.nix new file mode 100644 index 000000000000..a878bbf2e3e3 --- /dev/null +++ b/nixpkgs/pkgs/applications/blockchains/parity-ui/env.nix @@ -0,0 +1,19 @@ +{ stdenv, lib, zlib, glib, alsaLib, dbus, gtk2, atk, pango, freetype, fontconfig +, libgnome-keyring3, gdk-pixbuf, cairo, cups, expat, libgpgerror, nspr +, nss, xorg, libcap, systemd, libnotify, libsecret, gnome2 }: + +let + packages = [ + stdenv.cc.cc zlib glib dbus gtk2 atk pango freetype libgnome-keyring3 + fontconfig gdk-pixbuf cairo cups expat libgpgerror alsaLib nspr nss + xorg.libXrender xorg.libX11 xorg.libXext xorg.libXdamage xorg.libXtst + xorg.libXcomposite xorg.libXi xorg.libXfixes xorg.libXrandr + xorg.libXcursor xorg.libxkbfile xorg.libXScrnSaver libcap systemd libnotify + xorg.libxcb libsecret gnome2.GConf + ]; + + libPathNative = lib.makeLibraryPath packages; + libPath64 = lib.makeSearchPathOutput "lib" "lib64" packages; + libPath = "${libPathNative}:${libPath64}"; + +in { inherit packages libPath; } diff --git a/nixpkgs/pkgs/applications/blockchains/parity/beta.nix b/nixpkgs/pkgs/applications/blockchains/parity/beta.nix new file mode 100644 index 000000000000..a936691bd799 --- /dev/null +++ b/nixpkgs/pkgs/applications/blockchains/parity/beta.nix @@ -0,0 +1,6 @@ +let + version = "2.6.2"; + sha256 = "1j4249m5k3bi7di0wq6fm64zv3nlpgmg4hr5hnn94fyc09nz9n1r"; + cargoSha256 = "18zd91n04wck3gd8szj4vxn3jq0bzq0h3rg0wcs6nzacbzhcx2sw"; +in + import ./parity.nix { inherit version sha256 cargoSha256; } diff --git a/nixpkgs/pkgs/applications/blockchains/parity/default.nix b/nixpkgs/pkgs/applications/blockchains/parity/default.nix new file mode 100644 index 000000000000..9b5a72077d5c --- /dev/null +++ b/nixpkgs/pkgs/applications/blockchains/parity/default.nix @@ -0,0 +1,6 @@ +let + version = "2.5.7"; + sha256 = "0aprs71cbf98dsvjz0kydngkvdg5x7dijji8j6xadgvsarl1ljnj"; + cargoSha256 = "0aa0nkv3jr7cdzswbxghxxv0y65a59jgs1682ch8vrasi0x17m1x"; +in + import ./parity.nix { inherit version sha256 cargoSha256; } diff --git a/nixpkgs/pkgs/applications/blockchains/parity/parity.nix b/nixpkgs/pkgs/applications/blockchains/parity/parity.nix new file mode 100644 index 000000000000..fbc43cd3402c --- /dev/null +++ b/nixpkgs/pkgs/applications/blockchains/parity/parity.nix @@ -0,0 +1,44 @@ +{ version +, sha256 +, cargoSha256 +}: + +{ lib +, fetchFromGitHub +, rustPlatform + +, cmake +, openssl +, pkgconfig +, systemd +}: + +rustPlatform.buildRustPackage rec { + pname = "parity"; + inherit version; + inherit cargoSha256; + + src = fetchFromGitHub { + owner = "paritytech"; + repo = "parity-ethereum"; + rev = "v${version}"; + inherit sha256; + }; + + nativeBuildInputs = [ cmake pkgconfig ]; + + buildInputs = [ openssl systemd ]; + + cargoBuildFlags = [ "--features final" ]; + + # test result: FAILED. 80 passed; 12 failed; 0 ignored; 0 measured; 0 filtered out + doCheck = false; + + meta = with lib; { + description = "Fast, light, robust Ethereum implementation"; + homepage = "http://parity.io"; + license = licenses.gpl3; + maintainers = with maintainers; [ akru xrelkd ]; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/blockchains/particl/particl-core.nix b/nixpkgs/pkgs/applications/blockchains/particl/particl-core.nix new file mode 100644 index 000000000000..613d57cd9c8c --- /dev/null +++ b/nixpkgs/pkgs/applications/blockchains/particl/particl-core.nix @@ -0,0 +1,53 @@ +{ stdenv +, autoreconfHook +, boost +, db48 +, fetchurl +, libevent +, miniupnpc +, openssl +, pkgconfig +, zeromq +, zlib +, unixtools +, python3 +}: + +with stdenv.lib; + +stdenv.mkDerivation rec { + pname = "particl-core"; + version = "0.17.1.2"; + + src = fetchurl { + url = "https://github.com/particl/particl-core/archive/v${version}.tar.gz"; + sha256 = "16hcyxwp6yrypwvxz6i2987z3jmpk47xcgnsgh9klih8baqg64p5"; + }; + + nativeBuildInputs = [ pkgconfig autoreconfHook ]; + buildInputs = [ openssl db48 boost zlib miniupnpc libevent zeromq unixtools.hexdump python3 ]; + + configureFlags = [ + "--disable-bench" + "--with-boost-libdir=${boost.out}/lib" + ] ++ optionals (!doCheck) [ + "--enable-tests=no" + ]; + + # Always check during Hydra builds + doCheck = true; + preCheck = "patchShebangs test"; + enableParallelBuilding = true; + + meta = { + description = "Privacy-Focused Marketplace & Decentralized Application Platform"; + longDescription= '' + An open source, decentralized privacy platform built for global person to person eCommerce. + RPC daemon and CLI client only. + ''; + homepage = https://particl.io/; + maintainers = with maintainers; [ demyanrogozhin ]; + license = licenses.mit; + platforms = platforms.unix; + }; +} diff --git a/nixpkgs/pkgs/applications/blockchains/pivx.nix b/nixpkgs/pkgs/applications/blockchains/pivx.nix new file mode 100644 index 000000000000..c0833de7dbf3 --- /dev/null +++ b/nixpkgs/pkgs/applications/blockchains/pivx.nix @@ -0,0 +1,61 @@ +{ fetchFromGitHub, stdenv, pkgconfig, autoreconfHook +, openssl, db48, boost, zlib, miniupnpc, gmp +, qrencode, glib, protobuf, yasm, libevent +, utillinux, qtbase ? null, qttools ? null +, enableUpnp ? false +, disableWallet ? false +, disableDaemon ? false +, withGui ? false }: + +with stdenv.lib; +stdenv.mkDerivation rec { + pname = "pivx"; + version = "3.2.0"; + + src = fetchFromGitHub { + owner = "PIVX-Project"; + repo= "PIVX"; + rev = "v${version}"; + sha256 = "1sym6254vhq8qqpxq9qhy10m5167v7x93kqaj1gixc1vwwbxyazy"; + }; + + nativeBuildInputs = [ pkgconfig autoreconfHook ]; + buildInputs = [ glib gmp openssl db48 yasm boost zlib libevent miniupnpc protobuf utillinux ] + ++ optionals withGui [ qtbase qttools qrencode ]; + + configureFlags = [ "--with-boost-libdir=${boost.out}/lib" ] + ++ optional enableUpnp "--enable-upnp-default" + ++ optional disableWallet "--disable-wallet" + ++ optional disableDaemon "--disable-daemon" + ++ optionals withGui [ "--with-gui=yes" + "--with-qt-bindir=${qtbase.dev}/bin:${qttools.dev}/bin" + ]; + + enableParallelBuilding = true; + doChecks = true; + postBuild = '' + mkdir -p $out/share/applications $out/share/icons + cp contrib/debian/pivx-qt.desktop $out/share/applications/ + cp share/pixmaps/*128.png $out/share/icons/ + ''; + + meta = with stdenv.lib; { + description = "An open source crypto-currency focused on fast private transactions"; + longDescription = '' + PIVX is an MIT licensed, open source, blockchain-based cryptocurrency with + ultra fast transactions, low fees, high network decentralization, and + Zero Knowledge cryptography proofs for industry-leading transaction anonymity. + ''; + license = licenses.mit; + homepage = https://www.dash.org; + maintainers = with maintainers; [ wucke13 ]; + platforms = platforms.unix; + + # upstream doesn't support newer openssl versions + # https://github.com/PIVX-Project/PIVX/issues/748 + # "Your system is most probably using openssl 1.1 which is not the + # officialy supported version. Either use 1.0.1 or run again configure + # with the given option." + broken = true; + }; +} diff --git a/nixpkgs/pkgs/applications/blockchains/polkadot/default.nix b/nixpkgs/pkgs/applications/blockchains/polkadot/default.nix new file mode 100644 index 000000000000..26c9192ee6fa --- /dev/null +++ b/nixpkgs/pkgs/applications/blockchains/polkadot/default.nix @@ -0,0 +1,30 @@ +{ stdenv +, fetchFromGitHub +, rustPlatform +, pkgconfig +, openssl +}: + +rustPlatform.buildRustPackage rec { + name = "polkadot-${version}"; + version = "0.2.17"; + + src = fetchFromGitHub { + owner = "paritytech"; + repo = "substrate"; + rev = "19f4f4d4df3bb266086b4e488739f73d3d5e588c"; + sha256 = "0v7g03rbml2afw0splmyjh9nqpjg0ldjw09hyc0jqd3qlhgxiiyj"; + }; + + cargoSha256 = "19xcxpbkrbygghz9qi52vzviksxg28m7ibvl359vlhqv1cjxmpsq"; + + buildInputs = [ pkgconfig openssl openssl.dev ]; + + meta = with stdenv.lib; { + description = "Polkadot Node Implementation"; + homepage = https://polkadot.network; + license = licenses.gpl3; + maintainers = [ maintainers.akru ]; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/blockchains/stellar-core-dirty-version.patch b/nixpkgs/pkgs/applications/blockchains/stellar-core-dirty-version.patch new file mode 100644 index 000000000000..57d66ce5919a --- /dev/null +++ b/nixpkgs/pkgs/applications/blockchains/stellar-core-dirty-version.patch @@ -0,0 +1,15 @@ +Subject: Prevent "-dirty" from being erroneously added to the version + +diff --git a/src/Makefile.am b/src/Makefile.am +index d36d1a3..00048fc 100644 +--- a/src/Makefile.am ++++ b/src/Makefile.am +@@ -28,7 +28,7 @@ always: + # Always rebuild because .git/HEAD is a symbolic ref one can't depend on + StellarCoreVersion.h: always + @vers=$$(cd "$(srcdir)" \ +- && git describe --always --dirty --tags 2>/dev/null \ ++ && git describe --always --tags 2>/dev/null \ + || echo "$(PACKAGE) $(VERSION)"); \ + echo "#define STELLAR_CORE_VERSION \"$$vers\"" > $@~ + @if cmp -s $@~ $@; then rm -f $@~; else \ diff --git a/nixpkgs/pkgs/applications/blockchains/stellar-core.nix b/nixpkgs/pkgs/applications/blockchains/stellar-core.nix new file mode 100644 index 000000000000..4c3f9fe0760b --- /dev/null +++ b/nixpkgs/pkgs/applications/blockchains/stellar-core.nix @@ -0,0 +1,47 @@ +{ stdenv, fetchgit, autoconf, libtool, automake, pkgconfig, git +, bison, flex, postgresql }: + +let + pname = "stellar-core"; + version = "0.5.1"; + +in stdenv.mkDerivation { + name = "${pname}-${version}"; + + src = fetchgit { + url = "https://github.com/stellar/stellar-core.git"; + rev = "refs/tags/v${version}"; + sha256 = "0ldw3qr0sajgam38z2w2iym0214ial6iahbzx3b965cw92n8n88z"; + fetchSubmodules = true; + leaveDotGit = true; + }; + + nativeBuildInputs = [ pkgconfig ]; + buildInputs = [ autoconf automake libtool git ]; + + propagatedBuildInputs = [ bison flex postgresql ]; + + patches = [ ./stellar-core-dirty-version.patch ]; + + preConfigure = '' + # Everything needs to be staged in git because the build uses + # `git ls-files` to search for source files to compile. + git add . + + ./autogen.sh + ''; + + meta = with stdenv.lib; { + description = "Implements the Stellar Consensus Protocol, a federated consensus protocol"; + longDescription = '' + Stellar-core is the backbone of the Stellar network. It maintains a + local copy of the ledger, communicating and staying in sync with other + instances of stellar-core on the network. Optionally, stellar-core can + store historical records of the ledger and participate in consensus. + ''; + homepage = https://www.stellar.org/; + platforms = [ "x86_64-linux" ]; + maintainers = with maintainers; [ chris-martin ]; + license = licenses.asl20; + }; +} diff --git a/nixpkgs/pkgs/applications/blockchains/sumokoin.nix b/nixpkgs/pkgs/applications/blockchains/sumokoin.nix new file mode 100644 index 000000000000..ad65da057aec --- /dev/null +++ b/nixpkgs/pkgs/applications/blockchains/sumokoin.nix @@ -0,0 +1,35 @@ +{ lib, stdenv, fetchFromGitHub, cmake, unbound, openssl, boost +, libunwind, lmdb, miniupnpc }: + +stdenv.mkDerivation rec { + pname = "sumokoin"; + version = "0.2.0.0"; + + src = fetchFromGitHub { + owner = "sumoprojects"; + repo = "sumokoin"; + rev = "v${version}"; + sha256 = "0ndgcawhxh3qb3llrrilrwzhs36qpxv7f53rxgcansbff9b3za6n"; + }; + + nativeBuildInputs = [ cmake ]; + buildInputs = [ unbound openssl boost libunwind lmdb miniupnpc ]; + + postPatch = '' + substituteInPlace src/blockchain_db/lmdb/db_lmdb.cpp --replace mdb_size_t size_t + ''; + + cmakeFlags = [ + "-DLMDB_INCLUDE=${lmdb}/include" + ]; + + enableParallelBuilding = true; + + meta = with lib; { + description = "Sumokoin is a fork of Monero and a truely fungible cryptocurrency"; + homepage = "https://www.sumokoin.org/"; + license = licenses.bsd3; + maintainers = with maintainers; [ fpletz ]; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/blockchains/wasabiwallet/default.nix b/nixpkgs/pkgs/applications/blockchains/wasabiwallet/default.nix new file mode 100644 index 000000000000..7185b3510601 --- /dev/null +++ b/nixpkgs/pkgs/applications/blockchains/wasabiwallet/default.nix @@ -0,0 +1,44 @@ +{ stdenv, fetchurl, makeDesktopItem, openssl, xorg, curl, fontconfig, krb5, zlib, dotnet-sdk }: + +stdenv.mkDerivation rec { + pname = "wasabiwallet"; + version = "1.1.5"; + + src = fetchurl { + url = "https://github.com/zkSNACKs/WalletWasabi/releases/download/v${version}/WasabiLinux-${version}.tar.gz"; + sha256 = "1iq7qkpq073yq1bz8pam4cbm2myznhpjr3g9afblvmxwgbdjxak0"; + }; + + dontBuild = true; + dontPatchELF = true; + + desktopItem = makeDesktopItem { + name = "wasabi"; + exec = "wasabiwallet"; + desktopName = "Wasabi"; + genericName = "Bitcoin wallet"; + comment = meta.description; + categories = "Application;Network;Utility;"; + }; + + installPhase = '' + mkdir -p $out/opt/${pname} $out/bin $out/share/applications + cp -Rv . $out/opt/${pname} + cd $out/opt/${pname} + for i in $(find . -type f -name '*.so') wassabee + do + patchelf --set-rpath ${stdenv.lib.makeLibraryPath [ openssl stdenv.cc.cc.lib xorg.libX11 curl fontconfig.lib krb5 zlib dotnet-sdk ]} $i + done + patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" wassabee + ln -s $out/opt/${pname}/wassabee $out/bin/${pname} + cp -v $desktopItem/share/applications/* $out/share/applications + ''; + + meta = with stdenv.lib; { + description = "Privacy focused Bitcoin wallet"; + homepage = "https://wasabiwallet.io/"; + license = licenses.mit; + platforms = [ "x86_64-linux" ]; + maintainers = with maintainers; [ mmahut ]; + }; +} diff --git a/nixpkgs/pkgs/applications/blockchains/wownero.nix b/nixpkgs/pkgs/applications/blockchains/wownero.nix new file mode 100644 index 000000000000..365afb5a2411 --- /dev/null +++ b/nixpkgs/pkgs/applications/blockchains/wownero.nix @@ -0,0 +1,46 @@ +{ stdenv, fetchFromGitHub, cmake, pkgconfig, git +, boost, miniupnpc_2, openssl, unbound, cppzmq +, zeromq, pcsclite, readline, libsodium, rapidjson +}: + +with stdenv.lib; + +stdenv.mkDerivation rec { + pname = "wownero"; + + version = "0.6.1.2"; + src = fetchFromGitHub { + owner = "wownero"; + repo = "wownero"; + rev = "v${version}"; + sha256 = "03q3pviyhrldpa3f4ly4d97jr39hvrz37chl102bap0790d9lk09"; + fetchSubmodules = true; + }; + + nativeBuildInputs = [ cmake pkgconfig git ]; + + buildInputs = [ + boost miniupnpc_2 openssl unbound rapidjson + cppzmq zeromq pcsclite readline libsodium + ]; + + cmakeFlags = [ + "-DReadline_ROOT_DIR=${readline.dev}" + "-DMANUAL_SUBMODULES=ON" + ]; + + meta = { + description = "Wownero is a fork of the cryptocurrency Monero with primary alterations"; + longDescription = '' + Wownero’s emission is capped and supply is finite. Wownero is a fairly + launched coin with no premine. It’s not a fork of another blockchain. With + its own genesis block there is no degradation of privacy caused by ring + signatures using different participants for the same transaction outputs. + Unlike opposing forks. + ''; + homepage = http://wownero.org/; + license = licenses.bsd3; + platforms = platforms.linux; + maintainers = with maintainers; [ fuwa ]; + }; +} diff --git a/nixpkgs/pkgs/applications/blockchains/zcash/default.nix b/nixpkgs/pkgs/applications/blockchains/zcash/default.nix new file mode 100644 index 000000000000..6a8fba3c2bb7 --- /dev/null +++ b/nixpkgs/pkgs/applications/blockchains/zcash/default.nix @@ -0,0 +1,49 @@ +{ stdenv, libsodium, fetchFromGitHub, wget, pkgconfig, autoreconfHook, openssl, db62, boost +, zlib, gtest, gmock, callPackage, gmp, qt4, utillinux, protobuf, qrencode, libevent +, withGui }: + +let librustzcash = callPackage ./librustzcash {}; +in +with stdenv.lib; +stdenv.mkDerivation rec { + + name = "zcash" + (toString (optional (!withGui) "d")) + "-" + version; + version = "1.0.13"; + + src = fetchFromGitHub { + owner = "zcash"; + repo = "zcash"; + rev = "v${version}"; + sha256 = "05y7wxs66anxr5akbf05r36mmjfzqpwawn6vyh3jhpva51hzzzyz"; + }; + + # Dependencies are underspecified: "make -C src gtest/zcash_gtest-test_merkletree.o" + # fails with "fatal error: test/data/merkle_roots.json.h: No such file or directory" + enableParallelBuilding = false; + + nativeBuildInputs = [ autoreconfHook pkgconfig ]; + buildInputs = [ gtest gmock gmp openssl wget db62 boost zlib + protobuf libevent libsodium librustzcash ] + ++ optionals stdenv.isLinux [ utillinux ] + ++ optionals withGui [ qt4 qrencode ]; + + configureFlags = [ "--with-boost-libdir=${boost.out}/lib" + ] ++ optionals withGui [ "--with-gui=qt4" ]; + + patchPhase = '' + sed -i"" 's,-lboost_system-mt,-lboost_system,' configure.ac + sed -i"" 's,-fvisibility=hidden,,g' src/Makefile.am + ''; + + postInstall = '' + cp zcutil/fetch-params.sh $out/bin/zcash-fetch-params + ''; + + meta = { + description = "Peer-to-peer, anonymous electronic cash system"; + homepage = https://z.cash/; + maintainers = with maintainers; [ rht ]; + license = licenses.mit; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/blockchains/zcash/librustzcash/default.nix b/nixpkgs/pkgs/applications/blockchains/zcash/librustzcash/default.nix new file mode 100644 index 000000000000..3aeee7e6972f --- /dev/null +++ b/nixpkgs/pkgs/applications/blockchains/zcash/librustzcash/default.nix @@ -0,0 +1,30 @@ +{ stdenv, fetchFromGitHub, rustPlatform }: + +rustPlatform.buildRustPackage rec { + name = "librustzcash-unstable-${version}"; + version = "2017-03-17"; + + src = fetchFromGitHub { + owner = "zcash"; + repo = "librustzcash"; + rev = "91348647a86201a9482ad4ad68398152dc3d635e"; + sha256 = "02l1f46frpvw1r6k1wfh77mrsnmsdvifqx0vnscxz4xgb9ia9d1c"; + }; + + cargoSha256 = "1xlq8vkzfyr5q8gxvzkwi8r1kxg4rg8l1ckdwfdxlkhnw0yscbra"; + + installPhase = '' + mkdir -p $out/lib + cp target/release/librustzcash.a $out/lib/ + mkdir -p $out/include + cp include/librustzcash.h $out/include/ + ''; + + meta = with stdenv.lib; { + description = "Rust-language assets for Zcash"; + homepage = https://github.com/zcash/librustzcash; + maintainers = with maintainers; [ rht ]; + license = with licenses; [ mit asl20 ]; + platforms = platforms.unix; + }; +} |