diff options
author | Alyssa Ross <hi@alyssa.is> | 2019-01-07 02:18:36 +0000 |
---|---|---|
committer | Alyssa Ross <hi@alyssa.is> | 2019-01-07 02:18:47 +0000 |
commit | 36f56d99fa0a0765c9f1de4a5f17a9b05830c3f2 (patch) | |
tree | b3faaf573407b32aa645237a4d16b82778a39a92 /nixpkgs/pkgs/tools/networking/i2p | |
parent | 4e31070265257dc67d120c27e0f75c2344fdfa9a (diff) | |
parent | abf060725d7614bd3b9f96764262dfbc2f9c2199 (diff) | |
download | nixlib-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.nix | 73 | ||||
-rw-r--r-- | nixpkgs/pkgs/tools/networking/i2p/i2p.patch | 43 |
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 |