diff --git a/pkgs/by-name/si/signal-cli/package.nix b/pkgs/by-name/si/signal-cli/package.nix index 79079d066912..012430327e6a 100644 --- a/pkgs/by-name/si/signal-cli/package.nix +++ b/pkgs/by-name/si/signal-cli/package.nix @@ -1,5 +1,5 @@ { - stdenv, + stdenvNoCC, lib, fetchurl, makeWrapper, @@ -7,19 +7,20 @@ libmatthew_java, dbus, dbus_java, + versionCheckHook, }: -stdenv.mkDerivation rec { +stdenvNoCC.mkDerivation (finalAttrs: { pname = "signal-cli"; version = "0.13.14"; # Building from source would be preferred, but is much more involved. src = fetchurl { - url = "https://github.com/AsamK/signal-cli/releases/download/v${version}/signal-cli-${version}.tar.gz"; + url = "https://github.com/AsamK/signal-cli/releases/download/v${finalAttrs.version}/signal-cli-${finalAttrs.version}.tar.gz"; hash = "sha256-TKAUSVIBF9FVbwZYc5R3ZsVecF/RsII1nl7GuITxAoc="; }; - buildInputs = lib.optionals stdenv.hostPlatform.isLinux [ + buildInputs = lib.optionals stdenvNoCC.hostPlatform.isLinux [ libmatthew_java dbus dbus_java @@ -28,12 +29,13 @@ stdenv.mkDerivation rec { installPhase = '' - mkdir -p $out/bin - cp -r lib $out/lib - cp bin/signal-cli $out/bin/signal-cli + runHook preInstall + mkdir -p $out + cp -r lib $out/ + install -Dm755 bin/signal-cli -t $out/bin '' + ( - if stdenv.hostPlatform.isLinux then + if stdenvNoCC.hostPlatform.isLinux then '' makeWrapper ${openjdk21_headless}/bin/java $out/bin/signal-cli \ --set JAVA_HOME "${openjdk21_headless}" \ @@ -47,7 +49,10 @@ stdenv.mkDerivation rec { --prefix PATH : ${lib.makeBinPath [ openjdk21_headless ]} \ --set JAVA_HOME ${openjdk21_headless} '' - ); + ) + + '' + runHook postInstall + ''; # Execution in the macOS (10.13) sandbox fails with # dyld: Library not loaded: /System/Library/Frameworks/Cocoa.framework/Versions/A/Cocoa @@ -56,22 +61,19 @@ stdenv.mkDerivation rec { # /System/Library/Frameworks/Cocoa.framework/Versions/A/Cocoa: file system sandbox blocked stat() # /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.hostPlatform.isLinux; + doInstallCheck = stdenvNoCC.hostPlatform.isLinux; - installCheckPhase = '' - export PATH=$PATH:$out/bin - # --help returns non-0 exit code even when working - signal-cli --version - ''; + nativeInstallCheckInputs = [ versionCheckHook ]; + versionCheckProgramArg = "--version"; meta = { homepage = "https://github.com/AsamK/signal-cli"; description = "Command-line and dbus interface for communicating with the Signal messaging service"; mainProgram = "signal-cli"; - changelog = "https://github.com/AsamK/signal-cli/blob/v${version}/CHANGELOG.md"; + changelog = "https://github.com/AsamK/signal-cli/blob/v${finalAttrs.version}/CHANGELOG.md"; sourceProvenance = with lib.sourceTypes; [ binaryBytecode ]; license = lib.licenses.gpl3; maintainers = with lib.maintainers; [ ivan ]; platforms = lib.platforms.all; }; -} +})