about summary refs log tree commit diff
path: root/nixpkgs/pkgs/tools/networking/i2p
diff options
context:
space:
mode:
authorAlyssa Ross <hi@alyssa.is>2019-01-07 02:18:36 +0000
committerAlyssa Ross <hi@alyssa.is>2019-01-07 02:18:47 +0000
commit36f56d99fa0a0765c9f1de4a5f17a9b05830c3f2 (patch)
treeb3faaf573407b32aa645237a4d16b82778a39a92 /nixpkgs/pkgs/tools/networking/i2p
parent4e31070265257dc67d120c27e0f75c2344fdfa9a (diff)
parentabf060725d7614bd3b9f96764262dfbc2f9c2199 (diff)
downloadnixlib-36f56d99fa0a0765c9f1de4a5f17a9b05830c3f2.tar
nixlib-36f56d99fa0a0765c9f1de4a5f17a9b05830c3f2.tar.gz
nixlib-36f56d99fa0a0765c9f1de4a5f17a9b05830c3f2.tar.bz2
nixlib-36f56d99fa0a0765c9f1de4a5f17a9b05830c3f2.tar.lz
nixlib-36f56d99fa0a0765c9f1de4a5f17a9b05830c3f2.tar.xz
nixlib-36f56d99fa0a0765c9f1de4a5f17a9b05830c3f2.tar.zst
nixlib-36f56d99fa0a0765c9f1de4a5f17a9b05830c3f2.zip
Add 'nixpkgs/' from commit 'abf060725d7614bd3b9f96764262dfbc2f9c2199'
git-subtree-dir: nixpkgs
git-subtree-mainline: 4e31070265257dc67d120c27e0f75c2344fdfa9a
git-subtree-split: abf060725d7614bd3b9f96764262dfbc2f9c2199
Diffstat (limited to 'nixpkgs/pkgs/tools/networking/i2p')
-rw-r--r--nixpkgs/pkgs/tools/networking/i2p/default.nix73
-rw-r--r--nixpkgs/pkgs/tools/networking/i2p/i2p.patch43
2 files changed, 116 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/tools/networking/i2p/default.nix b/nixpkgs/pkgs/tools/networking/i2p/default.nix
new file mode 100644
index 000000000000..101f2a635a4b
--- /dev/null
+++ b/nixpkgs/pkgs/tools/networking/i2p/default.nix
@@ -0,0 +1,73 @@
+{ stdenv, ps, coreutils, fetchurl, jdk, jre, ant, gettext, which }:
+
+let wrapper = stdenv.mkDerivation rec {
+  name = "wrapper-${version}";
+  version = "3.5.35";
+  src = fetchurl {
+    url = "https://wrapper.tanukisoftware.com/download/${version}/wrapper_${version}_src.tar.gz";
+    sha256 = "0mjyw9ays9v6lnj21pmfd3qdvd9b6rwxfmw3pg6z0kyf2jadixw2";
+  };
+  buildInputs = [ jdk ];
+  buildPhase = ''
+    export ANT_HOME=${ant}
+    export JAVA_HOME=${jdk}/lib/openjdk/jre/
+    export JAVA_TOOL_OPTIONS=-Djava.home=$JAVA_HOME
+    export CLASSPATH=${jdk}/lib/openjdk/lib/tools.jar
+    sed 's/ testsuite$//' -i src/c/Makefile-linux-x86-64.make
+    ${if stdenv.isi686 then "./build32.sh" else "./build64.sh"}
+  '';
+  installPhase = ''
+    mkdir -p $out/{bin,lib}
+    cp bin/wrapper $out/bin/wrapper
+    cp lib/wrapper.jar $out/lib/wrapper.jar
+    cp lib/libwrapper.so $out/lib/libwrapper.so
+  '';
+};
+
+in
+
+stdenv.mkDerivation rec {
+  name = "i2p-0.9.37";
+  src = fetchurl {
+    url = "https://github.com/i2p/i2p.i2p/archive/${name}.tar.gz";
+    sha256 = "1lmqdqavy471s187y0lhckznlxx6id6h0dlwlyif2vr8c0pwv2q9";
+  };
+  buildInputs = [ jdk ant gettext which ];
+  patches = [ ./i2p.patch ];
+  buildPhase = ''
+    export JAVA_TOOL_OPTIONS="-Dfile.encoding=UTF8"
+    ant preppkg-linux-only
+    '';
+  installPhase = ''
+    set -B
+    mkdir -p $out/{bin,share}
+    cp -r pkg-temp/* $out
+
+    cp ${wrapper}/bin/wrapper $out/i2psvc
+    cp ${wrapper}/lib/wrapper.jar $out/lib
+    cp ${wrapper}/lib/libwrapper.so $out/lib
+
+    sed -i $out/i2prouter -i $out/runplain.sh \
+      -e "s#uname#${coreutils}/bin/uname#" \
+      -e "s#which#${which}/bin/which#" \
+      -e "s#%gettext%#${gettext}/bin/gettext#" \
+      -e "s#/usr/ucb/ps#${ps}/bin/ps#" \
+      -e "s#/usr/bin/tr#${coreutils}/bin/tr#" \
+      -e "s#%INSTALL_PATH#$out#" \
+      -e 's#%USER_HOME#$HOME#' \
+      -e "s#%SYSTEM_java_io_tmpdir#/tmp#" \
+      -e "s#%JAVA%#${jre}/bin/java#"
+    mv $out/runplain.sh $out/bin/i2prouter-plain
+    mv $out/man $out/share/
+    chmod +x $out/bin/* $out/i2psvc
+    rm $out/{osid,postinstall.sh,INSTALL-headless.txt}
+    '';
+
+  meta = with stdenv.lib; {
+    homepage = https://geti2p.net;
+    description = "Applications and router for I2P, anonymity over the Internet";
+    maintainers = [ maintainers.joelmo ];
+    license = licenses.gpl2;
+    platforms = [ "x86_64-linux" "i686-linux" ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/networking/i2p/i2p.patch b/nixpkgs/pkgs/tools/networking/i2p/i2p.patch
new file mode 100644
index 000000000000..74031eb7aef7
--- /dev/null
+++ b/nixpkgs/pkgs/tools/networking/i2p/i2p.patch
@@ -0,0 +1,43 @@
+diff --git a/installer/resources/i2prouter b/installer/resources/i2prouter
+index 365737d89..2ea14db3e 100644
+--- a/installer/resources/i2prouter
++++ b/installer/resources/i2prouter
+@@ -49,7 +49,7 @@ APP_LONG_NAME="I2P Service"
+ 
+ # gettext - we look for it in the path
+ # fallback to echo is below, we can't set it to echo here.
+-GETTEXT=$(which gettext > /dev/null 2>&1)
++GETTEXT=%gettext%
+ 
+ # Where to install the systemd service
+ SYSTEMD_SERVICE="/etc/systemd/system/${APP_NAME}.service"
+diff --git a/installer/resources/runplain.sh b/installer/resources/runplain.sh
+index eb4995dfe..0186cede3 100644
+--- a/installer/resources/runplain.sh
++++ b/installer/resources/runplain.sh
+@@ -25,7 +25,7 @@ CP=
+ 
+ # Try using the Java binary that I2P was installed with.
+ # If it's not found, try looking in the system PATH.
+-JAVA=$(which %JAVA_HOME/bin/java || which java)
++JAVA=%JAVA%
+ 
+ if [ -z $JAVA ] || [ ! -x $JAVA ]; then
+     echo "Error: Cannot find java." >&2
+@@ -44,15 +44,4 @@ if [ $(uname -s) = "Darwin" ]; then
+     export JAVA_TOOL_OPTIONS="-Djava.awt.headless=true"
+ fi
+ JAVAOPTS="${MAXMEMOPT} -Djava.net.preferIPv4Stack=${PREFERv4} -Djava.library.path=${I2P}:${I2P}/lib -Di2p.dir.base=${I2P} -DloggerFilenameOverride=logs/log-router-@.txt"
+-(
+-    nohup ${JAVA} -cp \"${CP}\" ${JAVAOPTS} net.i2p.router.RouterLaunch > /dev/null 2>&1
+-) &
+-PID=$!
+-
+-if [ ! -z $PID ] && kill -0 $PID > /dev/null 2>&1 ; then
+-    echo "I2P started [$PID]" >&2
+-    echo $PID > "${I2PTEMP}/router.pid"
+-else
+-    echo "I2P failed to start." >&2
+-    exit 1
+-fi
++exec ${JAVA} -cp \"${CP}\" ${JAVAOPTS} net.i2p.router.RouterLaunch