i2p: Build java service wrapper from source
The most tricky part was the JAVA_TOOL_OPTIONS part. `javah` simply throws a NullPointerException if it cannot find a java compiler. See http://grepcode.com/file/repository.grepcode.com/java/root/jdk/openjdk/6-b27/javax/tools/ToolProvider.java#ToolProvider.getSystemJavaCompiler%28%29 on how that compiler is searched for.
This commit is contained in:
parent
c66d81b4d0
commit
eb8e289fad
@ -1,5 +1,30 @@
|
|||||||
{ stdenv, procps, coreutils, fetchurl, jdk, jre, ant, gettext, which }:
|
{ stdenv, procps, coreutils, fetchurl, jdk, jre, ant, gettext, which }:
|
||||||
|
|
||||||
|
let wrapper = stdenv.mkDerivation rec {
|
||||||
|
name = "wrapper-${version}";
|
||||||
|
version = "3.5.32";
|
||||||
|
src = fetchurl {
|
||||||
|
url = "https://wrapper.tanukisoftware.com/download/${version}/wrapper_${version}_src.tar.gz";
|
||||||
|
sha256 = "1v388p5jjbpwybw0zjv5glzny17fwdwppaci2lqcsnm6qw0667f1";
|
||||||
|
};
|
||||||
|
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
|
||||||
|
./build32.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 {
|
stdenv.mkDerivation rec {
|
||||||
name = "i2p-0.9.30";
|
name = "i2p-0.9.30";
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
@ -16,19 +41,11 @@ stdenv.mkDerivation rec {
|
|||||||
set -B
|
set -B
|
||||||
mkdir -p $out/{bin,share}
|
mkdir -p $out/{bin,share}
|
||||||
cp -r pkg-temp/* $out
|
cp -r pkg-temp/* $out
|
||||||
'' +
|
|
||||||
|
|
||||||
# TODO: Compile wrapper ourselves, see https://geti2p.net/en/misc/manual-wrapper
|
cp ${wrapper}/bin/wrapper $out/i2psvc
|
||||||
(if stdenv.system == "i686-linux"
|
cp ${wrapper}/lib/wrapper.jar $out/lib
|
||||||
then ''
|
cp ${wrapper}/lib/libwrapper.so $out/lib
|
||||||
cp installer/lib/wrapper/linux/* $out
|
|
||||||
'' else ''
|
|
||||||
cp installer/lib/wrapper/linux64/* $out
|
|
||||||
'')
|
|
||||||
|
|
||||||
# */ # comment end for vim
|
|
||||||
|
|
||||||
+ ''
|
|
||||||
sed -i $out/i2prouter -i $out/runplain.sh \
|
sed -i $out/i2prouter -i $out/runplain.sh \
|
||||||
-e "s#uname#${coreutils}/bin/uname#" \
|
-e "s#uname#${coreutils}/bin/uname#" \
|
||||||
-e "s#which#${which}/bin/which#" \
|
-e "s#which#${which}/bin/which#" \
|
||||||
|
Loading…
x
Reference in New Issue
Block a user