Merge pull request #268619 from tweag/lib-descriptions
[NixPkgs.git] / pkgs / applications / blockchains / stellar-core / default.nix
blob6d3359cdcd0069039f69207337dd0477047aa329
1 { autoconf
2 , automake
3 , bison
4 , fetchFromGitHub
5 , flex
6 , git
7 , lib
8 , libtool
9 , libunwind
10 , pkg-config
11 , postgresql
12 , ripgrep
13 , stdenv
16 stdenv.mkDerivation (finalAttrs: {
17   pname = "stellar-core";
18   version = "19.14.0";
20   src = fetchFromGitHub {
21     owner = "stellar";
22     repo = "stellar-core";
23     rev = "v${finalAttrs.version}";
24     hash = "sha256-lxBn/T01Tsa7tid3mRJUigUwv9d3BAPZhV9Mp1lywBU=";
25     fetchSubmodules = true;
26   };
28   nativeBuildInputs = [
29     automake
30     autoconf
31     git
32     libtool
33     pkg-config
34     ripgrep
35   ];
37   buildInputs = [
38     libunwind
39   ];
41   propagatedBuildInputs = [
42     bison
43     flex
44     postgresql
45   ];
47   enableParallelBuilding = true;
49   preConfigure = ''
50     # Due to https://github.com/NixOS/nixpkgs/issues/8567 we cannot rely on
51     # having the .git directory present, so directly provide the version
52     substituteInPlace src/Makefile.am --replace '$$vers' 'stellar-core ${finalAttrs.version}';
54     # Everything needs to be staged in git because the build uses
55     # `git ls-files` to search for source files to compile.
56     git init
57     git add .
59     ./autogen.sh
60   '';
62   meta = {
63     description = "Implements the Stellar Consensus Protocol, a federated consensus protocol";
64     homepage = "https://www.stellar.org/";
65     license = lib.licenses.asl20;
66     longDescription = ''
67       Stellar-core is the backbone of the Stellar network. It maintains a
68       local copy of the ledger, communicating and staying in sync with other
69       instances of stellar-core on the network. Optionally, stellar-core can
70       store historical records of the ledger and participate in consensus.
71     '';
72     maintainers = [ ];
73     platforms = lib.platforms.linux;
74   };