about summary refs log tree commit diff
path: root/pkgs/applications/networking/p2p
diff options
context:
space:
mode:
authorShell Turner <cam.turn@gmail.com>2016-01-03 14:33:56 +0000
committerShell Turner <cam.turn@gmail.com>2016-01-05 01:06:54 +0000
commitf2297914540a7ce641cedaaeaba1817f4738b88f (patch)
tree6d86c884ad903950bc4e0c22be725d197151368f /pkgs/applications/networking/p2p
parent0d5542bc8574eb48fb397880ac85db9a0b6c603c (diff)
freenet: rewrite wrapper to not depend on PATH
Diffstat (limited to 'pkgs/applications/networking/p2p')
-rw-r--r--pkgs/applications/networking/p2p/freenet/default.nix74
-rwxr-xr-xpkgs/applications/networking/p2p/freenet/freenetWrapper8
2 files changed, 47 insertions, 35 deletions
diff --git a/pkgs/applications/networking/p2p/freenet/default.nix b/pkgs/applications/networking/p2p/freenet/default.nix
index 80f8eb840f138..51d7a49cac79c 100644
--- a/pkgs/applications/networking/p2p/freenet/default.nix
+++ b/pkgs/applications/networking/p2p/freenet/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, fetchgit, ant, jdk, makeWrapper }:
+{ stdenv, fetchurl, fetchgit, ant, jdk, bash, coreutils, substituteAll }:
 
 let
   freenet_ext = fetchurl {
@@ -15,46 +15,56 @@ let
     sha256 = "109zn9w8axdkjwhkkcm2s8dvib0mq0n8imjgs3r8hvi128cjsmg9";
   };
   version = "build01470";
-in
-stdenv.mkDerivation {
-  name = "freenet-${version}";
 
+  freenet-jars = stdenv.mkDerivation {
+    name = "freenet-jars-${version}";
 
-  src = fetchgit {
-    url = https://github.com/freenet/fred;
-    rev = "refs/tags/${version}";
-    sha256 = "1b6e6fec2b9a729d4a25605fa142df9ea42e59b379ff665f580e32c6178c9746";
-  };
+    src = fetchgit {
+      url = https://github.com/freenet/fred;
+      rev = "refs/tags/${version}";
+      sha256 = "1b6e6fec2b9a729d4a25605fa142df9ea42e59b379ff665f580e32c6178c9746";
+    };
 
-  patchPhase = ''
-    cp ${freenet_ext} lib/freenet/freenet-ext.jar
-    cp ${bcprov} lib/bcprov-jdk15on-152.jar
+    patchPhase = ''
+      cp ${freenet_ext} lib/freenet/freenet-ext.jar
+      cp ${bcprov} lib/bcprov-jdk15on-152.jar
 
-    sed '/antcall.*-ext/d' -i build.xml
-    sed 's/@unknown@/${version}/g' -i build-clean.xml
-  '';
+      sed '/antcall.*-ext/d' -i build.xml
+      sed 's/@unknown@/${version}/g' -i build-clean.xml
+    '';
 
-  buildInputs = [ ant jdk makeWrapper ];
+    buildInputs = [ ant jdk ];
 
-  buildPhase = "ant package-only";
+    buildPhase = "ant package-only";
 
-  freenetWrapper = ./freenetWrapper;
+    installPhase = ''
+      mkdir -p $out/share/freenet
+      cp lib/bcprov-jdk15on-152.jar $out/share/freenet
+      cp lib/freenet/freenet-ext.jar $out/share/freenet
+      cp dist/freenet.jar $out/share/freenet
+    '';
+  };
 
-  installPhase = ''
-    mkdir -p $out/share/freenet $out/bin
-    cp lib/bcprov-jdk15on-152.jar $out/share/freenet
-    cp lib/freenet/freenet-ext.jar $out/share/freenet
-    cp dist/freenet.jar $out/share/freenet
+in stdenv.mkDerivation {
+  name = "freenet-${version}";
+  inherit version;
 
-    cat <<EOF > $out/bin/freenet.wrapped
-    #!${stdenv.shell}
-    ${jdk.jre}/bin/java -cp $out/share/freenet/bcprov-jdk15on-152.jar:$out/share/freenet/freenet-ext.jar:$out/share/freenet/freenet.jar \\
-      -Xmx1024M freenet.node.NodeStarter
-    EOF
-    chmod +x $out/bin/freenet.wrapped
-    makeWrapper $freenetWrapper $out/bin/freenet \
-      --set FREENET_ROOT "$out" \
-      --set FREENET_SEEDNODES "${seednodes}"
+  src = substituteAll {
+    src = ./freenetWrapper;
+    inherit bash coreutils seednodes;
+    freenet = freenet-jars;
+    jre = jdk.jre;
+  };
+
+  jars = freenet-jars;
+
+  phases = [ "installPhase" ];
+
+  installPhase = ''
+    mkdir -p $out/bin
+    cp $src $out/bin/freenet
+    chmod +x $out/bin/freenet
+    ln -s ${freenet-jars}/share $out/share
   '';
 
   meta = {
diff --git a/pkgs/applications/networking/p2p/freenet/freenetWrapper b/pkgs/applications/networking/p2p/freenet/freenetWrapper
index c1667f158b97e..6df7f4924587a 100755
--- a/pkgs/applications/networking/p2p/freenet/freenetWrapper
+++ b/pkgs/applications/networking/p2p/freenet/freenetWrapper
@@ -1,4 +1,6 @@
-#! /usr/bin/env bash
+#! @bash@/bin/bash
+
+PATH=@coreutils@/bin:$PATH
 
 export FREENET_HOME="$HOME/.local/share/freenet"
 if [ -n "$XDG_DATA_HOME" ]
@@ -9,8 +11,8 @@ if [ ! -d $FREENET_HOME ]; then
   mkdir -p $FREENET_HOME
 fi
 
-cp -u $FREENET_SEEDNODES $FREENET_HOME/seednodes.fref
+cp -u @seednodes@ $FREENET_HOME/seednodes.fref
 chmod u+rw $FREENET_HOME/seednodes.fref
 
 cd $FREENET_HOME
-exec $FREENET_ROOT/bin/freenet.wrapped "$@"
+@jre@/bin/java -cp @freenet@/share/freenet/bcprov-jdk15on-152.jar:@freenet@/share/freenet/freenet-ext.jar:@freenet@/share/freenet/freenet.jar -Xmx1024M freenet.node.NodeStarter