about summary refs log tree commit diff
path: root/nixpkgs/pkgs/development/libraries/java/junixsocket/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/pkgs/development/libraries/java/junixsocket/default.nix')
-rw-r--r--nixpkgs/pkgs/development/libraries/java/junixsocket/default.nix42
1 files changed, 42 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/development/libraries/java/junixsocket/default.nix b/nixpkgs/pkgs/development/libraries/java/junixsocket/default.nix
new file mode 100644
index 000000000000..bc34957b9c3e
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/java/junixsocket/default.nix
@@ -0,0 +1,42 @@
+{ 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" ]
+    ++ stdenv.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 = stdenv.lib.licenses.asl20;
+    platforms = stdenv.lib.platforms.linux ++ stdenv.lib.platforms.darwin;
+  };
+}