{ lib, stdenv, fetchurl, ant, jdk, junit }: stdenv.mkDerivation rec { name = "junixsocket-1.3"; src = fetchurl { url = "https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/junixsocket/${name}-src.tar.bz2"; sha256 = "0c6p8vmiv5nk8i6g1hgivnl3mpb2k3lhjjz0ss9dlirisfrxf1ym"; }; patches = [ ./darwin.patch ]; buildInputs = [ ant jdk junit ]; preConfigure = '' substituteInPlace src/main/org/newsclub/net/unix/NativeUnixSocketConfig.java \ --replace /opt/newsclub/lib-native $out/lib ''; buildPhase = "ant"; ANT_ARGS = # Note that our OpenJDK on Darwin is currently 32-bit, so we have to build a 32-bit dylib. (if stdenv.is64bit then [ "-Dskip32=true" ] else [ "-Dskip64=true" ]) ++ [ "-Dgcc=cc" "-Dant.build.javac.source=1.6" ] ++ lib.optional stdenv.isDarwin "-DisMac=true"; installPhase = '' mkdir -p $out/share/java $out/lib cp -v dist/*.jar $out/share/java cp -v lib-native/*.so lib-native/*.dylib $out/lib/ ''; meta = { description = "A Java/JNI library for using Unix Domain Sockets from Java"; homepage = "https://github.com/kohlschutter/junixsocket"; license = lib.licenses.asl20; platforms = lib.platforms.linux ++ lib.platforms.darwin; }; }