nixpkgs mirror (for testing) github.com/NixOS/nixpkgs
nix
at python-updates 77 lines 2.7 kB view raw
1{ 2 stdenvNoCC, 3 lib, 4 fetchurl, 5 makeWrapper, 6 openjdk21_headless, 7 libmatthew_java, 8 dbus, 9 dbus_java, 10 versionCheckHook, 11}: 12 13stdenvNoCC.mkDerivation (finalAttrs: { 14 pname = "signal-cli"; 15 version = "0.13.22"; 16 17 # Building from source would be preferred, but is much more involved. 18 src = fetchurl { 19 url = "https://github.com/AsamK/signal-cli/releases/download/v${finalAttrs.version}/signal-cli-${finalAttrs.version}.tar.gz"; 20 hash = "sha256-FFPChw0w0QqX8ZJnqpwxS5mf2OeDlVW8QQyDjTozOAs="; 21 }; 22 23 buildInputs = lib.optionals stdenvNoCC.hostPlatform.isLinux [ 24 libmatthew_java 25 dbus 26 dbus_java 27 ]; 28 nativeBuildInputs = [ makeWrapper ]; 29 30 installPhase = '' 31 runHook preInstall 32 mkdir -p $out 33 cp -r lib $out/ 34 install -Dm755 bin/signal-cli -t $out/bin 35 '' 36 + ( 37 if stdenvNoCC.hostPlatform.isLinux then 38 '' 39 makeWrapper ${openjdk21_headless}/bin/java $out/bin/signal-cli \ 40 --set JAVA_HOME "${openjdk21_headless}" \ 41 --add-flags "-classpath '$out/lib/*:${libmatthew_java}/lib/jni'" \ 42 --add-flags "-Djava.library.path=${libmatthew_java}/lib/jni:${dbus_java}/share/java/dbus:$out/lib" \ 43 --add-flags "org.asamk.signal.Main" 44 '' 45 else 46 '' 47 wrapProgram $out/bin/signal-cli \ 48 --prefix PATH : ${lib.makeBinPath [ openjdk21_headless ]} \ 49 --set JAVA_HOME ${openjdk21_headless} 50 '' 51 ) 52 + '' 53 runHook postInstall 54 ''; 55 56 # Execution in the macOS (10.13) sandbox fails with 57 # dyld: Library not loaded: /System/Library/Frameworks/Cocoa.framework/Versions/A/Cocoa 58 # Referenced from: /nix/store/5ghc2l65p8jcjh0bsmhahd5m9k5p8kx0-zulu1.8.0_121-8.20.0.5/bin/java 59 # Reason: no suitable image found. Did find: 60 # /System/Library/Frameworks/Cocoa.framework/Versions/A/Cocoa: file system sandbox blocked stat() 61 # /System/Library/Frameworks/Cocoa.framework/Versions/A/Cocoa: file system sandbox blocked stat() 62 # /nix/store/in41dz8byyyz4c0w132l7mqi43liv4yr-stdenv-darwin/setup: line 1310: 2231 Abort trap: 6 signal-cli --version 63 doInstallCheck = stdenvNoCC.hostPlatform.isLinux; 64 65 nativeInstallCheckInputs = [ versionCheckHook ]; 66 67 meta = { 68 homepage = "https://github.com/AsamK/signal-cli"; 69 description = "Command-line and dbus interface for communicating with the Signal messaging service"; 70 mainProgram = "signal-cli"; 71 changelog = "https://github.com/AsamK/signal-cli/blob/v${finalAttrs.version}/CHANGELOG.md"; 72 sourceProvenance = with lib.sourceTypes; [ binaryBytecode ]; 73 license = lib.licenses.gpl3; 74 maintainers = with lib.maintainers; [ ivan ]; 75 platforms = lib.platforms.all; 76 }; 77})