about summary refs log tree commit diff
path: root/pkgs/applications/networking/instant-messengers/signal-cli
diff options
context:
space:
mode:
authorJustin Humm <justin.humm@posteo.de>2019-11-04 21:16:45 +0100
committerJustin Humm <justin.humm@posteo.de>2019-11-07 21:25:27 +0100
commit6d6fee528373d5388109912c27916df019339fb3 (patch)
tree505b1078ef72e652dc9cd8383196612fe66de1f2 /pkgs/applications/networking/instant-messengers/signal-cli
parent2c09cfc097daef5b85d21fe906441b5702bb2101 (diff)
signal-cli: add dbus functionality
This closes #72737

Co-authored-by: Matthew Piziak <matthew-piziak@users.noreply.github.com>
Co-authored-by: Kiwi <Kiwi@users.noreply.github.com>
Diffstat (limited to 'pkgs/applications/networking/instant-messengers/signal-cli')
-rw-r--r--pkgs/applications/networking/instant-messengers/signal-cli/default.nix15
1 files changed, 12 insertions, 3 deletions
diff --git a/pkgs/applications/networking/instant-messengers/signal-cli/default.nix b/pkgs/applications/networking/instant-messengers/signal-cli/default.nix
index 7c474d26c88ce..d16b10ffb95a5 100644
--- a/pkgs/applications/networking/instant-messengers/signal-cli/default.nix
+++ b/pkgs/applications/networking/instant-messengers/signal-cli/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, lib, fetchurl, makeWrapper, jre_headless }:
+{ stdenv, lib, fetchurl, makeWrapper, jre_headless, libmatthew_java, dbus, dbus_java }:
 
 stdenv.mkDerivation rec {
   pname = "signal-cli";
@@ -10,16 +10,24 @@ stdenv.mkDerivation rec {
     sha256 = "1gvdifscyxmxn2dwlkqi684ahy5kbcj84mqda0m8l4aa8iaq1d59";
   };
 
-  buildInputs = [ makeWrapper ];
+  buildInputs = lib.optional stdenv.isLinux [ libmatthew_java dbus dbus_java ];
+  nativeBuildInputs = [ makeWrapper ];
 
   installPhase = ''
     mkdir -p $out/bin
     cp -r lib $out/lib
     cp bin/signal-cli $out/bin/signal-cli
+  '' + (if stdenv.isLinux then ''
+    makeWrapper ${jre_headless}/bin/java $out/bin/signal-cli \
+      --set JAVA_HOME "${jre_headless}" \
+      --add-flags "-classpath '$out/lib/*:${libmatthew_java}/lib/jni'" \
+      --add-flags "-Djava.library.path=${libmatthew_java}/lib/jni:${dbus_java}/share/java/dbus:$out/lib" \
+      --add-flags "org.asamk.signal.Main"
+  '' else ''
     wrapProgram $out/bin/signal-cli \
       --prefix PATH : ${lib.makeBinPath [ jre_headless ]} \
       --set JAVA_HOME ${jre_headless}
-  '';
+  '');
 
   # Execution in the macOS (10.13) sandbox fails with
   # dyld: Library not loaded: /System/Library/Frameworks/Cocoa.framework/Versions/A/Cocoa
@@ -29,6 +37,7 @@ stdenv.mkDerivation rec {
   #         /System/Library/Frameworks/Cocoa.framework/Versions/A/Cocoa: file system sandbox blocked stat()
   # /nix/store/in41dz8byyyz4c0w132l7mqi43liv4yr-stdenv-darwin/setup: line 1310:  2231 Abort trap: 6           signal-cli --version
   doInstallCheck = stdenv.isLinux;
+
   installCheckPhase = ''
     export PATH=$PATH:$out/bin
     # --help returns non-0 exit code even when working