diff options
Diffstat (limited to 'nixpkgs/pkgs/applications/altcoins')
46 files changed, 1868 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/applications/altcoins/aeon/default.nix b/nixpkgs/pkgs/applications/altcoins/aeon/default.nix new file mode 100644 index 000000000000..42717d3a2667 --- /dev/null +++ b/nixpkgs/pkgs/applications/altcoins/aeon/default.nix @@ -0,0 +1,42 @@ +{ stdenv, fetchFromGitHub, cmake, pkgconfig, git, doxygen, graphviz +, boost, miniupnpc, openssl, unbound, cppzmq +, zeromq, pcsclite, readline, libsodium +}: + +let + version = "0.12.8.0"; +in +stdenv.mkDerivation { + name = "aeon-${version}"; + + src = fetchFromGitHub { + owner = "aeonix"; + repo = "aeon"; + rev = "v${version}-aeon"; + fetchSubmodules = true; + sha256 = "1qmlz820mjs0b60d7i90lxcwwxmsdy6swq67v6n8mbb79zmcx8ii"; + }; + + 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/altcoins/bitcoin-abc.nix b/nixpkgs/pkgs/applications/altcoins/bitcoin-abc.nix new file mode 100644 index 000000000000..3b65b06d8db8 --- /dev/null +++ b/nixpkgs/pkgs/applications/altcoins/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.18.2"; + + src = fetchFromGitHub { + owner = "bitcoin-ABC"; + repo = "bitcoin-abc"; + rev = "v${version}"; + sha256 = "1ha219xnd61qicf7r3j0wbfrifh7blwp3lyk3ycgdn381q1qln29"; + }; + + 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/altcoins/bitcoin-classic.nix b/nixpkgs/pkgs/applications/altcoins/bitcoin-classic.nix new file mode 100644 index 000000000000..ad48ea2a6257 --- /dev/null +++ b/nixpkgs/pkgs/applications/altcoins/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"; + }; + + patches = [ ./fix-bitcoin-qt-build.patch ]; + + 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" ]; + + 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/altcoins/bitcoin-unlimited-const-comparators.patch b/nixpkgs/pkgs/applications/altcoins/bitcoin-unlimited-const-comparators.patch new file mode 100644 index 000000000000..1b74a48a84aa --- /dev/null +++ b/nixpkgs/pkgs/applications/altcoins/bitcoin-unlimited-const-comparators.patch @@ -0,0 +1,38 @@ +--- a/src/txmempool.h ++++ b/src/txmempool.h +@@ -204,7 +204,7 @@ + class CompareTxMemPoolEntryByDescendantScore + { + public: +- bool operator()(const CTxMemPoolEntry& a, const CTxMemPoolEntry& b) ++ bool operator()(const CTxMemPoolEntry& a, const CTxMemPoolEntry& b) const + { + bool fUseADescendants = UseDescendantScore(a); + bool fUseBDescendants = UseDescendantScore(b); +@@ -226,7 +226,7 @@ + } + + // Calculate which score to use for an entry (avoiding division). +- bool UseDescendantScore(const CTxMemPoolEntry &a) ++ bool UseDescendantScore(const CTxMemPoolEntry &a) const + { + double f1 = (double)a.GetModifiedFee() * a.GetSizeWithDescendants(); + double f2 = (double)a.GetModFeesWithDescendants() * a.GetTxSize(); +@@ -241,7 +241,7 @@ + class CompareTxMemPoolEntryByScore + { + public: +- bool operator()(const CTxMemPoolEntry& a, const CTxMemPoolEntry& b) ++ bool operator()(const CTxMemPoolEntry& a, const CTxMemPoolEntry& b) const + { + double f1 = (double)a.GetModifiedFee() * b.GetTxSize(); + double f2 = (double)b.GetModifiedFee() * a.GetTxSize(); +@@ -255,7 +255,7 @@ + class CompareTxMemPoolEntryByEntryTime + { + public: +- bool operator()(const CTxMemPoolEntry& a, const CTxMemPoolEntry& b) ++ bool operator()(const CTxMemPoolEntry& a, const CTxMemPoolEntry& b) const + { + return a.GetTime() < b.GetTime(); + } diff --git a/nixpkgs/pkgs/applications/altcoins/bitcoin-unlimited.nix b/nixpkgs/pkgs/applications/altcoins/bitcoin-unlimited.nix new file mode 100644 index 000000000000..13ec55bb589d --- /dev/null +++ b/nixpkgs/pkgs/applications/altcoins/bitcoin-unlimited.nix @@ -0,0 +1,68 @@ +{ stdenv, fetchFromGitHub, pkgconfig, autoreconfHook, openssl, db48, boost +, zlib, miniupnpc, qt4, utillinux, protobuf, qrencode, libevent +, withGui +, Foundation, ApplicationServices, AppKit }: + +with stdenv.lib; + +stdenv.mkDerivation rec { + + name = "bitcoin" + (toString (optional (!withGui) "d")) + "-unlimited-" + version; + version = "1.0.3.0"; + + src = fetchFromGitHub { + owner = "bitcoinunlimited"; + repo = "bitcoinunlimited"; + rev = "v${version}"; + sha256 = "0l02a7h502msrp4c02wgm7f3159ap8l61k4890vas99gq7ywxkcx"; + }; + + nativeBuildInputs = [ pkgconfig autoreconfHook ]; + buildInputs = [ openssl db48 boost zlib + miniupnpc utillinux protobuf libevent ] + ++ optionals withGui [ qt4 qrencode ] + ++ optionals stdenv.isDarwin [ Foundation ApplicationServices AppKit ]; + + patches = [ + ./bitcoin-unlimited-const-comparators.patch + ]; + + configureFlags = [ "--with-boost-libdir=${boost.out}/lib" ] + ++ optionals withGui [ "--with-gui=qt4" ]; + 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/altcoins/bitcoin-xt.nix b/nixpkgs/pkgs/applications/altcoins/bitcoin-xt.nix new file mode 100644 index 000000000000..499bc4be4c83 --- /dev/null +++ b/nixpkgs/pkgs/applications/altcoins/bitcoin-xt.nix @@ -0,0 +1,51 @@ +{ stdenv, fetchFromGitHub, pkgconfig, autoreconfHook, openssl, db48, boost +, zlib, miniupnpc, qt4, utillinux, protobuf, qrencode, curl, libevent +, withGui +, Foundation, ApplicationServices, AppKit }: + +with stdenv.lib; +stdenv.mkDerivation rec{ + + name = "bitcoin" + (toString (optional (!withGui) "d")) + "-xt-" + version; + version = "0.11H"; + + src = fetchFromGitHub { + owner = "bitcoinxt"; + repo = "bitcoinxt"; + rev = "v${version}"; + sha256 = "1v43bynmidn2zdpky939km721x3ks91bzyh4200gji61qzsmyg62"; + }; + + nativeBuildInputs = [ pkgconfig autoreconfHook ]; + buildInputs = [ openssl db48 boost zlib libevent + miniupnpc utillinux protobuf curl ] + ++ optionals withGui [ qt4 qrencode ] + ++ optionals stdenv.isDarwin [ Foundation ApplicationServices AppKit ]; + + configureFlags = [ + "--with-boost-libdir=${boost.out}/lib" + "--with-libcurl-headers=${curl.dev}/include" + ] ++ optionals withGui [ "--with-gui=qt4" ]; + + enableParallelBuilding = true; + + meta = { + description = "Peer-to-peer electronic cash system (XT 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 XT is an implementation of a Bitcoin full node, based upon the + source code of Bitcoin Core. It is built by taking the latest stable + Core release, applying a series of patches, and then doing deterministic + builds so anyone can check the downloads correspond to the source code. + ''; + homepage = https://bitcoinxt.software/; + maintainers = with maintainers; [ jefdaj ]; + license = licenses.mit; + broken = stdenv.isDarwin; + platforms = platforms.unix; + }; +} diff --git a/nixpkgs/pkgs/applications/altcoins/bitcoin.nix b/nixpkgs/pkgs/applications/altcoins/bitcoin.nix new file mode 100644 index 000000000000..c266fa2fef25 --- /dev/null +++ b/nixpkgs/pkgs/applications/altcoins/bitcoin.nix @@ -0,0 +1,56 @@ +{ stdenv, fetchurl, pkgconfig, autoreconfHook, openssl, db48, boost, zeromq +, zlib, miniupnpc, qtbase ? null, qttools ? null, utillinux, protobuf, python3, qrencode, libevent +, withGui }: + +with stdenv.lib; +stdenv.mkDerivation rec{ + name = "bitcoin" + (toString (optional (!withGui) "d")) + "-" + version; + version = "0.17.0"; + + 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 = "0pkq28d2dj22qrxyyg9kh0whmhj7ghyabnhyqldbljv4a7l3kvwq"; + }; + + nativeBuildInputs = [ pkgconfig autoreconfHook ] + ++ optionals doCheck [ python3 ]; + 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" + ]; + + doCheck = true; + + # 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 + checkFlags = optionals withGui [ "QT_PLUGIN_PATH=${qtbase}/lib/qt-5.${versions.minor qtbase.version}/plugins" ]; + + 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/altcoins/btc1.nix b/nixpkgs/pkgs/applications/altcoins/btc1.nix new file mode 100644 index 000000000000..2f85a8947972 --- /dev/null +++ b/nixpkgs/pkgs/applications/altcoins/btc1.nix @@ -0,0 +1,41 @@ +{ stdenv, fetchurl, pkgconfig, autoreconfHook, hexdump, openssl, db48 +, boost, zlib, miniupnpc, qt4, utillinux, 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/altcoins/clightning.nix b/nixpkgs/pkgs/applications/altcoins/clightning.nix new file mode 100644 index 000000000000..6ae6ae7801f2 --- /dev/null +++ b/nixpkgs/pkgs/applications/altcoins/clightning.nix @@ -0,0 +1,57 @@ +{ stdenv, python3, pkgconfig, which, libtool, autoconf, automake, + autogen, sqlite, gmp, zlib, fetchFromGitHub, fetchpatch }: + +with stdenv.lib; +stdenv.mkDerivation rec { + name = "clightning-${version}"; + version = "0.6.2"; + + src = fetchFromGitHub { + fetchSubmodules = true; + owner = "ElementsProject"; + repo = "lightning"; + rev = "v${version}"; + sha256 = "18yns0yyf7kc4p4n1crxdqh37j9faxkx216nh2ip7cxj4x8bf9gx"; + }; + + enableParallelBuilding = true; + + nativeBuildInputs = [ autoconf autogen automake libtool pkgconfig which ]; + buildInputs = [ sqlite gmp zlib python3 ]; + + makeFlags = [ "prefix=$(out)" ]; + + configurePhase = '' + ./configure --prefix=$out --disable-developer --disable-valgrind + ''; + + # NOTE: remove me in 0.6.3 + patches = [ + (fetchpatch { + name = "clightning_0_6_2-compile-error.patch"; + url = https://patch-diff.githubusercontent.com/raw/ElementsProject/lightning/pull/2070.patch; + sha256 = "1576fqik5zcpz5zsvp2ks939bgiz0jc22yf24iv61000dd5j6na9"; + }) + ]; + + postPatch = '' + echo "" > tools/refresh-submodules.sh + patchShebangs tools/generate-wire.py + ''; + + 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/altcoins/cryptop/default.nix b/nixpkgs/pkgs/applications/altcoins/cryptop/default.nix new file mode 100644 index 000000000000..01c47b320de5 --- /dev/null +++ b/nixpkgs/pkgs/applications/altcoins/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/altcoins/dashpay.nix b/nixpkgs/pkgs/applications/altcoins/dashpay.nix new file mode 100644 index 000000000000..b2f2a457a99d --- /dev/null +++ b/nixpkgs/pkgs/applications/altcoins/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 { + name = "dashpay-${version}"; + 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/altcoins/dcrd.nix b/nixpkgs/pkgs/applications/altcoins/dcrd.nix new file mode 100644 index 000000000000..cc3e83befa64 --- /dev/null +++ b/nixpkgs/pkgs/applications/altcoins/dcrd.nix @@ -0,0 +1,34 @@ +{ stdenv, lib, go, buildGoPackage, dep, fetchgit, git, cacert }: + +buildGoPackage rec { + name = "dcrd-${version}"; + 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/altcoins/dcrwallet.nix b/nixpkgs/pkgs/applications/altcoins/dcrwallet.nix new file mode 100644 index 000000000000..8d966684b23c --- /dev/null +++ b/nixpkgs/pkgs/applications/altcoins/dcrwallet.nix @@ -0,0 +1,43 @@ +{ stdenv, lib, go, buildGoPackage, dep, fetchgit, git, cacert }: + +buildGoPackage rec { + name = "dcrwallet-${version}"; + 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/altcoins/default.nix b/nixpkgs/pkgs/applications/altcoins/default.nix new file mode 100644 index 000000000000..c7a81b6b11fd --- /dev/null +++ b/nixpkgs/pkgs/applications/altcoins/default.nix @@ -0,0 +1,100 @@ +{ callPackage, boost155, boost165, openssl_1_1, haskellPackages, darwin, libsForQt5, miniupnpc_2, python3, buildGo110Package }: + +rec { + + aeon = callPackage ./aeon { }; + + bitcoin = libsForQt5.callPackage ./bitcoin.nix { miniupnpc = miniupnpc_2; withGui = true; }; + bitcoind = callPackage ./bitcoin.nix { miniupnpc = miniupnpc_2; withGui = false; }; + clightning = callPackage ./clightning.nix { }; + + bitcoin-abc = libsForQt5.callPackage ./bitcoin-abc.nix { boost = boost165; withGui = true; }; + bitcoind-abc = callPackage ./bitcoin-abc.nix { boost = boost165; withGui = false; }; + + bitcoin-unlimited = callPackage ./bitcoin-unlimited.nix { + inherit (darwin.apple_sdk.frameworks) Foundation ApplicationServices AppKit; + withGui = true; + }; + bitcoind-unlimited = callPackage ./bitcoin-unlimited.nix { + inherit (darwin.apple_sdk.frameworks) Foundation ApplicationServices AppKit; + withGui = false; + }; + + bitcoin-classic = libsForQt5.callPackage ./bitcoin-classic.nix { boost = boost165; withGui = true; }; + bitcoind-classic = callPackage ./bitcoin-classic.nix { boost = boost165; withGui = false; }; + + bitcoin-xt = callPackage ./bitcoin-xt.nix { + inherit (darwin.apple_sdk.frameworks) Foundation ApplicationServices AppKit; + boost = boost165; withGui = true; + }; + bitcoind-xt = callPackage ./bitcoin-xt.nix { + inherit (darwin.apple_sdk.frameworks) Foundation ApplicationServices AppKit; + boost = boost165; withGui = false; + }; + + btc1 = callPackage ./btc1.nix { + inherit (darwin.apple_sdk.frameworks) AppKit; + boost = boost165; + }; + btc1d = btc1.override { withGui = false; }; + + cryptop = python3.pkgs.callPackage ./cryptop { }; + + dashpay = callPackage ./dashpay.nix { }; + + dcrd = callPackage ./dcrd.nix { }; + dcrwallet = callPackage ./dcrwallet.nix { }; + + dero = callPackage ./dero.nix { boost = boost165; }; + + dogecoin = callPackage ./dogecoin.nix { boost = boost165; withGui = true; }; + dogecoind = callPackage ./dogecoin.nix { boost = boost165; withGui = false; }; + + + freicoin = callPackage ./freicoin.nix { boost = boost155; }; + go-ethereum = callPackage ./go-ethereum.nix { + inherit (darwin) libobjc; + inherit (darwin.apple_sdk.frameworks) IOKit; + }; + go-ethereum-classic = callPackage ./go-ethereum-classic { + buildGoPackage = buildGo110Package; + }; + + litecoin = callPackage ./litecoin.nix { + inherit (darwin.apple_sdk.frameworks) AppKit; + }; + litecoind = litecoin.override { withGui = false; }; + + masari = callPackage ./masari.nix { boost = boost165; }; + + memorycoin = callPackage ./memorycoin.nix { boost = boost165; withGui = true; }; + memorycoind = callPackage ./memorycoin.nix { boost = boost165; withGui = false; }; + + mist = callPackage ./mist.nix { }; + + namecoin = callPackage ./namecoin.nix { withGui = true; }; + namecoind = callPackage ./namecoin.nix { withGui = false; }; + + ethabi = callPackage ./ethabi.nix { }; + + stellar-core = callPackage ./stellar-core.nix { }; + + sumokoin = callPackage ./sumokoin.nix { boost = boost165; }; + + wownero = callPackage ./wownero.nix { + inherit (darwin.apple_sdk.frameworks) CoreData IOKit PCSC; + }; + + zcash = callPackage ./zcash { + withGui = false; + openssl = openssl_1_1; + }; + + parity = callPackage ./parity { }; + parity-beta = callPackage ./parity/beta.nix { }; + parity-ui = callPackage ./parity-ui { }; + + polkadot = callPackage ./polkadot { }; + + particl-core = callPackage ./particl/particl-core.nix { miniupnpc = miniupnpc_2; }; +} diff --git a/nixpkgs/pkgs/applications/altcoins/dero.nix b/nixpkgs/pkgs/applications/altcoins/dero.nix new file mode 100644 index 000000000000..8405ea8f842b --- /dev/null +++ b/nixpkgs/pkgs/applications/altcoins/dero.nix @@ -0,0 +1,27 @@ +{ lib, stdenv, fetchFromGitHub, cmake, pkgconfig, unbound, openssl, boost +, lmdb, miniupnpc, readline }: + +stdenv.mkDerivation rec { + name = "dero-${version}"; + 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/altcoins/dogecoin.nix b/nixpkgs/pkgs/applications/altcoins/dogecoin.nix new file mode 100644 index 000000000000..0452f4013345 --- /dev/null +++ b/nixpkgs/pkgs/applications/altcoins/dogecoin.nix @@ -0,0 +1,41 @@ +{ stdenv , fetchFromGitHub +, pkgconfig, autoreconfHook +, db5, openssl, boost, zlib, miniupnpc +, protobuf, utillinux, qt4, qrencode +, withGui }: + +with stdenv.lib; +stdenv.mkDerivation rec { + name = "dogecoin" + (toString (optional (!withGui) "d")) + "-" + version; + version = "1.10.0"; + + src = fetchFromGitHub { + owner = "dogecoin"; + repo = "dogecoin"; + rev = "v${version}"; + sha256 = "04rddx20d4fps2w3h1jxa2j8iyqpjv2fh897z0z3r06qjvjzf7rr"; + }; + + nativeBuildInputs = [ pkgconfig autoreconfHook ]; + buildInputs = [ openssl db5 openssl utillinux + protobuf boost zlib miniupnpc ] + ++ 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/altcoins/ethabi.nix b/nixpkgs/pkgs/applications/altcoins/ethabi.nix new file mode 100644 index 000000000000..d0bc700eb70f --- /dev/null +++ b/nixpkgs/pkgs/applications/altcoins/ethabi.nix @@ -0,0 +1,27 @@ +{ stdenv, fetchFromGitHub, rustPlatform }: + +with rustPlatform; + +buildRustPackage rec { + name = "ethabi-${version}"; + version = "4.1.0"; + + src = fetchFromGitHub { + owner = "paritytech"; + repo = "ethabi"; + rev = "v${version}"; + sha256 = "0kxflixmgycdh7sv73zf2mrkbcfzzw7f5sjbsjks9crc9cvjqi6p"; + }; + + cargoSha256 = "18rigpsmfiv6im2sspnxadgqrlfdp9dd75ji8s56ksc9g7hrc3wz"; + + 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/altcoins/fix-bitcoin-qt-build.patch b/nixpkgs/pkgs/applications/altcoins/fix-bitcoin-qt-build.patch new file mode 100644 index 000000000000..cbbfd85fe5bf --- /dev/null +++ b/nixpkgs/pkgs/applications/altcoins/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/altcoins/freicoin.nix b/nixpkgs/pkgs/applications/altcoins/freicoin.nix new file mode 100644 index 000000000000..1e9192bc6e40 --- /dev/null +++ b/nixpkgs/pkgs/applications/altcoins/freicoin.nix @@ -0,0 +1,36 @@ +{ fetchFromGitHub, stdenv, db, boost, gmp, mpfr, qt4, qmake4Hook }: + +stdenv.mkDerivation rec { + version = "0.8.6-2"; + name = "freicoin-${version}"; + + src = fetchFromGitHub { + owner = "freicoin"; + repo = "freicoin"; + rev = "v${version}"; + sha256 = "1v1qwv4x5agjba82s1vknmdgq67y26wzdwbmwwqavv7f7y3y860h"; + }; + + 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; + }; +} diff --git a/nixpkgs/pkgs/applications/altcoins/go-ethereum-classic/default.nix b/nixpkgs/pkgs/applications/altcoins/go-ethereum-classic/default.nix new file mode 100644 index 000000000000..7461e4c376ab --- /dev/null +++ b/nixpkgs/pkgs/applications/altcoins/go-ethereum-classic/default.nix @@ -0,0 +1,24 @@ +{ lib, buildGoPackage, fetchgit }: + +buildGoPackage rec { + name = "go-ethereum-classic-${version}"; + 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/altcoins/go-ethereum-classic/deps.nix b/nixpkgs/pkgs/applications/altcoins/go-ethereum-classic/deps.nix new file mode 100644 index 000000000000..0aa6755ee960 --- /dev/null +++ b/nixpkgs/pkgs/applications/altcoins/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/altcoins/go-ethereum.nix b/nixpkgs/pkgs/applications/altcoins/go-ethereum.nix new file mode 100644 index 000000000000..14bf13d8828e --- /dev/null +++ b/nixpkgs/pkgs/applications/altcoins/go-ethereum.nix @@ -0,0 +1,28 @@ +{ stdenv, buildGoPackage, fetchFromGitHub, libobjc, IOKit }: + +buildGoPackage rec { + name = "go-ethereum-${version}"; + version = "1.8.20"; + 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 = "go-ethereum"; + rev = "v${version}"; + sha256 = "0m2q1nz6f39pyr2rk6vflkwi4ykganzwr7wndpwr9rliw0x8jgi0"; + }; + + meta = with stdenv.lib; { + homepage = https://ethereum.github.io/go-ethereum/; + description = "Official golang implementation of the Ethereum protocol"; + license = with licenses; [ lgpl3 gpl3 ]; + maintainers = [ maintainers.adisbladis maintainers.lionello ]; + }; +} diff --git a/nixpkgs/pkgs/applications/altcoins/litecoin.nix b/nixpkgs/pkgs/applications/altcoins/litecoin.nix new file mode 100644 index 000000000000..33ac2be18322 --- /dev/null +++ b/nixpkgs/pkgs/applications/altcoins/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/altcoins/masari.nix b/nixpkgs/pkgs/applications/altcoins/masari.nix new file mode 100644 index 000000000000..02a6d25df516 --- /dev/null +++ b/nixpkgs/pkgs/applications/altcoins/masari.nix @@ -0,0 +1,27 @@ +{ lib, stdenv, fetchFromGitHub, cmake, pkgconfig, unbound, openssl, boost +, lmdb, miniupnpc, readline }: + +stdenv.mkDerivation rec { + name = "masari-${version}"; + 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/altcoins/memorycoin.nix b/nixpkgs/pkgs/applications/altcoins/memorycoin.nix new file mode 100644 index 000000000000..944c82250d47 --- /dev/null +++ b/nixpkgs/pkgs/applications/altcoins/memorycoin.nix @@ -0,0 +1,56 @@ +{ stdenv, fetchurl, pkgconfig, openssl, db48, boost +, zlib, qt4, qmake4Hook, utillinux, protobuf, qrencode +, withGui }: + +with stdenv.lib; +stdenv.mkDerivation rec{ + + name = "memorycoin" + (toString (optional (!withGui) "d")) + "-" + version; + version = "0.8.5"; + + src = fetchurl { + url = "https://github.com/memorycoin/memorycoin/archive/v${version}.tar.gz"; + sha256 = "1iyh6dqrg0mirwci5br5n5qw3ghp2cs23wd8ygr56bh9ml4dr1m8"; + }; + + nativeBuildInputs = [ pkgconfig ]; + buildInputs = [ openssl db48 boost zlib utillinux protobuf ] + ++ optionals withGui [ qt4 qmake4Hook qrencode ]; + + qmakeFlags = ["USE_UPNP=-"]; + makeFlags = ["USE_UPNP=-"]; + + configureFlags = [ "--with-boost-libdir=${boost.out}/lib" ] + ++ optionals withGui [ "--with-gui=qt4" ]; + + preBuild = "unset AR;" + + (toString (optional (!withGui) "cd src; cp makefile.unix Makefile")); + + installPhase = + if withGui + then "install -D bitcoin-qt $out/bin/memorycoin-qt" + else "install -D bitcoind $out/bin/memorycoind"; + + # `make build/version.o`: + # make: *** No rule to make target 'build/build.h', needed by 'build/version.o'. Stop. + enableParallelBuilding = false; + + meta = { + description = "Peer-to-peer, CPU-based electronic cash system"; + longDescription= '' + Memorycoin is a cryptocurrency that aims to empower the + economically and financially marginalized. It allows individuals + to participate in the internet economy even when they live in + countries where credit card companies and PayPal(R) refuse to + operate. Individuals can store and transfer wealth with just a + memorized pass phrase. + + Memorycoin is based on the Bitcoin code, but with some key + differences. + ''; + homepage = http://www.bitcoin.org/; + maintainers = with maintainers; [ AndersonTorres ]; + license = licenses.mit; + platforms = [ "x86_64-linux" ]; + }; +} diff --git a/nixpkgs/pkgs/applications/altcoins/mist.nix b/nixpkgs/pkgs/applications/altcoins/mist.nix new file mode 100644 index 000000000000..2990b44c7f4c --- /dev/null +++ b/nixpkgs/pkgs/applications/altcoins/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/altcoins/monero-gui/default.nix b/nixpkgs/pkgs/applications/altcoins/monero-gui/default.nix new file mode 100644 index 000000000000..331ef6b92a4f --- /dev/null +++ b/nixpkgs/pkgs/applications/altcoins/monero-gui/default.nix @@ -0,0 +1,93 @@ +{ stdenv, fetchFromGitHub +, makeWrapper, makeDesktopItem +, qtbase, qmake, qtmultimedia, qttools +, qtgraphicaleffects, qtdeclarative +, qtlocation, qtquickcontrols2, qtwebchannel +, qtwebengine, qtx11extras, qtxmlpatterns +, monero, unbound, readline, boost, libunwind +, libsodium, pcsclite, zeromq, cppzmq, pkgconfig +, hidapi +}: + +with stdenv.lib; + +stdenv.mkDerivation rec { + name = "monero-gui-${version}"; + version = "0.13.0.4"; + + src = fetchFromGitHub { + owner = "monero-project"; + repo = "monero-gui"; + rev = "v${version}"; + sha256 = "142yj5s15bhm300dislq3x5inw1f37shnrd5vyj78jjcvry3wymw"; + }; + + nativeBuildInputs = [ qmake pkgconfig ]; + + buildInputs = [ + qtbase qtmultimedia qtgraphicaleffects + qtdeclarative qtlocation qtquickcontrols2 + qtwebchannel qtwebengine qtx11extras + qtxmlpatterns monero unbound readline + boost libunwind libsodium pcsclite zeromq + cppzmq makeWrapper hidapi + ]; + + patches = [ + ./move-log-file.patch + ./move-translations-dir.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 translations + mkdir -p $out/share/translations + cp translations/*.qm $out/share/translations/ + + # 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 = [ "x86_64-linux" ]; + maintainers = with maintainers; [ rnhmjoj ]; + }; +} diff --git a/nixpkgs/pkgs/applications/altcoins/monero-gui/move-log-file.patch b/nixpkgs/pkgs/applications/altcoins/monero-gui/move-log-file.patch new file mode 100644 index 000000000000..74f817d81350 --- /dev/null +++ b/nixpkgs/pkgs/applications/altcoins/monero-gui/move-log-file.patch @@ -0,0 +1,27 @@ +diff --git a/main.cpp b/main.cpp +index 79223c0..e80b317 100644 +--- a/main.cpp ++++ b/main.cpp +@@ -115,6 +115,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/Logger.cpp b/Logger.cpp +index 660bafc..dae24d4 100644 +--- a/Logger.cpp ++++ b/Logger.cpp +@@ -15,7 +15,7 @@ static const QString default_name = "monero-wallet-gui.log"; + #elif defined(Q_OS_MAC) + static const QString osPath = QStandardPaths::standardLocations(QStandardPaths::HomeLocation).at(0) + "/Library/Logs"; + #else // linux + bsd +- static const QString osPath = QStandardPaths::standardLocations(QStandardPaths::HomeLocation).at(0); ++ static const QString osPath = QStandardPaths::standardLocations(QStandardPaths::CacheLocation).at(0); + #endif + + diff --git a/nixpkgs/pkgs/applications/altcoins/monero-gui/move-translations-dir.patch b/nixpkgs/pkgs/applications/altcoins/monero-gui/move-translations-dir.patch new file mode 100644 index 000000000000..ff17ce5da1c0 --- /dev/null +++ b/nixpkgs/pkgs/applications/altcoins/monero-gui/move-translations-dir.patch @@ -0,0 +1,13 @@ +diff --git a/TranslationManager.cpp b/TranslationManager.cpp +index e7fc52a..83534cc 100644 +--- a/TranslationManager.cpp ++++ b/TranslationManager.cpp +@@ -25,7 +25,7 @@ bool TranslationManager::setLanguage(const QString &language) + return true; + } + +- QString dir = qApp->applicationDirPath() + "/translations"; ++ QString dir = qApp->applicationDirPath() + "/../share/translations"; + QString filename = "monero-core_" + language; + + qDebug("%s: loading translation file '%s' from '%s'", diff --git a/nixpkgs/pkgs/applications/altcoins/monero/default.nix b/nixpkgs/pkgs/applications/altcoins/monero/default.nix new file mode 100644 index 000000000000..3a962458632e --- /dev/null +++ b/nixpkgs/pkgs/applications/altcoins/monero/default.nix @@ -0,0 +1,45 @@ +{ stdenv, fetchgit +, cmake, pkgconfig, git +, boost, miniupnpc, openssl, unbound, cppzmq +, zeromq, pcsclite, readline, libsodium, hidapi +, CoreData, IOKit, PCSC +}: + +assert stdenv.isDarwin -> IOKit != null; + +with stdenv.lib; + +stdenv.mkDerivation rec { + name = "monero-${version}"; + version = "0.13.0.4"; + + src = fetchgit { + url = "https://github.com/monero-project/monero.git"; + rev = "v${version}"; + sha256 = "1ambgakapijhsi1pd70vw8vvnlwa3nid944lqkbfq3wl25lmc70d"; + }; + + nativeBuildInputs = [ cmake pkgconfig git ]; + + buildInputs = [ + boost miniupnpc openssl unbound + cppzmq zeromq pcsclite readline + libsodium hidapi + ] ++ 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/altcoins/namecoin.nix b/nixpkgs/pkgs/applications/altcoins/namecoin.nix new file mode 100644 index 000000000000..93f9faf833a1 --- /dev/null +++ b/nixpkgs/pkgs/applications/altcoins/namecoin.nix @@ -0,0 +1,48 @@ +{ stdenv, fetchFromGitHub, openssl, boost, libevent, autoreconfHook, db4, miniupnpc, eject, pkgconfig, qt4, protobuf, libqrencode, 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 + libqrencode + ]; + + 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/altcoins/nano-wallet/CMakeLists.txt.patch b/nixpkgs/pkgs/applications/altcoins/nano-wallet/CMakeLists.txt.patch new file mode 100644 index 000000000000..5bbec1d39bea --- /dev/null +++ b/nixpkgs/pkgs/applications/altcoins/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/altcoins/nano-wallet/default.nix b/nixpkgs/pkgs/applications/altcoins/nano-wallet/default.nix new file mode 100644 index 000000000000..62e725928741 --- /dev/null +++ b/nixpkgs/pkgs/applications/altcoins/nano-wallet/default.nix @@ -0,0 +1,57 @@ +{lib, stdenv, fetchFromGitHub, cmake, pkgconfig, boost, libGL, qtbase}: + +stdenv.mkDerivation rec { + + name = "nano-wallet-${version}"; + version = "16.3"; + + src = fetchFromGitHub { + owner = "nanocurrency"; + repo = "raiblocks"; + rev = "V${version}"; + sha256 = "1rhq7qzfd8li33pmzcjxrhbbgdklxlcijam62s385f8yqjwy80dz"; + 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/altcoins/parity-ui/default.nix b/nixpkgs/pkgs/applications/altcoins/parity-ui/default.nix new file mode 100644 index 000000000000..ec2e571e3f0b --- /dev/null +++ b/nixpkgs/pkgs/applications/altcoins/parity-ui/default.nix @@ -0,0 +1,50 @@ +{ stdenv, pkgs, fetchurl, makeWrapper, nodePackages }: + +let + +uiEnv = pkgs.callPackage ./env.nix { }; + +in stdenv.mkDerivation rec { + name = "parity-ui-${version}"; + 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 = "${name}.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" {} \; + + paxmark m $out/share/parity-ui/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/altcoins/parity-ui/env.nix b/nixpkgs/pkgs/applications/altcoins/parity-ui/env.nix new file mode 100644 index 000000000000..625a008af917 --- /dev/null +++ b/nixpkgs/pkgs/applications/altcoins/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/altcoins/parity/beta.nix b/nixpkgs/pkgs/applications/altcoins/parity/beta.nix new file mode 100644 index 000000000000..46985fd065e1 --- /dev/null +++ b/nixpkgs/pkgs/applications/altcoins/parity/beta.nix @@ -0,0 +1,6 @@ +let + version = "2.2.5"; + sha256 = "0q9vgwc0jlja73r4na7yil624iagq1607ac47wh8a7xgfjmjjai1"; + cargoSha256 = "0ibdmyh1jvfq51vhwn4riyhilqwhf71hjd4vyj525smn95p75b14"; +in + import ./parity.nix { inherit version sha256 cargoSha256; } diff --git a/nixpkgs/pkgs/applications/altcoins/parity/default.nix b/nixpkgs/pkgs/applications/altcoins/parity/default.nix new file mode 100644 index 000000000000..81923849094f --- /dev/null +++ b/nixpkgs/pkgs/applications/altcoins/parity/default.nix @@ -0,0 +1,6 @@ +let + version = "2.1.10"; + sha256 = "1l4yl8i24q8v4hzljzai37f587x8m3cz3byzifhvq3bjky7p8h80"; + cargoSha256 = "04pni9cmz8nhlqznwafz9d81006808kh24aqnb8rjdcr84d11zis"; +in + import ./parity.nix { inherit version sha256 cargoSha256; } diff --git a/nixpkgs/pkgs/applications/altcoins/parity/parity.nix b/nixpkgs/pkgs/applications/altcoins/parity/parity.nix new file mode 100644 index 000000000000..9eb189f014e2 --- /dev/null +++ b/nixpkgs/pkgs/applications/altcoins/parity/parity.nix @@ -0,0 +1,42 @@ +{ version +, sha256 +, cargoSha256 +}: + +{ stdenv +, fetchFromGitHub +, rustPlatform +, pkgconfig +, openssl +, systemd +, cmake +, perl +}: + +rustPlatform.buildRustPackage rec { + name = "parity-${version}"; + inherit cargoSha256; + + src = fetchFromGitHub { + owner = "paritytech"; + repo = "parity-ethereum"; + rev = "v${version}"; + inherit sha256; + }; + + buildInputs = [ + pkgconfig cmake perl + systemd.lib systemd.dev openssl openssl.dev + ]; + + # test result: FAILED. 80 passed; 12 failed; 0 ignored; 0 measured; 0 filtered out + doCheck = false; + + meta = with stdenv.lib; { + description = "Fast, light, robust Ethereum implementation"; + homepage = http://parity.io; + license = licenses.gpl3; + maintainers = [ maintainers.akru ]; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/altcoins/particl/particl-core.nix b/nixpkgs/pkgs/applications/altcoins/particl/particl-core.nix new file mode 100644 index 000000000000..d3b20ef2ea36 --- /dev/null +++ b/nixpkgs/pkgs/applications/altcoins/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 { + name = "particl-core-${version}"; + version = "0.17.0.2"; + + src = fetchurl { + url = "https://github.com/particl/particl-core/archive/v${version}.tar.gz"; + sha256 = "0bkxdayl0jrfhgz8qzqqpwzv0yavz3nwsn6c8k003jnbcw65fkhx"; + }; + + 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/altcoins/polkadot/default.nix b/nixpkgs/pkgs/applications/altcoins/polkadot/default.nix new file mode 100644 index 000000000000..6d4e0417cde7 --- /dev/null +++ b/nixpkgs/pkgs/applications/altcoins/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 = "0wwkaxqj2v5zach5xcqfzf6prc0gxy2v47janglp44xbxbx9xk08"; + + buildInputs = [ pkgconfig openssl openssl.dev ]; + + meta = with stdenv.lib; { + description = "Polkadot Node Implementation"; + homepage = http://polkadot.network; + license = licenses.gpl3; + maintainers = [ maintainers.akru ]; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/altcoins/stellar-core-dirty-version.patch b/nixpkgs/pkgs/applications/altcoins/stellar-core-dirty-version.patch new file mode 100644 index 000000000000..57d66ce5919a --- /dev/null +++ b/nixpkgs/pkgs/applications/altcoins/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/altcoins/stellar-core.nix b/nixpkgs/pkgs/applications/altcoins/stellar-core.nix new file mode 100644 index 000000000000..4c3f9fe0760b --- /dev/null +++ b/nixpkgs/pkgs/applications/altcoins/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/altcoins/sumokoin.nix b/nixpkgs/pkgs/applications/altcoins/sumokoin.nix new file mode 100644 index 000000000000..026008b2761a --- /dev/null +++ b/nixpkgs/pkgs/applications/altcoins/sumokoin.nix @@ -0,0 +1,35 @@ +{ lib, stdenv, fetchFromGitHub, cmake, unbound, openssl, boost +, libunwind, lmdb, miniupnpc }: + +stdenv.mkDerivation rec { + name = "sumokoin-${version}"; + 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/altcoins/wownero.nix b/nixpkgs/pkgs/applications/altcoins/wownero.nix new file mode 100644 index 000000000000..4b62ba759f36 --- /dev/null +++ b/nixpkgs/pkgs/applications/altcoins/wownero.nix @@ -0,0 +1,51 @@ +{ stdenv, fetchFromGitHub, cmake, pkgconfig, git +, boost, miniupnpc, openssl, unbound, cppzmq +, zeromq, pcsclite, readline, libsodium +, CoreData, IOKit, PCSC +}: + +assert stdenv.isDarwin -> IOKit != null; + +with stdenv.lib; + +stdenv.mkDerivation rec { + name = "wownero-${version}"; + + version = "0.4.0.0"; + src = fetchFromGitHub { + owner = "wownero"; + repo = "wownero"; + fetchSubmodules = true; + rev = "v${version}"; + sha256 = "1z5fpl4gwys4v8ffrymlzwrbnrbg73x553a9lxwny7ba8yg2k14p"; + }; + + nativeBuildInputs = [ cmake pkgconfig git ]; + + buildInputs = [ + boost miniupnpc openssl unbound + cppzmq zeromq pcsclite readline libsodium + ] ++ optionals stdenv.isDarwin [ IOKit CoreData PCSC ]; + + cmakeFlags = [ + "-DReadline_ROOT_DIR=${readline.dev}" + "-DMANUAL_SUBMODULES=ON" + ] ++ optional stdenv.isDarwin "-DBoost_USE_MULTITHREADED=OFF"; + + hardeningDisable = [ "fortify" ]; + + 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.all; + maintainers = with maintainers; [ fuwa ]; + }; +} diff --git a/nixpkgs/pkgs/applications/altcoins/zcash/default.nix b/nixpkgs/pkgs/applications/altcoins/zcash/default.nix new file mode 100644 index 000000000000..6a8fba3c2bb7 --- /dev/null +++ b/nixpkgs/pkgs/applications/altcoins/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/altcoins/zcash/librustzcash/default.nix b/nixpkgs/pkgs/applications/altcoins/zcash/librustzcash/default.nix new file mode 100644 index 000000000000..b89582c09e60 --- /dev/null +++ b/nixpkgs/pkgs/applications/altcoins/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 = "1b0kal53ggcr59hbrsdj8fifjycahrmzwq677n9h3fywv4r237m6"; + + 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; + }; +} |