summary refs log tree commit diff
path: root/pkgs/applications/networking/p2p/freenet/default.nix
blob: 013694d259cb71c7d466cae6ed5e41e3d875254a (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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
{ stdenv, fetchurl, ant, jdk }:

let
  # The .gitmodules in freenet-official-20130413-eccc9b3198
  # points to freenet-contrib-staging-ce3b7d5
  freenet_ext = fetchurl {
    url = https://downloads.freenetproject.org/latest/freenet-ext.jar;
    sha1 = "507ab3f6ee91f47c187149136fb6d6e98f9a8c7f";
  };

  bcprov = fetchurl {
    url = http://www.bouncycastle.org/download/bcprov-jdk15on-148.jar;
    sha256 = "12129q8rmqwlvj6z4j0gc3w0hq5ccrkf2gdlsggp3iws7cp7wjw0";
  };
in
stdenv.mkDerivation {
  name = "freenet-20130413-eccc9b3198";

  src = fetchurl {
    url = https://github.com/freenet/fred-official/tarball/eccc9b3198;
    name = "freenet-official-eccc9b3198.tar.gz";
    sha256 = "0x0s8gmb95770l7968r99sq0588vf0n1687ivc2hixar19cw620y";
  };

  patchPhase = ''
    cp ${freenet_ext} lib/freenet/freenet-ext.jar
    cp ${bcprov} lib/bcprov.jar

    sed '/antcall.*-ext/d' -i build.xml
  '';

  buildInputs = [ ant jdk ];

  buildPhase = "ant package-only";

  installPhase = ''
    ensureDir $out/share/freenet $out/bin
    cp lib/bcprov.jar $out/share/freenet
    cp lib/freenet/freenet-ext.jar $out/share/freenet
    cp dist/freenet.jar $out/share/freenet

    cat <<EOF > $out/bin/freenet
    #!${stdenv.shell}
    ${jdk.jre}/bin/java -cp $out/share/freenet/bcprov.jar:$out/share/freenet/freenet-ext.jar:$out/share/freenet/freenet.jar \\
      -Xmx1024M freenet.node.NodeStarter
    EOF
    chmod +x $out/bin/freenet
  '';

  meta = {
    description = "Decentralised and censorship-resistant network";
    homepage = https://freenetproject.org/;
    license = stdenv.lib.licenses.gpl2Plus;
    platforms = with stdenv.lib.platforms; linux;
  };
}