summary refs log tree commit diff
path: root/pkgs/applications/networking/p2p/zeronet/default.nix
blob: 8a8d1b33ca7345862148a08823c94dd05ff327b0 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
{ stdenv, fetchFromGitHub, python2Packages }:

python2Packages.buildPythonApplication rec {
  pname = "zeronet";
  version = "0.6.2";

  src = fetchFromGitHub {
    owner = "HelloZeroNet";
    repo = "ZeroNet";
    rev = "v${version}";
    sha256 = "0v19jjirkyv8hj2yfdj0c40zwynn51h2bj4issn5blr95vhfm8s7";
  };

  propagatedBuildInputs = with python2Packages; [ msgpack gevent ];

  format = "other";

  buildPhase = "${python2Packages.python.interpreter} -O -m compileall .";

  installPhase = ''
    mkdir -p $out/share
    cp -r plugins src tools *.py $out/share/
  '';

  # Wrap the main executable and set the log and data dir to something out of
  # the store
  postFixup = ''
    makeWrapper "$out/share/zeronet.py" "$out/bin/zeronet" \
        --set PYTHONPATH "$PYTHONPATH" \
        --set PATH ${python2Packages.python}/bin \
        --add-flags "--log_dir \$HOME/.local/share/zeronet/logs" \
        --add-flags "--data_dir \$HOME/.local/share/zeronet"
  '';

  meta = with stdenv.lib; {
    description = "Decentralized websites using Bitcoin crypto and BitTorrent network";
    homepage = "https://zeronet.io/";
    license = licenses.gpl2;
    maintainers = with maintainers; [ fgaz ];
  };
}